What Distinguishes a Great Software Engineer from a Good One?
Jason Schwartz, VP Product Bounce Exchange
103 upvotes by Justin Gordon, Tan Miaoqing, Chris Weathers, (more)
A good engineer has technical mastery. A great engineer has these additional qualities:
Clear communication of complex ideas. Can the engineer explain themselves to non-technical stakeholders, as well as other engineers? Many technically proficient engineers are not considered great because they can’t communicate their ideas.
They love to code. Being an engineer is a great high paying job, which is why many good developers do it. Great engineers would code even if that wasn’t the case. They keep their skills current, and they have the stamina to power through long hours because they are doing what they love.
Desire to simplify instead of making things more complex. Hard, complex challenges are often fun for developers. Great engineers want to simplify the problem instead of building something complicated.
A strong business and product sense. In the development of a feature, developers often need to make product decisions that aren’t covered in the spec. Their ability to make the right call depends on an understanding of why a feature is good for the business, and how products should be built.
They focus on the highest impact items. Good engineers get distracted. Great engineers spend their time where it matters.
Strong social skills. An engineer needs to effectively interact with people across the company to be great a their job. If they can only interact with other developers, then they are only good at their job.