Hacker News new | past | comments | ask | show | jobs | submit login
Ask HN: Software Engineer hitting 40: what's next?
442 points by man-next-door on Nov 27, 2021 | hide | past | favorite | 349 comments
I've been working in software engineering for 18 years. I worked mostly as individual contributor (now as a Senior Staff Engineer), also I was an Engineering Manager for couple years. Now I am interviewing after a few years at the company, and I am hit by harsh reality. For the context, I am in Europe, not in the US.

I like technologies and programming, I want to further improve my skills in designing and developing reliable and maintainable distributed system, make better technical decisions. Also, I want to keep learning and playing with new techs. I am now interviewing for the roles like Staff / Principal Engineer, My expectations for the roles like Staff / Principal Engineer are that while staying hands-on, say for 30%, I will primarily use more my skills in architecture, engineering, and communications to focus on large, important pieces of functionality, technical decisions with big impact, etc. I expect that I would report to a Director or VP level manager, so that I could be exposed to a big picture, collaborate with and learn from a professional who operated on strategic level.

In reality, I am now interviewing for Staff / Principal roles and see a few problems that make me rethink my carrier plans. First, the definion for the most of those positions looks Senior Engineers with a few more years of experience: so you are limited to the scope of a single team scope, report to an Engineering manager, just be a worker at a feature conveyor, just be faster, mentor young workers, maybe get some devops skill. I feel limited in impact in such roles, my borders and carrier are defined by Engineer Managers, who are usually less experienced in engineering and leadership topics than I am. The work is also very repetitive, there is not much meaningful progression, next level. I think those titles are created to cover problems caused by diluted Senior titles: an illusional career progression candy for ICs with some salary increase.

I saw a few Staff / Principal roles that put a very high bar on technical expertise, when only 3-4 percent of all the engineers have such levels, and again usually limited to a lot of coding and a single team scope. They usually have long exhaustive interview process.

An important problem with Staff+ IC roles is that there is a low salary limit as well, and you will face much more competition for top roles. Mostly salaries top at the level of a director of engineering. It is typical for a company to have 10 directors, but only 1-2 IC with a similar compensation.

I want to work hard, and see meaningful progression: in salary, in impact, in respect.

I would like to ask for advice. I believe there are qute a lot 35+ engineers here that faced similar problems and made some decisions for their careers. Now I think to plan switching to a EM track or to Technical Product management. Thank you!

I'm 42 and have stopped paying attention to titles and all the traditional organizational paradigms that are losing relevance.

I feel like the ability to work from home in my sweats on simple problems as a senior engineer and receive a 75th percentile income relative to my neighbors in one of the best neighborhoods in my new home state is the most societal progress I will ever experience in my lifetime. I'm a lifelong bachelor by choice. Why bother striving for anything career wise when I am on track to retire comfortably to focus on my mostly free hobbies no later than the age of 50? For a house with a 3rd bedroom I don't need?

No, best to appreciate what I have and leave the striving for the next generation of engineers.

That's sort of my attitude too, though I'm a bit older. I was able to retire, a bit earlier than most, a little over a year ago. The main reason I actually did was a lack of significant overlap between what I enjoy doing, what I felt needed doing, and what the company insisted engineers at my level should do. I wasn't willing to give up all enjoyment on one hand or my professional conscience on the other, so I gave up the reviews and paychecks. The prevailing attitudes in this industry make me not want to work in it.

People who have never reached either that level or that longevity will surely say I should have stayed in, played by the rules better, and built up political capital so I could make more positive change some time in the future, but you know what? I had already paid those dues many times over, and I wasn't interested in paying them yet again. For all but a few, that promise of a rosy future is just bait that employers use to justify their BS in the present. I'm not that much of a sucker. Now I'm comfortable and my time is my own, and that's the only victory condition I care about.

Sounds great, if you can retire at 50. In the EU you can’t (or at least not in Sweden where I am), so you have to think about how sustainable this approach is past 50… and to me it doesn’t really feel sustainable.

I feel like as a software engineer, in most of the western world, if you actually save money (and invest!), and don't make stupid financial decisions, you can probably retire by 50.

It's definitely not feasible for most Software Engineers in Europe without extreme sacrifice, and fairly low expectations wrt to standard of living in retirement.

Retiring at 50 is extremely risky in terms of sequence risk[0], so you'd want a low withdrawal rate on your pot. You're also likely to want a higher income initially while you're still young enough to enjoy it.

So let's say your target is €2M for a €60K/yr income until you die, after a 25 year career. That gives you a couple years of fucking around after college / some bad years / gaps.

To achieve that over a 25 year, investing in to a smooth 7%/yr bull market, you're going to need to invest €2,500/mo. That's something along the lines of €50K/yr of gross income (assuming 40% tax).

Most software engineers in Europe probably don't even make €50K/yr... and we haven't even taken in to account taxes on gains, raising kids, buying property, or just enjoying life throughout your career!

[0] https://www.investopedia.com/terms/s/sequence-risk.asp

> So let's say your target is €2M for a €60K/yr income until you die

> Most software engineers in Europe probably don't even make €50K/yr

These two statements do not mix well together, if someone doesn't make 50k/yr it's unrealistic to expect to retire with 60k/year.

Let's see more realistic numbers. You make 50k/yr, getting 35k after taxes. COL is around 25k, but that varies wildly; with a partner and each one's COL is lower, but with kids and it's higher. Of those 25k/yr, 15k are for rent. You save 830/month, which gives you 630k after 25y, or 25k/yr at a safe 4% withdrawal rate (gross, so not enough).

But also let's say instead of paying rent you get a mortgage at that price, so when you own the place that is reduced drastically. Suddenly you find yourself with a COL of 12-15k/yr net, making 25k/yr gross from what you've saved previously.

Sure it's tight, but these numbers are without extreme sacrifice that you mention. Get lucky and make 60-70k/yr, or find a cheaper place, or inherit something (a lot more common in EU that USA I'd think), and it now seems possible.

Yes, I realise those two statements are in conflict. However, it's still possible for someone earning €200K to not be able to afford to give up €50K a year of gross income to reach the 25 year target I described. High tax, high CoL, a non-working partner and kids can level your chances.

And some costs are just fixed for everyone, so there's a lower limit to consider

The bottom line really is the balance between CoL and earnings rather than absolute earnings.

To achieve a given fraction, R, of your career salary in retirement you need to give up a fraction, S, now. My claim is that most people won't be willing to give up S to achieve the R they feel they need for early retirement (at say 50).

Personally I feel that unless you're 20-25 and have hit it out of the park with a great career starting salary you may as well forget about it and look to retire later... maybe start investing for your kids instead. Give them the 20 year headstart they can't give themselves. Investing for a decade or two longer is the magic sauce

Sure, and I know someone who got like 80k inheritance and he bought a jet ski and a car, crashed the car and sold the jet ski within a year.

Not all developers can retire within 25, but what I'm trying to say is that a significant fraction of EU developers can, if they learn and are smart about their money, either retire very lavishly at the normal retirement age or retire 10-20 years earlier with a bit of luck/extra effort.

It's more reasonable to expect them to make 35-45K pre taxes, 20-25k after taxes. With a COL of a working class person around 17.5-20k.

Most people in software, or any tech field, are barely middle class let alone retiring aged 50.

Sequence risk matters the most in the first decade. So long as you have a backup plan where you can restart working, even at reduced rates, then you can protect yourself against sequence risk. Older and in an economic downturn means that finding work could be difficult, so one would probably need to keep the backup plan “warm”: for example continuing to do a day or two of consulting work or a non-technical role, preferably in an industry that is counter-cyclical.

The bond tent [0] is an elegant option to deal with sequence risk. It does mean though that you'll need to save a bit more to offset the years your money is out-of-market and not making those 7% returns.

[0] https://www.kitces.com/blog/managing-portfolio-size-effect-w...

If you're pulling a 6 figure salary then sure.

If you've been earning on a typical career - say £25k/yr starting in your mid 20s, £35k-£45k through your 30s, perhaps getting upto £60k by the time you're into your 40s, you won't have saved enough to pull even £20k a year for a few decades.



That second job (£70K senior) isn't bad. It's remote, so you could easily live somewhere dirt cheap and be better off than someone in London on £100K+ (the difference in take home pay is only £1450/mo, which could easily be the difference between a 2 bed at £2K/mo in London vs £550/mo in, say, Durham... also buying property outside London would be way more doable)

Imagine that (£70k senior), but instead of somewhere else in the UK, it's somewhere in Europe.

In Munich, Germany (one of the priciest cities in Germany), the overall average rental price is €700 for a one-bed apartment[0]. Compared that to London, a one-bedroom apartment rent is going to cost you over £1000! €1178.48 euros![1]

In Eastern Europe, you can have a very good quality of life for even cheaper. The only problem is the language barrier.

I live in Sofia, Bulgaria, and pay €340 euros for a 2-bedroom flat in a pretty nice area of the city. A coffee costs around 2 лв (about €1), average pint around 3.80 лв (about €2). With a London software engineering salary, I save a drastic amount of money compared to London, and can usually afford to go to more restaurants, bars and outdoor activities (Love that I can ski just 20 mins away in the mountains!)

I assume it would be similar for people who can work remotely for a San Francisco company but live in a different state?

[0] https://www.expatrio.com/living-germany/costs-living-germany...

[1] https://www.london.gov.uk/what-we-do/housing-and-land/improv...

Companies in the US realized that up until a year ago, they didn't have to pay SF salaries to people who aren't in SF, because most cities don't have so many tech jobs laying around that you have to literally flag recruiters' as spam.

Post-covid, where many companies are allowing remote work, it's not at all so clear cut for them. You don't need to leave your hometown and move to a booming tech industry anymore, so paying people who live outside the bay as if they have no other options is resulting in a lot of the big tech companies' hiring pipelines drying up. Hopefully they figure it out

Oh yeah! I work for a Swedish company and live in South America. Just for some perspective, I make quite a few times _more_ than the president where I live. Albeit this all comes at a cost of some things like lacking tech advancements and lots of corruption and things just not working as well as they do in EU, but overall, can save a ton of money all while not sacrificing life quality and being able to go out and do fun stuff without having to think about money much.

Ahem. €700 in Munich gets you a room in shared accommodation. €1200 would still be a pretty good deal.

That's pretty similar to London, I wasn't aware Munich had got so expensive!

The remote has only come in in the last couple of years thanks to covid, and yes going forward if wages stay high. That's upto 70k, and note that it "depends on location". If you live in Durham you'll be on the 50k end.

Chances are by the time you're experienced enough to be pulling in that, you'll also be looking at wanting a family home rather than a small flat, which is going to be costing you more like £1k a month outside of London.

problem is that salary growth in last 5 years has been crazy

A senior engineer with 10 years exp 5 years ago made £35. Now someone out of a 6 month bootcamp can ask for that.

That doesn't even get into all the other roles that have popped up liker product / delivery which dilute engineer contributions and narrow their skillset - which someone in their 40's has.

I've noticed this too. It's rather alarming, but I certainly haven't minded milking it.

youre generally not supposed to make that much in socialist-ish countries, thats why youre taxed into oblivion after a certain point.

High marginal tax rates in the UK are mainly hit at low wages (when you come off universal credit and get taxed at 75p on the pound, when you're repaying your student loan when you get an extra 9p/pound, when you have two kids and the loan at 50k when you get hit by 69p (about to be 72p)

Once you're at say 200k, your marginal rate (as you'll have repaid your loan in the first couple of years) is 45%

Someone on $500k in CA will pay $210k in taxes. Someone on $500k (£375k) in the UK will pay $220k (£165k). That's not a massive difference.

Sources https://listentotaxman.com/375000


> thats why youre taxed into oblivion after a certain point.

Fun Fact: The nordic countries have a fairly flat tax rate (flatter than the U.S.) as well a 25% VAT and a low (20%) corporate tax rate. Most people don't realize this and would howl about regressivity if the U.S. introduced a 25% sales tax and lowered the top bracket to anyone earning more than $59K - which is Sweden's top bracket this year. So "beyond a certain point" for Sweden means "beyond $60K/year income".

You are right about the corporate tax, but for regular employees Sweden is one of the worst places to be in terms of taxes. Roughly half of the cost to the employer has to be paid in taxes (first withholding tax, then income tax). And then VAT, gas tax, alcohol tax, etc etc.

Yes, I agree that the tax burden is heavy in Sweden. I'm pointing out that with a 25% VAT and a top bracket of $60K, that burden is not nearly as progressive as, say, the U.S., where brackets go from 10% for $10K to 37% for 523K (after deductions). Whereas in Sweden, you pay 32% at $1800 and then 52% at $60K and you stay at 52% (again, after deductions).

