Ask HN: I feel my career is at a dead end. Any advice on what could I do?

165 points by iamcirou ↗ HN
Hey HN,

I'm 35, working for an IT consultancy company and I feel my career is going at a dead end.

I did well with my career (maybe too much?) and after 10 years I'm far away from coding activities, more involved in project management and I'm not sure that this is what I want.

I like coding (that's why I started this job, I also consider myself good at coding) I like to learn and explore new things.

The problem is that, at same time I feel that coding can't be a lifetime career: what will happen in 10 years from now? Maybe company will prefer younger coders to hire and I will not be able to find a job anymore? (I have family, I can't risk to lose my job) Shall I find now another role or company that may be can offer me a job where I can cover for both roles (Coding and project management)?

I'd like to hear your point of view, maybe I'm missing something here. Thanks in advance for any advice.

148 comments

[ 1.2 ms ] story [ 179 ms ] thread
let younger agile people Code, be an Software Architect if you like Code or manage coding teams. That is most likely better.
I'm a little younger, but also try my hardest not to get dragged into more management (it's easy to happen).

Are you worried you're not going to be skilled enough in management - and therefore you're trying to get "ahead of the game"?

If not then what's your fear - code until you can no longer, and then take a few months off, re-train and go into management (as a skilled coder you'll already have a big advantage if you want to manage teams in tech). Life is too short to work a job you don't like.

Same problem here, work in IT as developer, tech lead and PM, have not been promoted for years. I am staring to think IT consultancy software is full of dead end jobs.
Come to Google! No forced management track so you can code for as long as you want, no ageism (colleague just turned 60; I'm 40 myself), will probably let you support a family, great WLB :)
I would love to work at google. I am an older coder and founder but I doubt highly I could pass the tests to even get an interview. :(
Give it a try :) I interviewed twice and was hired twice, at 30 and at 39. Don't believe the naysayers, the interviews are actually super reasonable! It's algorithmic, but not leetcode; it feels like "let's figure out this problem together in the whiteboard, colleague".
Having to reverse a binary tree or some other associated nonsense for a frontend UI role meant I turned the interview process at Google down. That and about 6 prospective hours of interviews for my application to then be sent to a "hiring committee" who ultimately decided if I was worthy enough of a job at Google, it just wasn't worth the hoop-jumping.
What was the TC difference between GOOG and the job you have?

Might be worth it for some people out there

> but I doubt highly I could pass the tests to even get an interview.

I don’t get this “won’t even try” attitude for a job interview - what is the worst thing that could happen?

Waste of time, effort, energy, and fear of rejection. Plenty of downsides.
And also they can't interview at Google for another year after rejection. So failing the interview has multiple costs associated with it. It's better to prepare well and then appear for the interview.
I feel like if you interviewed with Google, you should put "interviewed with Google" on your resume.
fine print: must leetcode for a year before entering. results are not guaranteed. along with the fact that you'll feel like an insignificant cog in a gargantuan machine
fine print2: Google is a place where love of software goes to die. A place where PhDs work on CI/CD systems and edit robots for text config files.
I'm nearly at your spot in my career, but I'm not in management. I'm transitioning from a senior programmer position into a technical architect and team lead. I'm going to help write requirements and how to implement them from a high level, then create tasks and assign them to team members (including myself) to implement. I might be mentoring others from time to time. Maybe there is a similar position where you are?
I think 35 is quite young, I wouldn't worry about "aging out" for another decade or three.

Make sure to keep up with technologies as part of your day job. It's amazing how fast things, even SQL change. You don't need to own it all, just build situational awareness with an occasional deep dive.

Read other people's code. Look for projects that interest you and always be learning from them. Build things. Build your writing and presentation skills. You can always learn by helping to document the projects you use.

Look for industries that fit your interests. Programming is a dual-class: your domain of expertise and your technical chops. As you progress in your career, deliberately choose your domain. Immerse yourself that sub-field, identify high-value problems, and how computing techniques are used to solve them. Your success in later phases of your career is measured by how you are able to help a given community with problems that matter to them.

Critically, seek low stress: it's a long haul. Save. Avoid abusive employers and clients. Keep professional boundaries. Build and maintain a robust circle of friends. Finally, if you have children, focus on them now -- you won't get another chance later.

I'm in my 30s and think I'm close to aging out
I’m 50 and I don’t feel like I’m aging out. I’m going to go through a dozen interviews over the next several months so we will see how that turns out though.
Nice. I've been in the industry and in the same company for 9 years. I'm a midlevel dev. They've had me switch stacks 4 times. Every time it becomes much more difficult to learn the new stack. I think part of it is lack of motivation - why try my hardest if the knowledge will be thrown away in a year or two? (And they don't follow their own policies, to my detriment)
I used to be more worried about aging out. This was about 10 years ago when I was in my 30's, but my fears haven't been realized so far.

