Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
How many years to senior engineer? (swizec.com)
18 points by kiyanwang on Aug 28, 2023 | hide | past | favorite | 30 comments


I’ve never worked with someone who had less than 10 years of experience that I would call a senior engineer. However the number of people who claim to be with less than 5 is astounding!

Maybe the talent pool in the UK has a serious case of Dunning-Krueger?

Whatever the case may be. I find hiring extremely time consuming because I need to wade through so many candidates to find a true senior.


I have met people with 5 years experience who are significantly more capable than others with 15 so I don't think time is a good metric. A lot of it is about attitude, some of which comes with age, but some is more intrinsic to the person.


Just because you know exceptions, it doesn't mean that it's a bad metric.

Take one of these "people with 5 years of experience" that are great and wait until they have 10 or 15 years of experience. Would you expect them to be a better or a worse engineer then? You need to compare apples to apples, i.e., talented engineers to talented engineers - and in this case, experience often makes a big difference.

I understand that, in our field, there is the impression that older engineers don't "keep up with progress", but this stereotype is just a form of ageism. That might be the case of bad engineers, those who were never great to begin with, but a talented engineer with a lot of experience is really hard to beat. These people can make design and architectural decision for million/billion dollar projects that an engineer with 5 years of experience would never be able to make confidently.

In a nutshell, you can't take experience alone as a predictor of performance, but there is a strong correlation between experience and proficiency.


I guess it really comes down to why you want a 'senior' and what you want them to be capable of. Are just looking for someone who is really good a coding or do you want someone with lots of experience leading teams and delivering projects from beginning to end. If you primarily want a good programmer then there are lots of people with less than 5 years of experience that are great. If you want someone who has lead teams and shipped products and can help you and your existing team reach new levels and get your next major product out the door, you'll be hard pressed to find that in people with less than 5 years of experience.


I generally agree and I think 10 years should be the standard with some exceptions made. Do you mean 10 years of full time experience? What about someone with three years of internship experience in college and 7 years of full time experience after school, who also majored in a relevant subject? That is closer to my career progression and could justify a senior title at around the 6 year mark after college. However it should not be the norm to get senior at 6 years and I think there should be additional guardrails like a universal exam needed to get certified at that level like the Bar exam.


> However the number of people who claim to be with less than 5 is astounding!

Senior engineer since when I had less than 5 YOE - I'm not claiming anything, I'm just using the title used by my employer. Nothing good will happen if I remove the "senior" from my title - in some cases it won't make any difference, in others it will actively harm me and make it more difficult to get the attention of certain recruiters and hiring managers. I'm not sure what you expect someone in my situation to do.


> I find hiring extremely time consuming because I need to wade through so many candidates to find a true senior.

Filter on years of experience - if you're right that 10 YOE is a useful threshold, it will make your candidate search much easier. I think it would be a really bad approach to hiring though because there are many incompetent people with 10 YOE and many great people with less experience. At the end of the day what you want is a good candidate, not a "true senior".


10 is IMHO too much because seniority most of the times stems from soft skills which can develop or be offset in the first place even independent from coding. Also, growth is happening non linearly.

But to be clear: I also think that roles like senior engineer are handed out far too easy.


Very much agree and I also use 10 years as my rough criteria (for PMs though as I am in product)


Haha, wait untill you hear about those seniors or actually señors with 3 yoe


> And in the right environment, an engineer can suffer through 10 years of experience in 1 year.

No you can’t. Some environments allow you to progress faster than others, but not this fast.


Indeed, I cannot imagine what image is in authors mind when he talks about 10 years of xp that makes him think that it is possible


Seniority in my perspective can be measured best in your soft skills. So you need someone to explain you what you need to do. Do you lead other people. Do you teach. Do you self manage your workload. So you report stuff the right way. Do you treat your environment the right way. Do you do the right things.

Because coding is something you master once in a sufficient way.


At the civil engineering company I used to work for they differentiated between Specialist Engineers and Project Engineers. Senior Project Engineers were people who could lead a team and deliver a project from beginning to end. Senior Specialist Engineers were expected to have a ~PhD level of knowledge in their area of expertise and be able to deliver cutting edge solutions and/or conduct novel research. Also no one was just a "Senior Engineer" they were always "Senior Engineers in X"

I think this sort of differentiation between what we expect of our "engineers" is quite useful.


Oh definitely. Not every specialization has the same requirements focus in seniority. But nevertheless, even in the most technical and domain focus areas, higher ranked roles are always including significant soft skills in one area or another. As an architect my specialization is technology and not people leadership. However, when you build very large solutions as an architect, your soft skills will be the dominant measurement of your seniority. Latest when you sit next to the CEO and CIO, soft skills are the only things which advance your career.


Oh and btw, there are evaluation frameworks for that.


How about this, you’re a senior if a company promotes you to senior or hires you as a senior. And then you have to contend with the reality that the senior role is easier to achieve at some companies because it’s cheaper to give someone a title bump than a compensation bump. I work in an adjacent field (data science) and I’ve met only a few data scientists that I would truly consider deserving of a senior title. Title inflation is a real problem in this industry.


you've said two conflicting things here. 1 is "if you have the title you're senior". 2 is "title inflation is real and most don't qualify".

i'm much more sanguine about this because you can be senior in some things and non senior in others. everything is a spectrum and also everything is stochastic, just because you have more years of experience in X does not mean you will be better at X going forward because tech changes, needs change, quality of experience matters.

