My nose has been pressed to the grindstone forever, so it literally hadn't even occurred to me until today when someone came right out and said they thought I should be using the S word!
I'm officially a Senior at my current job (cost center non-tech company). I used to put Senior on my resume. I no longer do - I just put SWE.
"Senior SWE" is evaluated differently at different companies. I reckon a typical Senior at a FAANG or other mid to high level tech company is better skilled than a typical Senior at a non-tech company (including myself).
So if I throw in my hat for a position at a tech company as a Senior, then I'm going to be competing at a higher level. So I'd much rather just apply to a plain ol' SWE position (or even junior, if possible). The compensation is likely higher than what I currently make anyways.
- my official title includes it but I don't use it, to ease the competition
- use it when you're smart and fast enough to help & enable others (but you might be a lead engineer or manager at that point)
- let it be bestowed from without, and by the way it's dependent on the context (tends to mean more the bigger the company, and is usually stated in relation to others around you)
- several more saying let it be bestowed from without (including possibly by asking for it to be bestowed)
- I use it only to game clumsy recruiter searches
- I guess I'll add my own, which is kind of half-joking: Once you've got 5 years of experience you're "senior," and that's because, as Uncle Bob Martin pointed out recently, the number of devs in the world doubles about every 5 years. Which means if you've got 5 years of experience you're above the median; you're more experienced than half the people out there!
> ...they thought I should be using the S word!
The question suggests that you can somehow give yourself a new title which usually isn't true for people who work for someone else. Hopefully the titles that you put on your resume are your actual titles at the companies that you worked for, not something you came up with. Don't worry about calling yourself anything.
At the same time if you are able to get a promotion or apply for a senior role, that's great - go for it. It's nice that people around you are recognising your progress in some way.
Last thing, titles have meaning within any given company but are almost useless when comparing across companies. In some places to get a senior developer title, you just need to ask. Your manager then tells HR to change one cell in a spreadsheet and congrats - you're a senior software engineer. In other places you can become senior if you've been on a team for a year and everyone else has been there for a couple of months ("you have multiples of their experience, of course we can call you a senior engineer"). In those places you just need to be senior relative to the people around you. And in other companies it's a much more rigourous process with very specific criteria. There are people will decades of impressive high-profile engineering work at big companies whose title is just "Senior Software Engineer".
Previously I'd always been either a developer or consultant, from entry level up to people who were architecting large systems costing millions of pounds with little outside support. I still think it's a bit weird as I don't really care what my job title is as long as I get well paid and get to do enjoyable work occasionally.
One definition of seniority I use:
- requires a base level of knowledge. 5 years at least of development but less if you've done tons of side projects / overtime / etc
- You need to know how things work across the stack and be proficient in a few places. That's where the deep knowledge comes from
- be a leader when it comes to planning, as a senior you can reason about the project well and make longer term plans about it