Just so that we are clear, the 52% income tax is after 30% has already been paid in withholding tax.


And then the student loan payment hits.

Graduated in 2004 (right after the dotcom crash) with $70K in debt, mostly private loans. I didn't get that usurious gorilla off my back until 2014. In hindsight I was dramatically underpaid the first 5 years, but still.

I made that financial decision at 18. First in my family to graduate college. Nobody knew better to tell me not to do that.

A lot of other people are in the same boat.

Don't just live for the future. Life happens now, not at retirement. In my experience talking to people who has retired, many are bored and are struggling with purpose. Sure, there are certainly many exceptions. I just mean, don't forget to live right now, this is it, it happens now.

I think you underestimate the difference in pay across the western world.

If you've been doing it for most of your career, certainly. But a lot of people start their careers later or make dumb decisions with money for a chunk of the time, those things can totally push retirement well past 50.

For sure! I was merely saying that it's not a unicorn, it _can_ actually be achieved with high probability and lots of effort, as opposed to being flat out impossible for the minimum wage workers, for example.

I know it's a little off topic but why is this? Do you mean this is the case due to salaries or is there some other reason?

It’s a double whammy: lower salaries and higher taxes.

The whole society is really structured for people to keep working until 65 or so. E.g. taxes are really progressive, so saving in a high income year and living off that money in another year (with no taxable income) is super expensive. There are tax exceptions for retirement savings but you can’t access that money until 60 or so. Also, the state pays your base pension, but you can’t access that money until 63 or something.

Not OP, but salaries (esp post-tax) in Sweden are “low” compared to e.g the US.

If you make 1M SEK/year (~100k USD) you are in the very very very top of IC’s in Sweden, and your salary post-tax is roughly 68k USD.

Of course you can save a good chunk. Save roughly half, and still have the median post-tax salary.

(And you can save in a less taxed private retirement scheme which can be drawn from at age 55, but at the same time there are implications of not working at the end of your career for the government sponsored pension)

If you invest 50% of your take-home pay, you can roughly expect to retire in 16-17 years:


When you say "you can't", I assume you mean retire officially? I imagine that having a few million euros in the bank (or in different assets) would mean that work is optional.

You don't just get a few million through work. Salaries aren't high enough to save that aggressively.

I make like $320k, my wife makes $70k. Our rent in the bay is $2800/mo and we spend about $4000/mo on other expenses.

I just moved to the bay from the enterprise world, so my net worth is 400k. At this rate, assuming very conservative raises and 6% on all investments -- including already reserved stock units -- I'll be worth $2.2m in five years (age 40). $7.5m by 50.

And that's just assuming I hit $400k-ish in the next few years and stay there for the rest of my life, and my wife gets no significant raises. If I get higher, which is entirely possible, I'll make even more. Or maybe at some point I'll try for a startup and go for the really big money. Maybe not.

Of course, many of those assumptions could not work out. But the kind of exponential advantage of saving a large fraction of your paycheck eventually overcomes any disadvantages. Worst case scenario is tech goes bust and US stock market turns into Japan's in the 80s, but in that case I'll still be better off than most because I have a lot of savings and I'm not addicted to the paycheck.

I think the plan will be to do this for a few more years and consult part time. Full retirement would be too boring.

This is the most out of touch thing I’ve read on HN in a while. When did we start talking about whether couples bringing in $400k/year could retire at age 50. You are clearly an outlier, even when compared to software engineers in the states, let alone Europe.

I know it's an outlier because a few years ago I was making $85k in Houston as recently as 2019. I studied whiteboarding and moved. Now I'm a FAANG engineer.

Careful predicting the rest of your life based on 2 years of the best success you’ve ever experienced. Something similar happened to me 5 years ago and I’m operating on the assumption the crazy pay can disappear at any time. If you luck into a way to suddenly retire in 5 years, always assume there’s someone standing behind you willing to do it for less. Many money faucets eventually turn off.

The beauty of saving that much is I don't depend on it.

I have yet to save as much as I theoretically should be able to. Good luck, sincerely.

Edit: and you still have yet to demonstrate that your income will last for the next 5 years, let alone 15. Don’t count your chickens yet.

If you were in Sweden you’d be making $120k and your wife $50k. Your marginal tax rate would be about 70%. You’d have a net worth of say $200k, but that would be tied up in your apartment/house.

A net worth of $2.2m is pretty much unheard of here. The only people I know with that kind of money are founders who successfully exited their startups.

Sort of tangential to the point that you're trying to make, but if I were in Sweden I'd probably be okay working longer because I could actually travel outside of 1-week segments once a year like I have to do in the US.

In the US you should be at 4 weeks or more of vacation per year by the time you have 20 years in, plus a couple more weeks of paid holiday. No engineer gets one week per year, even their first year two is typical and it builds.

The above isn't universal. Quality of life is one thing companies compete on so the only companies that give you one week are start ups (where it is understood you are taking a risk in hopes of big payoff from your options), and game companies where the dream job gets people accept abuse.

I'm really happy about this with my current company. They now start with 4 weeks, and after 5 years you get 5 weeks.

At present trajectory this is a reasonable outcome, in the case of a major correction saving your money will also mean you benefited from the bubble.

There used to be stories from the .com bubble of people who only knew a little html getting six figures. On being told this around ‘08 everyone would nod and think that it was ridiculous - after all fresh college grad backend engineers could be hired for just 30k at the time on the low end in the US.

Flash forward to today and we’d think a front end engineer or designer with technical knowledge for those rates would be a steal even after adjusting for inflation.

I don’t doubt techs impact, or that the big tech should be the most valuable companies in the world. But I would be surprised if software engineer became the highest paid profession on a permanent basis, which with current salary progressions is a given without a correction.

Ooof, you realize how few people are in that position salary wise right?

The context of the subthread was not being able to do it in EU/Sweden, where $320k/year incomes are less common.

6% historically has been easy. Going forward it wont be as easy, think 3-4% is more likely.

Plus sounds like you dont have kids, they are very expensive in both money and time. Have you seen how much childcare is?

My friends who spent their 20s at FAANG would disagree with you.

In the EU?

I feel bad for people who aren't saving and investing a decent chunk of their income as a dev.

I think you can be a productive dev well into advanced age, but I think once you get to 40-ish the career becomes more like treading water until you retire.

And if you're the kind of person who doesn't like meetings and wants to go back to being an IC, you might not have that option anymore because you can't take a paycut.

It's a tricky thing to think about. I'm very near to 30, after 10 years or so kind of in a software career, but will be entering my 30s with no money saved or invested. Not because I'm a poor spender, quite the contrary, but because I've lost jobs and burnt out, leaving me in the absolutely comical interviewing gauntlet for over a year, multiple times. During this time, I've just drained my savings completely supporting myself. The way things look, unless I find a way to keep a job of any kind, I'll just continue this rollercoaster of making about $30k, going to zero, and restarting. Someone who's been in a low to middle income non-tech job for the last decade—with the same spending habits—will have made more money in total by this point, and have more to show for it. The other likelihood is I'll just find a way to embrace this flux and ride it as well as I can.

I feel bad for people who believe that age beats talent.

Age doesn't beat talent but experience can. Not only that, but you can be experienced and still have all the talent you had when you were young.

There is a big tendency for young, talented devs to assume they are the smartest person and/or the best coder in the room because up until now they've always been (even in college), but at some point in their progression that stops being true. I'll even go so far as to suggest that if you are still the best coder in the room you should probably go out and find a better room.

There is a correlation between experience and talent. That's my point. Everyone crying about being unemployable as an engineer over 40 is fooling themselves. 90% of the software dev jobs out there are not at FAANG companies, and at the end of the day, clients and corporations care about getting shit done. The guy with the 20 year track record beats the fresh graduate the vast majority of the time.

FAANG companies hire old people too. I’m nearly 50 and have 30 years experience in the industry and feel quite well valued at my large cloud factory. The opportunities for learning never stop and my decades of stepping in shit in various ways is seen as a thick callused hide of wisdom. :D

please do an AMA, your career advice would be super helpful

Haha I can’t tell if this is sarcasm but I definitely don’t think I’m AMA-worthy.

GP did not say this.

I didn't reply to GP, did I?

My GP.

It's literally in the second line.

I'm also just gathering money at this point, doing simple stuff at work with no stress.

Highly recommended for a comfortable and enjoyable life unless your ego needs to compete with others to feel worthy.

The big tech companies (ie. FANG) all have huge demand for principal+ engineers and know how to scope and support them properly. The size means they have lots of them which reduces the snowflake nature of the role and makes career development, salary support, etc… more standardized. Since they are large, there can be some variance, but overall they are a good option if you are interested. I don’t know where in EU you are, but most of FANG has roles in EU and some even do remote as well.

Smaller companies tend to want principal engineers in theory, but as you are finding they can often struggle with how to utilize them properly. Often you see them playing a Chief Architect role or something similar which is more hybrid with PM than pure tech. So getting PM skills could help set you up for this direction as well.

Finally, you have said you did management for a bit before, so you should know if this is an interesting path or not. This is a very different role, so I would recommend you do this only if you have the passion and desire to do this full time. Most principal engineers I know have done management for a bit and gained a lot of skills related to it, but ultimately wasn’t what they wanted to do.

