what distinguishes great software engineers?

I have come across this interesting paper. [what distinguishes great software engineers?] The result of the research lists the qualities of good software engineers grouped under three categories.

the items in the list are compact. As a software developer, you will find the items very familiar. but having them listed and defined nicely can give you[or me/ or us] a clear direction and open a path to more specified actions.

My motivation: keeping myself reminded of these items, so in any random time at work, I can base my decisions, like what activities I should care more about and how to handle them

How to achieve this: defining them in my words, providing examples.

while I am sure that I will add more explanation and enrich the examples over time, for now, I tried to write at least one sentence for each at the beginning.

Pays attention to coding details, such as error handling, memory, performance, style
— too obvious, too broad, and to be honest, doesn’t sound cool 🙂

Mentally capable of handling complexity; can comprehend multiple interacting
software components
— this is related to abstract thinking capability. the most obvious example would be, given an example case (let’s say a payment UI and process, when they close their eyes, one should be able to imagine UI – server – payment system – db – other related service interactions for some basic flows. payment process – can be declined- when it’s not, this and that interactions happen.

Continuously improving: improves themselves, their product, or their surroundings
— again too obvious, I think this requires a some degree of passion to their jobs and/or the project they work. you can appreciate if one doesn’t have, but this is something you can’t achive with a brain on standby at work. this requires active participation. our brain tends to be lazy, wants to keep its sweet carbs inside. also, this is not a develper’s quality, my experience shows that it depends on your mood, the project, your salary, how you like your managers etc.

Honest: provide credible information and feedback that others can act on
this is important. actually, the ones that touches the softskills impress me much more than others. [] important quality for a develper, the environment should support this.

original address: https://faculty.washington.edu/ajko/papers/Li2019WhatDistinguishesEngineers.pdf

My additions:

  • smile
  • don’t personalize (both while talking and receiving)
  • discussion with genuine good intentions
  • discussion without fighting
  • discussion with the possibility of learning
  • discussion with the hope of improving myself

Notify of
Inline Feedbacks
View all comments