To Code or Not to Code: The Difference Between a Good and a Great Engineer

Malo Le Goff
2 min readMar 4, 2024

What makes a software engineer great? There’s a tendency to attribute it to technical knowledge:

  • How many programming languages are they proficient in?
  • How many PRs did they recently post in the team channel?

While these factors can be important (or not), they do not differentiate between a good engineer and a great one.

I. Framing the Work

A great software engineer knows when to code, or if coding is even necessary. Although we all enjoy coding, it’s important to take a step back when a task arises, especially if it’s unexpected, and answer these questions:

  • Does the task address a potential customer need?

Challenging a business need should be something engineers feel comfortable doing, not something reserved only for product people.

  • How urgent is it compared to other priorities?
  • Does it fall under the perimeter of our team?

Once these questions are answered, you’ll know whether to tackle the task or not. If yes, then you need to gather more context by answering additional questions:

  • What’s the context?
  • Who do you need to reach out to? Who are the stakeholders? Can you get them all in the same place to talk about their opinions?
  • What are the potential solutions? What are the tradeoffs?

If things seem unclear and foggy, it’s beneficial to write them down, even under pressure. This can reveal potential gaps in your reasoning and prevent issues from arising down the road.

II. Coding, at Least

So, now that we know we need to code and what to code, we’re 80% there.

Now, if you’re a good engineer, you can achieve the next 15%. It’s about coding, and here you will find the usual topics we often hear about (following the SOLID principles, design patterns, coding standards, etc.). Don’t get me wrong; these are crucial, but a good engineer knows them.

III. Is it Done Done?

The last 5% is crucial for delivering quality work. Here, you need to answer these questions:

  • Have you reached out to the concerned teams to inform them of the status?
  • Have you set up monitoring/alerting?

The last 5% is where the great engineer shines again. This is the final hurdle, finishing what you’ve started, and it’s one of the most important skills you can develop.

Hope this can be useful for you!

--

--

Malo Le Goff

Student Engineer | Engineering school : IMT Atlantique | Software Engineering & Data Science & Cybersecurity