My question is, what is it that sets someone apart as a good developer? I know this question is very vague but it's also very vague whenever I see it used.
Thank you for your time.
(Note: This is based almost entirely from working in small software agencies and startups. It might be very different in bigger companies/teams where you get less ownership of a whole problem domain.)
Other than that, I would say specializing and getting great at one or two things at a time (e.g. "C" and 3D graphics). Finally also seeking out exposure to other programming environments: languages (functional, lisp, etc), frameworks, frontend, backend, realtime/embedded/IoT, shrinkwrap, verticals.
It all comes down to experience. The closest thing to a shortcut is forcing yourself to do things outside of your comfort zone. Surround yourself with people who you can learn from and do so without ego getting in the way. Pair programming to pick up little tips all the time that you may never see written anywhere.
Based on my experiences in many different teams, I would suggest two critical attributes:
1. Strong knowledge of all core principles: computer architectures, operating systems, networking, etc.
2. Solid domain knowledge, e.g. supply chain, accounting, insurance, industrial control, etc.
Naturally a "good developer" is also conversant with several programming languages, frameworks, libraries, etc. But technical skills without domain knowledge limits opportunities.