Good at XXX = generally proficient, skilled, talented in the XXX sphere of endeavour.
Good in XXX = specifically good in the particular circumstances described by XXX.
For 'good in' this is often followed by a school subject (for example, "I'm good in science"); 'good at' is more general and includes more general areas such as "I'm good at horseback riding" (but could also be followed by a subject).
There are also some time expressions, for example, "A hot cup of tea is really good in the morning."
There are also some food expressions, such as, "Some dill would be really good in this salmon recipe."
good at / in? - WordReference Forums
to be good at doing something:
He is good at playing chess.
- For Teachers