You don't need to be good, you just need to be at one of the high paying companies. FAANG and some startups will pay these salaries across the board. Some lesser paying companies will compete on occasion but generally there's a big gap between top paying and not.
I have not found a startup that would be willing to pay that much plus equity, or even paying that without it.
I would be okay taking a ~40% cut with good equity if I felt the startup / team was extremely solid. I have a friend who did that who made the same as I did. My friend does not regret the decision as the company is doing very well.
(I did not consider joining because of location - north bay vs south.)
I hate to say this, but I do "everything" (exclusions apply - I am not a data scientist, nor would I know what's involved until I get involved). I am not going to say I am a master of x thing, but it is enough for the purpose of scaling, proper architecture / code quality / etc.
Any areas I lack, I am given the time to research into it, provide available options to management, then build it out solo or with a team.
If it's solo, it eventually is handed over to a team once in production or until the next big project comes across my way.
Also, I have spent a lot of time building rapport with important people that it is easy to get things started when multiple teams are involved (eg integration of multiple systems). I guess knowing how to deal with internal politics is another value-add.
Having institutional knowledge - if you were the original designer of a system (or multiple for that matter), you also become more valuable as you know how things work internally.
I have been doing this for more than 15 years.
Most of all, coding is my hobby. I'm extremely passionate about it, and work on projects outside of work (I have a home lab setup that I build things on, for example). I love reading articles on HN, and programming language reddits to discover what's new.
It's useful to know what's out there so when you encounter a problem, you'll have a lightbulb moment and go, "Oh, I remember reading about this.", and start to dive deeper into the subject matter.
Salary progression went like this at various large companies / startups:
- 100k
- 120k
- 140k
- 155k
- 175k
- 200k
- 340k
I have never been at a FAANG company, not a manager, and my time is spent 100% coding (if not on research).
I'm not saying you need to do what I do to command that kind of salary - it will be different for everyone. I'm describing what I think I'm doing to get that amount.
Thanks for answering. I think these are qualities that I'd probably share, and while I am in Canada with less than ideal salaries comparatively, I'll hold out hope that I can find myself in a similar position and one that I excel in. :)
Edit: Followup question, have there been any times where you've been kind of miserable or at a total loss for why or what you're doing outside of your current position? Burnt out or otherwise?
Yes. I always bring it up with my boss if that becomes an issue. Sometimes just taking vacation helps. Good bosses will make sure I'm not bored when I bring it up (eg find a project I'd be interested in, or not have to work with certain teams / people I do not enjoy working with), or will fight for comp increases if that is an issue.
Other times, it's simply no longer fun / I don't feel I'm learning anymore / the level of competition is too strong to advance to another tier, and that's when I leave.
I'm at a point in my life where I have nothing to fear by leaving, so that also gives me a lot of sway as experienced engineers are hard to come by right now.