all this is well trodden territory so i guess i'm just saying putting a ton of weight on an arbitrary "senior" label does neither you nor the labelee any good


Well I'm putting weight on it because other people do. The unfortunate thing about the tech industry is that there is no Bar exam and most education is gained from experience so you can't just filter on the quality of the school the engineer went to. It's also an industry full of people who aggressively climb the ladder immediately out of school to maximize their compensation (understandable) but this dilutes the meaning of their title if they aren't actually that good at their jobs. I think there should be a certification agency that certifies people at very high levels in a variety of subjects like python competency.


well you have a hidden opinion here - that a centralized certification agency does better than alternatives. coming from an industry (finance) where the CFA has some bar but is widely known to be not relevant to actual experts, the weight of history is against this.

the better alternative is decentralized expertise certification - which already exists, in follower graphs, open source libraries, and word of mouth.


Measuring in years is measuring by time served. Am I a prison trustee yet?

Measuring with some kind of experience ruler that's likely to be calibrated differently everywhere seems as effective as using horoscopes. And please, before anyone objects to that, I know some of you believe in horoscopes and that' ok.

If we're not measuring actual skills then it's meaningless. Like software engineer interviews above entry level.

If we do measure actual skills senior staff should have, we have to find ways to measure those "soft skills" that we all like to claim are unimportant but are actually the big differentiator for senior staff. You don't get to be a staff engineer by rote memorization or by being the only person that really understands some tech. Well, except maybe in startups.


> worked on 1 codebase for at least 3 years

I get why you would have this on your list but I'm not planning on staying at a job that I don't like, or with a company that's underpaying me, or insisting to be stuck on the same project for 3 years just so I can meet someone's arbitrary criteria for a senior. And I'm saying arbitrary because:

> worked in at least 2 companies (or vastly different teams)

> worked on 1 codebase for at least 3 years

so 6 months at job 1, and 3 years at job 2 (without changing codebase) makes you senior but 10 years with 4 jobs of 2.5 years each is not senior?

This why all of this is pointless gatekeeping - you're senior if you have a senior title. And if you do, it doesn't mean all that much and that's okay.


>So 6 months at job 1, and 3 years at job 2 (without changing codebase) and you're senior but 10 years with 4 jobs of 2.5 years each is not senior?

You're missing the point.

It is about exclusion of ppl who jump between projects every 1.x year and have never witnessed whole software development life cycle.

How can you evaluate your design if you never witnessed how it matured cuz you are already out by the time this phase comes?


> It is about exclusion of ppl who jump between projects every 1.x year

It's not every 1.x year, the author is excluding everyone who doesn't spend at least 3 years on a project.


3 is not some magic constant that comes from physics or something

It was just author's number.

It may vary by industry, specialization, etc. But the goal is the same


> Someone with 1 year of experience 10 times, does not a senior engineer make. And in the right environment, an engineer can suffer through 10 years of experience in 1 year.

to give a familiar shorthand to this, I have been describing the "algorithm of career growth" by "Big L notation"

https://www.swyx.io/big-l-notation

as a way to convert from years of experience to actual skills/capabilities. people with a very high Big L learn much quicker than those with sublinear Big L. Considering that we only get one life/career it surprises me that more people do not actively design their Big L trajectory.


I would think he means senior in terms of a certain quality that I'll describe, rather than "can credibly get senior title", which is really just a function of the job market.

Senior to me means:

- Can dig yourself out of any hole. If you need help, you already have contacts who can point your way. If you need a new language/OS, you are able to understand some things immediately, but you will also know some specifics within a few weeks, since you've seen something similar. You know how to use the internet to find out about anything you come across. Your need to ask new SO questions is absolutely minimal, you can piece things together from other people's questions. You have experience outside of your area: if you're a backend dev, you can still whip up a basic web page, if you're a web dev you still know a few things about memory paging. In either case enough to know where to look for details.

- Everything that's industry standard you've either played with or heard of. You've heard of the variants of similar things (postgres, MySQL, Oracle).

- You know what the likely architectures for problems are. You know where the landmines are. You have a good idea about what kinds of requirements will blow up the budget. You know which parts are critical and which are peripheral.

- You can express why one choice or another is preferable. You understand the tradeoffs in the design. You can translate between business and software land. This last point btw is also the difference between a good lawyer and a not so good one.

Given this amorphous mass of vague seniority requirements, my guess is it takes most people 10 years of full time work. You need some time to move around projects to get some variety, and you need time to mature both technically and emotionally. You need time to meet people and get to know them on a technical level too, it's no good just to know other fresh graduates, and realistically many of your matured dev contacts will be people you met early on.

I would also say that it's possible to go 10 years without getting all this variety, which is probably a commonly pointed-out thing. But also IMO once you reach this point the curve flattens: your next 10 years are unlikely to expose to something vastly new, and so a 10-year senior and a 20-year senior are not hugely different from each other, though both are vastly different from a 5-year dev.


Is it really important?

I mean, we are talking about a Title. Any company can give someone the title they want. I know a case of a guy who was Software Engineer at his second job with only 2yr of experience. And trust me, he wasn't a software engineer.

Can we trust titles?


Strongly depends on the company as well. In a big org it can take years of work at a senior level to get that title. And only if there is a “business need”.


Isn't the industry standard 3 years?

At least that's when you can begin getting that title.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: