What Makes You Stand Out as a Software Engineer?
To be a good software engineer, you first need to be a good human being. For me, being a good software engineer is a mindset—one that requires lifelong learning to evolve from good to great.
I am not a research scientist or a Ph.D. holder on any particular topic. This is based purely on my personal experiences. I wrote this blog for myself to reinforce my thought process 😉. There may be examples or scenarios that you might disagree with, and that’s okay. This is entirely my experience and journey, which is unique to me. Your experiences might be different, and I leave it to you to decide what valuable insights you can take from it.
I have invested significant time in this article to reflect on what I could have done better to gain more than a decade of experience in just a few years. You might wonder why you should spend your precious time reading this article 😀😀. You could be right—or wrong. To decide, you may skim through a few topics. You might find some parts irrelevant, or perhaps they will resonate with your own experiences. That’s for you to determine.
But I promise you this: you will find reflections on working with diverse people from different cultures and mindsets. These insights are unique and might offer you a perspective you won’t find elsewhere.
Helping Others
I have found very few people who genuinely help their colleagues without any hidden intentions. Most people are often driven by the wrong motives.
Some individuals try to help others with the aim of getting noticed in meetings or in front of a large audience. The motivation varies from person to person. I have met people who invest a lot of energy in gaining recognition, especially when they are new hires in the company. I understand—they want to be noticed, to be known by many people. It’s human nature. Some developers try to impress someone on the team, be it their seniors or their boss. Have you ever noticed a situation where a developer behaves or talks differently when they are in front of their manager or senior? Fortunately (or unfortunately), I’ve had the chance to work with many such people.
On the other hand, some developers genuinely want to help others. They prefer to stay low-key all the time. They are empathetic and truly care about how others feel. They show genuine interest in your challenges and are eager to help, no matter how long it takes. They prioritize your tasks over their own goals. They don’t hesitate to schedule a call to resolve an issue you’ve been stuck on for days.
It’s up to you to decide what kind of developer you want to be. If you help others with the wrong motives, it may work in the short term. But if you aspire to be a valuable software engineer in the long run, it won’t be sustainable. As humans, we are often driven by emotions—be mindful of when bad motives influence your actions, acknowledge it, and strive to improve next time.
Help your colleagues genuinely, without expecting anything in return. This will foster great connections with your team. In the long run, you will build a strong personal brand, as your colleagues will genuinely appreciate and advocate for your support. That’s the kind of brand image that stands the test of time, earning you recognition as a trustworthy and valued team member.
Understand Business
There was a time when I used to value technical knowledge more than understanding the business. I have seen very few software engineers who truly understand their business. Most software engineers simply complete the tasks they are assigned without putting much effort into understanding their customers. As a good software engineer, it is crucial to know your customers in detail: who they are, what they think, how they behave, and how they use your product.
I spent several years following the same approach. With this mindset, we as developers tend to complicate software by adding hypothetical scenarios that are of no use to customers. Customers don’t care about the complex solutions or fancy algorithms you’ve implemented. They only care about the experience—how they feel while using your software.
There are a few engineers who truly understand their customers. They make an effort to learn as much as possible, whether by directly interacting with customers or by fixing the issues customers face. These are the people who become valuable to the team. They can quickly debug and resolve issues because they know their customers well.
It’s essential to have a digital avatar of your customer in mind while building any feature. Software engineers who understand their customers progress quickly within their teams because they can propose solutions that address their customers’ problems. If you truly want to become a great software engineer, start putting effort into knowing your customers deeply and sincerely.
Aware of Personal Biases
You must have seen developers advocating for new technologies, frameworks, or programming languages they are learning or experimenting with. I have encountered many people throughout my career who never tire of discussing the work they are deeply invested in. I have seen people passionately debating whether Steve Jobs was a great developer, salesperson, innovator, etc. I have seen others arguing for hours about Elon Musk, debating whether he is a tech geek or an entrepreneur. I’ve also witnessed people claiming that ChatGPT is the greatest tool ever built in history.
It’s natural to have personal biases toward things we are heavily invested in. However, this behavior can limit you if you fail to realise that you are clinging to the same idea. It can backfire when you resist changing your mind, even after hours of discussion over a colleague's implementation details. You may become blind to your own idea, resisting change no matter how much better your colleague’s suggestion might be. You’ll end up listening just to respond, rather than truly listening to understand.
It’s much easier to work with software developers who are aware of their personal biases. Such developers listen actively and adopt plans based on what is better for the product rather than imposing or influencing others with their ideas. The tendency for personal biases often increases with years of experience in software development.
To become a great and valuable software engineer, you must be aware of and acknowledge when you are investing excessive energy into shifting decisions based on your personal biases.
Speaks up
We humans are not naturally accustomed to raising our voices when we see something wrong. This mentality is shaped by our upbringing and how we grew up as children. Speaking up may not come naturally if you were raised in a culture where staying silent about wrongdoing was the norm. On the other hand, if you grew up in a culture that prioritizes individuality over the group, you may be more likely to take action when you discover something wrong.
This mindset plays an important role in the career of a software engineer. Learning to speak up within your team adds great value. For example, if you discover a critical bug in your application while working on a task, and you are someone who is not accustomed to speaking up, you might continue working on your task and wait for someone else to prioritize the bug. In contrast, if you are someone who speaks up, you would log the bug, take action to fix the issue, or delegate it to someone in the team to resolve.
The good news is that this mindset can be shifted with effort. Sports like boxing or jiu-jitsu can play a significant role in fostering this change. You can also improve by consistently bringing small improvements in your project to the team’s attention.
Willingness to Go the Extra Mile
I have worked with colleagues who hesitate to go the extra mile when needed. I have seen them defending their limitations by saying, “It’s the limitation of the framework,” or, “It’s the limitation of the operating system,” and so on. I understand that there are some problems with genuine limitations where investing too much effort yields little value. However, if you consistently limit yourself in such circumstances, it can become a habit. This habit will eventually make you more defensive and content with mediocrity, hindering your progress in the long run.
As a good software engineer, you need to go the extra mile when the product demands it. For instance, there might be a performance issue that requires deep, intensive research into database management systems. It could take you months of reading white papers on relational database management systems to find a solution. However, this habit of going above and beyond will teach you invaluable skills along the way. It will make you a valuable member of your team.
Shares Knowledge
Software engineers often hesitate to share what they have learned. Some fear being judged, others may not want to appear vulnerable, and some might lack the habit of deeply understanding technology.
Many software engineers avoid being vulnerable in front of others. They may worry that people will change their perception of them if they cannot answer questions during a knowledge-sharing session.
Others may not have the habit of fully understanding what they are doing. They might rely heavily on resources like StackOverflow or ChatGPT to solve problems. In such cases, they may be reluctant to share knowledge because they don’t fully understand the reasoning behind using a particular piece of code in the first place.
Sharing knowledge requires great courage, but it is also one of the best ways to learn quickly. When you share knowledge, you put in the effort to understand the technology you’re working with in order to explain it to others. This process significantly deepens your understanding of the technology.
I am grateful to you if you made it to the end. The content in this blog alone won’t be enough to make you a great software engineer. There are countless things you need to learn and be mindful of to excel in this field.
To be a good software engineer, you first need to be a good human being. For me, being a good software engineer is a mindset—one that requires lifelong learning to evolve from good to great.
I wish you all the best on your lifelong learning journey. ❤️ Love you all ❤️