The problem at the big (especially FAANG) companies is that to be effective you need to really buy in to the company's tech stack and development ethos. People who were promoted to those roles naturally do; you probably don't. In fact, if you have a lot of experience elsewhere you're likely to have opinions that conflict with the company zeitgeist, and that leads to conflict with its champions. Similarly, effective principal/staff/+ work requires a lot of strong connections to people in many teams, which again tends to favor internal promotions. This is not competition for its own sake. It means that when you're compared to your home-grown peers every review cycle it will be difficult for you to keep up let alone stand out (even for a while after the typical one-year grace period which isn't long enough at this level). This is discouraging, and in some cases can leave you in a permanent bind w.r.t. team trust or possibility of an internal transfer. Many thrive despite all this, but many also end up seeing it as lost time and opportunity. Quite a few end up going back to where they were, while others opt for a smaller company.

P.S. I'd argue that, for all their advantages within the company, those internal promotions are usually over promotions. People's attachment to that tech stack and development ethos, and lack of experience with any other, means there's an even sharper drop in their value going elsewhere than for outsiders coming in.

you need to really buy in to the company's tech stack and development ethos.

You need to be of the mindset that you're hired to help the company. The company has a certain tech stack and development ethos, so you're hired to help them with that. Just because you know there are better ways to do it, your job is still to help them do it their way.

It can be possible to get them to change development ethos, but this is a big deal and uses a lot of political capital. If you can really convince most people that it's better, you'll be seen as a senior tech leader for sure. But if you're optimizing for the best performance reviews -- in other words, the incentives the company has set for you -- then it's usually better just to work within the system.

"To be a leader, you need to have followers." So leadership isn't having the best product, e.g. the way Google is a leader in search. It's more like class elections in high school, it's a popularity contest. Your job is to figure out what people are complaining about or advocating for, and do those. Most likely, everybody is used to the development ethos and just thinks it's the only or obvious way to do things. So nobody is really complaining about it.

> your job is still to help them do it their way

Mostly I agree with everything you say, especially about needing followers before you can lead, but I think this part deserves more discussion. At staff level (if not slightly before), "help the company" and "do it their [historical] way" are often not the same thing. As I said in another sub-thread, at that level you're hired to bring knowledge and skills and perspective that the org doesn't already have (or have enough of). Unlike lower levels, pulling in some direction is part of the job in this case. I think EMs at all levels understand this and often support it quite well. The problem I've seen is other high-level engineers who never knew anything but the current way and believe that it's generally the only way (except of course for the one part they personally understand and want to change). This sometimes leads to hiring people and then thwarting their efforts to do what they were hired for.

> uses a lot of political capital > ... > optimizing for the best performance reviews

That's the problem. These two should be aligned. You should reward what you want to see more of, and I think people using their best professional judgment qualifies. Relying on the continual presence of people who will sacrifice their own career/financial progress to make needed change (as I mentioned in another sub-thread) is not an effective or ethical strategy. I won't even say whether I believe I'm in that category myself, but I certainly saw other people who got tired of lying down across barbed wire so other people could run past them.

To put a more positive spin on what you are saying, very senior ICs carry the company’s technical culture. They have influence in shaping it, but they aren’t hired or promoted to buck it. If you want that kind of influence you need to climb the EM ladder up towards VP Engineering or equivalent. However, in that case you don’t get to spend 30%, or any, time programming. On the third hand you can go to a start up and wear a ton of hats, but you probably won’t get high cash comp.

Life is always about trade offs.

Agreed. There's a lot of opportunity there if people are willing to adapt to local norms, even if that means setting aside past (often hard-won) lessons. Some can. Some can't. Most don't really know if they can or not until they try. That's all fine, but I do take issue with this.

> you need to climb the EM ladder

No. Many of these companies take pride in being "engineer first" but that's a false claim if engineers are discouraged from challenging the local orthodoxy too much and only high-level execs may do so. It's too easy for territoriality and NIH to set in, or for real progress to be replaced with mere churn. Didn't we learn these lessons with older tech giants like IBM or AT&T or DEC? They had the same pattern of people replacing one internal system with an almost identical one, because reaping credit and promotions that way was easier than fighting for true change. They had the same pattern of people who had learned those habits too well becoming DEs or fellows and using the same "guardians of the culture" excuse to enforce conformity for its own sake. And look where it got them.

Obviously those who wish to challenge the status quo need to balance that with productive work within the existing paradigm, and strong claims require strong evidence (which a VPE is unlikely to have BTW), but that's exactly why there should not be additional barriers. I was not the first or only person at Facebook to observe that the whole thing would come crashing down if not for an ever-changing cast of engineers determined to do the right thing despite the effect they knew it would have on their PSCs. In a true engineer-first culture challenges to the status quo would be encouraged and engaged, but in my experience that wasn't always the case. Corporate ossification wasn't only a problem for prior generations.

EMs are engineers even if you don’t respect them because they don’t write code anymore. This is different than old school tech companies where managers were businessmen and engineers were thought of similarly to assembly line workers.

The Dilbert dream of no hierarchy (vice a hierarchy made up of engineers) has never worked beyond small companies.

A truly flat org is communism of corporate cultures—-great on paper, a disaster in practice. The dysfunction at these places isn’t because they haven’t flat org’ed hard enough or because of evil, devious middle management subverting the purity of the system—-it’s because the idea is bad in the first place.

Let's not turn this into an exercise in moving goalposts and constructing strawmen, OK? I never expressed any disrespect of EMs, nor did I propose a flat organizational structure. You specifically mentioned going up to Vice President of Engineering level, which is quite different than a line EM, and I responded to that. Your absurd invocation of communism aside, that's way over on the old-fashioned authoritarian/hierarchical end of the organizational spectrum.

That’s where some decisions should be made. For example, creating a new programming language. The answer is almost always “no, that’s a horrible idea” the determination otherwise should be made by the person ultimately responsible for all engineer execution.

> That’s where some decisions should be made.

Some, yes. Look at those goalposts go! Staff engineers are hired to bring skills and knowledge and perspective not already present. All I'm saying is that they should be able to exercise those assets, and all too often that is discouraged. I'm beginning to wonder if your accusation about disrespecting EMs is just projection of your own disrespect for higher-level ICs.

From my original reply: “They have influence in shaping it, but they aren’t hired or promoted to buck it.”

I’m not sure we disagree that much, maybe over where to draw the line, or maybe over how we talk about roughly the same outcomes. I’m content to leave the discussion here. Cheers.

If a flat org is communism, what is a top-down org? A dictatorship or authoritarianism?

A top-down org where employees don't have the power to vote out management is exactly that - an authoritarian structure. That's why is called privately owned.

I don’t say it is communism rather it’s like communism in that both look good on paper and are disastrous in practice.

> start up and wear a ton of hats, but you probably won’t get high cash comp.

I'm not sure start-ups are any freer on the dogma, so you'll still run into this unless you find a start-up that matches your own. Worse still -- start-ups have serious pressures that make debating dogma look like not carrying the load.

If you are in early enough the decisions haven’t been made yet, so by definition they can’t be set in stone. You could have a technical co-founder that wants to decide everything without discussion but in that case you probably don’t want to be there for many reasons.

> Similarly, effective principal/staff/+ work requires a lot of strong connections to people in many teams, which again tends to favor internal promotions.

This might be a smaller factor for doing effective work itself, the number of new faces at all levels at big big companies might offset this. And generally, ppl working under this principal/staff+ engineer usually follow along.

But promotions would require connections to many ppl in many teams.

Other big non-FANG companies also need Staff/Principal Engineers. You can find them in AI consulting companies, banks, insurance, and pretty much everywhere when you know what to look for. This includes most European cities if you have a EU passport.

I'm mid-40's, and at every medium-to-large company I have worked at, each promotion == more meetings, more bureaucracy, and less coding. Developing software is where the fun is, so for me the best route has been working at very small startups.

Essentially no meetings and I design and build stuff all day every day and it's great.

I'm also mid forties and am in a similar boat and mindset. I also just want to build things. I have found whenever I talk with a company about possibly working there, they are considering me for hands off architecture/leadership roles which I could do but don't prefer. My solution so far has been freelancing, which has been working well. I can also see myself heading towards startups for similar reasons.

This. I joined a senior-only contracting firm. I'm leaving a big client to go to a startup client. My choice. All I do is build things. FTEs eat all the shit and suffer the meetings. I do not.

Also an old fart. I am doing my best to remain a developer. Spending my work days in meetings and managing people sounds horrible to me.

This is the path I've chosen. I don't want to control other people, just myself and my code. Sure I don't make as much as a manager but I'm a simple man with simple needs. I mostly consult and rarely have any issue with finding new work after the old contract is up.

Is your startup engineering led? My experience of a non-engineering-led startup is that there are more meetings than in a big company.

> Is your startup engineering led?


> My experience of a non-engineering-led startup is that there are more meetings than in a big company.

Ditto. I'm not 100% sure, but I think it may have something to do with the fact that meetings are often the anxiety outlet for people who don't directly produce value. (Oof, that sounds harsh. And yet...)

In our case the problem was the opposite. There were enough people that coordination was needed, but the CEO didn't want any managers, so ICs need to track things and attend meetings while trying to get stuff done

Yes this is one way bu the salary gap is too huge and most startups when they start growing start hitting same problems. There may be handful with top class leaders who are better but from my limited experience they have been very rare or may be my network is too small.

> but the salary gap is too huge

Well... if the money is a means to an end, and if that end is highest quality of life, there's a good (but obviously personal and highly subjective) argument that optimizing around salary doesn't necessarily translate into max quality of life (though it sure helps to some degree).

But yes, the gap itself can be quite large but it deserves some context too: IME the large companies do start to pay absurdly well as you get higher up the chain, but startups still pay >=5x the US median income, so it's not like you're choosing an impoverished life or anything.

And if you can't get a startup to pay as much as you'd like but you do believe in the company, then use it to your advantage and negotiate for a much larger slice of the equity pie and/or start your own company.

Just food for thought of course.

If salary is important to you as you get more senior, then you need to play the mainstream game. Which mostly means going into management, architecture, consulting, etc. For those of us who don't really want to go down that route, I think sacrificing salary is a common concession you need to make.

For me, getting better at managing my personal finances made a huge difference. It is way more feasible to do things you like while sacrificing (some) salary if you have managed to build up a nest egg. It doesn't even have to be a lot of financial skills, even just the concept of "wealth is cumulative money in minus cumulative money out, so if you spend as much as you earn you'll never get richer" is very useful to internalize.

The best thing you can do is work out the concept of "enough" and "satisfaction with what you have."

I've watched far, far too many well paid tech workers over the years just go down the road of "Oh, my paycheck is larger, so I can afford this [insert luxury item here]." Cars and houses are the big road to ruin.

You get a taste for $1.5M houses, and $150k+ cars, well... you're going to be working the rest of your life. Figure out early on that a cheaper house (exact value depends on the area) and a $20k car get you around just as well for a lot less money, and you can go far.

An awful lot of industries exist by trying to convince you that enough isn't enough. You deserve better. You have to buy the new one every year... because! Etc.

And it's nonsense, but it's both very profitable to them and a great way to drain out your money without ever realizing where it goes.

Get a grip on all that stuff early, and it helps a ton. I've made tech worker money for many years of my life, and have a 9 year old car, a 24 year old truck, and a range of esoteric and cantankerous motorcycles, the newest of which is around 8. They all do their jobs just fine - we just did a long road trip (2500 miles) in the car (Chevy Volt) with zero issues.

I mean, sure, I could get loans for $100k class cars, but... why? What do they do that my current stuff won't? Well, phantom brake, apparently...

The quality of life difference Autopilot makes is worth $100k+ (though you don't need to spend that much anymore with the Y/3). Your dig at the end about phantom braking is kinda interesting, but I think you are underestimating how much of a different Autopilot truly makes.

Regardless of how much better (or not) Autopilot is than manual driving, this comment is a very good example of the point GP was trying to make. If you get a taste for 100k cars because you convinced yourself you can no longer live without Autopilot, you will now need to find that much more income to pay for all the cars. That is money that could also have been spent "sacrificing salary" so you could have more interesting work, take time for a sabbatical or retire earlier.


I know people who have far more money sitting in their driveways (or garage, though having a garage clear enough for cars is a weird rarity anymore) than our entire property, including house, is worth. They claim it's worth it, and I'm not going to argue, but I could quite literally retire on the value of their house and car fleet. When I met most of them a decade or so ago, they were in the similar boat as me, vehicle/salary/etc-wise. They just inflated their lifestyles as their incomes rose, I fought that (and married someone who is far better than me at asking "... but why?" questions about anything nonsensical I suggest). I'm not retired, but that's halfway because I enjoy my work and halfway because I have plenty of things I can do that involve wads of cash at various points (the next one is buying a backhoe for a couple years of work on a greenhouse - yes, it makes sense to buy an old one, run it for a few years, and sell it, because they hold value very well at the age I'm looking for - it's a couple year rental for the cost of maintenance and maybe a set of tires).

My point is simply that if you can avoid those traps, you really don't have to worry about "How do I be a tech worker in my 50s and 60s," because you've either retired, or are near enough to retirement that you don't have to earn $500k/yr to support your lifestyle. It's a trap. There is no income so large you can't spend more than it.

I just drove 2500 miles over a week and a half with nothing fancier than cruise control in terms of automation - though I will admit, it's the fancy cruise control where I can tick the set speed up or down with a lever, instead of having to rely on the old coast/accel/set controls (I've got one of those too, and it's a bit more hassle than it's worth in a lot of conditions). Most of those miles were on the sort of two lane state highways that apparently are exceedingly prone to phantom braking events on current gen Tesla hardware, and I had... ah, yes, zero of them. Same goes for weird failures to hold lane, or anything else. I was in the loop, and didn't have to monitor automation that was going to be fine 99.9% of the time and try to kill me the rest. Going through Salt Lake during the edge of rush hour, "randomly standing on the brakes with no warning" would have meant someone was in the back seat with my kids after having totaled the car. I'm sorry, "random braking events" are simply not OK on anything resembling a regular basis, and at least some people, in some conditions that resemble what I drive, are reporting them very regularly.

But to your main point, I honestly don't know what a difference Autopilot makes. I've dorked around with an older version for half an hour, and it drove like an autistic student driver. "This is the center of my lane and I will be in the center of it, because this is the center of my lane." "What about the trailer over there, not really parked entirely off the road?" "This is the center of my lane..." etc. It was quite frankly terrifying to see, because it had no awareness of anything resembling the environment around it except the lane lines. I have no doubt it would have clipped the trailer (parked... oh, a foot into the lane, because the shoulder wasn't wide enough for the rest of it) had I not taken over, and at that point, I may as well drive it myself. As I've suggested to various people over the years, let me know when Autopilot can handle a sprayer coming down a two lane highway, and reasonably figure out what to do about a cow in the road, and I'll pay attention. Right now, it seems alarmingly unable to reliably figure out that the road is clear with anything resembling a useful level of accuracy.

However, the point remains: I've chosen not to spend the money on that, which means I don't have to worry about spending money on it down the road. The Hedonic treadmill is very much a thing, and so by deliberately not adjusting my standards higher, I can live on less money going forward. I pity the people I know who have huge salaries for a while and buy $200k luxury cars, because I've seen, in a somewhat close friend, exactly what happens when those salaries aren't a thing anymore for one reason or another. The end result is prolonged pain and bankruptcy, because after you've driven a 700hp German luxury saloon, going back to something cheaper and slower (and more affordable) is really hard. I've enjoyed driving those briefly, but I've never owned one, so that my car is a bit of a gutless wonder cresting mountain passes at 8k ft, well... so it is. I can hold highway speed, I just can't run in massive excess of it. Oh well. Stupid-cheap to run for everything else, low maintenance, no complaints.

I could come up with justifications for spending all sorts of money, if I really wanted to - and my point is that the ability and willingness to not do that is a very useful skill. Humans are great post-hoc justification machines. Always have been, always will be. And knowing that, working around it, etc, reduces an awful lot of stress in life.

You claim a car that will more or less stay in a lane is worth $100k. Well, OK... I spent not an awful lot more than that on a house and have been slowly upgrading the property over the years as we have money. Though I might have to drop a chunk of change into some appliances here soon, the service life of modern appliances seems to be about 5 years before major surgery, if you can get the parts.

I lived for a while in Seattle, and heard people go on and on about how amazing Autopilot was. I just rode an ebike in the rain, and spent the savings on good rain gear. One cost $100k. One cost... oh, I think that was a $1500 build, it was a nice commuter build. I think I got the better deal.

50+ principal engineer here. My perspective is US-centric, but I've worked closely with engineers on teams & orgs globally, both in the past as well as my current role. Not FAANG+ but close/adjacent; large, cloud-focused tech.

It's true that IC roles are less common at this level but they are definitely out there, especially in big tech. In the US anyway, it's basically a 2-tier system: $700K+ total annual comp or sub-$200. I didn't discover the former even existed outside the Bay area until the last few years, but boy am I glad I did. If you love what you do, in the right organization you'll have autonomy, creative freedom and potentially influence org-wide. And I'm not gonna lie, the money is great. (Side note to my US-based friends: at the high end, Salary.com, GlassDoor, etc is absurdly low). To the OP: if you're feeling constrained by your existing environment, consider looking around. The last 2 companies I interviewed asked virtually all design/architecture & leadership questions, no "leet code". There are definitely lots of opportunities from FB, Google, Apple & Amazon for PE roles in Europe so consider looking around. But that all assumes you fundamentally enjoy what you do (not talking structurally, actual system & technical leadership — the building & shipping part). I work hard at times, but honestly these days I could do most of my job in a couple of hours per workday. I wish you the best.

The comp targets are not normally 700k+, it just has happened in the last several years because stocks have appreciated so much. A total comp target of 400-500 is much more common, base should be well over 200k/yr, though.

I'm much earlier in my career (30s) and just starting to hit the staff level in my midsize tech company.

Do you have any advice for positioning a career to those first tier of jobs over the next ten to twenty years?

Mine is certainly not the normal path, and there were several significant projects which only peripherally advanced my career, so ymmv (greatly). But I guess my best advice is to find a niche. There are endless numbers of "Java Architect 2"s or whatever in the labor market, but far fewer highly skilled engineers who understand deep business domains. Find your niche. You don't have to be a manager to develop close relationships with customers/users and understand their pain points. Become seen as invaluable (or at least really hard to replace) by your peers and senior management. And, of course, most engineers are underpaid. In case you've not read it, Patrick's essay is required reading for comp and career development. https://www.kalzumeus.com/2012/01/23/salary-negotiation/ Good luck!

That makes sense. Thank you for your advice.

Will there be a “just hit 50, what’s next?” installment to follow?

I too, just want to build things—too many legos as a child (and adult), I guess. I work at a smaller company where the software side is pretty small (5-ish), so I enjoy a huge amount of autonomy.

Having interviewed around a little, I find a lot of places that have a hole, and they’re just looking for a peg to fill it.

I already filled the hole at my current company, and wpuld be leaving a much larger holder if I were to leave.

My problem is that I’m somewhat anxious financially; a number of people depend on me for the salary and benefits I bring home. So while many people tell me I would be a strong consultant type, the insecurity frightens me. I’m good at at inventiveness, initiative, entrepreneurial behavior _when_ it’s under the umbrella of someone else’s money and I feel secure.

I’ve graduated to tech lead, semi manager, three times, and never really liked that. I just end up frustrated with those that I’m responsible for. I work better in a “we’re all dribbling the same ball” context.

I think you could benefit from moving to a larger group for a few years. Keep all the connections from your current team and you'll all find each other again one day.

While I dont move around nearly as much as some in the industry, I do find value in moving every 3-5 years. Not really for the salary but more for the different perspectives it offers. You'll learn so much and look back at your small software team one day with fond memories and chuckle about how big the world outside that team is and how the values from a small team are hard to find. Make it something you seek out and appreciate, not just something you do every day.

IC duties beyond senior are pretty arbitrary at most companies, you might be worrying about it too much honestly. Principal seems to be a terminal position for people who have 1) been consistently productive 2) been at the company a million years. These people were typically already doing more “strategic” architectural implementation/design work anyway.

Last year I went from Staff to Senior taking another job. I make 30k more and do essentially the same thing. If you want more money just optimize for that and stop caring about title imo

Agreed. Also if you’re operating at a high level at a company you should be defining your own role to some extent.

I just turned 60 and I am still working as a software engineer. I live in the Netherlands. In the past decade, I have been working 24 hours per week on average. The past two years I worked on an application that is used only within the company, which is a mechatronics oriented company. I am closely working together with process and application engineers and over the past two years, I have developed quite a lot of domain knowledge. Some of my younger colleagues definitely are better at some software engineering tasks then I. Although I have no management responsibilities, I do coach some of the younger software engineers in an informal manner. I have saved enough to quit working and I noticed that my requirements for work have changed. The working environment is now the most important aspect. Some seven years ago, I suffered a mild burn-out due to toxic working conditions. Since then, I twice changed jobs. I am not getting a top salary, but it is enough to live a quiet and happy life.

>> I want to work hard, and see meaningful progression: in salary, in impact, in respect

Here's the deal, you're 40, you write code for money, and you're asking what's next.

What's next is that your brain is going to be slowly deteriorating, so yeah there's going to be some choices.

Like do a job that doesn't involve writing money for code, do a job that involves being a people person. One of those. I couldn't do that. I don't "get" people, maybe you do. Good luck with that.

Another choice would be to go back in time and invest money when you're in your early 20's and none of this is an issue. Time machines are great. I'm a time machine. I came back here to tell you kids to invest their money in index funds so that half a century from now, everything is going to be OK. It's going to be beautiful.

People hate time machines.

>What's next is that your brain is going to be slowly deteriorating

No, it isn't. Your eyesight is going to drop, you'll need reading glasses. When you hit 50 or so, your vitreous humor will detach from your retina (if you're nearsighted like me), so you'll deal with floaters forever. So, bigger screens, with less text in a given area than you now enjoy.

Your physical health will slowly go, but that shouldn't stop you from programming for a very long time. Your ability to switch tasks and handle interruptions, will drop... flow takes time to achieve. Email is asynchronous for a damned good reason, answer it once you're done programming.

Mostly, you'll get grumpy when poked, but the computing resources should keep getting better for another decade or so before leveling off, so there's that.

my humor detached long ago.

Speak for yourself buddy. I am 50+ and sharper than ever. Having a lot of deep experience makes it easy for experienced developers to do in a day what it takes younger unexperienced developers months to do. It’s especially fun when young self-important arrogant developers ignore advise from experienced people and end up in a cluster f** hell hole of their own choosing. While being too stubborn to admit defeat and ask for help. The “I told you so” feeling is most enjoyable :)

>> Speak for yourself buddy

OK I will speak for myself buddy.

My mind is going. I can feel it. I'm afraid.


It's frightening. It's like Rainbow's End, just without everything after the first chapter.

I can cope. I have years of experience to help me. I can cheat, recycle ideas and insights I had in the past (and was paying attention enough to write them down). I know where to look when I need something, so I'm still getting that thing working faster than many others, but this collapses when I need to do something completely new. Fortunately, there's actually very little "new" being done in software industry.

But still. My memory is full of holes. My short-term memory doesn't work nearly at all, unless I'm extremely focused. But staying focused became draining. Not tiring, like you would be after a good workout. Draining. The difference is very simple: 20 years ago after many hours of focused work I was looking forward to the same thing tomorrow. Now, on the next day I'm doing what I can to participate in lots of meetings. No, I'm not going to be saying anything, I'm just there. I don't even listen, I just... try to rest. I have to. I need a break before getting back into the zone.

There are two things which make me incredibly insecure, which I realized well into my thirties: a) I never was particularly smart or talented, just faked it with lots of enthusiasm and ungodly amount of hours worked. And b) I won't be able to fake it much longer. Like the OP, I'm not sure what's next. Contrary to him, though, I'm really not sure if I want to hear the answer.

I'm in my late 40s. There was a time not too long ago where I felt the same as you. My mother died from early-onset Alzheimer's, so that spectre was not helping my anxiety about it.

Long story short, it turned out to be sleep apnea and some electrolyte issues. I now feel as sharp as ever. If you haven't seen a doctor about it, don't be afraid to. There's nothing wrong with getting it looked in to.

That sounds really scary.

> What's next is that your brain is going to be slowly deteriorating, so yeah there's going to be some choices.

You wound me. I'm about to turn 40, and I'm finding my brain is sharp but my body is shit. I have to deal with gout and daily pain. Fuck me. Can I have your time machine, so I can exercise more and eat less?

The issue with being an EM is that it's a totally different job than being an engineer. There's overlap as you get to staff+ but there's also a lot of things that don't overlap. It's also, when done properly, a fully non-technical role. In general trying to still be technical will make you a bad EM that is hated by the team. Directly you will have very little short term impact except occasionally preventing disasters. The impact will be through your team and you'll be spending most of your time preventing future issues for the team. So it's very medium term and indirect impact if done well. Your team may respect you but they probably won't as much as you think they should given the effort you're putting in. The rest of the company may respect you but will still try to use you as a punching bag every so often. In the end you're the shit umbrella for the team. In my experience as an EM it's almost expected that you have the self-confidence to not need much external validation.

> First, the definion for the most of those positions looks Senior Engineers with a few more years of experience: so you are limited to the scope of a single team scope, report to an Engineering manager, just be a worker at a feature conveyor, just be faster, mentor young workers, maybe get some devops skill.

In my experience, this isn't what I've seen staff engineers doing. The expectations you laid out at the top are much more in line with what I've seen staff engineers doing.

The staff engineer's I've known are basically the technical version of a VP or a director. They're often not focused on individual features, but rather new products or large scale architectural changes. The mentoring they do is often mentoring strong developers into future leaders at the company.

The staff engineers at my current company are currently focused on how to integrate multiple products where each product has three to four teams of engineers working on it. At a previous company, I can remember them being focused on whether we stay with on-prem hosting or move to the cloud.

I'm not sure where you're interviewing, but to me it sounds like they may not be big enough to need what I would consider a staff engineer, but they just have seniors that they wanted to promote.

44 here. I have actively started avoiding architect/product owner roles . Instead I'm consentrated on knowing the product (how it's used by the customers and admins), the tech stack, the code base and the devops pipeline as good as I can by doing a whole lot of feature building and bugfixing. Result is that the work is more rewarding than ever. Architect and PO come to me to discuss features. Admins come to me with weird bugs. I get to code a lot and think a lot. I hope I get to do this til I retire.

The harsh reality of staff/principal engineering positions is the number of opportunities. There are a handful of companies that are big enough to have roles beyond senior engineers. In those big corporations, there are a few roles available and they are rarely open. Therefore, moving from one company to another is just so damn hard. There are more senior manager/director level roles than a principal engineering role where you oversee multiple teams or a department. If you want to make it to management, your best bet might be your own company or a startup. Happy to hear about your findings.

I see quite a lot of recruiting for staff/senior-staff/pricipal roles, both within FAANG and without. It’s a bit harder to know what this actually means outside of FAANG, but my (very first) impression is that plenty of midsize companies have roughly similar positions to the better known FAANG staff+ roles.

Our US based startup has engineering in India (20 engineers) and the biggest challenge is finding engineering leadership.

It is hard to hire in the bay area, especially leaders who have experience shipping high quality products (systems), so we built the team in India.

Many young companies like us struggle since a lot of the talent (definitely in the bay area) is locked up in the Faangs where poor fiscal/monetary policy in the US has inflated stock part of the compensation so much, that it makes no sense to leave.

So it is hard find principal engineers to do great work because they choose to go to large companies and get poor work for money.

The bar is high for us though, we’d look for engineers with specialized skills (compiler, database internals) and leadership on complex products. The middle is the dead zone (engineers with N years of experience wiring apps)

Not sure about the European market, but maybe you can try to go to a smaller company?

Post COVID there's basically no reason to hire only in the Bay Area unless you work on hardware. Also, in my experience the issue with hiring managers is that they better know what to look out for in terms of bad upper management. The vast majority of startups have bad upper management in terms of actual management and company leadership skills. I've got less than 0 desire to work for a 25 year CEO who thinks they're the next Steve Jobs.

