Qualities of a Good Engineer

Lalit Mehra
CodeX
Published in
5 min readAug 12, 2022

--

There’s no doubt that everyone, in their own eyes, is a great engineer; but everyone else might have their own opinions about it. There probably are a very few engineers out there who really break the ice with everyone else. While there’s no doubt that each of us is doing their best, but more often than not, the knowledge and expertise aren’t the only factor that defines how good an engineer one really is.

Take for example, how much of a difference does attitude make? Or what about the communication skills? Though there’s hardly anyone who is perfect, but learning to adapt and grow is a good habit to have. In this article I will talk about some small things that may help everyone of us become a better version of ourselves.

Be Unbiased

Having an honest opinion about the technology always helps. When it comes to choosing a technology, for maybe a new project, we often and unknowingly tend to lean towards those that we are familiar with. Even when there are better technologies out there we often resist to do a proper study to finalize the one that is best suited. While this may be because of time limitation or resource scarcity or may be something entirely different, but having an unbiased opinion greatly helps in the long run.

Shedding the biased behavior towards certain technologies could be the turning point as it presents a clear and transparent perspective and allows us to do an in-depth comparison of technologies, eventually leading us to make use of the one that is best suited.

Never Let your Guard Down

A lot of engineers aren’t really interested in testing the code that they write. They often feel as if it is not their job to write test cases, and as if they can never make a mistake. Let me tell you what, by not testing the quality of your code you are simply letting your guard down.

While it is true that not every failure can be controlled, what we tend to ignore is that there are a lot of those failures that can be controlled. By testing every possible and testable scenario we can always limit the chance of a failure. Writing code is just one part of the entire development process.

Imagine forging a sword, but never testing it before the battle. You probably know what will happen if that sword breaks, in the battle.

You can think of testing the code as forging a shield, that helps you against the odds of a failure. An untested code keeps the entire system vulnerable. It is always a good idea to test and automate as much of it as possible to save time.

Be like a Sponge

You know the way sponges absorb the liquid around them. Be like it, absorb as much knowledge as you can from your fellow engineers, from people around you. Take part in discussions, have your opinions, correct them when required.

One must learn to listen and absorb. An absolute way to attain knowledge.

Talk less, listen more. You may have heard of this phrase earlier as well. If you keep on talking alone and don’t let others speak, it is you who are on the losing end. You end up giving away your share of the knowledge while attaining none, from the other participants in a discussion.

Learn to Let Go

A lot of engineers have this habit of clinging on to their past projects. That may have many probable reasons. It could be an emotional attachment, or the fear of losing ones relevance in the project, or may be something else.

But, think about it, to learn and grow as an engineer it is important to take up different kinds of projects that improve ones area of expertise, and if someone is not willing to let go of the current project it will be difficult to start with a new one.

Accept Mistakes

More than often we are very open-mouthed about the system that we have worked on. We tend to push our narrative about how good the system is and that it is nearly perfect, but if there’s something that the other engineers have to say which can help to make that system better, you must lend an ear.

You aren’t the only engineer who knows how things work. As often as you find other’s mistakes, try finding yours. You will be surprised to know that there’s always some room for improvement and that mistakes happen all the time. What one really needs to learn to accept them and improve.

Be Hungry to Learn

As an engineer one must be ready to learn new things. With the constantly changing technological landscape, keeping out of touch with the technology is not a good thing. One should not settle with a what they already know, but should try to learn and enhance their knowledge as and when it is possible and required.

Attitude Matters

Remember that you are not working as a lone ranger. You have a team to support and work with. If you are a senior engineer your attitude matters even more because you also have to mentor a lot of engineers.

Working with a team requires a certain set of qualities, one of them being supportive and encouraging. One must try to fill the gaps when required, to be a proxy for someone else if asked for and be a good listener. A lot of times we end up being selfish and that’s not the right place to be, if there’s no real reason. Your attitude speaks a lot about you and makes up the most of how your fellow engineers think about you.

Communicate like Julius

Whether you know it or not, Julius Caesar knew many languages and always spoke to his people in the language they speak in. Why am I telling you this?

Well, when you are an engineer, you have to talk to a lot of people, people with varying expertise and mindset. You cannot talk technology to a product manager, or to a tech support person. One should try and learn how to convey the message to different people with different areas of expertise and get the job done.

Avoid Politics

I know this grey area is often not talked about, but yes, there are people who do politics. Why do they do it? , is a talk for some other day, but that doesn’t really help. Politics won’t take you to great heights, but your work will.

To do what is required of you, as an engineer, doesn’t really require any sort of politics, and if your job role requires you to do that then you probably aren’t working for an engineering firm.

--

--

Lalit Mehra
CodeX

Your friendly neighborhood software-engineer. I write about software development, design and architecture, and life in general.