I'm in my 40s, been developing for over 20 years professionally and was programming in assembly since the late 80s in middle school and felt the same way.
I kind of stumbled into a job as a lead. I was looking for a job, thought I was applying for just another senior developer job and I started asking my version of the Joel Test * to my now manager. I realized after a lot of questions about architecture, strategy, and mentoring that he was looking for someone to basically create a modern development shop. Luckily I knew enough to talk intelligently about it to make it through the interview without planning.
It's been a great but humbling experience. The great part is that I'm only working on green field projects and I don't have to deal with the technical decisions by others. I was able to mold the department in my own image - I'm always reading about best practices and asking advice from former coworkers.
The humbling part is that I realized two things, I'm good at teaching and working with the smart developers who had been there for awhile working on a legacy system that were just learning newer technologies, but I sucked at figuring out the types of people when I was hiring that were "smart and gets things done"
I was even worse when it comes to the project management side of things. Luckily, the developers who had been there for awhile were self managing and knew the business process inside and out.
Alan Kay said that people who are really serious about software should make their own hardware. I feel the same way about becoming an architect or team lead. If you really want to be a good developer, you should really be a team lead. As a team lead, you have more leverage than as an individual developer.
* https://myers.io/2017/04/04/the-joel-test-for-2017/
* * https://www.joelonsoftware.com/2006/10/25/the-guerrilla-guid...
Consultancies are not an option: they depend on buying cheap man-hours and selling then for a profit. As you age, your monetary need will increase and consultancies won't be willing to pay you more... unless you become a manager.
Product-builders are less shy to pay better wages for two reasons: 1) They dilute their wage expenses into a lot of customers and 2) They assume you're a good hire both for them and the competition, so hiring you means getting some leverage against competitors.
unless you become a manager.
Or a specialist with compelling skills.Most developers, say, do not have any career path that ends them up in the C-suite, so holding that up as a comparison isn't very useful.
If you finish out your career as a middle manager or a technical specialist, it looks much more similar. It's a path to consider for many people, but realize there are far fewer opportunities (and less lateral mobility).
Context: employment at both Facebook and Google
That is separate from the issue of whether or not the path is available at your company, or for you personally.
What I’m saying is they the pay tends to mostly reasonably represent value, in my experience. With a slight discount due to ICs often being bad negotiators (bit so are technical managers). As an individual, you have to consider what the job does for you, not just the other way around. If you want to increase your salary, absolutely you should be considering how you can change what you do to make a compelling argument that you are (or will) bringing more value.
Which isn’t to say that a great IC can’t bring a ton of value - it’s just that they are also rare.
What makes it harder is that typical IC ‘s lack both the visibility and experience to estimate value well (in the bottom line sense). So without infrastructure around it, you are at high risk of spending expensive time on the wrong things.
They're much more competitive to get into.