The one question I get asked the most every single day is, what makes a great developer? Well, as Charlie Munger said, the solution is many times the inverse of a problem. So let's think about what makes a bad developer first. Bad developers over complicate and over engineer, so they look smart. Great developers simplify. Bad developers assume code it's working. Great developers test that it's working.
Bad developers worry about things that don't matter, like optimizing HTTP compression when network latency it's not an issue. Good developers worry about what really matters, like cross platform compatibility, performance, and time to market. Bad developers execute on sprint tickets. Good developers keep an eye on the business goals and help their team write better tickets. Bad developers do 15 different courses and learn three different frameworks at the same time.
Good developers know the difference between signal and noise. They filter out the noise and they focus. I can go on forever, but the takeaway is clear. Bad developers make simple things complicated. Good developers make complex things simple.