What is a "Senior Developer"?
A senior developer, hard at work.

What is a "Senior Developer"?

When a company hires All Around the World to develop new systems or work on existing ones, they're sometimes surprised to find out that, with few exceptions, we only hire senior engineers. We're not a "body shop." We're the experts you hire after you've discovered that the $100 a day freelancer wasn't such a bargain after all (true story).

So when an applicant asked me if "Senior Developer" meant "how long they've been doing this", I realized that what we're looking for is different from what other companies look for. We have high standards and a difficult hiring process, but it's worth it.

What follows is my (edited) response to that developer.

"Senior" absolutely doesn't mean length of experience. I've met quite a few devs who've been in the business for a long time but are no better than junior devs. Different companies have different needs for senior devs and would thus define them differently. So take what I say with a grain of salt.

For me, a senior dev can look at a problem and come up with a solution that addresses three areas: business, human, and technical needs. Each of these is worth an example to explain what I mean.

Business Needs

I was working with a company facing a legal deadline to come into compliance with new laws impacting our industry. To accomplish that, there was some software we needed to purchase and almost every single developer voted for some fabulous software that did everything we would want and more. Management chose software that no dev voted for. However, management was right because this software was the only software that would help them meet the compliance issue by a legally mandated deadline.

A senior developer can balance business and technical requirements.

Human Needs

My next criteria would be a developer who can understand human needs. There are many "superstar" developers who can develop fantastically complex code that does absolutely everything you could possibly want, but is very complex to understand and use. For one company, a sole developer worked for six months to produce an improved statistical model for financial projections. It did indeed provide better projections, but the project was abandoned because the company couldn't find a single developer who could understand the code aside from the one who developed it.

Or to oversimplify it: junior developers write simple code. Intermediate developers write complex code. Senior developers write simple code.

A senior developer remembers that other people have to maintain and use their code.

Technical Needs

Technical competence is the most obvious requirement and it's one that most companies focus on, but still one that is sadly missing. Developers with years of experience still churn out spaghetti code which isn't fit for purpose. The code runs well with a few data entries, but fails to scale when presented with massive amounts of data. There is often little data validation and no tests. They've not heard (or understood) the adage "a good developer looks both ways before crossing a one-way street."

Or one story I sometimes tell: while interviewing a very experienced developer, I happened to mention that our application was fairly write-heavy at the database level. He replied that we needed to use NoSQL or shard our database. He had no idea what our application did or how our data was used, so his comment was enough to disqualify him. His skills were useless if he couldn't understand the importance of understanding a problem before offering a solution.

A senior developer understands problems before offering solutions.

In fact, a senior developer working on a Java project may be the best Java expert on the team, but that's not why they're a senior developer.

You'll note that the business, people, and technical requirements all have a lot of overlap and different companies rank those requirements differently. Some companies find that prioritizing business requirements leads to great initial growth, but at the cost of maintainability. Other companies strive to build perfect software but struggle to make a release. These are hard balances to find and there is no "one size fits all" answer.

To me, a senior developer understands the relative importance of those three requirements and how they fit the task at hand. It's not "do they know how to implement a red-black tree from memory?" Nor is it "do they know this strange bit of trivia about their favorite programming language?" Unfortunately, that is how many companies hire.

If you would like me to come in and help with development or training, drop me a line.

Great article. My favourite part: "...junior developers write simple code. Intermediate developers write complex code. Senior developers write simple code"

Good food for thought, I agree with a lot of what's said here :)

Like
Reply

I could not agree more. I have experienced the prolific developer who can churn out a ton of functional code that gets the job done but leaves behind an impenetrable stack of code and classes that cannot be maintained. Also I see devs that understand a language and they use every feature and construct available. I now look for candidates that know what features to avoid and can explain why rather than the ones that simply go nuts using every fancy bell and whistle. For example the use of moose method modifiers.

I like what you have said. I like to think a senior developer is more than one dimensional. I always hope I'm like that (multi-faceted) but I've certainly known plenty of people who call themselves senior but aren't. They have a hammer and to them everything looks like a nail. They may be very handy with the hammer but it's often just the wrong thing to do...

Like
Reply

To view or add a comment, sign in

More articles by Curtis Poe

  • PAAD versus Kiro, Spec Kit, and Superpowers

    I spent a year on a secret (and insane) project trying to answer one simple question: Can I write large…

  • How We'll Train Junior Devs in the Age of AI

    I've been giving a lot of thought to the core problem we're wondering about in this new world of AI-assisted software…

    9 Comments
  • AI Propaganda Comes to LinkedIn

    AI-driven anti-trans propaganda has, unsurprisingly, come to LinkedIn. "Joseph Ben Simon" is posting pseudo-scientific…

    2 Comments
  • The Career-Changing Lesson I Wish I'd Learned Earlier

    You may have heard me mention this before, whether it's during another keynote at a conference, or in my various posts…

    1 Comment
  • No AI Strategy? You Need a Lawyer.

    Just a reminder that if your company doesn't have an AI strategy, your employees are creating an ad-hoc…

    3 Comments
  • AI and Structural Unemployment

    An amazing post on Twitter sums up one venture capitalist's concerns about AI. He covers a lot of ground and all of…

    4 Comments
  • Is AI Safety Dead?

    Recently there's been discussion that the AI safety movement is dying. Why is this and what does it mean? OpenAI…

  • An Honest AI Resume Scanner

    Introduction This is a long article, but if you want to hire great candidates, it's worth the time to understand the…

    6 Comments
  • Avoid The AI Collapse

    There's going to be a collapse of many companies heavily investing in AI and there's a simple way for most of us to…

  • Using AI for Coding

    I'll be training a company's development team on effective use of AI and am faced with the common question: "does the…

Others also viewed

Explore content categories