Can we leave it at poor management? I don’t think the “reverse ageist” jab was constructive.

It's not ageism, it's amount of experience. Age simply provides a cap on how much experience you could possibly have. Or do you believe that managers and leaders gain nothing from practicing their craft longer and in a wider variety of situations?

> Age simply provides a cap on how much experience you could possibly have.

Not really. It depends on the opportunities and luck to meet the right people at the right time. Plus, people internalize experiences with different speeds. So, while in general you're right, you need to account for outliers that lived a particularly lucky life.

Though to be fair, people who got mountains of experience that way despite being young do not, in general, see themselves as next Jobs.

Ya sound bitter.

Are you sure you’re not just projecting your own feelings onto me?


What makes you think the work is worse in fang vs some average startup? I find the opposite to be true in general case - lots of small companies out there don’t care about actual tech.

> Many young companies like us struggle since a lot of the talent (definitely in the bay area) is locked up in the Faangs where poor fiscal/monetary policy in the US has inflated stock part of the compensation so much, that it makes no sense to leave.

This is just patently not true. Netflix is just one examples and there are many more. You just want top shelf talent at bottom shelf prices. If young companies struggle to hire the reason is they underpay cash or equity and just refuse to accept that simple fact.

I find this alot. I'm 40 -- say -- and I've been applying for engineering positions and get alot of "you'd be great for engineering manager and or senior x,y and z -- would you do that instead?". The general trend I see at the moment seems to be that companies have staff, but lack experienced leadership that can deliver products. I have a couple of patents and have delivered some products and this seems to make the difference.

I'm almost 40 as well, and I've reached "senior principal engineer" within FANG.

Ignoring titles, the problem with high level engineering roles (beyond their difficulty) is finding problems that meaningfully grow you technically as you can reach a practitioner within the field. These roles are rare because most businesses don't actually need nor benefit from them.

The other challenge is that the title inflation really messes with people. For example, a key aspect of higher level engineering is not just technical but understanding organizational shit as well. For example, it's now just about execution but planning and thinking about execution in context of 50 to 1000 people.

Take the Amazon curve: SDE I - 0 SDE II - 1 (an intern) SDE III - 5 (a team) SDE IV/Principal - 25 (a big team) Senior Principal - 125 (an org) Distinguished Engineer - the company

Using the people scale and how much you impact an organization lets you know where you are within the FANG universe (and the FANG generally are in alignment with titles and pay-bands). This represents another challenge is that being a high level engineer requires a tremendous amount of trust from management to influence everything under their empire.

What I recommend is scoping the places where the frontier is being pushed which align with what you want to work on. Second, test the waters if they have a technical hierarchy which can support you. Third, put the problem first rather than titles/comp and be willing to build trust within the organization. Influencing over 5 people requires tremendous trust.

The unfortunate aspect is that the duality of building trust can make it exceptionally rare to achieve that level. It's not a trivial level because it requires both the technical AND people skills. The only way I've seen to short-circuit it is to be absolutely a beast on the technical front, and this can be done via an open source project of exceptional merit OR building a company.

I think after you are 35 you don't want to see progression in salary but in life quality.

Of course unless you were terribly underpaid or you spent all the money on whatever...

I am going to be 35 this year and I was working on FIRE - while I cannot really drop the job for the rest of my life. I think I have enough, like flat with no mortgage in quite OK place so I don't have to spend most of my salary on renting. Now I am looking into cutting my hours, because with my current rate working 4 days I still could save money.

I will probably stick with current company as long as possible because I hate interviews and then if I will have to I will take whatever job will be there if things go south.

But that is me I like low fuss life, keep it small and steady. Happy that I can get some beers over the weekend and play with some raspberry PI. No need to get a sports car at all :)

I think after you are 35 you don't want to see progression in salary but in life quality.

As someone in that age bracket, but not working in the big US tech bubble we often discuss on HN, I don't entirely agree. I have other commitments now that I didn't have in my 20s, things that can cost a lot more money, yet which have improved my quality of life greatly and are of immense value to me.

For a 35+ year old developer here in the UK, even a good one, if they're still working most as a hands-on employee they will probably have spent the majority of their career earning a salary that is above average by UK standards but less in TC than a new grad with zero experience would get at a FAANG in a US tech centre from day one. Almost no-one with that kind of role has been earning FU money here, and we're still doing better than most of the world outside the US. For a long time, if you wanted more you either went freelance or started your own "real" business.

Today that situation is changing, slowly. Upward pressure from the crazy amounts of money in the industry both in the US and increasingly in other places as well, combined with demand for decent developers outstripping supply, means salaries that were almost unthinkable even five years ago are starting to become viable and a whole scale of technical roles above "senior" is starting to appear at larger companies. We're still nowhere near US levels, but someone recently asked me whether I'd consider taking on what we might call a senior staff or principal level role at a UK-based tech company where I'd been consulting, and the kind of salary they were asking about was at least 3x where the salary ceiling was for most UK developers just a few years ago (which many of those developers would have hit well before the 10 year mark).

So while the argument above might work in parts of the industry in the US it's not necessarily the case in other parts of the world, where new options have been opening up for highly experienced developers in recent years that could break through a long-standing ceiling and make a huge difference financially.

> salaries that were almost unthinkable even five years ago are starting to become viable and a whole scale of technical roles above "senior" is starting to appear at larger companies

Could you elaborate more on the roles you've seen? I'm a developer with 12 years experience and have had "Senior" on my CV for a better part of a decade, as I don't really want to go into management.

I'm currently looking for something new and it seems that the top roles for something like a "Senior <insert tech stack> Developer/Engineer" are paying around £100k (+ comp) in London, which hasn't really changed much over the past decade after adjusting for inflation. The take home pay as a contractor is still quite a bit more though, so that's probably the route I'll go.

Anything close to £100k for a hands-on employee position was almost unheard of in the UK a decade ago, even adjusting for inflation. You might have found that much working in a particularly well paid field, which mostly meant finance in those days, for a big firm in London. For most of the industry the salary probably capped out at around £60k in today's money or maybe a bit more in London, but you could hit that ceiling and get a senior title in maybe five years if you were OK at your job. If you were lucky you might also have landed a nice bonus from a profit-sharing scheme or some stock options that came good.

A formal technical career path stretching well beyond senior level, six-digit developer salaries and the kind of additional compensation in bonuses and stock that we see today are all much more recent shifts in the market. We seem to be tracking a few years behind similar developments in the US as the big money and demand for more capable developers find their way over here.

You can definitely still make more going independent than most will as an employee if you have the ability and inclination but the market has been seriously distorted by the IR35 changes recently (or more accurately, by many clients who don't understand those changes and reacted negatively at the same time) so beware of that if you are thinking of a big career shift.

Everyone I know in the UK who made Serious Money(TM) by developing software made it from an exit when they were a founder or early employee.

I suggest OP isn't talking about 'FU' money, but about realising that (at about 35!) they would rather have better life quality then more money.

Unlike the USA, we don't have massive heath care or social security / private retirement costs to save for and worry about.

So, aged 39 in the EU, I'd rather work for less and live on the coast, rather than 'bust my balls' working for the man, just to buy a fancy new car/house/phone (or need to save in case we get cancer and a massive USA style medical bill).

I understand that point. However at least in the UK there are many things that could make a big difference to current or future quality of life -- including several you mentioned that are definitely still relevant here -- that someone would find a lot easier to achieve if they were earning more than most of our age 35+ software developers will have made for most of their careers.

In other words, the ability to increase how much you are making at work and how much you can improve your quality of life are still going to be significantly correlated for plenty of age 35+ devs here. An increase of say 20% or 50% in TC could make a big difference to things like whether you can afford to live in a nice area, take your family on a nice holiday, pay for private healthcare or education if you have a reason to, or retire early. I suspect that kind of marginal difference in income is much less relevant to those things, except possibly for healthcare, for a typical age 35+ dev working for a FAANG in a US tech hub, whose TC might have been so high for so long that the idea of not being able to afford any of those things might not even occur to them.

I am near the 40 mark, and have never managed anybody by my own choice. Have mentored several. I have no interest in a managerial track, nor in being paid to do things that are not related to code, data quality, or other high value business needs. I have designed some very important systems and processes but shy away from calling myself an "architect". I have been the chief tech liaison with multiple partners, my bosses relying on me to not only code, but also set expectations and meet partners' business goals while protecting our own interests. I love hearing hearing about "new" frameworks and concepts from the young 'uns, and will use them if the team's vote is to adopt them (sometimes despite my opinion), even though half of them at least turn out to be short lived. It's all good. Sometimes I am pleasantly wrong and learn new ways of doing things.

My point is, I worry less about my "career goals" and spend my time learning about my employers and how to produce high value for them, whatever form that takes. I have never worried about or feared for my job.

This attitude works only if your team is not toxic and others in your team are not taking credit for the work.

In my company, if I try to do a lot of work it will backfire. I will out that my work is being celebrated by some no-talent PM and promoted by my sneaky manager without my knowledge. They then bring in all the "high priority" issues from "the top" to me to fix.

I learned that those people don't understand how software is built so I'm just coasting and doing the absolute minimum. Less credit stealing and less high priority feature requests from the top.

I still get Exceeded Expectations rating every year. Because I pretend my work is so difficult and takes so much time...

I get it. There are definitely bad companies to work for. But there's a difference between working at a company where things are fundamentally just for value producers even though there are some bad actors who can't be removed, and a company that is ultimately spiraling downward because there's no capable leadership at the top to keep people focused on what really matters to the business.

I'm not saying to subject yourself to torture: just recognize every day how you can actually deliver value for other people and the bottom line, and do it. Even if you're not getting credit, suggest to a higher up that you might not be able to do X effectively anymore because Z is in your way, and see how fast things change. It is a big difference if "X" is "deliver the feature we promised the 500K client" or "get the nightly report automated on time" than if it's "rebalance the cluster" or "streamline the CI pipeline".

The only meetings I usually call are to discuss cool things I've added to the code base and I make damn sure management is in on the invite. Leave a paper trail, never be shy about letting people know what you've done.

Put “Project X by msoad” in the header. ;-)

My situation is similar, except I'm mid 40s and more on the infrastructure side. I'm on a 6 month break from work, and have zero worries about finding my next job. I don't care about titles. I have no particular career goal. I just want to do interesting work and get good pay and benefits.

I think low expectations is the best outlook. After 35 you're less desirable, sure you have experience but its not with the things employers are looking for. Eg right now the hot skills are tech that's only been around for 5 years, so you dont have any advantage over a 30 year old. Its worth doing some management jobs but they generally suck, my view is to keep as IC and just be happy with getting paid less than you used to make. If you are less fussy on money there are more choices out there. If you want more money get a side hustle.

Yes people will tell you can be pricipal dev or whatever but the pyramid narrows quickly, its only for people who are really good tech and people wise. That might be you but most devs assume they'll get there when they wont.

You do know that experience with a particular technology is only a tiny part of the equation here, right? A veteran with 20 years in the industry has seen a LOT more stuff than someone with 10 years in the industry, irrespective of the tech stack. To call the two equivalent is very short sighted, especially at the Staff/Principal level where that person is ostensibly responsible for making high impact decisions.

Yes I've been doing this for 30 years. I also know all the interviews I've done lately nobody has cared about what I did 20 years ago.

I'm in my 40s and haven't experienced that - perhaps you're not looking in the right places

Perhaps I did suggest principal level isn't worth it. Most of my friends have taken the first 10-20 years off the resume - or have dramatically shrunk it.

Sure, but a younger hiring manager probably doesn’t appreciate that. Business owners (at any age) never appreciated quality.

It's still possible to learn new tech at that age. I'm in that age bracket and I'm using React and GraphQL and AWS and Terraform and Docker along with the young consultants. Didn't take that long to pick it up enough to be useful either. I probably won't be the resident expert anytime soon (nor am I quite so driven to become an expert in that tech quickly, like I might have done when I was younger), but I'm still building websites with them.

My prior experience with other tech stacks helped me pick things up more easily too, because I know what subjects I should be googling to get the information I need, and a lot of it is basically the same concept, but with different syntax.

Yep. Good answer. Get an easy job. Maybe at a non tech company like Walmart or whatever. Work 9-5. Figure out how to maximize your salary within the corporate structure.Do a side hustle if you want. I am 56 and I have been doing this for 15 years. I don’t miss the 80 hour weeks.

Thanks for posting this question. I’m interested to see what responses you get here.

