What is a Senior Software Engineer?

Posted by Darin Pantley on November 17, 2017

Context

If I don’t have senior in my official title, when am I justified in going to my manager and asking for a promotion? And once I gain the title, how can I tell whether I’m living up to its expectations? What should I expect out of other senior software engineers?

To answer these questions we must first answer a more basic question. What is a senior software engineer?

Rather than come up with my own list, I wanted to see what traits others expect, so I did some internet sleuthing and found quite a collection.

Basic Requirements

“They all boil down to someone being able to have more impact with more autonomy” — Pedram Keyani

  • You can handle the entire software development life cycle, end to end
  • You lead others, or others look to you for guidance.
  • You can self manage your projects — Anhar Miah

Behaviors

An SSE knows how to get things done. You can give her a difficult, vague problem, and know that she’ll talk to stakeholders, break down the requirements, come up with a plan of attack, and just make it happen. For bigger projects, she’ll report on progress along the way. — Daniel Blumenthal

Now she actively participates in these discussions, persuasively presenting her views with rational justifications, often in support of an existing point of view, but sometimes also to counter an a suggested approach. — Pankaj Kumar

Skills

  • Technical Skills
  • Team Skills
  • Client/User Skills
  • Growth Skills
  • Sales/Interview Skills
  • Community Skills — Andrei Neagoie

Most of the important skills have nothing to do with technology

  • Requirements gathering
  • Customer interaction
  • “Managing upwards” (dealing with PMs, product people, designers)
  • Estimation and planning
  • Becoming a team player — hapless
  • Reaching out to experts
  • Mentoring others
  • Being aware of latest trends and tools and using them wherever applicable — Pankaj Kumar

Experience

Sometimes you just have to use your reptile brain. If something sounds stupid, it is stupid. — Reed Hastings

A senior engineer MUST absolutely have had the responsibility of taking several systems to production and maintaining it there for some period of time. — Ryan Rawson

A senior developer has fallen out of love of the complexity which dominates the intermediate, and is obsessed with simplicity. — Matt Briggs

While an intermediate will plow through days of boring work, a senior developer will take a step back and question what is breaking down to cause all that boring work to begin with. — Matt Briggs