Ask HN: Software Engineer hitting 40: what's next?

442 points by man-next-door ↗ HN
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!

372 comments

[ 20.5 ms ] story [ 1391 ms ] thread
(comment deleted)
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 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.

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.
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'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?
It is the "chief" type roles in a company - CEO, CTO, CFO, COO, CMO, etc.
Most likely referring to management. People that tend to have Chief somewhere in their position title.
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.
censored
This is the least useful answer I can imagine anyone giving to the original question.
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.
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.

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.

(comment deleted)
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?
I don’t say it is communism rather it’s like communism in that both look good on paper and are disastrous in practice.
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.
(comment deleted)
> 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.

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.

> in to the company's tech stack and development ethos

To be fair, at least in Google's case that's not difficult to do, because those technical decisions are grounded in reality and their infra and dev processes are some of the best in the world. And it's not like it used to be that you can't use your knowledge on the outside. The world is largely moving in that direction. In my estimation the rest of the world is now catching up to where Google was 10 years ago.

A bigger problem is activism. You have no choice but to see the most insane, unhinged behavior and rhetoric imaginable on internal social networking website, and that'd irk some, especially older folks who tend to be somewhat more conservative in their views. Nowadays you also don't get to ignore it sometimes (unlike, say, 10 years ago), because some of it is seeping into official company policy. It's unprofessional, and dumb from management standpoint to allow this, but the asylum is run by the insane at FANGs.

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 want to work hard, and see meaningful progression: in salary, in impact, in respect.

yes go for EM-> senior EM -> director.

Coding has no minimal respect, very limited impact and deadend salary progression.

> Coding has no minimal respect, very limited impact and deadend salary progression.

Let me know where you’ve worked so I can avoid these places. I’ve worked for plenty of orgs where tech and those in tech add massive value and impact and therefore are held in high regard.

I was making, on average, 600k a year at Google, 5 years ago. I hear it's a lot better these days.

The "deadend salary progression" allowed me to retire at 40.

sure if you are top tier talent, you can do earn top tier dollar. For vast majority of people who are stuck at "senior software engineer" level at an insurance company its a dead end job. Most ppl don't work at FAANGs at huge rsu comp, most ppl in industry dont get paid in rsus.

> The "deadend salary progression" allowed me to retire at 40.

Again, i made a general statement. Surely you don't think this reflects a general case?

Any smart, sufficiently motivated engineer can get hired at one of these (which are a lot more than just FAANG) companies and make top dollar.

Realistically, the vast majority of "senior engineers" stuck at random company are not really senior engineers skill-wise. Which is why they stay there year after year.

> vast majority of "senior engineers" stuck at random company are not really senior engineers skill-wise.

Thats besides the point. Ins't it?

Going into management is a better option for these 'vast majority' of people.

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

You are at the level where the choice is either become a technical expert, or become a leader. If you want to become a leader, you'll need to put the same effort into your people skills you've put into your technical skills. You'll also need to increase your visibility to non-technical leaders.

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?

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

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.

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?
It's in the IC path. The teams being led will have some number of people-managers attached to them.
It varies wildly by company. Team lead can mean anything from an architect with a smaller scope to a hands-off junior manager.
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.
Creating your own consultancy is one way out of this. Hiring few junior devs and mentor them to become good at what they do is pretty rewarding both in revenue and your social impact.
Came here to say this.

You have the skills to consult. Pick an area that:

   * you feel is likely to grow
   * you like
   * you are good at
   * you feel is underserved
and start writing and speaking about that (even at a local meetup). After a month or two, reach out to former colleagues who might have the problem you want to solve and ask if they know anyone who does.

Hiring junior devs will give you the opportunity to mentor but may force you to wear your sales and/or PM hat more than you'd like. You can start down this path by subcontracting and see how it feels.

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

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

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.

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

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.
(comment deleted)
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?

Yep.

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

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.
Totally off topic -- but why does HN render the text of these "HN Questions" with such a light font? It looks like they've been downvoted 10 times, or something. It makes it hard to read, and I can't understand the reason for it.
AFAIK: To discourage use of them, since HN wants the focus to be on link submissions.
Great response, thanks! I like the HN questions -- but I understand maybe that's not their thing. :)
The variety of Ask HN is a positive feature this community has over a pure aggregator, IMO.
If they are discouraged, why do they have their own entry in the header[1]? I always thought the light text was just to separate them visually from the comments.

[1] https://news.ycombinator.com/ask