I’m a little younger than you (35), but can see a similar situation nearing for me soon. I’ve gone as high as I can at my current company as an individual contributor. I also was a team lead for a year with four direct reports. I love coding and building things, but I’m really starting to think I need to start making the transition into management or technical strategic leadership before I’m viewed as being too old to be an engineer. I have good social skills, enjoy public speaking, and get along with a wide range of personalities, so this transition wouldn’t be too uncomfortable for me. I can always code or do side projects on my own time.

Isn’t a team lead a management position?

At my employer it was all the responsibility of a manager while still also expecting to serve as a technical lead. I was responsible for 1:1’s, reviews, career development etc while also responsible for technical deliverables of my team.

It varies wildly by company. Team lead can mean anything from an architect with a smaller scope to a hands-off junior manager.

It's in the IC path. The teams being led will have some number of people-managers attached to them.

I'm 39 and will be turning 40 next year. I live in Singapore (no, it's not in China and it's no where near China). I was faced with this dilemma early 2021. I was working in a large Wall Street bank and it felt like I was just a pawn in the grander scheme of things. The titles there were over-inflated. Every year, some senior guy will get replaced and there will be a re-organization of the division. That translates into people getting laid off or projects being canned. My project, which I worked on for 3 years got canned over a POC by some new guy. The POC didn't even scale to the kind of workload our platform was handling.

I switched to a cybersecurity startup in February 2021. I was Engineering Manager. I thought I could call the shots for all engineering decisions and hiring of software engineers. I was completely off! Not only did I inherit 2 sub-par engineers with poor work ethics, the CTO did not have a clue on what he was doing. It's a long story which I can elaborate in my blog; but I left in July 2021.

What I concluded after this experience, in terms of salary, impact and respect....all this doesn't really matter. I think the most important thing is you got to love working for your boss. The boss is the most crucial factor to consider. A good boss will be able to provide you the 3 things you mentioned. Titles don't matter either. Just make sure you aren't underpaid for someone with your experience level, then all's good.

One more thing in my list of must haves: the company you join must have people that you consider way smarter and experienced than you are. This sort of environment allows me to learn and upskill myself.

A pattern I've seen a lot of is people joining a young startup as the founding engineer, and then move to an engineering director role once the company gets a good round of funding. Eventually the startup will push them out, where they'll either turn a side project into a business, or make a lateral move as an engineering director somewhere bigger.

I chose to keep being a software writer, and lean into mentoring. I'm 50, and don't have trouble with respect or salary. I don't know European employment law, but over in the states it's common for higher performing devs to shop their skills around every couple of years to find a better salary.

I just described that very arc to my partner as one possible new direction to take my career. I have 30 years full stack experience with embedded systems, and I am at a point where I want to look for founding engineer positions. If my team grew bigger than I could manage myself (while still being able to keep my hands in the code), I would happily step down to an engineering director role. In the improbable event that it was wildly successful, I would want leave before things scaled too far… only to repeat the cycle again somewhere else.

Why do they push the founding engineer out?

I don't think it's planned, it's just how things tend to turn out. At least for the three startups I've worked with.

If you're really good at cranking out code before your fledgling company runs out of money, that doesn't necessarily mean you're good at people management or leading. At a certain size, your company is going to need those skills more, and won't want to keep someone around at a C-level salary who's just slinging code.

The founding eng directors I've met all separated for different reasons. One took a buyout after the company was purchased, another had a side business that became profitable and helped find his own replacement, and the last one had his role downgraded when the company hired a CTO, and just got another job.

often its because the founder has a very different picture of why the company was founded and where it should be headed than the new vc-installed management.

its very much 'we love your passion' until its 'turn it down, we're trying to make money here'

In our company there are, informally, two ways to operate at the staff level and above:

- Be an expert in a single domain, eventually up to the point where you are pushing the state of the art of that domain forward with conference presentations etc.

- Be someone who takes a broader perspective on efforts and ensures that sound technical choices are being made and organizational/ technical roadblocks to getting those technical choices implemented are resolved.

Either way, your role is as a force-multiplier, and you are having a broad impact on the org. Cross-team leadership is perhaps more assumed with the second role than the first. But it is rare I think to come into an engagement having built up the networks you need to operate at that level, so a year spent as a senior engineer and building up those networks might not be so bad if the fit is right.

Hope that helps!

You are right, I am focusing on the second option, and to be able to do it, a company should have an appropriate setup.

I believe the challenge you’re seeing has to do with the fact that those jobs are rare and even more rarely offered to outsiders. Principals that report higher in the org are usually people who have been at the company a long time and know as much about how the company likes to do things as they do the tech stack involved. You can probably easily get a job like that, but it would require a less glamorous role on entry and working your way into it by proving your value.

The hardest part I’ve found being over 40 is mustering the will to prove value. The older I get, the more time I have to spend rebuilding reputation whenever I enter a new company.

I think the best advice I can give is find a company you won’t mind being at in 5-8 years so you can really learn how things are done there and can affect change.

> The older I get, the more time I have to spend rebuilding reputation whenever I enter a new company.

This is very dependent on organizational structure. Some companies re-org so often that you’re still “proving your value” several years into your job, whereas other companies will recognize a first class developer on week one just by virtue of their work.

If you want to be at/near the top though, and really have an outsized impact, it’s best to start off there. You could be the CTO of a tiny company with big potential.

>> I want to work hard, and see meaningful progression: in salary, in impact, in respect.

You seem to have the mindset that you can receive some form of personal fulfillment from your career and that your employer is there to provide that to you in return for services rendered.

In the perverted corporate world in which most companies operate, it is in their best interest to keep you dissatisfied for as long as you expect that fulfillment or happiness can be achieved by working for them.

If you want salary, impact, and respect then you should probably continue on the management track but you'll have to accept that the impact and respect components are a fabrication.

I sleep a lot better at night when in a development role than I do as a manager role. Maybe its because I enjoy technical dreams, but I dont enjoy how to deal with troublesome personnel dreams.

So if you love creating stay technical, if you like dealing with management issues take that route.

I recently got off the web dev hamster wheel and applied for a position doing embedded development in C in an established company after 25 or so years of startup and consultant madness.

I look forward to writing code and solving interesting long term problems again.

This! I am beginning to think more every day that C/C++ is about the only stable, rewarding and fun career in tech devoid of petty politics, full of high quality colleagues and tons of fun problems to solve. Ideally want to be an entrepreneur but C/C++ dev is not a bad fallback option.


Did you learned C for the new role or had experience working in embedded ?

Did you had to grind leet code for interviews ?

No experience with embedded since Uni, but plenty of lower level C/++ for side projects with code on Github.

These interviews were thankfully of the more constructive kind, I didn't do a single test.

A very good friend of mine who was a semi famous video game designer in Hollywood for many years, said as soon as you hit 40, go work for the government. He works for the government, because of the stability, the benefits, all the things he was finding that after 35 years in the industry, he was just too old.

Over many conversations he conveyed to me that the technology industry is a young person‘s industry. Once you hit 40, you’ve got to find a way to progress to owner, senior management, or do something else.

It's going to be interesting to see how this plays out over the next few years. As the tech sector has grown there has been a big slug of people entering the industry. They are rapidly approaching this threshold.

When I was at university, I was quite jealous of my CS/IT/EE friends, because they had the math abilities to do cool things and get that degree. As I hit 44 soon, I think about those friends and where they are in their careers. It's starting to get close to when they may be forced out, or marginalized somehow, due to age.

I’m 50 in Silicon Valley and going through dozens of interviews right now. I decided to quit during COVID and now am trying to renter the workforce. I have 24 years experience and worked at companies you’ve all heard of and I honestly have great experience. I’m still a coder and code in my spare time because I enjoy it. I still maintain friendships with people I worked with over 20 years ago, we recently had a reunion lunch and it was nice to reminisce over the dot com days.

I’m so far 0/10 on interviews. The bar is so high now and the expectations of perfection in a 45-60 min interview are so ludicrous that I can’t find a job yet. I’m LeetCoding about 3-4 hours a day, focusing on medium and hard questions. I went to sleep last night at 1am after struggling to understand a hard-level LC question that took me about 2 hours to work through.

I know the drill, I’m not shirking away from studying. I’ve conducted hundreds of interviews myself. I’m old enough to have been through every single interview style that coders have had to endure since the Microsoft interviews of the 90s. But the sheer breadth of knowledge you need to know, plus the expectations of making perfect decisions in a limited amount of time is utterly ludicrous. It’s like people have forgotten that you can’t design Twitter in 45 mins or think about every single possibility. or that some of these coding questions that are being asked are PhD level problems, so if you’ve never seen it before, it’s going to be pretty hard to solve. Or that people can make honest mistakes and get on the wrong track for 10 mins out of a 4 hour interview, and then you get rejected. Or people also seem to forget that the interviewers themselves are so inexperienced at interviewing that they confuse their candidates with poor instructions, or they expect the candidates to guess what they themselves think the right answers are.

The most frustrating part is when you’re given a relatively “easy” question but you go down the wrong path, figure out your mistake, and then correct it and solve the coding question in the allotted time , and then be told that I “didn’t perform as strongly as they hoped”.

If I were told “study X,Y and Z. We will test you at LC hard only on this.” I could bang it out of the park. But I literally have to know every single topic in CS and every level. LC literally has thousands of questions. My brain can’t remember all of these solutions. I’ve been studying for 2 months solid and finished only 200 LC questions because some questions take me all night to understand and I’m exhausted.

The biggest insult is that a company I worked at before needs me to go through a full interview loop even though I have great performance reviews only a few years prior and my code is still running there. Not that I would return, because I left that place for a reason, but the idea that an interview is a better judge of my abilities than the years of performance reviews is completely mind blowing to me.

Everyone knows that interviewing is broken but it’s not broken. It’s mentally ill. It’s crazy. Interviews don’t test “how good of a performer will this candidate be?” It’s “how well will this person do on these random questions that we don’t know if it actually correlates to work performance.”

I was on an interview loop for my company where someone had a GitHub. When we suggested that we could check out their GitHub to see their coding, someone objected saying that we don’t know if that person actually wrote the code. The confidence people have that on-site interviews produce the best example of how smart people is a reflection of how insane things are.

Expectations are far too wide and as a candidate you need to know literally everything otherwise you won’t “perform strongly”. But it’s really just random chance. Coding interviews should be longer and less random. Give time for the person to mess up and get back on the right track. Isn’t that what you want in a co-worker? Systems design questions should be a long conversation about building systems, not just “what points did the candidate mention that I was expecting them to.”

Coding interviews are more of a hazing than indicator of future performance. And as more people study, the bar gets higher and higher until it will reach absurd levels. I have staff or senior staff level experience but I’m applying for E5 level positions because I would rather get into a company and work my way up than try to come in at a level where the expectations are mentally ill.

My pops and I were talking about this. We have a theory that the real reason these leetcodes are done is to allow large organization to discriminate in whatever way they want without opening themselves to discriminations lawsuits. I don't actualy believe this is the "conscious" reason, but I think this may be one of the reasons that leetcode style interviews are popular.

I can get everyone but the least skilled interviewer to pass if I provide enough assistance in the interview. Similarly, I can fail anyone but the strongest algorithmic candidates by being unhelpful in the interview. The interview allows enough "smoke screen" that I can basically end up passing/failing in a manner that is pretty detached from their "objective" algorithmic skill.

Just a theory.

Your theory has been seen before in other contexts - https://arxiv.org/abs/1110.1556

The Mathematics Department of Moscow State University, the most prestigious mathematics school in Russia, was [around 1975] actively trying to keep Jewish students (and other “undesirables”) from enrolling in the department.

One of the methods they used for doing this was to give the unwanted students a different set of problems on their oral exam. I was told that these problems were carefully designed to have elementary solutions (so that the Department could avoid scandals) that were nearly impossible to find. Any student who failed to answer could easily be rejected, so this system was an effective method of controlling admissions.

It's much more simple than that. It's meant to prevent job mobility. Eng salaries are already absurdly high. Ever noticed how almost all the big tech companies do more or less the same ritual? It's entirely design to prevent seniors from moving around. They're too expensive already. It is almost collusion. Before the big tech companies used to have a secret handshake agreement not to poach each others candidates. They were caught and ordered to stop and forced to pay fines. This was around 2013/2014. Since then LC questions have become absurd. The process is designed to favor younger candidates who will accept less money and work harder for the company.

