3 Traits of Excellent Software Engineers

Louis Waller
4 min readOct 2, 2020

--

software engineer personal emotional skills javascript
Photo by Markus Spiske on Unsplash

There are countless personality types that I’ve seen in the past 10 years in the software development world. Whether you’re an introverted developer, an outspoken and combative engineer, or someone who can never be wrong — odds are you’ve crossed paths with at least one of these. The path to being a senior and respected member of any engineering team is long and narrow, and few seem to make it to this enviable position. I’ve been surprised to see first hand that being a great software developer has little to do with how amazing and clean your code is. Maybe you’re confused why you haven’t been getting that promotion when you see others around you who are (but you KNOW you are more talented than technically.) There is a more personal aspect to being a member of a team that is crucial, and oddly ignored.

Your emotional intelligence needs to be on par, if not ahead of your hard technical skills. Even if you are able to knock out stories at a lightning fast pace and your code always compiles perfectly the first time, this does not mean that you’ll succeed in your career. There’s just surprisingly little focus put on how important it is to be a great member of any team.

Not Being A Jerk

It’s crazy that this one even has to be mentioned, but I see it a lot. This is a critical attribute for succeeding on any software engineering team. No matter how “book smart” one may be, if they’re impatient and lash out at others — no one is going to want to work with you. Your reputation for “being a jerk” will eventually spread and you’ll be left out of the conversation. Projects will get picked up and you won’t be invited to meetings out of fear that you’ll lash out and say something mean.

For example, say a more junior colleague pushes a bug up to production and a lot of customers are complaining about it. The senior members on the team owe it to the less experienced member to have a resolution oriented mind and to be kind about the mistakes of others. People are typically quite hard on themselves already when they make a mistake, so there’s no benefit of adding insult to injury. Helping others on any team is always something that management pays attention to and is rewarded down the road.

Always Learning

Most software engineers plateau at a certain point in their careers. Whether it be to the classic burn out scenario, or if it’s just out of boredom or the fact that you may not be challenged by your work anymore. Those who succeed will recognize that their plateauing and will figure out how to evolve or adapt their job, so they can break free of the plateau.

Maybe there’s a team you work closely with that has tasks that you can adopt. There’s likely that one project that involved a framework that you’re not super familiar with that needs to get done. Taking initiative here is so important and separates the average software engineer from the small group of people that truly excel.

Learning can also obviously apply to just improving your technical skills in more of a “study mode” perspective. I’ve found Lynda.com, YouTube, and LeetCode to be excellent resources to learning new programming languages. A Computer Science degree is no longer needed to excel in software engineering.

Being Accountable

I’ve seen this countless times. Someone pushes a bug to a production instance and there’s a broken feature in the code. There’s only 2 ways to respond to this and while it’s difficult initially, you will gain a tremendous amount of respect for those around you if you take immediate ownership of the bug and a path to resolution or patching it.

As soon as the bug comes up, you should send a brief message (whether your team use Slack, Teams, etc.) to your team stating:

A) I am responsible for the bug

B) I have a plan for fixing it (Quickly outline the plan to fixing it)

C) Provide a Timeline to set expectations

D) Send out a final message once the bug has been patched in production

It’s surprising for most people realize that people skills are still so important in an industry that’s obsessed with shipping good code and new features. What more software developers should be focused on is being an excellent team mate and improving their emotional intelligence. Technical skills are no longer difficult to come by, as jobs are now outsourced globally. What is difficult to come by however, is extreme maturity, empathy and patience in a world that continues moving faster and faster. These traits are sought after by hiring managers and should be paid a lot more attention to.

--

--

Louis Waller
Louis Waller

Written by Louis Waller

A Silicon Valley based software engineer’s perspective on the world.

No responses yet