Ask HN: Is working as a developer on technical route until retirement feasible?

167 points by jackalx ↗ HN
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 ] thread
My father recently retired after 40 years of staying a tech lead / dev and repeatedly turning down other titles / roles.

Seems 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.

While at raytheon (my last job where people retired out of), many people stayed coding till retirement. At the university I'm at now, the IT department had many working till retirement.

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.

No, if you work in a software house; or I'd say, you have extremely low chance there and anyone who made it, was an outlier.

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.

36 years in and still learning new stuff and hacking.
I _started_ working as a coder in my 30's, and I'm 52 now. I am still getting inquiries from startups.

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.

This is the important part. You _have_ to keep learning. I work with a coworker who's in his 50's, he's flippin' GREAT. Super dependable, takes responsibility, likes to come in an hour early, code, not really talk to anyone and go home at 4. You can give him any project and he'll get it done, with tests and documentation and a one command deploy script. If I ever started a company I'd hire him in a heart beat.

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.

If you have the personality and ambition to be a salesperson you can make a good career out of it. I sometimes thin what else I could do and still earn a living and my introverted personality style gets me back to engineering. It’s unfortunate because ther are a lot of skills to be learned outside of programming.
I've worked with a few successful introverted salespeople. I'm not sure I'd want to do it but they seemed to pull it off.
Sounds like he should have stayed in academia.
Pretty much this I think.

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.

It's amazing what even ONE hour a week of watching a tutorial that interests you anyway can do. I went through all the RxJs tutorials for genuine curiousity. Even though we don't use RxJs at work, I got really really good at knowing when to use `map`, `reduce`, etc. in code without being too clever.

Those two Sunday afternoons did wonders!

I am curious, a side from keep learning, did you do anything, like, kind of promote your personal skills/archivements, to make sure you're "visible" to potential employers or something?
Your best route to potential employers is to have been regarded as both productive and easy to work with at your previous gigs. Reputation spreads, one way or the other.
On your last point, with lots of companies expanding their IC tracks, it's likely with continued career growth that you can make the equivalent of a director/VP by end of career because of how companies are aligning compensation and job levels.
Can you guide what your routine is for learning new stuff and staying up to date? How have you managed to work and study to stay relevant and keep up with young people going into the industry every day?
1) You don't actually have to "keep up" with young people learning, in the sense that they will inevitably be quicker learners. But, you can compensate by being better targeted at figuring out what to learn, which is where seeing tech fads come and go is helpful. But, you do have to keep learning. 2) The best routine is more than I can claim to know, but using new stuff to do something you're interested in (e.g. use an unfamiliar library or framework to analyze some real-world data, or build a small website for a real-world purpose) is the way that works for me. Tutorials are fine, but you need to use it for something "real", although not necessarily work-related.
That's the worst part, you never become really good.
Depends on the company and your priorities. Do you want to maximize income? Then make sure you work somewhere where ICs have a lot of advancement potential built into the org. Also don’t think that this track avoids politics, you still need to play the people game.
> Depends on the company and your priorities. Do you want to maximize income? Then make sure you work somewhere where ICs have a lot of advancement potential built into the org. Also don’t think that this track avoids politics, you still need to play the people game.

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.

A high savings rate (>= 30% after taxes) will make it very feasible.
Get a job at a place that values experience. Something safety critical. Until about 2 years ago, our youngest team member was 40.
I've turned down management roles all my life. Am still very technical. But now I own a consulting business and do less coding and more project scoping. Still technical though!

Started in 1985 in Silicon Valley out of school.

From experience working with folks in Aerospace Companies, yes it is possible.

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...

> 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.

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.

Absolutely! Software is a huge multiplication factor. No argument there!

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 still don’t get why you think that the budget for sharing productivity gains is strictly more bounded for software engineers than managers.

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.

Modern software engineer is in most cases just a bricklayer - he just realises a vision of the business (product owner and his boss etc.). So, in your example, it's not the software engineer who increased retention rates, but rather the manager who thought of writing such improvement, and hired an engineer who then implemented it.

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.

How do your retirement accounts look? Are you the kind of person that always wants more money, or is that not a huge motivator?

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?

This sounds nice. Since university is cost free where I live here I think I’ll want to earn enough to be able to buy (or at least help buy) apartment(s) for my future children.
Turning 60 this year. Still working startups. Still enjoy building software, and still better at it than most of the young people.

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 rock your khakis with a cuff and a crease?
Still not loving police.
Represent for all the gangstas all across the world.
I'm either too old or too young for that reference.
Haha it's from the song Still D.R.E. where Dr Dre explains that he's still the same, fame and time haven't changed him. He hasn't gotten soft and decadent. He's still top of his game, still the same guy.

"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.

Ah. So I'm just too white for the reference :)
Rap in that era was made for white middleclass people, as it's they who could afford to buy the most CDs.
Ha! Yes, most definitely an age thing. Not a race thing. I grew up very white in the Midwest and this music was very much a part of the zeitgeist.
I have an analogy for the developer vs manager roles:

"I'd rather drive the race car than manage the race team."

I went back to coding after going into IT management, then teaching English in a foreign country, being an IT architect with loads of responsibility at a company with massive IT infrastructure, owning my own web agency, and finally being CTO at a few companies. I had zero problem finding work again and I intend on retiring within the decade. With that said, there is ageism. It wouldn't hurt to do what my friend did: he took advantage of high programmer salaries and retired at 45. You can always work more after that if you want and you should be able to make it another 15 years without encountering too much ageism. Can I say I have zero regrets about moving out of management and back into programming? I cannot. I enjoy both but for the past few years I've been having a blast coding so that's where I stay unless that changes. If you don't enjoy management, it should be a far easier decision. Just don't count on working until 65. Lots have. But it's definitely far from guaranteed.
I've personally met a very few people who actually made such switch. The rest (a vast majority), in their 40s and 50s are still hands-on devs.
Although I am not near retirement, I've found there is a sort of sweet-spot to be found doing "kinda" management stuff while still emphatically being a hands-on full-time coder.

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.

I've found that showing any degree of drive and gumption in the undeserved organizational tasks ends up eating more and more time as the expectations and scope increase, rapidly pushing out the technical work.

Finding the "just enough" part is challenging, especially if you're in an organization without a strong engineering culture where technical acumen is undervalued.

As I like to say - never let people know you’re good at something you don’t want to do.
> 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

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...).

Yes, but you have to find the right positions. Where I currently work there are manager and technical tracks for three or four employee levels (depending on division) between leading a team and executive levels.
Yes. I wrote my first code for hire at age 14, started professionally at age 22, and I'm 53 now.

Still innovating and contributing as a technical guy. I've made it clear I'm not interested in management.

I started coding at 22 years old out of college and am now 58. I've resisted the pressures of becoming a manager my entire career and have had no regrets. Recently I turned down yet another manager role for all the reasons you gave and couldn't have been happier. Management at my place understands my career plans and have been accommodating. I plan on retiring in 10 years but know a lot can change between now and then so if my current job becomes unbearable, I'll leave and take on freelance coding projects. I will never become a manager.
47 here, coding professionally since I was 24. No management, and no plans for it.

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.

It’s definitely possible, but you’ll find yourself swimming against expectations more and more each year. Org culture and your own tolerance will be the deciding factors.

Personally I had to take a govt contractor job recently as I’m unemployable at lumbersexual shops.