I hear you on the ludicrous breadth of knowledge that is expected. I recently went through the interview loops of several large tech companies. This time around I decided to study leetcode only a little bit and to lean more into my experience during the interviews and it worked out better for me. Here's the biggest key to interviewing at senior+ level, I think. In the past, I think my tendency had been to assume that the interviewer was looking for one right answer and to try and meet them where they were. This time around, I would openly say that it depends on which context you're talking about. If someone asked me to design Twitter, for example, I could do it as a CRUD app with a web front-end, a microservice that's essentially an adapter to a SQL DB of some kind, pretty easy. So I would just say that. "If you are just starting out, this could easily represented this way and it could support you into thousands of users..." Then I would leave it on them to ask more questions about how to scale it up. I'd mention that you could carry the DB farther by using read replicas if you accept that not everything is in real time. Then we'd start to eventually talk about potential solutions for getting more realtime data like Firebase, but we'd talk about where in the stack is that really necessary or appropriate and at what scale. I found pretty good success this way, rather than starting with the most complex solution, instead starting with, basically, the simplest, and easiest to get going initially.

This is pretty much true, but if you're doing a coding test, don't just provide a naive solution full stop -- if you can _also_ provide more scaleable solution(s) or at least a discussion of how things could be made more scaleable in the readme, you'll do better

The only place where I really met high expectation is in finance. The amount of ten-seconds-for-the-answer-or-we-stop-the-interview questions was enormous.

Last 5 places I interviewed, 2 didn't ask LC at all, and I still failed at 4.

Also, for LC, you should work on it for 15-30 minutes and then look at the solution. It's the most efficient way. If you don't even understand the task, just don't do it. Similarly, sites like codeforces allow you to group tasks by algorithm and to sort them by number of people that solved them (and you can look at the solutions). This also simplifies the knowledge acquisition.

As for being a principal/staff engineer. This is all new to me and I have no idea how much these individuals code or what exactly they do (although I'm currently starting a principal engineer role in a company of around 300 engineers). So I assume either I'm silly or the title inflation is rampant. Although, the interview required operating systems, networking, algorithms, hardware, people skills, low/high level programming language knowledge that I guess I have. The questions were: "How does a UI library work?", "Describe this networking protocol?", "How many syscalls are triggered by npm install?", and whatever other question that they ask you to go as deeply as possible as you can.

I was in the exact same boat for several years. After repeated rejections, I took a break from interviewing for a couple years. I already had a job so I could afford to do that. I realized that I was applying for the wrong type of jobs. Instead of hands on IC roles, I targeted engineering manager roles since I have quite a bit of experience managing small teams. I recently landed a job with a FANG as an engg. manager. Even though there is a coding component the main focus is on systems design and team leadership, also I think there is less age bias for EM roles.

Similar age and circumstance but not in the USA.

The saddest part for me is the companies that just throw you a take-home exercise without even bothering to phone you first. You apply to a certain position and then, say a week later -or sometimes more-, they simply send you an email with some programming task to develop.

Frequently they are not small tasks but full projects which require multiple days of work. Just a few days ago: delivering a full web application to manage "map layers", with a DB, a back-end, and a "user-friendly front-end with a nice design"; testing included and all put into Docker containers, and a working demo somewhere published automatically from the repository.

And I mean, it's not just the assumption that you will spend however long it takes you on this for free, but that you will do it without even having had a simple conversation with them before.


Anyway, what I really wanted to say was: Good luck in your search. Stay sane.

This does have the effect though of filtering out candidates who were lukewarm on the position to begin with (eg they were just throwing applications around en masse) because now, yes, there is that investment to be made in proceeding with the application. And the coding test tends to become the focus of the rest of the interview process, assuming the company goes forward with it. And good companies will give fairly comprehensive feedback on your submission, so there's that.

>Expectations are far too wide and as a candidate you need to know literally everything otherwise you won’t “perform strongly”. But it’s really just random chance. Coding interviews should be longer and less random. Give time for the person to mess up and get back on the right track. Isn’t that what you want in a co-worker? Systems design questions should be a long conversation about building systems, not just “what points did the candidate mention that I was expecting them to.”

One reason for this is that large tech company have horrible diversity metrics and are trying to avoid getting sued for discrimination (bot just by candidates but also by the government). If every candidate is judged on the same robotic criteria then that makes a discrimination claim harder. A second reason is to avid managers building fiefdoms or employees having much more loyalty to their manager than the company.

Startups have a wider range of interviews but they also pay much less. Although you could get lucky with an late-stage startup that hasn't fully solidified it's interview processes yet.

Refuse these kind of on-the-spot tests and save everyone a lot of time.

I’m over 40 and in the US. I also just did a job search. I left a midsize company as a Lead Dev and interviewed for staff and principal roles in order to get back to more technical work. Here, in the US at least, I found a couple roles that were at that senior-plus level and don’t involve a lot of meetings. I took a staff role at a much much larger company and it seems great so far. Keep your eyes out and maybe you will find a few of these roles around.

I became a teacher in software engineering when I was 46. In our country there have been and still are lots of vacancies for technical teachers. I find it very fullfilling to work with young persons (students) and it is easy to keep up to date with new software eng. techniques because you are in an environment with som many technical persons (colleagues, students, workfield)

Was it a massive pay cut?

I suspect that depends a lot on location. A friend moved to Europe and software dev salaries there haven't undergone the massive rise we see in the US over the last 30 years.

I can't speak for the original commenter, but my dad is a software engineering dean with decades of experience. Yes, it's a massive pay cut.

Most certainly. But all the stress was also cut. There is very little stress in academia. Most of it is caused by the administration.

> There is very little stress in academia.

Are you sure about that? It seems to me the smaller the community and fewer the resources, the more 'intimate' the competition. Stories of feuds over parking spaces abound.

Only big companies will have the resources and need to hire someone who makes architectures and rarely gets their hands dirty. It sounds like you want to be an architect that primarily designs big systems from the ground up. There just isn't a lot of need for this - the design is the beginning, and after the system is running it's about keeping it running and improving it. Plus a lot of these roles are internal hires from talent the CTO knows already, as there are so few of these positions and they need to be trusted.

However this sounds like something FAANG companies have positions for. I just think they will be very limited and very hard to get.

This is really not true. Every software-focused startup that's ~30 people and growing need someone to guide the way for the less experienced engineers. Systems design is a part of every software engineer's career, but experience there can be pretty limited. (Most people try to simplify the field down to 1-person projects, because they started programming with 1-person projects. That very quickly fails to scale, and needing to make 15 1-person projects work together is a common demand.) So you need to learn it "on the job", and you need someone around to help. That's exactly the position that the OP is looking for, and looking around at job listings, it is quite in demand.

> you are limited to the scope of a single team scope, report to an Engineering manager, just be a worker at a feature conveyor </snip>

I am in your age demographic. My current title is simply ‘Engineer’ without modifiers, but in the business hierarchy I am on the same line as VPs, so I interact with them as peers; and they are. The Directors, Managers, etc. that report up to my peers do not take orders from me, but I can override their decisions on concrete technical matters.

What I’ve found is that in a non-startup (ie corporate) environment your row in the org chart determines your level of agency, not the title as it appears in your HR file.

For all my engineering experience, apart from CTO and Freelancer, I also have listed 'Engineer'. I've been a senior engineer for some years now and still refuse to align with whatever each company chooses to name me.

I worked in a body-shop as a junior, but they sold me as a senior to the client, so I got lucky early on to realize this is just smoke and mirrors. I haven't really had any problems with it and when people ask during interviews, I usually tell them it's up to them to gauge my seniority, I have no idea.

I asked a related question recently on Reddit which got many interesting comments and insights:


I think if you want to have high impact, agency, and autonomy as an IC late in your career you should work on your math skills with an eye towards a research scientist / core algorithm designer position. The other option is to be the founding engineer at a startup, but that's probably only good in your 40s if you want a divorce

Having reached 40 and living through the pandemic, my priorities have changed from trying to climb the greasy ladder to ensuring I'm doing work I enjoy, and having a good work/life balance. I have people far younger than me who have been promoted above me, but seem to constantly annoyed by the type of work they have to do. Constant meetings being one of them.

I know I'm underpaid for my experience and skills, but I try and be a leader in my field, and try a train as much as possible. As others have said here, the extra time I have at home gives me the energy to work on other projects (hobby, etc).

Given role titles, it sounds like you are at Google and interviewing at Microsoft. In my experience, Microsoft is more aggressive at pushing you into management. Google seems to have more opportunity and culture of people working in a purely technical capacity to at least L7. At Microsoft, it felt much more like 65 was the glass ceiling. On the flip side, it also felt like managers at Microsoft were more involved in the technical decisions.

This was my experience anyway. Others may have seen things differently.

Who you know is more important than what you know.

For your first 15 years you can be a body, moving up the ladder doing what they want and getting better people will hire you because engineers are in demand. But after 10 years you start running into diminishing returns and by 20 you really can't grow that way. Note that this is about the time you hit 40, but that isn't about age.

At 40 you can hang on, your raises should (but won't!) Track inflation ,but no more. Many do this because they are happy, or don't want the next step.

Your other option is to be better in other ways. There are many answers. You can be the one who mentors all the junior engineers. You can join the relevant ISO committee and write the standards your company will implement. You can be the expert in something hard that your company does (I'm the goto guy for our start all the threads in sequence without deadlocks scheme) you can be the person who goes to all university events telling people how awesome your company is. You can be the person who introduces new technology (be careful, I know a company that spent billions on something that resulted in better quality but things that took a week in C took 2 months: the champions of that are gone)

There are hundreds of others. You need to figure out what will get you recognition. Be careful, I know of companies that didn't have a problem because some unrecognized senior person did the work, they let him go for not being productive in things that mattered, a year latter there was a whole department doing what he was doing. You need to ensure someone is tooting your horn.

Out of interest, how are you searching for roles?

I ask because we have (what I believe to be) a very interesting engineering problem to solve but a lot of the recruiters out there will plug the hedge fund and fintech jobs because those guys are willing to pay absolute top of market and therefore pay more in commission to the recruiter.

I wouldn’t get caught up thinking about titles because they mean different things to different people. There’s really interesting work out there for someone of your experience and increasingly more interesting startups in the Uk. You just gotta look a bit harder for it.

We are searching for a ‘principal software’ engineer to join our team. I think we have a different engineering setup to many startups because it’s very multi-disciplinary in nature: plant science, ml/optimisation, software engineering, sensor/embedded tech. So our idea of a principal swe is someone who spends some of their time as an ic and some of their time helping others to upskill in software engineering - this could be junior swes or senior plant scientists. I know that for other companies ‘principal engineer’ could be a product owner role or it could be a chief architect role or it could be more of a floating mentor.

There are lots of options apart from the standard salaried career. At the age of 39 I'd had enough for working for other people and started my own bootstrapped 1-man company, selling software products online. I am still at it 16 years later.

I was thinking about it as well. May I ask how you figured out what products to build? Did you stick to the same business domain, learned about their problems, and then built a product?

>May I ask how you figured out what products to build?

I built products that I wanted. That probably isn't a commercially optimal approach.

Probably better commercially to pick a market, embed yourself in that market and learn what they want. You might end up building something you are less interested in though.

>Did you stick to the same business domain, learned about their problems, and then built a product?

I have 3 products now. In each case I released something bare-bones that I thought was useful then iterated like crazy on user feedback. I didn't know that much about each domain when I started (but I do now!).

If you are interested I've written quite a bit about my experiences at: https://www.successfulsoftware.net

What kind of software do you sell?

Desktop software for Windows and Mac.

> My expectations for the roles like Staff / Principal Engineer are that while staying hands-on, say for 30%, I will primarily use more my skills in architecture, engineering, and communications to focus on large, important pieces of functionality, technical decisions with big impact, etc.

> Now I think to plan switching to a EM track or to Technical Product management. Thank you!

I think you should refine a bit on what you are really looking for. Roles with 30% coding and a TPM role are extremely different. Is the most important thing to you large scope? Deep technical work? Or a high compensation? All of them are available, but potentially at different companies and not all at once. At Amazon a principal engineering role usually comes with the huge scope you described - but many engineers on that level will not be 30% hands on coding due to other responsibilities taking up time. I heard its a bit different at the other big companies, where the scope might be more on the team level as you described. For startups there is likely nothing in common.

If you like technical work and think you add a lot of value there - you might want to stay on this path (whether its the wide or deep one). The management path will be very different.

One thing you might want to consider for the principal IC path is that it will require significant investments to stay on top of this role: Technology is constantly changing - we have new programming languages, new tools (containers), new environments (cloud), new paradigms (devops), etc. In the most senior roles you will always be expected to be on top of those things and know more about them than the average senior engineer who you can guide. So I think you definitely should bring in a far amount of curiuosity to learn new things at a very deep level to keep staying successful.

I’m about the same age + experience as you are. I’ve learned that what I like best is the nuts and bolts of programming. My favorite jobs were low-bureaucracy business where I have a ton of control and few meetings. I’m currently on a team of 2.5 developers with one meeting per week. It’s great.

My advice is to think about what you’ve enjoyed most in the last twenty years, and optimize around that.

I'm noticing a theme in all these comments: we all hate meetings and they make the job suck.

And I agree, meetings are often ridiculous and suck a lot more time out of your day than the 30 minutes that you actually meet.

I am 43 now and employed in the central IT department of a big German car manufacturer. I can completely relate to the OP in terms of roles and responsibilities, but I would like to offer a different perspective on the meaning of your job: It does not matter whether you write code or not. As an engineer in IT, there are numerous ways to create value for a company, be it in software development, operations, IT-related purchasing, project management, agile leadership (SCRUM master) etc. Your core asset is your technical expertise - if you combine it with any business function, you have a very coveted skill set and probably a rewarding career. I myself changed between different roles (lead developer, maintenance manager, architect, build manager...) and different business domains (quality, customer service, manufacturing).

My core take-away is: create value and more around laterally in the company. You will gain valuable knowledge and you will be respected.

I started going to psychoanalysis and the analyst asked me: so why do you work in programming? I had to contemplate that for a long while. Answers that I came with were not at all what I thought. I had to really go back in memory to early days of my tech onboarding (teenage IRC years). I think it's a good exercise to go through. I think OP is one of the better examples of why it's a good idea. Because here is somebody hitting 40 and the life decision they are making is not whether to stay on the same path, also not contemplating what other things they could possibly do with the rest of their life (which statistically-speaking is probably another 40 years of fully conscious adult living) but to "see meaningful progression: in salary, in impact, in respect". So why are you in software?

someone asked me that in an interview context and I mumbled something about problem solving. but that question stuck with me and mulled it for quite a while.

for me its about agency, and creativity. i dont just want to solve your problem, i want to build you a beautiful palace using solely force of will that completely obviates your problem.

at least now i understand a little better why I can't function in devops land.

Well if you don't want a boss, you need to switch to entrepreneurship, maybe start a solo sass ... I don't see a way around it. Edit : need a cofounder? :)

A few comments. There are only so many senior roles so as you are promoted there are more folks fighting for fewer seats, and this is why a lot of people move into management type roles as they get older. I also feel that SW development is a younger person's brief nowadays as the prevalence of python means it's more about googling and less about SW engineering. It reduces the need for senior people but these younger folks will get older too.

There are a number of companies where there are older folks in senior SW roles if you look for them. I find that it's harder to work with younger folks as they are less likely to have families so have this mentality to work longer and then go out on the town. Not interested.

Two euros.

Look into sales engineering or solution architect roles.

They are great late stage careers and typically involve a lot of architecture and consulting type work.

Sorry to hijack the thread, I am wondering for those of you FAANG/Unicorn engineers. What is next to you after this?

Context, I am also a FAANG engineer earning FAANG salary but still faced with the reality that in order to increase salary (more so due to inflation) I just have to Leetcode and re-interview every year to renegotiate.

Until what point do you stop Leetcoding/re-interview every year? I think at some point I will hit a salary plateau, what to do after this? For an average (majority) of FAANG engineers, what are their salary plateaus? I probably need to just aim for that and then stop Leetcoding/re-interviewing after that.

Do you mean you re-interview and then stay in your current role, getting a raise from the competing offers? Or do you mean switching employers?

In any case, most FAANG have fairly fixed salary ranges for each level. Now's a time of big salary increases, as you note, so there's more flexibility, but you should expect this strategy to fairly rapidly hit the maximum for your level unless you get promoted.

So, if it's all about money, two strategies:

1. Switch employers, get a big initial stock grant + bonus. There tends to be more flexibility on the initial grant than on salary itself.

2. Get promoted.

Forgot to reply, sorry.

Yeah I am thinking of re-interview and getting a raise from competing offers. Do you think this is a bad idea or will leave a bad taste from my manager or HR?

So you are saying at some point there will be a time where this strategy doesn't work as well anymore? I am a bit relieved lol, I thought I am gonna Leetcode until I retire.

Yes, there will be a time when this strategy does not work as well. Typically, big companies have salary bands per level which are set by HR (based on market analysis). While managers have some discretion on top (and may have more when it comes to RSUs), that discretion is somewhat limited--especially for those just starting out in their careers. Hence my comment that eventually it's just better to get promoted.

Does it leave a bad taste in your manager's mouth? I don't know. That depends on your manager. ;)

On the one hand, there's absolutely nothing wrong with demanding a fair price for your labor. You only have one life, and you're choosing to give a big chunk of it to your employer! And if you're underpaid, competing offers are great evidence to rectify that!

On the other hand, don't make a threat you can't back up. If you told me your plan was to get competing offers that you actually find attractive and then take them if your present employer can't match them, I'd say that's a great plan.

If you like your job and your team and don't want to switch, however, then I think presenting competing offers on a yearly frequency presents two potential challenges:

1. Your manager at some point may say, "Can't help you." They're not gonna fire you, but they may realize you're bluffing, so you won't be able to use this tactic in the future!

2. It way detract from talking about other, ultimately more important facets of workplace satisfaction, like working on projects you like, working with teams you like, etc.

Correct me if I am wrong, but how do you negotiate a raise without a competing offer? Seems like a losing battle from the start

Nothing stops you from going to your manager (or, during your probably-annual comp discussion) and saying, "Based on {a conversation with my coworker, Levels.fyi, a competing offer}, I believe I'm being underpaid."

Obviously this discussion has varying credibility depending on how serious you are about switching jobs, so a competing offer helps--but it also helps to know your manager's range of options.

My general advice is to try to understand the range of options first. For example, you can ask your manager, "Can you tell me where I stand in the comp range for my level?" That will let you know how much base salary growth you can likely expect or negotiate for without a promo. Similarly, "If I have a competing offer, do you have leeway to make a retention RSU grant?" would be good to know.

The key point is a) this isn't your manager's money, so they shouldn't be too personally invested in it, but b) they also don't have a huge amount of discretion and there's a lot of formula behind it, so understanding how the formula relates to you is a good start.

