Red Green Repeat Adventures of a Spec Driven Junkie

Key Distinctions: Junior and Senior Engineers

What’s the difference between a junior or senior engineer?

Junior Software Engineer

If you’re senior at one company, does that mean you’re senior at another company?

It depends!

A previous manager told me:

You might be senior here, at another company, you could be a junior because you have to find your way through the systems like a junior.

That resonates a lot. Every business has a different technology stack - even if “the stacks are same” at a high level, the implementation, workflows, automation, expectations, etc. can be wildly different!

Senior Software Engineer

So, if you’re a senior engineer at your current company, how do you make sure you stay senior engineer at another company?

  • Problem solving capability
  • Soft skills
  • Accountability

From my experience of working with different engineers joining my team, these are the key differentiators between a junior engineer and a senior engineer.

Junior Engineer

To define what a junior engineer is, they are an engineer that just started their software development journey for less than two years without professional experience.

Senior Engineer

My definition for a senior engineer is one that has professional experience at least five years at one company. Working at five companies for one year is different than being at one company for five years.

Main reason: depth.

When you’re at one company for more than three years, different doors open and with each door, comes with new responsibilities a new team member will not experience.

Problem Solving Capability

Think of problem solving capability like a tool box.

The more senior one is, the more tools are in their tool box.

A key behavior I see in junior engineers: they find a solution online that is similar to their problem and expect that solution to work for them perfectly the first time. If the solution doesn’t work, they stop there and look for another solution online and repeat the process.

Senior engineers can develop solutions on their own and when referencing a solution online, when it doesn’t work, they can debug that solution. They would take learnings from that solution and apply it to their situation.

Soft Skills

Soft skills such as communication, confidence, and managing expectations are essential in any career, often understated in software because of the heavy bias for technical questions.

As a junior engineer, they would have none of these and rely solely on technical prowess.

As a senior engineer, this is where they differentiate themselves, even in a new company.

Accountability

Finally, accountability - this falls into two major categories:

  • results
  • time

Results

Having accountability over results mean what one does when their work doesn’t work as expected.

As a junior engineer - it would depend and well, because they have fewer tools, they would have fewer options.

Senior engineers would dive into the issue and have multiple solutions with different trade offs.

Time

When talking about time accountability, it’s really about how much time to devote to work.

Junior engineers will work on problems so long and hard that they forget time exists. Problem is, they also work past deadlines they gave or don’t have anything to show after working so long and hard.

Senior engineers budget their time, know when to cut their losses and try something else - whether a different approach, re-evaluating assumptions, or even just asking for help. When they don’t have anything to show, it’s not because a rabbit hole they couldn’t get out of.

Mid-level Engineer??

I am intentionally ignoring mid-level engineers to highlight the extremes between the two. A mid-level engineer is in transition from junior to senior and will exhibit different ranges of these qualities.

Conclusion

Software engineering is hard and evaluating differences between a junior and senior engineer is always tricky - what may be a senior engineer in one company will be a junior engineer in another.

Traits I see that are differentiators between junior and senior engineers:

  • Accountability of their work and time
  • How they leverage soft skills in their day to day
  • Breadth and depth of their problem solving toolbox

Whether you are just starting your software journey or near tenure, one thing I learned in my career in engineering:

There’s always more to learn.