WTF is a Senior Developer?

Ever wonder what differentiates Senior Developers from other developers? It’s difficult to give an objective answer to this question. Unfortunately, theory differs from reality more often than not. But that won’t stop us from giving yet another opinion.

Let’s start with pay…

Senior Developers make, on average, 35% more per year than Junior Developers. From a business perspective, this means that a Senior Developer must offer, on average, at least 35% more value per year to their employer than Junior Developers for it to make sense, right?

It’s not quite that simple.

Senior Developers also receive other benefits that Juniors might not. For example, they may receive additional restricted stock units (RSU), higher bonuses, or better paid time off.

Where it gets really complicated is measuring the value that a developer generates. This is a difficult problem.

How is developer value measured?

Startups make it easy to measure the value that a software developer can generate. This is usually because developers work in near isolation when starting a company. In a startup with one developer, the value is the revenue the company generates. In a startup with two developers (with nearly equal input), the value is roughly half of the revenue that the company generates.

As you add developers or other employees to a team, it becomes increasingly difficult to measure value. Was the sales team responsible for that revenue or was the developer? What percentage of value did the tester add?

It’s nearly impossible to quantify.

So companies protect themselves from grossly overpaying.

Underpay top performers

Top-performers are willing to be underpaid for a few reasons. One, they don’t know what they are really worth. Two, they don’t want to have to prove there value in a risky startup situation. Three, the general stability and comfort of working a 9-5 job for a mammoth company.

By underpaying top-performers, employers are able to only slightly overpay average or below average performers.

Set high minimum employment standards

You’ve probably seen job postings for senior-level positions that require 10 years of industry experience, demonstrated mastery of multiple technical skills, and a 4-year degree in Computer Science.

Not one of these requirements proves that a software developer knows how to generate any value. But at the very least the company knows that if the candidate is hired and isn’t producing value, it’s unlikely to be a matter of technical skill.

So what does a developer have to do to create senior-level value?

Responsibilities

Seniors develop software

They wouldn’t be much of a software developer if they didn’t.

Remember, developing software doesn’t always mean writing code. Being able to write code is just one tool in the Senior’s toolbelt.

Seniors ship working software

Years of experience doesn’t necessarily translate to experience shipping working software. As an employer, I don’t want to pay a premium for developers without demonstrated experience shipping working software. Seniors ship working software. Conversely, they know what will prevent working software from shipping and steer the team away from failure.

Seniors teach

The word senior implies more time. For Senior Developers, this means more time building software. Ideally, this additional service time equates to proportionally more experience.

The most obvious responsibility of having more experience is to guide Juniors. For an industry obsessed with DRY (Don’t Repeat Yourself), it makes sense that we pass on lessons learned to the generations that follow.

This responsibility takes on many forms:

  • Review and provide constructive criticism about code
  • Train others about software techniques
  • Encourage best practices in security, tests, and code

Seniors know when not to write code

More generally, Seniors know that writing and maintaining code costs more than just the cost of their employment. Resisting the urge to write code takes a lot of self-control, but it is a valuable skill.

Seniors get the right information

Software developers can be viewed as a function. Information is the input and software is the output. Good inputs don’t necessarily imply good output (the function might just be bad). But bad inputs almost universally imply bad output.

Seniors know how to get the right input. They know when information or requirements are missing. They know when what they are being asked to develop doesn’t align with business goals or doesn’t deliver business value.

Seniors understand iteration

It’s difficult to get software right. It’s even more difficult to get software right the first time. Seniors know that the first iteration of a software project is likely not the last. They know how to receive feedback and improve the software based on that feedback.

How do I become a Senior Developer?

Easy. Find an employer that is willing to give you the title.

No, seriously.

I’ve known “Senior Developers” that had decades of industry experience but no tangible Senior skills. I’ve also met developers that, just years after entering the industry, were Senior-level talent. There is no universal formula for senior-level qualification.

Focus on generating and demonstrating value.

There is no minimum amount of time required to become a Senior Developer. Start today.

Follow us at SeniorSkills.com for tips on how to develop and demonstrate Senior Skills.