Journal

Short definition of a good software engineer

Forget about career levels, roles, archetypes, or whatever is written in career frameworks. I have one filter to define a good software engineer.

A good engineer is the one I, as a manager or peer, can turn my back on and leave after they get a task/problem, knowing that they will deliver the solution with good quality, again and again.

It’s the manager’s responsibility to explain why they are doing that work, give all the context, and clarify open questions. After that, a good engineer can take the job, request help when they face challenges, ask more questions, coordinate with others, and then tell everyone who needs to know they are done with the work. They are proactive and reliable. That’s it.

The size of the task or problem will vary depending on the person’s experience and knowledge level, of course. The expectations will definitely be different between junior and senior engineers. But even a good junior engineer—with very limited knowledge—can get a lot of work done and gain trust.

Use whatever career progression framework you want; it doesn’t matter. A good engineer will be a good engineer everywhere if they do whatever I said above. Work details, expectations, processes, and technical and social challenges will differ in different organizations. That’s why if someone can keep being reliable and deliver the work with good quality in different organizations, they are, by definition, really good (or one of the best).