Ask HN: Is working as a developer on technical route until retirement feasible?
I'm in my mid 30s and has been working in the software industry for the past 16 years. I'm a Lead Engineer at the moment and I've tried jobs as architects previously and didn't enjoy it. I still love writing code, learning new tech/tooling/stack and doing hands-on technical implementation. However, at some point it seems that everyone at my stage is moving into management or higher level positions doing project management, meetings, architectural discussions (mostly meetings), etc. which I really don't enjoy doing. Has anyone here work as a technical guy until retirement and can share your experience if you have any regrets?
Thanks.
111 comments
[ 2.5 ms ] story [ 167 ms ] threadSeems possible to me, it's very understandable to not want to climb the corporate ladder, and I'd support any of my devs who feel the same as you.
Raytheon is not 'normal' company. And it gets risky when there are layoffs, but even those I know who got let go during a couple rounds of layoffs were able to find other work. I'd honestly rather code then manage people.
Yes, if you work in a company that does some RnD and you have actual domain knowledge and expertise as opposed to being a generic, even if experienced, but nevertheless generic developer. I have many colleagues well into their 50s and some even 60s that work at Intel, NVIDIA, Ericsson etc.. They are not a rare sight over there.
One thing that trips up some coders as they get older, is that on some level they expect to be able to stop learning new stuff, and settle into the role of grizzled veteran. While that is true in most fields, in software, it just isn't. If you are retiring in 5 years, you'd better be learning some new stuff now to be relevant/employable 2 years from now.
But, if you're willing to keep learning, then the fact that you have seen a number of tech trends come and go does give you a perspective which is worth something.
Lastly, you will probably make more money if you go into management or etc. But it's not like you have to be homeless if you stay a coder, so for me that's not much of a sacrifice.
I worked with a "grizzled veteran" at a previous job... He was difficult. Kept talking about how he had a "classical" computer science education background from Stanford. Over complicated everything. Never took responsibility. Never wanted to learn anything new. Just a pain, we ended up working around him whenever possible.
So if you really like doing what you're doing great! I'm actually going the opposite route now. I'm 29 and actively trying to hop to sales because I know I don't want to spend that much time coding anymore. Different strokes for different folks. There's engineers at google making 300k and sales people making 80k and vice versa.
I started programming as a career in the last millennium, did desktop stuff for years (Delphi and then .Net) saw the writing on that wall and moved to the web.
It doesn't have to be a "no life, always learning" thing like some make it out to be, I've gotten good (and patient) at waiting things out, I'll take note of a technology, think that it seems interesting and then keep an eye on it for a year or two - I have an internal list I use to evaluate that, if it looks to still be interesting I'll pick it up at that point when there is a wealth of good material and best practices have shaken out and it's a lot easier to pick up.
The sheer torrent of stuff coming out means no one person could possibly keep track of all of it anyway.
These days I do my 40 hours at work and then maybe 4-5hrs a week looking at stuff that interests me outside of work because I find learning enjoyable and then I do other things and switch off.
Those two Sunday afternoons did wonders!
This matches what I've seen. I'd add one thing to this, too: "working in a technical role" at a lot of places actually doesn't involve a lot of hands-on feature coding at higher levels, even if you aren't a manager. You're planning the new stuff, you're doing R&D into new techs to see if the broader org should adopt them, you're mentoring, you're mediating arguments between other teams, you're talking to senior management and translating tech lingo and providing early estimates, etc.
You aren't managing people, but it's a very communication-heavy role.
If you don't do that, then yeah, I've seen people stay as just a "senior dev" level coder, but there's less salary advancement at that role.
Started in 1985 in Silicon Valley out of school.
The key part, and this is where it gets tricky is your cost vs value you directly provide. This is why most of those that I saw this happen for never got “high” ranking positions.
When you are an individual contributor, your value is directly a result of the work you do, you don’t get “multiplication” factors by making other folks more productive.
The effective consequence of this is that you are “capped” on how much you can “charge” for what you can individually provide as value to them.
To make this concrete, for a particular task, the value to them may be X. Yes you can do an amazing job and do the job as 5X, but they only needed X. So the most they will want to give you is Z, where Z = X/Y, where Y is some factor >= 1 + a factor. Note the Z will have to account for your “total” cost, which is salary + benefits + the overhead of having you in the company (managers, IT costs, etc).
So as long as you can have X >>> Z, you will always have a job. The trick is either making sure your knowledge gives a large X for your specific niche, or your Z is relatively low.
Hopefully this helps...
Software seems pretty good at multiplying the productivity of other people. It’s just less socially acceptable to take credit for that increase than it is in management.
However the point, which maybe I didn’t make clearly, is this: they expect a specific multiplication factor from a specific bit of code. This is the value X they hope to achieve by employing you. If you can do X in less time/lower overall cost then someone else, then that is worth paying more for. However, that X benefit they are seeking is relatively fixed. As a consequence your value is fixed.
With management, there is much more variation.
A bad manager will make a team of 5 produce the value of a team of 3. A great manager can take that same team and get a value of 8. This scales with how many people you manage/lead. Assume management makes a 10% difference to output capability. If you are leading/managing 100 people, the delta value is 10 whole people paychecks.
To bring this home: think how productive you were under a “bad” manager vs a “good” manager. Whatever delta was there, you can multiple it by your normal team size. That is the “value” a good manager unlocks.
I could flip your example around. McDonald’s hopes to achieve value X from each of their managers and that’s what their willing to pay. But a software engineer who can increase retention rates can noticeably increase the value of the whole company. And that’s part of why one gets paid more than the other.
In other words, the implementation is seen as a trivial part of the process, while figuring out what exactly to implement is seen as the core of the value creation.
If you choose to stay on this path, you'll likely make less money later in life. Is that ok? You may also find yourself involuntarily pushed out. Is that ok?
I'm in my early 40s, and think that the probability that my current dev job is the last one I'll have is around 75%. I'm ok with that - I write code how I want, I don't work more than I want, my retirement account already has enough money in it, my kids have fully-funded college accounts, etc. I've been doing various side-gigs for years and am thinking that I'll just continue doing that forever, making low 5-figures money, plus the required IRS minimum disbursement.
Does this sound like the kind of life you want?
https://m.youtube.com/watch?v=bvjb1H_j8D8
https://m.youtube.com/watch?v=woCg2zaIVzQ
This path is surely not for everyone. But it's certainly available.
I never wanted management, and don't think I'd be good at it.
"Still puffing my leafs, still fuck with the beats, still not loving police". "Still rock my khakis with a cuff and a crease".
The sound of your comment came off the same way.
"I'd rather drive the race car than manage the race team."
https://en.m.wikipedia.org/wiki/Alan_Turing
I.e. you can proactively do just enough project management, meetings, and architectural discussions so that people leave you alone the rest of the time to code, but you get enough influence to get things largely how you want them to be (i.e. no surprises/stupid decisions forced on you by a PHB).
It requires some drive & gumption to decide to do these things yourself and then the requisite organisational & social skills to schedule the meetings with people, make connections between teams, start the shared design-doc/slides/whatever, generally get people together and "make things happen" etc, but I've found that "the management" value this sort of mini-manager thing hugely, with the bonus that you are not just a passive passenger on the decisions being made about the work you do, but you are actively shaping it because it is you who is out there driving the agenda by just enough.
I can easily see this sort of role being viable into retirement if I wanted - people seem to really value an engineer who can do this sort of thing.
Finding the "just enough" part is challenging, especially if you're in an organization without a strong engineering culture where technical acumen is undervalued.
This impression is mostly generated by your head, to be more specific - by the social pressure to "make a career" and to regard technical skills as inferior to management skills. I don't think it's real, I saw many old people working as programmers, and there will be many more because there are more programmers among the current 20-30 year-olds, compared to the older generations. Also there's simply many more technical jobs available and there won't be enough management positions available to allow the switch for everyone. And the pandemic looks also like a quite big factor in reducing the number of management jobs (it looks like you often can work as usual without all the managers...).
Still innovating and contributing as a technical guy. I've made it clear I'm not interested in management.
While ageism exists in some places, I don't find it to be an industry wide problem.
At the end of the day programming is just coding the correct if/else and working with other programs, and the OS. (Which is really just a program too)
Personally I love it. Building and extending these machines. Learning new ways of doing things, coding for new platforms.
Personally I had to take a govt contractor job recently as I’m unemployable at lumbersexual shops.