Right -- what a good observation. @dang -- any opinion?
"@dang" doesn't seem to work. You're best off email hn@ycombinator.com to get their attention
There seems to be a few other undocumented features like these in HN. Or maybe they are documented somewhere and I dunno :)
I'm not sure this is correct. The Ask HN posts that get voted up are usually high quality.
Text-only posts are down-weighted by whatever ranking algorithm HN uses, so only the high-quality ones will rise to the top (usually).
I'd like to know this too. My brain constantly registers it as (incorrectly) being as a result of having been downvoted.
Hmm, I had assumed that they were all getting downvoted!
submissions can't be downvoted.
Good to know. Unfortunately, since comment upvotes and downvotes are restricted features until you reach a certain level, but one's comments will probably be up/downvoted before getting there, a logical, if wrong, conclusion is that there IS a submission downvote feature, but one just can't see it yet.
I think its because the user is newly created (i.e., green username).
(comment deleted)
(comment deleted)
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.
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? :)
It sounds like you'd be happy in a role as a "Technical Lead", "Architect", "Cloud Architect", "Application Architect" or "Solution Architect".

These are commonly used job titles for very similar roles, where you're leaning much more towards architecture and design, but some degree of hands on is still a must.

> my borders and carrier are defined by Engineer Managers, who are usually less experienced in engineering and leadership topics than I am.

Why is reporting to someone less experienced than you undesirable?

The power inversion doesn't work out. They wield the power but you wield the knowledge and experience. It’s a constant battle trying to get them to take you seriously. You might as well just do it yourself. Instead, report to a VP or director. They may not listen all the time but that’s their domain. And because you report that way, the other managers are more likely to listen because you are on the same tier. Plus you get a hard separation so the inexperienced managers don’t boss you around and you can work on work on what you need to. Some dorectors like having an engineer or 5 in the pocket. It doesn’t always work this way but that’s my general impression.
When senior engineers adopt this attitude, they are implicitly supporting aegism. Younger engineering managers are forced into a position where they have to pass on resumes of older engineers. Damned if they do, damned if they don't!
Only if the young manager is planning on resisting all the advice shared by the more experienced engineer.
No. That is not how I read this thread. My understanding is that the _possibility_ of the young manager rejecting advice is enough for older engineers to not consider positions reporting to those managers.
I don’t think I said possibility. And experience isn’t always correlated with age. I’ve seen older managers that just entered the industry after doing a python bootcamp, for instance. I wouldn't have any problem with a younger manager if they knew their craft, personally. Unfortunately too often I’ve seen companies pull in “managers” from unrelated fields and/or with little to no technical experience. Manager I/II equaling staff or senior engineer on the totem pole is what I’m calling out.
> I’ve seen older managers that just entered the industry after doing a python bootcamp, for instance.

> ...

> Unfortunately too often I’ve seen companies pull in “managers” from unrelated fields and/or with little to no technical experience.

I haven't seen either of these, so my comment was based on that. In my experience, first-line EMs are always senior engineers who choose to take the manager career track. In such firms, and only in such firms, I don't find anything wrong in Manager Is being equal to senior/staff engineers.

What I am calling out, if you can call it that, is that senior engineers refusing to report to anyone less than C-suite or VPs is doing the profession a disservice. People manager don't grow on trees - they have to grown and trained within the cohort of people practicing the profession. We need to collectively train these junior managers to be able to work with more senior engineers.

Senior engineers who don't want to take on people management duties will have to accept that there is a likelihood that they will eventually report to someone less experienced in some facets of the profession.

Insisting that the company find a people manager who is deemed worthwhile for you to report to is spreading the stereotype that senior engineers are difficult to manage, resulting in ageism in hiring.

Sure but we're talking about staff/principle engineer, not senior. Assuming there is a meaningful difference (which is not always the case) then it's a bit odd for principle engineer to report to senior engineer/manager-in-training, no?
I used the word "senior" to mean engineers who are more experienced - sorry, that was not clear.

> it's a bit odd for principle engineer to report to senior engineer/manager-in-training, no?

No. This is where, I think, we disagree.

In most startups, people report to a founder who is CEO-in-training. There are so many examples of these, that I assume that reasonable people don't find that odd. If that is the case, why should it be odd that a senior engineer reports to someone relatively early in their management role (but not new to technology profession)?

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.

Congratulations.

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.

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

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

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

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.

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.
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.
Refuse these kind of on-the-spot tests and save everyone a lot of time.
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.