It does take a certain amount of agility to keep up with what's popular, but sometimes you get lucky with the skills you pick. Python, for me, has lasted quite a while. I picked that up later in my career after starting out with C and Perl.

Perhaps you're just burned out? 9 years at one place could easily leave you in a rut. Or have you looked around to see if there is a company that might inspire you again?

My problem is that I believed the company when it told me things. I ended up working on things the company needed which only hurt my career- basically doing the jobs nobody else wanted. They said they don't outsource and that they don't layoff. They do both now. I spent years on FileNet and Neoxam. There's no market for them.

I'm about a year into working with AWS stacks, so maybe I can switch when I get more familiar with that. But there aren't many good IT jobs in the area and my wife won't move.

Basically, I can't even imagine a future. I can't see myself tolerating this job for 9 more years. I don't see any jobs in the area that I would be interested in, or would pay as much (I support my family).

Ask your wife if she wants a miserable or a happy husband. I moved for my wife and I didn't regret it. She is willing to move for me too, if it ever comes to that.

But most IT jobs are remote now anyway. Look for those opportunities. Don't be scare.

I haven't seen very many remote jobs. Are those mostly at the big tech companies? I've spent my career (and other jobs) at non-tech companies.
Tech Companies in general.

What I have seen happen in the last year is the following:

1. Covid forced most people to work remotely, at least at tech companies. 2. The world didn't end for those companies, so now many more are amenable to remote workers. 3. Even the ones who aren't happy can't really force everyone to come back to the office, so they're still remote friendly.

I don't know how long this situation will last, but for now it's a good time to be a remote worker.

> why try my hardest if the knowledge will be thrown away in a year or two?

This is not a bad attitude. It's perfectly rational not to waste time on the framework or tool of the month.

It's the industry's fault for generating endless unnecessary churn.

We can fight it by focusing on understanding core principles and concepts (that changed very little since 1970) and ignoring the noise.

Good Luck!

I'm in my 40's and also going through a number of interviews. It's been a lot of hackerrank/leetcode type stuff mixed with some practical problems and behavioral questions. Also stuff about times I've demonstrated technical leadership...

(comment deleted)
I work at company (Olo) where at least two people I know of have asked to go back to developer positions from their manager positions, and have done so without any negative takes on it.

In my mid 30s I had a couple years where I kind of re-invented myself. I had been doing your typical C# backend stuff for like 10 years, just going to work, doing the thing, going home. Then for 2 years I spent some time learning other languages (F#, Nim, Rust,Go) doing coding challenge type things (Codingame, Advent of Code) and doing some open source work and game dev on the side etc.

Anyway it all kinda made coding fun again but when I next had a job search it opened a lot of doors. Knowing Rust and F# got me in the door at some very interesting places, and all the "leetcode" challenges made me able to interview very confidently.

I'm 36 and think I faced similar issues.

Was proposed a management role about 3 times. Somehow it felt like the end in general.

For my coworkers age isn't as relevant as simply coding skills. They want to be able to give me any task and be technically lead, if they don't know the technology themselves.

I've set a goal for myself: be able to do most of the coding related tasks - including devops, testing, deployment, monitoring - using up-to-date tech stacks.

During this weekend I've played around with self hosting and ended up replicating my company's development pipeline. It's quite barebone, but includes a git server (with working ssh clone urls), simple docker based CI pipeline, nexus repo and some management apps. All apps are proxied behind let's encrypt's SSL certificate.

I also added a simple google oauth integration so that anybody with google account could quickly set-up their own repos.

I don't remember last time I had so much fun to be honest. Also, as a byproduct, I hope, I gained the "hard to get unless you're in trenches" knowledge that is so valuable, when opportunity comes. It does come often in the place I work.