Develop leadership skills if you want the the role you describe below. That can’t be granted in a promotion and doesn’t happen automatically with age

> My expectations for the roles like Staff / Principal Engineer are that while staying hands-on, say for 30%, I will primarily use more my skills in architecture, engineering, and communications to focus on large, important pieces of functionality, technical decisions with big impact, etc. I expect that I would report to a Director or VP level manager, so that I could be exposed to a big picture, collaborate with and learn from a professional who operated on strategic level

I'm close to a 35+ yo engineer and have been with my current employer for over six years, mostly based in Europe. There are multiple ICs, myself included, in positions like the ones you seem to be looking for, and we are hiring. I know you're asking for advice and not for leads, but maybe the data point that I consider these reasonable goals is advice enough and perhaps you'd like to chat about the company behind it. Reach out at tobias@cockroachlabs.com if you're interested.

Good point! I suggest the topic starter to apply at the companies that build products for us techies to use. I live in Germany and we have many more remote options nowadays - New Relic, Elastic, Snowflake, Aiven, etc. It will be fun and you can master some specialisation that can make you more valuable and be a meaningful progression.

Friend, it's time for you to find a business partner and become a founder.

I turned 42 recently and I went through a similar situation. Good job, well paid and still interesting enough, but becoming more and more boring every month.

At some point I felt that I had just two options on my table: - Stay in the company as technical director to continue growing but with limited expansion possibilities. Write less code and make more boring meetings basically. - Continue doing more coding as senior developer and be happier with my life without all the meetings, but that would mean even more limited growth possibilities.

So like in most things in life, in the end I found out that there are not just 2 options, but thousands. In my case the best solution I found was keep working with my daily job to have the stability that makes me feel "safe" when I go to sleep, and at the same time spend most of my free time in doing what I like the most: coding on some project that is 100% mine and where I have total control over.

I tried this approach a few times with some SaaS projects and even if they didn't became unicorns and some generated barely 30-50k$/year, they were totally worth the effort in creating them, because on top of the money, the most valuable thing you get in return is to learn how to create a project from start to finish, with all the non-technical components like marketing included.

Over time I found out that you'll need to be lucky enough to find someone good enough like you on the design and marketing side of it as well, but if you finally find the right team, then it will become 100x better than working on any company. Both financially and in terms of happiness.

Of course it's not a recipe that will work for everyone because you really need to be passionate about something to spend most of your free time on it, and you will risk of getting burned out, but from my experience is definitely worth the effort!

And the most important part of this, is that you will have the ability to jump into any technology you want!

In my case I felt like the web2.0 was getting pretty boring and repetitive for me after doing all the SaaS projects, but now I'm about to launch a web3 project that I built within 5-6 months without any prior knowledge of smart contract in any way. You can't find a job that will give you the opportunity to make such drastic changes in your career and will allow you that level of freedom.

You just need to make it for yourself!

I'm 41 and still working a software engineer. When I was younger I wanted to get a job in SV but could never pass those interviews - now I no longer care and work remotely from rural Alaska :) I may step away from being a FTE and go full time consulting/contracting eventually, as being involved in company politics and chasing promotions is something that no longer interests me. After spending nine years as an Army officer I have no burning desire to be in charge of anyone.

My ideal working environment is a small team of very experienced/talented engineers working on greenfield projects. I've had that a few times in my career, though not currently.

My mother is well into her 60s and still working as a software engineer (also mostly remote now). She declined promotions that would have taken her out of coding over the years - so we're at about the same level of seniority now. I imagine she'll keep working as long as she's able - she seems to enjoy the work more than I do.

It seems like a senior (E7+) position at Facebook fits what you are looking for. Let me know if you want to chat about it. vjeux@fb.com

Given the interview experience at that company described in a sibling comment - why should we bother?

Facebook was by the far the worst, and I interviewed 2x for 2 different roles. YMMV but 2 Leetcode q's read off by bored, mid-level employees. Not a single question about anything else. Maybe that's a fine process for college grads but for someone with decades of experience? As a former hiring manager I honestly found it comical

Out of curiosity, are you working from Europe or US?

I’m personally working from the US but a sizable part of my org (Client performance and reliability) and my previous org (React Native / React) are in Europe. As a French person, the European side of fb is dear to my heart!

I'm 39 going on 40. Was hired into my dream job this year that set me up for life.

I also just turned in my notice last week. 12+ hrs are the norm, I have to "tattle" on other VP's who want to promote their own agenda.. burned out and not present with my family.

Will happily take a pay cut and work a "9-5" with late nights at my choice.

> Was hired into my dream job this year that set me up for life

How can you know the job set you up for life less than 12 months after being hired?

This is my fear. Hard to know how the “dream job” will pan out. Certainly simpler and somewhat safer to stick with known arrangement (so long as it is still available)

Temping to see what else is out there tho. Hard to pull the trigger without a boomerang option

I decided early on to stay on the technical track. I had mentors who sampled the management waters and explained the pros and cons. For me, a long-term technical track was the better choice.

If you stay technical, work on 'building the brand' and team-building skills. You can't be the 'super tech' worth the huge paycheck-- nobody is that good. Period. It's the team builders that get big things done.

So write some Call for Papers submissions, work on giving great technical presentations, and look for any way to add value to your projects. (Many of these will involve gathering and rendering metrics. Look for valuable metrics nobody is reporting!)

Good Luck. As you grow out of the 'IC' role, you will have to find new ways to get job satisfaction. They are out there-- just different than 'working code' all the time.

I am in similar position. I recently turned 40 and I’m a Development Manager but the role is moving me away from all the technical stuff I really like. I work in a classical industry position so no interesting FAANG Stuff only boring (but important) business software to keep up and running with my team.

The problem is that i originally did a PhD in Computer Science (Machine Learning / NLP) in 2010 and had papers at SIGKDD, ECML etc. So this business software thing is terrible boring for me but in Germany it was reallly hard to find interesting - well paying positions - at that time in this field.

And now i have no idea what to do next, because i fear that all my experience as a “Development Manager“ will not be accounted for if I apply somewhere in a more deep technical role like FAANG.

I'm 39 and in the USA. I've had similar experience to yours.

I'm considering targeting the C suite given my social, communication, and strategy skills. I would be a little sad to give up coding, but since I do plenty of coding in my free time, I don't think it would matter much.

What is a C suite?

Specifically referring to the chief executives of a medium-to-large corporation. Their responsibilities vary depending on the organization, but usually, they're tasked with improving the profitability and efficiency of any given group.

Most likely referring to management. People that tend to have Chief somewhere in their position title.

It is the "chief" type roles in a company - CEO, CTO, CFO, COO, CMO, etc.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact