Settings

Theme

Ask HN: Qualities of a Senior Software Engineer

27 points by loige 4 years ago · 21 comments · 1 min read


Hello HN, I am doing a research to try to get a feeling of what different people in the industry consider to be essential qualities of a "senior" software engineer.

If you could pick 3 qualities that makes a software engineer worthy of the "senior" title, what would they be?

kenrose 4 years ago

What’s worthy of a senior title varies company to company. Does your company have a career ladder?

A few popular ones that you can look at:

- https://medium.com/building-carta/engineering-levels-at-cart...

- https://career-ladders.dev/engineering/

- https://www.progression.fyi/

  • loigeOP 4 years ago

    That's a great set of resources, thanks!

    Although, I am still curious from your perspective, what would be the 3 most valuable traits of a senior software engineer?

smileysteve 4 years ago

1. Takes leadership to find what they don't know

2. Works to Understand the business purpose of features

3. Cursory knowledge of all immediate dependencies (doesn't stop at application if you use a database)

  • loigeOP 4 years ago

    Love these ones, great mix of soft skills (communication, business) and hard skills (deep tech understanding).

    Thanks

sdevonoes 4 years ago

Being at least 28 years old. Not kidding, well, maybe. In general, "seniority" in many fields in life comes with age; there is no shortcut. It's not very different in IT. Besides the accumulation of experience, with age you gain perspective and become more respectful towards your peers. You'll find many adults who have only one perspective (their own) and that are not respectful to their colleagues: these are not seniors not matter how much they know or how good they are.

Obviously, one also needs to have a bunch of good domain knowledge; but this is independent of age, and it's rather easy to acquire (just work harder/more).

  • loigeOP 4 years ago

    I think you bring a very good point. It's true that you need time to be able to develop the skills and the knowledge but it's also true that those skills don't come from free by just waiting for time to pass while sitting idle on a desk.

    I have witnessed very very "senior" engineers who didn't really showcase any senior trait, nor they were helping the company or the colleagues in any significant way. Conversely, I have seen very fresh engineers showcasing the diligence and a level of knowledge that you would expect from someone with longer time in the industry. Those tend to be exceptions, but they happen.

    Time in the industry is definitely a relevant factor, but I'd say it's also not a guarantee for more seniority...

rramadass 4 years ago

1. Good Problem domain knowledge and versatile "T-shaped" breadth/depth of Solution Domain technologies.

2. Good communication skills to interact with Clients/Marketing/Sales/Management/Peers/Juniors.

3. Actual varied work experience e.g. Code Complete has a line like "actual 10 years experience and not 1 year experience repeated 10 times".

  • loigeOP 4 years ago

    Great points, thank you!

    I really love your clarification on point 3. I like to think time spent on the industry is not necessarily an indication for actual experience. I have seen people that have spent years and years in the same company doing the same tasks over and over and I tend to believe that they have grown much less than other professionals that managed to be exposed to more challenges during the same time-span.

    I also love the idea of T-shaped profiles and of course communication skills are a must!

    • rramadass 4 years ago

      There is actually a whole lot of details and nuance hiding behind the bullet points.

      For example, "Communication Skills" is not mere language fluency. It refers to interaction with each of the listed stakeholders using their language, understanding their pov and anticipating their needs. Thus with "Clients" focus on "What and Why", with "Marketing" on "Product Positioning and Product Family", with "Peers" on "Module interfaces and Technical details" etc. etc. Basically the "Senior" Engineer needs to have a 360-degree view of both the primary Engineering discipline and all the ancillary Business disciplines (as needed).

austincheney 4 years ago

I am a JavaScript developer so my opinions are limited to that slice of software.

Senior used to mean someone experienced enough to become an advanced problem solver. Those days are long over.

Now senior is equivalent to expert beginner. They are really fast and confident at using tools. This advanced and rapid tool usage means they can solve some problems quickly, but they cannot imagine any solutions aside from their favorite tools. The most important limitation there is that most senior developers cannot write original software. It’s a world of a few commonly known problems with commonly applied repeated solutions and everything else is discarded with excuses that equally lack originality.

If, as a JavaScript developer, you are able to write original software without popular tools you are commonly viewed as something like a dark wizard, equal bits of magic and evil. People view this as mysterious and incompatible with reality (you won’t be hired).

9wzYQbTYsAIc 4 years ago

You could pick three out of this list: https://davidxiang.com/2021/07/18/20-micro-habits-of-high-im...

  • loigeOP 4 years ago

    Great article! I haven't seen this one before. Thanks a million for sharing it

Jensson 4 years ago

Senior engineers can solve technical problems juniors can't. Senior engineers can provide technical leadership and ensure juniors don't get lost. Seniors are great at product management so keeps your product on track instead of wasting time building features you don't need.

At least one of the above or similar things. The important part here is to not think that you need anything in particular to be a senior engineer, there are lots of ways to grow the value you bring to a team and it is much better to have a diversity of senior engineer types than to focus on any one kind.

throwaway889900 4 years ago

The ability to decompose a task into parts The ability to complete all those parts alone (or with team help, if necessary) The ability to delegate those parts to team members

That's it. From there if you're good at the technical stuff you become more of an IC and if you're good at the management stuff you go into management. The first applies to both cases.

eurasiantiger 4 years ago

- Able to engineer turnkey DX tooling and set up functional, enjoyable value delivery workflows for teams

- Able to engineer efficient and horizontally scalable greenfield architectural solutions

- Able to pick up existing/legacy solutions and work with/modernise/replace them with minimal business impact

  • loigeOP 4 years ago

    Great points, I especially loved the focus on DX. Still very much undervalued to this day!

    Great points also in being equally proficient in working on greenfield as well as brownfield (legacy) projects.

    Thanks for sharing this

m4rc3lv 4 years ago

Able to do all the things autonomous: planning (and ACCURATELY calculating costs), talking* with clients, learning possible new required skills in no time.

*Understanding what clients really want, even if the client doesn't know it yet.

  • eurasiantiger 4 years ago

    > planning (and ACCURATELY calculating costs)

    No human can do this for software projects. There are too many variables.

badinsie 4 years ago

full knowledge of domain. understanding why things are done the way they are done.

yuppie_scum 4 years ago

Five years experience.

Keyboard Shortcuts

j
Next item
k
Previous item
o / Enter
Open selected item
?
Show this help
Esc
Close modal / clear selection