This is an example of the general approach I take: make sure to keep technical skills up to date using free time, by setting up goals, which are easy (for me) and fun - the end result should give the "I'm so happy with, what I made" feeling. It shouldn't be forced, because that would make me hate it in the long term.

I have a long list of things to try out sometime (computer vision, home automation, simple raspberry pi project, webapp to manage a game we play) and just pick something in free time.

I’m glad you have time for this! I’m 37 and haven’t had time for personal tech projects in years; family, home ownership and life have all gotten in the way. I’m on the management side (senior director equivalent), but I do make more than any of my engineers and I probably spend 50% less time working. I do a mix of people management, architecture design and executive communication, but it’s 95% stuff that falls into “important but not urgent” so I delegate most of what I can.

I don’t get the satisfaction of being happy with what I made, but the quarterly bonuses and stock grants make me ok with that :) Management is a great 9-5 job if you do it right, and if you’re a people person it’s super easy. Lots of potential career growth if you’re willing to put in the face time and play politics; your knowledge is less important than your style the further up you go.

Are you openly bragging about making more money while working half as much as the people you are supposed to be responsible for?

I would be embarrassed to write that.

I think a lot of people are in a similar position but not as open and honest about it. I feel refreshed reading it, rather than that it’s something to be embarrassed about. Edit: better english
To grandparent's defense - I find management genuinely essential and quite impactful.

It's a rare occurrence that developers on their own can communicate well with any kind of stakeholder. It might be anecdotal, but I find a high correlation between best technical and worse communication skills. I've seen people, who might be seen as typical 10x developers, cause they were so productive, be extremely bad with speaking about development in general. I've seen product owners literally gnashing their teeth in anger, but holding it up, since the guy really delivers - despite the bad "style".

Also, seeing already quite a fair share of stakeholder meetings... The part about style couldn't be closer to the truth. The non-technical people act, as if they didn't hear "99% percentile uptime is so so" or anything similar - at all! What they do hear instead are the speaker's emotions. They want to feel secure and good about going forward.

I've seen big budget moves based mostly on that: how well the project was sold to them. Technical merits were irrelevant. Whole teams disbanded, despite being quite productive, because someone got management excited about the new thing (also completely inapplicable to the problem at hand, but with good marketing: e.g. AI, cloud)

I find the grandparent just frank. It aligns pretty well with my anecdotal experience. I also think managers should be well compensated, since so much is at stakes (whole team, departments).

> I would be embarrassed to write that.

And working twice as long for half as much

The knock on management from a lot of folks I’ve talked to is that managers end up working harder for less money — this is actually the case at the line manager level, but if you can get past that things improve quickly.

Personally, I think it’s a suckers game to look for meaning or purpose at work. I’m there to do a job, get paid, then use that money to find my own purpose. If you want to use work as your creative outlet, great — but you’ll probably be frustrated.

@OP I hope you get quality advice from veterans who frequent these forums.

I have some tangential questions for you and maybe others.

---

As a programmer, how can I avoid the pressure towards management?

What is that pressure and why do people succumb to the pressure?

How much is that pressure external and how much is internal?

What form does the pressure take? What advice can help withstand the pressure?

---

I work in a medium sized silicon valley tech company.

I’ve done both and am not sure which I’m better at. I can 100% say that I found more pure joy in programming, but probably have had a much larger positive impact on the company in a leadership role.

The ultimate control against the pressure is “no, I don’t want a management role” or “I don’t want a management role higher than team lead” or whatever. No one will fire a good engineer because they don’t want to go into management.

Part of the pressure is on pay; part is on control; part is on boredom/frustration with doing the same thing, especially if you’re doing the same thing and think there are bozos higher up in the company making bad calls.

I’ve often said that once I have a totally secure retirement, that the ideal job from a happiness standpoint for me is a principal (or maybe even one step lower) software engineer role somewhere. I don’t want to just travel and certainly not just golf and watch TV.

This is my experience, and your mileage may vary:

Multiple times in my coding career I have felt stalled and/or like I was regressing.

Early on, I worked on a programming language, gosu (https://gosu-lang.github.io/) which ended up not really going anywhere. Once the work on it was done, I returned to more mundane web programming for a while (over half a decade.)

A long while after that, and unexpectedly, I turned a jQuery function I was noodling on into intercooler.js (https://intercoolerjs.org/). After a year of that I returned to mundane web programming for quite a while (over half a decade.)

Unexpectedly, a year ago, the country shut down. I was at home and decided to see if I could remove the jQuery dependency in intercooler.js, and so created htmx (https://htmx.org/).

When creating htmx and removing some attribute/functionality that was in intercooler.js, I realized that a small programming language would be the ideal replacement, so I created hyperscript (https://hyperscript.org/) I had not expected to work on a programming language again, but now I am.

So my career has been some very exciting technical projects punctuating long stretches of pretty basic, boring web development, where the most exciting thing is me wondering if I can figure out what the deuce is wrong with my CSS.

My takeaway, at least in my career, is that patience is a virtue, and the interesting stuff tends to come up at irregular intervals and in unexpected moments and ways.

When you are working on "mundane web programming", are you employed or just freelancing? If you are employed, do you quit your job to work on these more exciting projects?
I have been in both situations over the last two decades.

I don't quit to work on these projects, I usually work on them sporadically during work hours or, during intense periods that rarely last more than a week or two early on, full time. htmx was done during the first few weeks of the covid shutdown, for example.

htmx looks really neat, I think I'll be using it for some quick and dirty prototyping.
the underscore is silent -- love it
can't tell if this is an ad from the get go or not
Yeah, it's a webdev posturing on how he reinvented the wheel three times in a decade. Look at the code he linked, and weep.
Or consider it a viable solution to the itch OP was trying to scratch with their own development.

It's easy to brush aside a monumental amount of effort and thought that gets poured into projects like these, marking them internally as fruitless, when

1) we're not the ones that spent the long nights and weekends obsessing over the nuances of the specific problem OP was trying to solve.

2) any of us on HN are usually here shit posting because we're avoiding putting in the same effort for our own projects.

that's true to an extent (it was nearly two decades :) and adds to my answer for the parent question: there has been a lot of mockery along the way during the interesting parts, as well as depression when things I was very passionate about (e.g. gosu) were ignored or failed

hyperscript will most likely meet a similar fate

that's life

I like the stuff he made. I find using htmx much more pleasant than react type programming.
For a moment I was very confused since I remembered hyperscript being this and existing for a longer time: https://github.com/hyperhype/hyperscript

Hopefully you are already aware of the name clash.

I am definitely interested in your hypescript more than the old one but the name clash is unfortunate.

Have you considered to start freelancing? You could build a personal brand as a specialist for an industry, tech stack or <niche of your choice> you feel passionate about and decide on your own which projects/clients you want to work.
Any advice on marketing and getting contracts? Say, hypothetically someone was in a niche that could be useful, but locally there is only one company and other than that it's kind of a vacuum.
One of the best ways to make yourself much more hireable and to give yourself job security is through continuing education. Consider certifications in cyber security, dev or ops certs on AWS or other popular fields that are hiring. It will also give you a big boost in self confidence and bring your skills current.
Any career change could take time, or even create an employment gap while you skill up for the next thing, so, in addition to what others have said, I would also stockpile savings.
The problem is that, at same time I feel that coding can't be a lifetime career:

Is this actually true?? I’m concerned because I read that you’re making decisions based on this assumption and I’m not necessarily true this assumption is inline with reality.

I’m 36, and have been moving away from coding for the last couple years too, I’m deeply concerned because engineering seems to earn more across the board than project management.

My strat is doubling back down on coding, by starting to read engineering and algorithm blogs and books in my free time, and finding little toy projects and scripts to do.

> I’m deeply concerned because engineering seems to earn more across the board than project management.

Where I live (Sydney, Australia), front-end contractors earn (in AUD) $800/day, back-end $900/day and project managers $1000/day. There’s a range, of course, but that’s the gist of it.

Is this through an agency or solo? I work in Sydney but in a very back-end 'department in a bigger company' setting so have limited exposure to that side of the industry.
I have taken a bit of a different approach. For the the first 10 years I have been focused purely on coding while dabbling a bit in UX and Design while rejecting any management opportunities given. The last 5 have been a mix of the prior and management, product owner, growth, founder. I plan to continue this while staying at smaller companies where your responsibilities are what is currently needed and very hands on, not strictly what your title says.

This I feel gives me the most flexibility for the future. I’m not necessarily concerned about not finding a job in programming until I retire, but I like to make life decisions (e.g. where and how to life) first and job decisions second.

I haven’t done a whole lot of programming in the last 1.5 years or so, but so far I’m not feeling that I’m falling much behind given that I’m doing around 15 hours of mentoring, code reviews and problem solving sessions with programmers per week.

Start a company or maybe an open-source project.

You'll need to code, probably to improve your knowledge and skills, but also to manage projects.

I think the usual distinction programming vs management is harmful and is only relevant because big companies need the specialization of middle-managers.

This is not the only way.

Also, old coders can be extremely valuable as experts and mentors.
Two suggestions

1. Get a role inside a large org. Like Fortune 50 large. They are starved for talent and generally love people that can code but also have a broader view of things. You will see many 50+ year old people in these orgs still contributing technically. And you can have many job titles during your career there.

2. Look at setting up an income generating portfolio. There are many stocks and ETFs that pay a monthly dividend. If you can save up a modest amount (for an engineers salary) over the next 10 years you could see your portfolio paying you 2k or more per month. This can give you a backstop and some confidence to put yourself out there as you age in your career.

"if it’s clear that you can perform all your responsibilities at a high level, you are no longer in the right job" A quote from my today's reading (HBR).
You want a job where you can cover both coding and management but you actually prefer to just code. Are you wanting a touch of management just because you'll get a higher salary?

Like the other commenter suggested, it really is best to seek a more leadership role within technical work: architect, tech lead, product owner.

Does your company provide training opportunities? Find skills gaps that your team has and volunteer to fill them. Find gaps of responsibility that you can help with and eventually take over.

If money is the core of your issue, communicate to your manager your career path and back them up by identifying those gaps you see. It helps to frame your problem in a way that you're solving for your company and get buy-in from someone who should be supporting your success - your manager.

If your company doesn't support your transition, well get whatever training you can get on technical skills and leave.

> what will happen in 10 years from now? Maybe company will prefer younger coders to hire and I will not be able to find a job anymore?

I think that people vastly overestimate ageism in the software industry. And experienced engineers are far more valuable than someone who is just starting out. In the worst case, if the industry looks very different in 10 years and your prospect aren't that great, you can move to project management or some other management position at that point instead of settling for it now.

Get a developer job if that's what you prefer to do; I think that you're overestimating the downsides of choosing that option.

I feel like we are seeing a post like this every week. Contrary to sentiment here, writing CRUD apps for FANG is indeed not the dream and a path of fulfillment.
It is a way to a stack of money. Which may not give you fulfillment but it does you options.
of course it's a way and it pays well. but once you've become debt free and have some savings in the bank, it loses it's appeal exponentially. this leads to burn out, lack of motivation, people questioning their career choices/decisions
I think I've had the benefit of having had very labour intensive jobs in my past. Working in an office, or better at home is a real treat. It does get to me sometime. But I can think back to literally digging ditches landscaping and I think to mysef I can totally handle this a little while longer.
I agree that it loses its value exponentially, but not the appeal.
OP doesn’t seem to be financially independent just yet:

> I have family, I can't risk to lose my job

Maybe building FAANG CRUD apps can offer something here

I know a few people who worked at FAANG for a few years and then bought nice houses in the city I live in (they left their FAANG jobs). Money might not bring you fulfillment, but having enough to buy a $500k house in a place you want to live can get on the way.
Project management is one of those skills that you need to hide if you want to remain an engineer: being a good PM will just make you nominated to be the PM any time there isn’t one (which is half the time in dev jobs because technical PMs are underpaid and overworked).

So be a bad PM if you want to remain a developer. Manage your tasks and nobody else’s, and intentionally so. It kind of sucks, but the primadonna attitude a lot of senior developers take is basically because it lets you escape the PM responsibilities that get you sidetracked from an engineering career track.

One approach is to save as much as you can so that you don’t have feel trapped by a job you can’t afford to lose.
You may be interested to become a software architect. This role is not offered by all companies, and differs from company to company. But usually it requires a good mix of technical, business and management skills, with the emphasis on technical. In my company, at least, the architect is expected to be hands-on and be able to code the critical/foundational parts that have to be done right. So you might want to find a company where there is a meaningful architect track that is parallel to the management track in terms of compensation and career levels.