This approach to careers fails to take into account that we inherently change as people.
In periods of ones life other things matters - maybe it is taking an education, starting a family, etc.
Other periods work matter.
It should be entirely fine to switch it on and off and change tracks throughout life - and in my view it seems like it is!
To reach a peak it takes roughly 10 years, but these 10 years can be started at 40 when your kids does not wear diapers anymore.
> This approach to careers fails to take into account that we inherently change as people.
OP very much talks about this in the last few paragraphs, both in that you can't plan exactly and that you need to course correct as things change.
Also, just because it's okay or may happen that you change tracks within your career, it's still a good idea to optimize the track you are currently on and have an idea of where you want to be. Just coasting because you can't possibly plan your life seems like a strictly inferior option.
You make it sound like I implied that one should life their life nihilistically or with indifference - I definitely do not think one should do that.
I thnk there is most satisfaction in putting yourself 100% into whatever you do. But what you do is not strictly limited to your work.
Sometimes you put yourself 100% into your family, sometimes it is education, and sometimes it is work.
I don't think the OP is talking about whether to focus on running the race or not, but rather which race to run. As you grow older, the number of open tracks diminishes and that is the point the OP is trying to make.
While one can change tracks at any time, success is far from guaranteed. Being a distinguished engineer at 40, one cannot suddenly decide to enter the track for CFO or CEO. The track for that accepted entries 10 years back and is already over-subscribed. Only the CTO track is open at that point and only in certain companies.
Disagree here. Start your own company, boom, you are the CEO.
Can’t really tell if this is tongue in cheek but starting a company doesn’t make one CEO. It makes them a partner/owner but typically CEO needs a board of directors etc
I don’t see where you get that definition. If you’re the one running the company, you’re the CEO.
You may argue you need employees to be a CEO rather than a consultant but you certainly don’t need a board of directors.
I don't think the number of open tracks diminishes. But I do think we generally focus.
When one is 55 it is probably not too interest to attempt to go into the race to become and investment banker. Not because it is inherently impossible, but because there are more interesting opportunities.
Or at least: I think this narrative is the most productive, and the one I will stick to.
Depends. If one had been planning to shift tracks earlier in life but something got in the way, there would be some disappointment that the window for that track had passed.
But your narrative implicitly signals acceptance of one's station and a realistic assessment of the tracks still open which is probably the right way to go.
Source: made it up.
Well said: I think in this sense, flexibility is key.
As well as knowledge of, and honesty with, oneself!
And also I want to acknowledge everything that ends our career is not in our control .. like the dual forces of global offshoring / outsourcing and relentless automation (including AI driven) will continue to put downward pressure in the career curves of tech workers for next few years/decades.
It's interesting that the common sentiment on HN a couple of years ago was the polar opposite of that. I lost count of the number of comments that affirmed the boom was going to go on forever. Software was eating the world, etc.
I should point out that a perceived shift in the general opinion of the overall group doesn't necessarily mean that a lot of individuals within that group had a shift in opinion.
I.e., it's probably affected by who bothers to voice their opinion, and how memorably, at different times.
Software is steal eating the world, just not for employees.
But we will integrate with tech more, as a society.
I wonder where brick and mortar stores will be in 20 years.
It depends on the perspective. Global offshoring/outsourcing does an upward pressure in the career curves of tech workers anywhere around the world except few countries.
Here's the thing about the average career in big tech: five years after you leave, almost no one will remember you were there. Most of your old team mates will leave for other other jobs. Your code will get refactored or rewritten. Docs will be superseded, then lost in some CMS migration. Before long, it will be as if you have never worked there.
I know it sounds preposterous, but ask anyone over the age of 55 or 60: except for folks who built their own companies or made truly exceptional contributions to their field, most will say that hobbies, friends, and family mattered a lot more.
So, there is this fundamental contradiction in this article: you can engineer a very neat career, but for most techies, the most useful goal is to make money fast in a way that doesn't drain your life energy. And most of the time, this means responding to opportunities, not sticking to your guns. For example, a lifetime IC job may be ultimately worth less than a management job that gets you to VP level in a decade. You don't need to dream about being a manager; you just need to be reasonably good at it.
I am 67, and equestria is mostly correct. I still get great satisfaction from my tech career, but sure, friends and family matter more. This story involves some work I did that did not bring me satisfaction.
I worked at my first consumer-oriented tech company, right after the dotcom crash. It was a really unexciting interlude in my career. I was given the job of writing the database and Java representation of credit/debit cards, and the related business logic. As often happens, the code grew over time, as requirements and card types were added. And it was finally time for a rewrite, and this code became a poster child for technical debt.
Startup activity resumed, and I left for a far more interesting startup.
Then, maybe 15 years later, I was retired, and doing consulting, and ran into a friend from the company, who told me that a new company doing something very similar, and was looking for help. I go in and talk to them, and discover that they actually licensed the software from my former company. Including my long-in-the-tooth credit/debit/xyz-card software. The code was still completely recognizable, disturbingly so. It lived on far past the point that it should have.
I decided to not take the consulting job. I really did not relish the idea of going back to this very forgettable and uninteresting code. But most importantly, I had just retired, and wanted to spend my summer on a lake, not keeping this code alive a bit longer.
I think that this speaks to an issue that's common across the economy, not simply isolated to tech: the career lifecycle. Specifically, the notion that there's an optimal amount of time and an optimal point in one's life (both for business and employee) for a worker to be in a given position, and that it's again optimal for him or her to not get there too early and to not stay too long.
E.g., tech suffers from the former, politics from the latter, and for both fields, the effect is a warping of the good that they could be doing for society. Society should be set up to encourage "correct" entries and exits and to discourage "incorrect" ones (with allowances, during the transition, to avoid having a "lost generation" that never gets to contribute).
Letting people hang on, with their outmoded ideas, into their 70s and 80s? Forcing breadwinners to take on maximum workplace responsibility at the same time that they are most able to contribute to raising their family or building and maintaining their community? There's something perverse about this set-up. To say nothing of the people forced to spin their wheels while the 10xers load their own plates with all the opportunities.
The first time I transitioned to a different type of job in tech was really tough but I had been pretty unhappy for a while. I wasn't pushed out--the opposite in fact--which made leaving tougher but subsequent events showed it was absolutely the right decision. The next time, my hand was pretty much forced by any clear-headed view of company financials which made it a lot easier to get on a very interesting (and better compensated) track through someone I had done some work for. At the end I wasn't especially happy but it was around the time I was planning to at least semi-retire anyway so the decision was straightforward again.
> but for most techies, the most useful goal is to make money fast in a way that doesn't drain your life energy. And most of the time, this means responding to opportunities, not sticking to your guns. For example, a lifetime IC job may be ultimately worth less than a management job that gets you to VP level in a decade.
If you can switch to management without draining your life energy, go for it? I hope you're a good manager.
Personally, all of my experiences managing people have been very draining.
Exactly. If making good money without taking on too much stress was the goal, my advice to everyone would be to become a senior/staff IC at a decent company and stay in that role till retirement.
I think the stress at senior/staff will be there no matter what but if you aren't especially suited for the management track, the stress of being a manager will be 10x. If you're suited, then I'd argue it will be 1x or maybe less.
I've attempted to follow the traditional/expected progression path of senior->management and had a horrible experience each time. Even though I was getting praised for the work,it was taking way more energy from me to the point of burning out much faster than anything at the IC level.
Draining but also rewarding? I think work is supposed to be hard and tiring - seems like most things of value are - but if it sucks your life force permanently that's not a good thing. I've found management is a bit of a muscle that can be worked and you increase your energy reserve with time & practice. Similar to being an IC I've found it's fear that drains the most, and building a perspective of "I don't know exactly how to do this (nobody really does) but we'll figure it out." has been immensly valuable.
I can see how it could be rewarding, but it wasn't for me. Since I don't need to do and don't enjoy it, and other people are better at it, I can leave it for someone else and be thankful my circumstances allow for that.
> I think work is supposed to be hard and tiring
I suppose that depends on what kind of work you are talking about and your perspective on what different kinds of work really are.
I wouldn't consider "The thing i do so me and my family don't starve" to have an inherent need to be hard or tiring.
Whereas "The thing i do to fill up my time with something i feel is meaningful" might have a hard and/or tiring component, but only if you personally feel like the hard/tiring part is required.
Things can be rewarding without being draining and value is subjective.
There's also a risk going to into management that you don't have as a much more indispensable developer. My friend is great developer who transitioned to management, then got laid off 2 years later when the company hired a bunch of Amazon layoff casualties who pushed out all the other management. All the developers under her were retained.
Is it more likely to happen as manager or dev? I suppose that is the important question, to which I don’t know the answer
From my experience it's manager and not close. Good devs are hard to find, especially devs who have built some stuff and can make fixes in 5 minutes that might take another dev a week to get up to speed.
I have to disagree with your premise.
The goal of many software engineers is to build software / systems they can be proud of. They love software and the machines it runs on.
Many people here have Arduino projects, 3D printers, home servers, and similar hobbies.
A few weeks ago, I was looking for compression algorithms for a particular use case and came across Brotli[0]. I was surprised to learn it was developed by Google. That realization hit me hard. Google used to be a hub for this kind of innovation.
Projects like Brotli aren't built to maximize personal profit; they're driven by passion and a genuine love for software engineering.
It's clear that the industry is shifting from being geeky and nerdy to being more business and management focused.
> The goal of many software engineers is to build software / systems they can be proud of.
Maybe for people <30. Priorities change very fast, as you age. I’ve met a good chunk of very talented engineers through work and other venues who acknowledged that they stopped caring after some point.
I'm in my early 30s and I am so close to hitting this point myself. I entered this field because I found the craft to be fascinating. I learned how beautiful the fields of computer science and programming truly are as well as the mathematics both were built upon.
I fundamentally believe a lot of my issues with our field is partly a skill issue on my part -- if I were talented enough, then I might be able to achieve what I truly desire: to work on projects where people care about quality and care about the problem that is trying to be solved.
However, I feel like my IC career is akin to an assembly-line worker. The people I have worked with do not care about quality nor programming/computer science at all. They just want to get things done as fast as possible while extracting as much money as they can.
So yes, I am about to stop caring. If companies want fast churning, low-quality software, then so be it. I'll just need to get over tying some part of my identity to my work.
I hear echoes of myself here. I made it a goal to learn enough about compilers because they were cool, and also to try to escape the thermocline of quality that I saw that was pervasive in industry. The hope was I could build skills in something that isn't easily commoditized. I was somewhat successful: I've worked on some nifty and difficult things, learning a lot of CS along the way.
However, the risk of burnout still exists, but this time, from overwork, because there is essentially an unbounded amount of work that could be done. Additionally, my career growth at my current place is probably stalled out unless I want to do substantially less tech work. This occurs because they have a lot of people who've amassed a lot of specialized expertise, so technical skill is commonplace.
Ultimately, I arrived in a spot in my career that isn't terribly different from most people, despite the amount of work and time put into trying to break away from that. I don't regret it, but there is a sense of wondering whether it was really worth it if my progression, pay, and everything else follows the same age-gated gradient that is prevalent in industry.
>> Maybe for people <30. Priorities change very fast, as you age.
This.
I read here on HN some time ago an article stating that teenager-ish people crave to find "meaning" in work due to being what in essence can be described as emotionally retarded (although intellectually normal). This all changes fast as they age and/or have kids or other inevitable live event that manages to pull their head out of their ass.
Basically Mark Twain's "When I was 17, my father was so stoopid" remark.
I think it's more to do with the fact that a teenager wants to break free from their family and start working as an adult. They've never worked before in a "career" (most of them). So it's new and exciting.
Then once they reach about 30 they realize family is what mattered the most, work is just a means to an end most of the time and it's really hard to make your "mark" on the world. Why not make your mark in a smaller way that's more guaranteed? By being there for family and friends
45 here, happily married with kids and yet I love writing software more than ever.
> It's clear that the industry is shifting from being geeky and nerdy to being more business and management focused.
I've heard this same complaint for the last 30 years, probably starting with this - Bret Hart helps you debug a null pointer dereference: https://www.youtube.com/watch?v=HSmKiws-4NU
Just because you've heard it for 30 years doesn't mean it's not still true. Some things move at a glacial pace, and I see it too.
> Projects like Brotli aren't built to maximize personal profit;
In the case of Google, they very much are driven by profit. For a small company, reducing your payload size or decompression time by 0.01% may be senseless, but at their scale the benefit will greatly outweigh the costs.
In this case, GP has it very much right. Brotli was developed by people, not just faceless Googlers. Jyrki, who led the project, is as passionate an engineer as you're likely to meet. In this case, being able to pursue that passion happened to align well with Google's business interests, as it is indeed the case that improvements to compression have obvious benefits at scale when bandwidth and storage cost real money. But someone still has to push the initiative, and it's not as easy as you might think.
Disclosure: have collaborated with Jyrki and the compression team, including WOFF2 font compression, an early application of Brotli.
> Brotli was developed by people
And this type of work was only possible because someone provided resources because they were expecting some type of payoff.
Let's stop romanticizing the past. Brotli's first release is from 2015. More than 10 years after Google's IPO. To claim that this type of project used to indicate that companies were more geeky and nerdy is completely asinine.
This argument assumes that code is an ends not a mean, which is false. The value you deliver is not your code, it’s the enablement of business functions. Let’s say you launch a new product that gains traction. Sure, in 5 years your code may be refactored out of existence. But the people doing the refactoring only have jobs because of the value you delivered when launching the initial product. That is your lasting contribution, not the lines of code you wrote.
> the most useful goal is to make money fast in a way that doesn't drain your life energy
There's a couple issues with your assertion. Even if you go the VP route, people rarely make VP in under, say, seven years, and usually more like twenty years, without exceptional luck like getting in on the ground floor of a rocket ship. If you don't like the managerial path then you'll burn out long before you get to VP. The second issue is that learning to control your expenses is far more powerful than earning more money. I promise you, no matter how big the salary is, there are people drowning in debt despite of it.
Hobbies, friends, family - none of these should require outsize financial outlay. Doing what you love, building your community, and living below your means is a much more powerful strategy for lifelong happiness and fulfillment, and also much more likely to succeed than some years-long "sprint" to a job you can barely tolerate.
Ten years ago, while a junior engineer at a FAANG, I made a tiny change to one of the most popular pieces of software in the world. It's still executed billions of time per day, and I'm never quite sure if I should be proud or a bit sad that the sheer number of CPU cycles spent on this almost certainly vastly outweighs everything else I've ever done in my career combined.
I don't find that to be true. I remember many of my co-workers... some fondly, some not, but they are remembered. They added as much flavor to my life as my family and friends, if not more, because we spent more hours together. Their work influenced mine and I learned from them. And their insights helped direct which directions we took the projects.
Now, did our presence impact the company? Did our code survive? Or documentation? Do people who work there today have any idea we ever existed? No, perhaps not. But really... who cares? The relationships we have with people in our lives matter, as do the impacts we have on each other, regardless of what our impact was on some rando corporation I earned a check from some number of years ago.
One of the constants in this field is the people; I've continued to work with the same individuals in various environments and configurations for decades - often intentionally.
> the most useful goal is to make money fast in a way that doesn't drain your life energy. And most of the time, this means responding to opportunities, not sticking to your guns
This is a tightrope I think many people wind up struggling with—it’s easy to slip into doing something that pays well but does drain your energy, then struggle to wind things back once you’re used to the increased income.
To me this seems to make a strong case for focusing more on relationships at work with people and less on work products. I still remember people I worked with 10+ years ago though I have no idea if the code they wrote then is still in production.
Very true. I saw comments in the code base where I work from someone that had worked there 3 years prior. Most of the people I asked could barely remember the person.
Yep -- this is something I wish I understood earlier on: burn hard, make as much as you can, then do what you _really_ want once you have enough money.
But when do you have "enough" money? There are many traps here.
With lifestyle creep, mortgages or kids' educations to pay for, the sum that would have been "enough" in your twenties isn't in your forties.
Many people work hard for decades and drop dead of a heart attack the first day after their retire.
Others retire too early and find out the hard way that they did not, in fact, have enough money.
Some people get both right and still find themselves bored or spiraling unhealthily (drinking to much etc).
you have enough money when you can comfortably live taking out 4% of your invested savings. math always checks out for this.
also I know one family who retired early, realized they will run out of money and instead of going back to work moved to costa rica :)
Even in small tech. I worked for an agency in the aughts and we would put up websites at roughly the pace of 1 a week. In my time there I'd guess I'd personally built a little over 100 websites and developed our internal framework for us to make doing so easier.
Every couple years since, I've gotten a bug in my butt and investigated how many sites still had pieces I'd clearly worked on. On this most recent occasion, I could no longer find anything. They've changed over to some open source CMS and I was unable to find anything I had built.
It's been 12 years in there since I left, but as far as I can see on the front side everything I'd written is gone. It's a strange feeling, like 5 years of my life just evaporated.
The code may be gone but not the impact.
A gas station sells gas that is gone within weeks. But someone fills their car, and drives to Mountain View and gets a job that changes your life.
Helping a business grow by 10% more each year because they were an early adopter to websites is something you impacted, even if your code isn’t there to remind people why.
“All we are is dust in the wind.” (Kansas and Ecclesiastes)
That feels true, but a single gas station disappears and people fill up somewhere else.
The world isn’t a static place. The impact is often closer to saving X thousands of people a few seconds than anything more meaningful. Perhaps the indirect result is someone finds the love of their life but it could just as easily be a life changing STD or getting run over and impacting many people means many such indirect changes both positive and negative.
I think “a cloud never dies” is more apt for this sentiment
I left a project in 2003. I can still hit their web login page, and I still see something specific in the URL I put there. I've no doubt they've upgraded some stuff behind the scenes, but they've likely not done huge overhaul, otherwise they'd have simply redone the auth process to whatever an upgraded system uses. They did change some graphics on the login page, and added a google tag thing, and converted some styles to css.
Very odd to look at it and know that I'm probably one of 2 or 3 people who know why that specific code is there, and also to know that the base of this is still running.
>It's a strange feeling, like 5 years of my life just evaporated.
To quote Roy Batty, "All those moments will be lost in time, like tears in rain."
If there's anything I've noticed in this industry, it's that abstractions tend to outlive their origins. For instance, back in the 80s the Unix systems my workplace used (and subsequently, many of the applications they ran) had an 8 character max username length, and although those old Unix boxes (and their vendors) are long gone, we're still given 8 character usernames since nobody wants to find out the hard way that there still are some applications that depend on an 8 character max or which truncate longer usernames to 8 characters.
If you want to make a lasting impact on an industry but you weren't able to get in on the ground floor, your best bet is to get into advanced R&D, whether at a major hardware company or in academia. Anywhere else and your knowledge will either be wasted because nobody cares or it will be siloed off because the company will never open-source the tech you pioneered (and someone else will likely take the credit for it later on when they create an open-source equivalent).
Given how much of one’s life time is taken up by working, the highest priority besides making ends meet should be to do something that fills you with purpose and is rewarding in a non-monetary sense. “Making money fast” isn’t that for most people, unless you shoot for retiring very early, which is quite difficult to achieve.
> for most techies, the most useful goal is to make money fast in a way that doesn't drain your life energy
Is it so insane to think that it is possible to enjoy your job? I feel that this treatment of your job as a toxic thing that must be handled with safety gloves from a distance may contribute more to the "drain[ing] of life energy" than the actual job itself.
Maybe I am wrong about this, but being a VP is exactly the kind of things that sound like draining the life energy out of someone. VPs all sound completely formatted in a way that only happen if you are under an immense pressure and the only way out is through that very tight exit, which leaves you nearly formatted.
For my previous job some stuff is public, and I can see it's still being used as it gets commits. I left about five and a half years ago. For the non-public stuff I wrote a lot of the foundational code, and I'd be surprised if all of that that been replaced.
The best of all worlds is when you can work with real friends with on cool new stuff. I had a job like that for seven years. I also had enough experience by that point to know I was in a rare situation, and to cherish it while it lasted.
> For example, a lifetime IC job may be ultimately worth less than a management job that gets you to VP level in a decade
How are you positive that you can get to VP level in a decade as a manager? That doesn't sound easy. Just by looking at the number of managers and number of VP in my company it would seemed that around ~2% would eventually become VP if the ratio hold, that's an incredible standard for "reasonably good". Doubly so if you are not even starting from the same track.
There's no guarantee your code will be rewritten or refactored. I have code written over 15 years ago that I know is still in production because it is stable and core to the application. I suppose one day it probably will be replaced but I'm pretty satisfied with that piece of work and found it to be, if anything, more life affirming than draining.
You can have your cake and eat it, too: if your work is satisfying and seeing people use the things you built gives you joy, you can make good money doing something you life without optimizing your entire life solely around ladder climbing or bigger paychecks.
yeah, if anything it's dangerous to assume that your code will get thrown away soon-ish.
as an extreme example I'm aware of, the core AWS infrastructure is still heavily dependent on Perl scripts mashed together 15+ years ago.
> core AWS infrastructure is still heavily dependent on Perl scripts mashed together 15+ years ago
What part of the infrastructure? The control-plane logic that triggers when the dashboard/CLI/CloudFormation request modifications to resources?
I never worked with it directly so this may not be totally accurate, but IIRC a lot of the fundamental networking code for managing data centers -- DNS, traffic routing, etc -- was legacy Perl scripts. While I was there, at least one major us-east-1 outage was directly linked to a problem with one of these scripts.
The problem with that is that it drains away your life energy in your late 20s and throughout your 30s, and in fact it's not only about draining one's energy, let's say that would be fine up to a point, but it drains away your purpose in life, and, in the end, your will to live. I refuse to believe that there are people whose purpose in life is to be a manager/VP, and, if they are, they might as well be walking corpses for all I know.
> I refuse to believe that there are people whose purpose in life is to be be a manager/VP, and, if they are, they might as well be walking corpses for all I know.
You could say the same thing about ICs though -- "I refuse to believe there are people whose purpose in life is to spend 5 days a week for 3 years building an enterprise line-of-business app to automate an obscure legacy business process that will be used by 10 people in total, and all 10 of those people will complain about the new app and wish they could go back to doing things the old way"
And as VP you can make a ton of money and spend it wisely, make a difference to your extended family or even a community you live.
That is a real meaning and sense of purpose for your earned money!
The very fact of calling "computer programmers" as "ICs" is part of this syndrome, I'm not sure exactly when it started showing up, I'd say it was popularised by FAANGs, so maybe 2015-2016-ish?
ICs aren't just computer programmers, they're designers, sales, marketing, customer support, etc. It's just an easier term for people who aren't managers than "not a manager".
Is IC offensive? I’ve never considered it to be. “Resources”, on the other hand, feels very offensive.
Well, taken at face value, it is a bit of an oxymoron. To contribute is to be part of a group; by definition, a contributor can't be wholly independent, because they're adding to a corpus, not producing it by themselves.
Oh, I take it the other way. To me it implies that management doesn’t contribute anything on their own, which is kind of true but also kind of a funny phrasing.
It stands for Individual Contributor, not Independent Contributor.
I don't read it negatively, but to play devil's advocate here... Managers are also individuals who are contributing to the group corpus. They just do it by interfacing with people instead of code.
Though, that's just semantics on the naming. IC just means not having direct reports.
True. Who is not an individual contributor? I find the term meaningless.
I've heard the term (or "individual contributor") since at least the first dotcom boom in the late 90s.
It's been in use in engineering for decades now. My father was familiar with the term in his career, and he's pre-boomer.
I've noticed that the successful ones have exceptional self discipline, part of which is not letting it affect your life as a person. Also, from their body language as observed through office windows and meeting rooms, they're spending a lot of their time socializing.
The only way I know how to deal with this is FIRE. Investing as much as possible and working towards early retirement or semi-retirement so that you can at least live a good chunk of your life.
The world we live in still sucks away the best years of your life but at least you don't have to wait until your 60s to live the life you want. You can also work on side projects in your spare time that will hopefully accelerate this process.
This should be doable on a tech salary.
> The only way I know how to deal with this is FIRE. Investing as much as possible and working towards early retirement
I retired at 50 and "the dream" of FIRE is almost like someone else's idea of an ideal goal and I'm not that satisfied with it - perhaps because I'm out of sync with my peers (I have gained some retired 65+ friends). I had planned to enjoy investing however I find investing soulless and unsatisfying even though I'm doing well at it, so my life plan needs to change. My hobbies remain hobbies - they are not fulltime.
> The world we live in still sucks away the best years of your life
Some of the most satisfied people I know work in plain jobs.
I could found a startup but that's just creating a job for myself and the benefits of many many millions don't seem like they'd improve my life enough.
> however I find investing soulless and unsatisfying even though I'm doing well at it
Agreed, but how do you know you are doing well at it? Who hasn’t? Stock market only goes up and has been fueled by low interest rates for almost 2 decades.
>you don't have to wait until your 60s to live the life you want
But, at least at some point in your life, doing work within a company may provide that life. At some point, you're done. And that point may vary. But many people wouldn't really love (or at least benefit from) a bunch of money dropped in their lap when they graduated from college.
I can 100% tell you it will not provide that life to a lot of people. I'm happy for you if it does but others like myself would rather kill themselves than work a 9-5 until they're 60.
"others like myself would rather kill themselves than work a 9-5 until they're 60". If its in a corporate hell-hole, I might at times feel like that too. However, not all 9-5s are equal :) Public sector such as govt or academia, or other non-profit, can be fulfilling and not soul-sucking. Or, at some point switch to something only slightly related to tech, such as teaching. People talk about "full fat" FIRE, but thats unrealistic and/or requires some years of miserable sacrifice for most people (being rich before you start, or getting randomly lucky with stocks, doesn't count IMHO). They also talk of "Barista FIRE" - i:e you can't totally retire but can work a supposedly low-stress job (personally, not convinced by it, baristas can still feel "oppressed" at work) . What about the middle road... which is, live frugally (which helps the planet too), over-pay mortgage and avoid other debts, with such an attitude hopefully most techies would by their 40s be able to work in a job with a moderate professional salary, perhaps arguably underpaid for what they do, but, if that's what necessary to be fulfilled at work and not feel like killing oneself, then so be it? ;)
And a lot of those people would not have been in a position to start their own companies--much less succeed at it.
Have a big trust fund? Sure. If it were from Day 1, depending on the circumstances, 9-5 would have been ehh. But not sure how directed I would have been absent strong parental direction.
I have no idea what you're trying to say.
People need to have income in some way, shape, or form. They can earn it themselves whether by working for someone or by being an entrepreneur in some fashion. Or they they can be given it by family.
[deleted]
Your argument, while valid, also kind of misses the point of the original post: to know where your career ends, you also have to know what the general trajectory looks like. Basically, you cannot "coast" ever upward "naturally" anymore, because we've learned that's a bad concept (hence the term "failing up").
We pressure people into management roles who have no reason being there other than "that's where more money is" or "that's how you create change". If someone's "end state" is a highly competent and flexible IC, then why isn't there more money for them to continue succeeding at that role as compared to an ineffective manager? For all the talk that tech is a meritocracy, it obviously isn't, otherwise we'd be rewarding the best talent without forcing them into bad roles or hollow titles.
Motivations aren't restricted to money alone, either, as we've seen post-pandemic with the WFH-RTO conflicts. A plurality of workers have realized their time is more valuable than their work, and are refusing to take chump change for multi-hour commutes from affordable suburbs just because their employer is arbitrarily demanding butts-in-seats in a pricey city. Others want their employers to be more involved in politics, or at least acknowledge that choosing to be a for-profit business is in fact a political statement in and of itself; hiding behind faux-neutrality in times of crisis isn't sufficient response anymore. The times are a changing, and the workforce is increasingly making its frustrations known.
Which brings me to your last paragraph:
> ...for most techies, the most useful goal is to make money fast in a way that doesn't drain your life energy.
I would like to proudly stand up as one of those not in that "most techies" crowd. I do this work because it comes easy to me, is incredibly interesting, and allows me to work in infrastructure in a way that isn't building roads or laying pipe. I identified my career ending way back in High School: acting as the jack-of-all-trades IT guy for the school or district, grey hair and hoarse voice, gradually nerd-sniping the kids who, like I was, are bored out of their skulls and looking for a challenge. The money certainly helps (even if it's not nearly enough to buy a home close to the office), but my career begins and ends in ultimately the same place.
And that's the point of the post: identifying where your career ends, and the arc it takes to get there. It's why I'm doing the leadership courses and trying to beat a new path upward in the corporate world, one where highly-competent ICs who are also good leaders are recognized as such and put into long-term positions within an organization, to weather the storm of cyclic leaders and fickle shareholders, and ultimately build a stronger, successful, and sustainable entity as a result. I need those years/decades of leadership and money to reach that position where I have a paid-off home, decent retirement savings, and can finally dedicate my remaining time and talent toward building a better future for the next-generation of people.
> Your code will get refactored or rewritten. Docs will be superseded, then lost in some CMS migration. Before long, it will be as if you have never worked there.
The exception is if you build a fundamental component of the system, and that component is so unique in what it does that nobody who comes after you will even consider the idea of ground-up reimplementing it, but instead just has to immerse themselves into your mindset, trust your docs, etc, whenever they're maintaining that component, forever.
---
The bad/painful version of this, is when the component relies on unique hardware (e.g. a mainframe's native IO-acceleration capabilities), and was designed by someone who was immersed in that ecosystem and understood how to write code to take advantage of it. So the code is incredibly non-portable, written in terms of the low-level abstractions of the hardware, that nobody else in the company will ever understand to the same level the original programmer did. This is e.g. flight booking.
You should hope to never encounter these, since they make the rest of your service that has to interact with this thing into a tar pit of low momentum, from your lack of ability to effect change on this component.
--
There is a good version of this, too, though: when the component relies on unique concepts and math (say, doing static analysis by generating constraint statements and solving/simplifying them using a prover) that are portable, and could in theory be reimplemented in a new codebase if desired... but which were literally invented by the programmer in the process of implementing the code, at the climax of months of lateral thinking about how to solve the problem. This is an engineering True Dweomer.
There's usually nothing wrong with codebases containing True Dweomer code; they're not any less maintainable than usual. And they solve a problem that isn't solvable with simpler solutions — that's why such a weird solution was arrived at in the first place. So they usually tend to stick around.
But everyone who arrives at the company will nevertheless be slightly afraid of touching the True Dweomer code. They don't understand it, even though they know they could understand it given enough time (and prerequisite textbook reading.) Unlike mainframe code, people might look fondly on the code, looking for opportunities to be assigned to a project that requires that they come to grips with it... but the project usually ticks along by itself, not requiring much maintenance.
(What you'll actually hope for, is that whoever writes the True Dweomer code requests to lift it out, out of whatever project it's a part of, out of the company itself, into an open-source project. Because that way, that person who does understand it, can keep maintaining it, even after they leave.)
[dead]
> almost no one will remember
And that is true for all memory, I suppose. There is none. It's constant communication, down to the quantum level, a constant vortex of information, and if the vortex stops, all memory is gone.
"What do you want to be?" is a question we have all constantly been asked since middle school by parents, teachers, career counsellors, professors, recruiters, mentors, managers, HR and lots of other well meaning souls. My answer is the same at 40 as it was at 14 – I don't know. And you know what? I've been fine.
I have worked at some great companies, and some not so great ones. A couple FAANGs as well as a 20-person startup and everything in between. I have been part of some fantastic product teams and a fair number of disasters. I have been a code monkey, an architect, a tech lead, a staff engineer, a manager, a director...and now know that none of these fancy titles really mean anything. And throughout all this I have managed to put a decent chunk of money in the bank.
Most would consider my career to be pretty successful. I like to say that I don't really have a career but simply jump from one project to the next and one opportunity to the next depending on how the wind is blowing. Never once have I had any semblance of a "plan" or a "goal". And despite what all the authority figures in your life will tell you, that is a perfectly fine way to live and be happy.
> Never once have I had any semblance of a "plan" or a "goal". And despite what all the authority figures in your life will tell you, that is a perfectly fine way to live and be happy
That's the ideal career for sure, but how common is it?
It would be great if I knew I could bumble along and become a staff eng/manager/director without any sort of plan or goal. I don't believe that's a common experience though, and it seems even more unlikely for people who are at the start of their careers today (Like me).
I think he covers this early on: if you don't aspire for anything more, congrats. Incidentally I'm in the same boat. Literally told my manager "nope, not really interested in pursuing a promotion. Just want to be paid fairly and continue working at this level." They actually appreciated having one less engineer that they have to try to cultivate a career for.
Not following a strict career plan does not mean you aren't aspiring for growth. In fact it may be the exact opposite. Being loyal and jumping through hoops for your current team/manager/company in the hopes of a promotion may mean that you are ignoring other opportunities out there that may be a much better fit for you. Your company's career ladder is designed to get you to stay there for as long as possible while minimizing compensation. It does not prioritize your personal growth over the company's. Especially in today's world, the people most likely to get ahead in life are ones who stay flexible and ready to jump on new opportunities as they arise.
I'm happy to hear this. Cheers.
Have you had a common theme for these projects you navigated?
A friend of mine, who is quite successful in his occupation, told me that his motto is: "Always do the next thing."
Our culture possesses this weird belief, that people always need to be transformed. This cuts across all ideologies, ranging from religion to Marxism and corporate culture. I think simply declaring "bullshit" to that belief can lead to a much happier life.
Maybe I am a pessimist but I really don't believe you can plan for 20y in the future especially in the tech sector. People fail to realize that we live in a world that changes not in a linear fashion but rather exponential. For all we know in 10y we will only need 1/5 of the coders we have and IC won't be viable, who knows.
IMO, there's no such thing as a career in tech, outside of maybe FAANGs (or whatever they're called now). It's just a series of jobs until accumulated wealth, ageism, or disability ends it.
Ugh, your dagger of truth cuts me so deep...but truthfully so. :-)
I'm beginning to feel ageism big time nowadays. And, while i'm thankful that i don't have any impact from disability (yet?!) from employers, the wealth accumulation is not enough to where i'd be comfy just yet. I wonder if "unicorns" outside of FAANGs nowadays are simply trying to accumulate enough wealth from conventional corporate IT jobs to have a comfy retirement like folks from the 60s/70s/80s/90s eras have had? ;-)
The public sector is probably a decent place for a well defined career.
This is a good point. There have a bunch of excellent HN posts about the UK gov technical service. It looks like a good place to work, and, since it is civil service, then likely a good career. I think a lot of HN overlooks working in light & heavy industry. Like: Who is writing software that runs power plants and turbines and ABS breaking systems? There are lots and lots of devs in light and heavy industry. And those companies are old and stable.
This article assumes a lot more self-determinism than is available in practice to most people.
Beyond that many of us have been running on fumes for years, I can't lose ten extra hours every week away from seeing my family, so I can up-skill for a new variation on the same career with ultimately the same bull.
If your goal is to get a cushy high paying job you will need to make sacrifices, otherwise that job would no longer be cushy and high paying.
Some sacrifice their 20s and grind an education, career, and have no kids or spouse.
Others put a large burden on their spouse to retrain, you have to weigh the short term toil versus the amortized improvements over your career. And it is important to remember that luck plays a part as well. Some get lucky on their first go around and others never get luck in life. The only thing you can do is maximize the number chances you have for good luck.
It is important to live well within your means. Having an extra margin makes job and life changes much easier and lower risk. Many people’s expenses grow to their income and they paint themself into a financial corner. Unfortunately once you are in that spot it becomes much more difficult to get out, and larger sacrifices need to be made.
There are always options, and we have more opportunities and “stuff” than any other generation which has lived. Our stuff and jobs should serve us and not the other way around.
I have sacrificed my relationships with my friends and family for two decades and it hasn't helped advance my career beyond a normal, lowly IC.
I don't want to manage people. I would be the exact kind of manager that destroys my own will to live. A senior role would be nice, but because I don't have any social skills (all that time I spent learning all of the technical knowledge I have now had unforeseen consequences, specifically, my social skills and emotional restraint are significantly stunted.)
Stop using the argument that people need to make sacrifices. It's not true.
Well that’s just assuming alternative paths would have been much better than current situation. Looking at how life played out for many of my classmates even my lowly IC job looks quite good.
This is the point I was going to make as well. I think the article is written for high-agency people, which are rare in my experience, even in tech.
Also related: The Peter Principle: people get promoted to their level of incompetence. We think we want something but then realize the job is actually harder than we thought, so we do a bad job (or burn out).
So to the excellent points in the article I would add an introspection about the level we want to achieve and how to continue working at that level, assuming we don't hate the job.
> I think the article is written for high-agency people, which are rare in my experience, even in tech.
While your assessment about the article may be true, high-agency people are common in niche careers. Anything that is extremely high performing (emergency medicine, Wall Street trading floor, elite law firms, entrepreneurs of any kind (especially non-tech!), etc.) will have plenty of high-agency people. Plus, this board is full of high-agency people. At this point in 2024, "tech" is a pretty much meaningless term, similar to "Europe". What does it even mean? The landscape is much too wide and diverse at this point.
What if it’s an article for self-determined people ?
Or meant to plant a seed of thought in someone’s mind ?
> I can’t lose ten extra hours every week away from seeing my family
I hope you find the time to make it work for you.
And , I don’t want to assume but so have found “I can’t” attitudes don’t work for effecting change in life.
Maybe work on that aspect of your personality.
> And , I don’t want to assume but so have found “I can’t” attitudes don’t work for effecting change in life.
I personally subscribe to framing “I can’t” as “I will not”. Then you can view such things as the conscious choices they are. You can also avoid feeling forced to do things just because they are expected of you.
E.g. “I can’t give up time with my kids” vs “I will not give up time with my kids”.
"Here, drink this Flavor Aid. If you don't like it, it's a personality defect in you."
What kind of advice would have been better?
It's not true that in all companies you have to chose between tech and management. It's true in some companies. But at many companies lead and director roles are very hands on.
At Stream a lead is 80% technical, a director roughly 50% sometimes more. And even VPs and up are still somewhat technical.
I think the idea of management without technical excellence track is just misguided. Small teams, technical excellence, and leaders who can do the work is the right way.
I agree that Managers/Directors should have a deep technical experience but having them contribute code to the day to day development is not a good situation for anyone (especially the companay).
There are some different aspects to this;
The director will have many other responsibilities and may not be able to provide to provide the research/expertise required to produce a good code solution to the issue at hand and integrated with the rest of the system.
The rest of the project team may be delayed with waiting for the directors code and may well find it difficult to co-ordinate with the directors level of knowledge (which is perhaps out of date). In general, criticising the director for delay or bad code is not likely to be a career-enhancing path.
In small company/start-ups, this a common condition that does need to be remedied. Directors/managers have significant responsibilities that needs to come first rather than feed their own ego/desires. Hire good people and direct them to scale the business, your job is different now and you need all your skill/time/resources to do it well.
In short, personally been there a number of times and it wasn't good for anyone.
But we struggled on.
> It's not true that in all companies you have to chose between tech and management. It's true in some companies. But at many companies lead and director roles are very hands on.
I‘ve seen bad companies where it is true, but in good companies typically not true.
Look for example Peter Norvig, 100% hands on technical type, but in a high management position.
> Look for example Peter Norvig, 100% hands on technical type, but in a high management position.
Just one time in my career, for about one year, I was tech lead on a small, wildly talented team. When you are "managing" highly-skilled, highly-motivated people who are paid very well... you don't have to do very much. Talk to them for a few mins a day. Be available they have questions. Else, it runs itself. Probably, the biggest enemy of success on those teams is intellectual boredom! I assume that Peter Norvig does very little day-to-day management. Instead, he is working in the same way that I was. It is much harder to be a good manager when you don't have all of the stars aligned: less skilled, or less motivated, or less well paid.
These types of ultra-high IC positions tend to be gate-kept by companies, often requiring a lot of prestige and experience.
It's a nice gesture that they exist, but we're not all Rob Pike or Peter Norvig.
Yeah, top-level IC positions are much harder to acquire than their equivalent management positions and tend to require some level of public claim to fame.
there is a difference between "technical" and "writing code every day".
c-levels, VPs, and directors can be very technical, but rarely write code. team leads definitely do, though it may be only 3 days a week, and rest is org/planning/pr reviews.
only at small companies does the CTO write code. our cto has written plenty of deep code back in the day that enabled the business to scale to its current size.
> management without technical excellence track is just misguided
It's different technical excellence.
What's not given proper weight is that it's different technical excellence. Roles seen as "more management" demand system-level understanding and technical knowledge. And a technical knowledge that includes what many see as not technical such as awareness of people or finance dynamics. They can, should be seen as technical aspects. A more senior, "more management" role has different levers to use to make projects come through. And these are different higher level projects. A more senior role is also free to juggle reports who specialize in this or that. If you hate or you are bad at task scheduling, have someone do that for you. If you are not great at writing speeches, etc, etc.
Among the ways you can prepare for that: (1) find at least one mentor (someone at least two steps more senior who can guide you on what to think about and on how things work. If the people two steps up in your company are bros... your mentors don't have to be in your same company.) (2) Consider what's missing to your skillset - and that's not planning software but maybe it is.
There is also a difference between being a capital-L Leader, and leadership. Healthy companies have space for technical leadership that is different from being on the management track to being CEO.
Healthy companies may have CEO with domain specific knowledge of the field. Airbus, for example. Unhealthy companies may have capital-L Leaders living off in capital-L Lalastocklandia who have not done so well by various measurements, such as their planes falling from the sky, or stranded lowearthorbitnauts. Boeing, for example.
I never intended to have a career as a programmer. I planned to work for two years, save a bit of money, and get a PhD in Chemistry. Forty years later I retired as a programmer. Every step was something new, I had 15 different employers (plus myself for 9 years starting two little companies). There was never a plan beyond finding a better/different/less irritating job, and constantly improving what I could do. I never gave any thought to what I wanted to end my career on. It actually ended entirely as my decision, I still was at the top of my ability, and my employer was happy to pay me, but I was tired of working.
While planning might work for some people, having a more short term view can work for others. The only thing I could ever control was what I was able to do, and when I was ready to move on. There are many optimizations available to succeed in life; not all are obvious.
> While planning might work for some people, having a more short term view can work for others
One thing I noticed is that what I valued in my 20s wasn't what I valued in my 30s and 40s. It's difficult to anticipate who you will be in a few years from now. It may change drastically. Keep that in mind when planning!
Agree with the above. Seems to me, the many of us "going with the flow" without a thorough long-term plan, are perhaps applying Agile development principles to our "career" (aka series of jobs) , whereas the author is taking the nowadays-apparently-discredited Waterfall approach , where supposedly you can know where you're going to be at date X. Which of course we now know doesn't actually work out in software. And as for careers, even more so. One cannot predict the overall economy, or who one might marry , how many kids one might have, whether everyone is healthy in extended family, what one might feel like doing to be happy later on etc ;)
Could you describe how each job hop was less annoying than the less?
I know it’s a big ask.
I am just insanely curious to know.
I feel the discussion needs to be opened up to other ends of careers.
My favorite career end that I'm naturally working towards to is the ability to jop hob to different roles without having prior experience. One way to do that is to be able to show in an interview that you have transferable skills and learn crazy fast. Another facet of that is that you need to identify companies that are open to this sort of thing.
Another career end is to become rich and not work. It's not achievable for everyone of course. But it is a type of career end.
Other career ends that one becomes disabled and live on disability checks or welfare. To me, it seems that this is a career end that people want to avoid.
I feel digital nomads aren't really represented in this career end. You could put it under independence, but the characterization of independence in this blog post was quite narrow which is why I feel the need to state it explicitly. Some people are in their career end when they can just work remote 4 days and have a decent salary.
There are many more career ends, what could you come up with?
The more capable you are, the more experience and ability you will have with specialized skills which will result in people that don't have those capabilities to think that your skills are not transferable.
If you find a magic workaround to that, please let us know.
> ...My favorite career end that I'm naturally working towards to is the ability to jop hob to different roles without having prior experience. One way to do that is to be able to show in an interview that you have transferable skills and learn crazy fast. Another facet of that is that you need to identify companies that are open to this sort of thing...
Maybe its been the job hunting climate of the most recent decade or so...but I no longer see opportunities for jobs where employers are willing to take on someone who might be awesomely enthusiastic, and well-rounded, but lack a very super-specific set of skills. This also goes back to those ridiculous job descriptions where an employer __"requires"__ a candidate to have, let's say, 10 years of a specific experience - even though said skill might have only existed for slightly over 10 years.
I wish i could do something like that: sort of jump to a different role without prior experience (or at least very little experience)....For me it would be more of an intellectual fulfillment, and wanting to learn more, etc...And, for any employer who would give me that chance, i'd legit give them 110%! But, i'm not holding my breath for that.
As someone who has fallen into this trap myself, I feel like many people tend to just go with the flow and then end up in a place they don't like doing work they don't enjoy, with no idea how to get out. This has inspired me to approach my manager about possibly stepping down from my role into a more IC role, or possibly swapping jobs, as I realized a Senior IC is where I want to be
The end of my career is uncertain. My entire career has been uncertain. Not completely unplanned, but rather has progressed in ways I could never have predicted.
I had luck and opportunity to ride the cloud computing wave and it carried me into software development and distributed analytics systems, from a B.A degree in business. 20 years of lateral moves up to Sr. Level, but never outside of IC, yet.
I daydream about turning my DIY skills into some type of construction trades business while I am physically able. Or testing the waters with software consulting.
Manager role is not appealing working for someone else's company although just like construction trades, being an apprentice in that role is probably going to be the best way to learn it. I dread the meetings and politics and employee reviews. But if I really want to run my own business, at some my point I may need to be a manager on someone else's payroll. Even if just for a year.
Joke's on them. I have a job, not a career.
> Most managers are terrible.
A sweeping statement indeed, but it does reflect my experience too.
Perhaps it's my ingrained deference to authority - when I start a new position I tend to believe that my manager has my best interests at heart. This is a mistake and I now believe it's better to maintain a kind of defensive attitude and to always be assertive in establishing, and if necessary negotiating, the responsibilities and expectations of your role and your relationship with the manager.
This may not necessarily be a personal failing on their part, this may just be a consequence of the operational management system you both work within.
> A sweeping statement indeed, but it does reflect my experience too.
IMO - managers are terrible at the same rate as ICs. But the damage a terrible IC can do is limited in most companies because there's guardrails like automated testing, pull requests, no access to the production database, etc. At worst they end up being a big timesuck for other team members until they get let go.
A terrible manager will sink a project or team single-handedly, though.
There is no code-review process for management decisions. Management is essentially like writing code on the production server all the time. The stakes are maybe a little lower, it's a good bit harder to make disastrous mistakes, but there's no real roll-back or testing for if you're about to ruin your team.
But why isn’t there a code review process for management decisions?
What if code was how decisions were recorded ?
What if companies were programmable ?
The most obvious reason, in my mind, is that merely proposing a decision is enough to be a problem. Suggesting we're killing a project a dev has spent months on, or moving someone to another team, or saying we'll miss a major KPI, or not promoting someone aren't things you can have a public full-team review on. Just knowing the manager was considering it is enough to upset people.
If someone writes code that has an error in it, you maybe think a bit worse of them, but it's a learning opportunity and that's what the review is for. If your manager suggests a course of action that you deeply disagree with, that's hard for them to come back from.
But thats politics. Look at every railway, roadway, power station - always supported or opposed by various factions. We think it’s actually healthy for our society, so why is it bad on the scale of companies - some of whom have larger GDP than some countries
Having political discussions out in the open is - I hold as an axiom - a positive on balance.
This who are “upset” about things - well they are adults in a political society - they can understand the issues. Do they feel exposed / vulnerable ? Maybe there is a political solution to thinking you have two weeks notice and that’s all the protection
I think it’s worth having decisions openly debated - otherwise we are blessing an elite and frankly hoping they will get it right.
The survival rate of companies suggests they might not be
What if there were no hypothetical questions?
That is, you can ask hypothetical what ifs all you like, but unless you have a concrete plan for getting there, you're just writing fantasies.
And, management decisions get reviewed before implementation all the time. It's just not a code review, precisely because management decisions are not code.
Why aren't they code? Because people aren't computers. If you're going to treat them like they are computers, then I don't want to work in your company.
It's also that a lot of management "decisions" happen in the moment. Is how they phrase something in a meeting or a one on one. It's how they respond or ignore questions. It's how strongly the push for someone to be promoted.
They're decisions, but often not something you can have sitting for review for days ahead, even if it's only seen by senior management. I've had plenty of times management announced something I agreed with, but the way they explained it was so rancid I came out of it upset.
At the end of the day, management, and in general all human interactions, are a glimpse into who you are. It can go amazingly well, or disastrously poorly. You can try to be very careful and say what's needed, but tone and timing and phrasing will almost always give things away.
Look with a historical lens - democracy in USA. From the point of view of say Chartists in 1776 it is a good start, 80 years till slave males can vote, 80 years till women can vote and another forty till civil rights. In 1776 can we call that a “concrete plan”?
Or is the fantasy “votes for all” actually a plan?
Yeah we can have plans - get Zuckerberg to give up power and place it in the hands of employees? Maybe convert Meta to a co-operative?
But on the literacy point - at some point we ran everything with illiterate “managers” - but slowly developed organisations that use literacy. My, yes ok fantasy, is not only democracy but that everyone inna company is software literate and has access to (maybe not write access) the code base of the company.
So there is a concrete plan - a whole org test rig, a company that every IRL action has a virtual shadow, a codebase that directs this IRL actions day-to-day and everyone having access to the codebase and able to suggest / comment or even vote on pull requests.
Run the company through code - change the company through democratic politics
Just as a personal data point, most managers I had in my now 25-year career in tech were good.
They set clear goals and expectations, provided honest feedback, both positive and negative, and quickly jumped to help re-plan when things did not work out.
They were also asking what I am optimizing for (for me at different times it was more money; promotion; interesting problems to work on; time to explore other long-term products) and as far as I could tell worked with their managers to move me in that direction, sometimes successfully, sometimes not.
I did not assume any of my managers had my best interest in heart, but one of my first managers gave me some lessons on "how to manage your managers, myself included". It took a few iterations, but he convinced me that by far the #1 thing most managers want is for me to deliver things on time; not cut a few days off the project timeline. And if I learn to do that, they will advocate for my interests, shield me from corporate BS, etc.
Some specific advice from that manager was (in his words) "never promise something in 2 weeks unless you could demonstrate it today" and "do not sit quietly when you are given unrealistic timelines; counter with specific subtasks you see and how long you expect each will take". That general advice worked very well for me and helped build symbiosis with direct managers.
I did dislike a few managers, but those were generally good ICs stuck into a management role they did not like (or at least did not know how to do) and kept both sticking their fingers into what their team was doing and start timeline discussions with "it would take me one day to do this, I will give you two; go-build-this-now".
Again, just a personal data point; not claiming that most of the world works this way. I may have been just lucky.
> Some specific advice from that manager was (in his words) "never promise something in 2 weeks unless you could demonstrate it today" and "do not sit quietly when you are given unrealistic timelines; counter with specific subtasks you see and how long you expect each will take".
Thanks these are good advice.
> most managers I had in my now 25-year career in tech were good.
I didn't have tons of managers, but my experience as well. Of course, they have their own interest in mind, rather than mine, but in my case at least, our interests were more or less aligned (completing projects, not burning out or leaving the team, working on things that matter to the company, avoid conflicts...).
I think that’s largely due to the weird notion that engineers will eventually “upgrade” to management, as though one is the advanced version of the other.
There are whole degree programs dedicated to managing and organizing people, but we’re like, “nah, Joe’s a good programmer so we should talk him into stopping that so he can supervise people instead”.
Fact is, there’s little relation between the two. A person may happen to be good at both, but expertise in one does not imply adequacy in the other.
Not every programmer can be a good manager, but no non-programmer can be a good manager on a programming project.
This is objectively and demonstrably untrue. I’ve had very good non-technical managers. Part of the requirement is them knowing they’re non-technical so they can stay out of the way and concentrate on the PM bits, rather than micro-managing.
We train people in their technical role, but we (generally) don't train people to manage -- and years of poor experience don't count.
I'm not a manager, and I don't want to be. But I'm quite happy with the manager training that my employer puts people through before giving them direct reports.
One should always be negotiating expectations, though, even when one considers management to have our best interests in mind. And also remember that your manager is learning how to manage from you. You get to shape their experience of being a manager, and you get (to an extent) to guide them in how they grow as a manager.
OTOH, this can be a case of the "if everyone around you is a jerk, the jerk is really you" rule.
If you can't work well with any manager the common denominator is you. It's also the only thing you can change.
The difficulty is the small sample size. Most people won't have a ton of different managers in their career and you'll change over time and your role will change over time and want/need different things from your manager.
There's also a lot of selection bias. What many people point out in these threads is that the sort of people who desire to be in management, and the sort of skills selected for in managers often don't align to what more ICs would actually want out of their managers. Managers are often hired by other managers and not by the managed, so the skills that get you the job often aren't aligned to what would make them good to work for.
This. I’ve known many an engineer who thinks their manager is bad because they don’t do what this IC (who has never been a manager or knows that is happening at the company above them) would do. The kind of people who think Elon is a bad CEO. Results are what matters first and foremost in tech
An employee not knowing what's happening at the company above them is a fault of the manager.
There are some things that need to be kept secret, but if it's not one of those things, secrets are not a good thing.
It’s not that straight forward. It’s not the ICs job to know everything that is happening nor is it their job to make decisions based on pass through data, especially not a junior/mid career engineer.
Transparency and keeping people informed, yes. Sharing a bunch of info and letting every IC make their own strategy and prioritization decisions, no.
People rise to their level of incompetence[1]. This simple principle explains most managers completely.
My first manager was really good so it came as quite a shock when the next one turned out to be a lying, conniving bastard. Given enough experience you get hardened to it. Of course it would be better if you didn't need to.
> it's better to maintain a kind of defensive attitude
As a manager/developer, I do sometimes see this attitude in some devs. I try very hard to help them find a different job where they are not working for me.
As a person whose done it all, independent stuff, senior ic stuff, management stuff, the main thing that makes management terrible is simply that most companies have no support for middle managers.
You are a good IC? Sure let's promote you to management, but in 95% of cases, we're not even going to pair you with anyone or have a senior manager help you understand, build and grow - we're going to throw you in the deep end and have you sink or swim.
This often ends up with stressed out people used to doing well now approaching an entirely new problem with slow feedback loops and entirely different protocols than before, and the amount of burned out shitty middle managers I see is off the charts.
Like the article, not fan of the title. I understand it's supposed to be catchy, but it is just not accurate. Planning for the next phase of your career would be better. Planning of the end of the career is a very valid topic, but it's a different one (planning for retirement).
Plans are worthless, but planning is everything.
It's not entirely clear that much of this field will look the same in five years, but still, I think doing the thinking and the planning for the sake of mapping out the route is important.
If only to inform you that no, you don't want any of those routes.
(I did this planning and ended up in academia/microbiology, as a product designer, for better or worse but it's been fun)
My wife asks me from time to time: "What do you need to learn now for the next five years of your career?"
It's a great question. It is also, I think, the right time frame, though one could argue for three years instead of five. Given the terrain I see now, I can plan for the next five years, and have those plans be mostly reasonable most of the time. Past that is harder.
I honestly have no idea what to even plan for the next couple of years and it's stressful
Plan for AI to be a tool that can help you, but not one that will replace you. Learn how to use it to help you; learn how far you can listen to it and how far you can't.
If you're in embedded systems, probably learn Rust.
If you're in Android apps, probably learn Kotlin.
If you're in web programming, I have no idea how to advise you, but there are others who can.
I have found that I can't actually plan with much certainty, and, quite often, the very worst thing that can happen, is that Everything Goes As Planned.
I have found utility in "overengineering" my life. Not just the tech I do, but in most things, and creating small, robust, high-Quality, and adaptable structures. Things that can be rearranged, and repurposed, when (not "if") the context/paradigm changes.
I started maxing out my retirement in 1990, and that's a good thing, because, in 2017, when I finally started looking for work, I was surprised (and disgusted) to find that no one wants to hire us olds. I wasn't planning to retire, but I wasn't consulted by Reality.
In my work, I have found utility in writing in modular fashion, and making every module as high-Quality as possible. I've had to toss quite a few, and had to do substantial refactoring on some, but, for the most part, they have served me very well, and continue to do so, to this day.
In a similar fashion, I try to address all sorts of corner cases in my code, to the point of being called obsessive by some colleagues - but it definitely helped a few times with really stubborn and obscure bugs.
An extra log line here or there, or an e-mail sent to the admin in weird situations, goes a long way - provided that you don't generate many false positives, because no one pays attention to a program that cries "binary wolf" too often.
It's always surprised me how many people are happy with somewhat sloppy work, doing just enough to solve a particular issue. Most of the time it doesn't even come from management pressure, it's just the way people work.
Perhaps there is something wrong with me but I always want to dot all the i's and cross all the t's.
> If you love what you’re doing now and don’t ever want to change jobs, great: you’ve reached the end of your career
Guess I'm there. I don't know how common my mindset is around here, but I have a relatively low stress, unexciting remote job in web dev. It's not glamorous or particularly interesting, but it pays well and offers the flexibility for me to travel a lot/spend time with loved ones and have extra mental energy for my hobbies. Well worth the tradeoff for me personally - I have no particular impetus to climb the corporate ladder when I already make six figures in a low cost of living area.
Yes, I do find that a lot of people get caught in whatever race they started running in the beginning of their careers and don't care to stop for a bit and try retrospecting/introspecting.
I recently took a break from work with the intention of working on some side projects and also thinking about what it is I like to do (somewhat along the lines mentioned in the article - do I want to stay on my current trajectory and try to hit senior IC, management etc). I am only about 6 years into my career, perhaps a bit early for a sabbatical but I felt this was the right time for it. I had a pretty good reputation in my job and I could have done the thinking while on the job, yet I felt I couldn't. I am helped by not having any financial concerns or other responsibilities.
I am not sure what I expect to gain from this though most people assume that either I must be starting my own business or chilling at home although neither is true. I took care to put some structure into it so I don't while away the time scrolling HN. I don't think I will get a sudden epiphany but feel if I put in some hours without any external constraints, something might happen. The worst that could happen is that I have to write off this time and go back to running the race in my IC track.
> Lao Tzu teaches: the best fighter is never angry. More important than the blow is knowing when to strike
The person (Denpok) who quotes it is a charlatan posing as a guru, which makes the fake citation fitting.
Yeah, the Lao Tzu I know advises people to be simple, like uncarved blocks of wood.
> You probably won’t get to choose what to work on, and you may not agree with all the decisions of the powers that be. In fact, it’s practically certain you won’t. After all, you know more about the subject matter than they do.
Wait a minute if the people most suited to make a decision are overridden by people less competent than them (they have to be most of the time, given the different focus of their career), that's kind of a problem, isn't it? Is there any way to avoid such structural failures?
Less competent in what? The people with decision-making power are supposed to be good at some combination of product innovation, product management, sales, marketing and accounting. ICs are only suited to making some decisions in the first two, and have next to zero expertise in the others.
I'm afraid "supposed to" is the operating word here.
In practice, the people who make the calls more often does not do so because they inherited a crap load of money, not because their own genius or hard work raised them to the top.
Does someone know how to find good IC coaches that can mentor a mid-level(ish) engineer 8+ YoE? I have issues with rejection and I am working on them.
I am a generalist, and I have been struggling with how to find opportunities myself by connecting to people 1:1 and discussing first hand the nature of the problem and whether I can help them with it. I imagine a coach help me typically with forming a coherent career statement and pointers on how to have these conversation.
I'm always happy to talk through career and engineering issues.
I want to be able to work as a generalist who can learn most coding stacks and a wide range of experience in backend(ranking/recommendation) systems, data engineering and some early career full stack experience.
I prefer the journey. I don’t want to “be” independent, I want to “become” independent. The former is winning the lottery, the latter is a long and difficult path.
The mistake I see people make it _not_ ending their career out of narcissism, pride, ego, etc.
I am not a religious person but it is good to remember you will die. You should have some better stuff to put on your tombstone than your job title.
People aren't going to care who you were in 100 years and people aren't going to remember you in 1000 years. Your tombstone will crumble in the dirt.
Spend time with people you love, spend time with your family and friends. Find meaning without economic strings attached.
I highly recommend folks read Ecclesiastes, which opens with "Everything Is Meaningless". It's a philosophical book on what matters in life (and what doesn't).
What do people gain from all their labors
at which they toil under the sun?
Generations come and generations go,
but the earth remains forever.
No one remembers the former generations,
and even those yet to come
will not be remembered
by those who follow them.
Oh and by the way: you might die sooner than you think. It happens all the time. Are you spending time the way you want?
I like this authors frame of reference. Independence is definitely my goal.
I want to get to a point where I can start an independent EE consultancy, then slowly get more and more selective about my clientele, until I choose to stop working.
I am curious about how he accidentally shut down a nuclear reactor.
On the contrary, it's those who can't write code that become managers. They're not even good enough to ascend to the truly parasitic executive class.
And those who can't manage people become managers of managers.
“Managing people is hard; much harder than programming. Computers just do what you tell them, whether that’s right or wrong (usually wrong). Anyone can get good at programming, if they’re willing to put in enough time and effort. I’m not sure anyone can get good at managing, and most don’t. Most managers are terrible.
That’s quite a sweeping statement, I know. (Prove me wrong, managers, prove me wrong.) But, really, would a car mechanic last long in the job if they couldn’t fit a tyre, or change a spark plug? Would a doctor succeed if they regularly amputated the wrong leg? We would hope not. But many managers are just as incompetent, in their own field, and yet they seem to get away with it.”
The fact that most managers are terrible doesn’t really prove managing is hard. in fact you could make a case it proves the opposite, the fact that most managers are terrible shows that management is easy, at least if we are talking about what it takes to keep your job.
FWIW I would agree with the point that being a good manager is hard but I don’t think this argument holds water.
Great article and thought provoking.
> and unlike your colleagues in management, you won’t spend all day in meetings.
The author will be surprised. In a bureaucratic company like Google, even an E6 can spend all their time having meetings and writing docs, to the point that they even get rusty at drawing boxes.
> If you want to reach this level, you’ll need to become a master of your chosen craft
One thing that worries me is that mastery also means specialization, and specialization is the most risky when there's a paradigm shift. My cope is to be specialized in a category. For instance, be a specialist in distributed systems instead of being a master of building Spring-boot services. That said, even that type of specialization is not immune to paradigm shift. Case in point, scaling out a service is really not that hard these days compared to 10 years ago.
What a useful, well written article. Thanks for sharing.
I have advised multiple people in their 50s that they are no longer seeking a position, they are looking for a decent paying job.
Career progression should be dominated by FIRE...
One thing I didn't anticipate when younger is the extent that other people will prevent your advancement. Whether by being in the way, *isms - a.k.a. refusing to hire you for positions you'd be great at, or very common today... the majority of companies that no longer train or encourage career development. Because you might leave?
Advancement seems to be lot of outmaneuvering these folks.
> very common today... the majority of companies that no longer train or encourage career development.
I don't get this. What is stopping anyone from doing that themselves? Why does someone else have to do it?
> career ending mistake
> the time I inadvertently shut down one of Britain’s nuclear power stations
This approach to careers fails to take into account that we inherently change as people.
In periods of ones life other things matters - maybe it is taking an education, starting a family, etc.
Other periods work matter.
It should be entirely fine to switch it on and off and change tracks throughout life - and in my view it seems like it is!
To reach a peak it takes roughly 10 years, but these 10 years can be started at 40 when your kids does not wear diapers anymore.
> This approach to careers fails to take into account that we inherently change as people.
OP very much talks about this in the last few paragraphs, both in that you can't plan exactly and that you need to course correct as things change.
Also, just because it's okay or may happen that you change tracks within your career, it's still a good idea to optimize the track you are currently on and have an idea of where you want to be. Just coasting because you can't possibly plan your life seems like a strictly inferior option.
You make it sound like I implied that one should life their life nihilistically or with indifference - I definitely do not think one should do that.
I thnk there is most satisfaction in putting yourself 100% into whatever you do. But what you do is not strictly limited to your work.
Sometimes you put yourself 100% into your family, sometimes it is education, and sometimes it is work.
I don't think the OP is talking about whether to focus on running the race or not, but rather which race to run. As you grow older, the number of open tracks diminishes and that is the point the OP is trying to make.
While one can change tracks at any time, success is far from guaranteed. Being a distinguished engineer at 40, one cannot suddenly decide to enter the track for CFO or CEO. The track for that accepted entries 10 years back and is already over-subscribed. Only the CTO track is open at that point and only in certain companies.
Disagree here. Start your own company, boom, you are the CEO.
Can’t really tell if this is tongue in cheek but starting a company doesn’t make one CEO. It makes them a partner/owner but typically CEO needs a board of directors etc
I don’t see where you get that definition. If you’re the one running the company, you’re the CEO.
You may argue you need employees to be a CEO rather than a consultant but you certainly don’t need a board of directors.
I don't think the number of open tracks diminishes. But I do think we generally focus.
When one is 55 it is probably not too interest to attempt to go into the race to become and investment banker. Not because it is inherently impossible, but because there are more interesting opportunities.
Or at least: I think this narrative is the most productive, and the one I will stick to.
Depends. If one had been planning to shift tracks earlier in life but something got in the way, there would be some disappointment that the window for that track had passed.
But your narrative implicitly signals acceptance of one's station and a realistic assessment of the tracks still open which is probably the right way to go.
Source: made it up.
Well said: I think in this sense, flexibility is key.
As well as knowledge of, and honesty with, oneself!
And also I want to acknowledge everything that ends our career is not in our control .. like the dual forces of global offshoring / outsourcing and relentless automation (including AI driven) will continue to put downward pressure in the career curves of tech workers for next few years/decades.
It's interesting that the common sentiment on HN a couple of years ago was the polar opposite of that. I lost count of the number of comments that affirmed the boom was going to go on forever. Software was eating the world, etc.
I should point out that a perceived shift in the general opinion of the overall group doesn't necessarily mean that a lot of individuals within that group had a shift in opinion.
I.e., it's probably affected by who bothers to voice their opinion, and how memorably, at different times.
Software is steal eating the world, just not for employees.
But we will integrate with tech more, as a society.
I wonder where brick and mortar stores will be in 20 years.
It depends on the perspective. Global offshoring/outsourcing does an upward pressure in the career curves of tech workers anywhere around the world except few countries.
Here's the thing about the average career in big tech: five years after you leave, almost no one will remember you were there. Most of your old team mates will leave for other other jobs. Your code will get refactored or rewritten. Docs will be superseded, then lost in some CMS migration. Before long, it will be as if you have never worked there.
I know it sounds preposterous, but ask anyone over the age of 55 or 60: except for folks who built their own companies or made truly exceptional contributions to their field, most will say that hobbies, friends, and family mattered a lot more.
So, there is this fundamental contradiction in this article: you can engineer a very neat career, but for most techies, the most useful goal is to make money fast in a way that doesn't drain your life energy. And most of the time, this means responding to opportunities, not sticking to your guns. For example, a lifetime IC job may be ultimately worth less than a management job that gets you to VP level in a decade. You don't need to dream about being a manager; you just need to be reasonably good at it.
I am 67, and equestria is mostly correct. I still get great satisfaction from my tech career, but sure, friends and family matter more. This story involves some work I did that did not bring me satisfaction.
I worked at my first consumer-oriented tech company, right after the dotcom crash. It was a really unexciting interlude in my career. I was given the job of writing the database and Java representation of credit/debit cards, and the related business logic. As often happens, the code grew over time, as requirements and card types were added. And it was finally time for a rewrite, and this code became a poster child for technical debt.
Startup activity resumed, and I left for a far more interesting startup.
Then, maybe 15 years later, I was retired, and doing consulting, and ran into a friend from the company, who told me that a new company doing something very similar, and was looking for help. I go in and talk to them, and discover that they actually licensed the software from my former company. Including my long-in-the-tooth credit/debit/xyz-card software. The code was still completely recognizable, disturbingly so. It lived on far past the point that it should have.
I decided to not take the consulting job. I really did not relish the idea of going back to this very forgettable and uninteresting code. But most importantly, I had just retired, and wanted to spend my summer on a lake, not keeping this code alive a bit longer.
I think that this speaks to an issue that's common across the economy, not simply isolated to tech: the career lifecycle. Specifically, the notion that there's an optimal amount of time and an optimal point in one's life (both for business and employee) for a worker to be in a given position, and that it's again optimal for him or her to not get there too early and to not stay too long.
E.g., tech suffers from the former, politics from the latter, and for both fields, the effect is a warping of the good that they could be doing for society. Society should be set up to encourage "correct" entries and exits and to discourage "incorrect" ones (with allowances, during the transition, to avoid having a "lost generation" that never gets to contribute).
Letting people hang on, with their outmoded ideas, into their 70s and 80s? Forcing breadwinners to take on maximum workplace responsibility at the same time that they are most able to contribute to raising their family or building and maintaining their community? There's something perverse about this set-up. To say nothing of the people forced to spin their wheels while the 10xers load their own plates with all the opportunities.
The first time I transitioned to a different type of job in tech was really tough but I had been pretty unhappy for a while. I wasn't pushed out--the opposite in fact--which made leaving tougher but subsequent events showed it was absolutely the right decision. The next time, my hand was pretty much forced by any clear-headed view of company financials which made it a lot easier to get on a very interesting (and better compensated) track through someone I had done some work for. At the end I wasn't especially happy but it was around the time I was planning to at least semi-retire anyway so the decision was straightforward again.
> but for most techies, the most useful goal is to make money fast in a way that doesn't drain your life energy. And most of the time, this means responding to opportunities, not sticking to your guns. For example, a lifetime IC job may be ultimately worth less than a management job that gets you to VP level in a decade.
If you can switch to management without draining your life energy, go for it? I hope you're a good manager.
Personally, all of my experiences managing people have been very draining.
Exactly. If making good money without taking on too much stress was the goal, my advice to everyone would be to become a senior/staff IC at a decent company and stay in that role till retirement.
I think the stress at senior/staff will be there no matter what but if you aren't especially suited for the management track, the stress of being a manager will be 10x. If you're suited, then I'd argue it will be 1x or maybe less.
I've attempted to follow the traditional/expected progression path of senior->management and had a horrible experience each time. Even though I was getting praised for the work,it was taking way more energy from me to the point of burning out much faster than anything at the IC level.
Draining but also rewarding? I think work is supposed to be hard and tiring - seems like most things of value are - but if it sucks your life force permanently that's not a good thing. I've found management is a bit of a muscle that can be worked and you increase your energy reserve with time & practice. Similar to being an IC I've found it's fear that drains the most, and building a perspective of "I don't know exactly how to do this (nobody really does) but we'll figure it out." has been immensly valuable.
I can see how it could be rewarding, but it wasn't for me. Since I don't need to do and don't enjoy it, and other people are better at it, I can leave it for someone else and be thankful my circumstances allow for that.
> I think work is supposed to be hard and tiring
I suppose that depends on what kind of work you are talking about and your perspective on what different kinds of work really are.
I wouldn't consider "The thing i do so me and my family don't starve" to have an inherent need to be hard or tiring.
Whereas "The thing i do to fill up my time with something i feel is meaningful" might have a hard and/or tiring component, but only if you personally feel like the hard/tiring part is required.
Things can be rewarding without being draining and value is subjective.
There's also a risk going to into management that you don't have as a much more indispensable developer. My friend is great developer who transitioned to management, then got laid off 2 years later when the company hired a bunch of Amazon layoff casualties who pushed out all the other management. All the developers under her were retained.
Is it more likely to happen as manager or dev? I suppose that is the important question, to which I don’t know the answer
From my experience it's manager and not close. Good devs are hard to find, especially devs who have built some stuff and can make fixes in 5 minutes that might take another dev a week to get up to speed.
I have to disagree with your premise.
The goal of many software engineers is to build software / systems they can be proud of. They love software and the machines it runs on.
Many people here have Arduino projects, 3D printers, home servers, and similar hobbies.
A few weeks ago, I was looking for compression algorithms for a particular use case and came across Brotli[0]. I was surprised to learn it was developed by Google. That realization hit me hard. Google used to be a hub for this kind of innovation. Projects like Brotli aren't built to maximize personal profit; they're driven by passion and a genuine love for software engineering.
It's clear that the industry is shifting from being geeky and nerdy to being more business and management focused.
[0] https://github.com/google/brotli
> The goal of many software engineers is to build software / systems they can be proud of.
Maybe for people <30. Priorities change very fast, as you age. I’ve met a good chunk of very talented engineers through work and other venues who acknowledged that they stopped caring after some point.
I'm in my early 30s and I am so close to hitting this point myself. I entered this field because I found the craft to be fascinating. I learned how beautiful the fields of computer science and programming truly are as well as the mathematics both were built upon.
I fundamentally believe a lot of my issues with our field is partly a skill issue on my part -- if I were talented enough, then I might be able to achieve what I truly desire: to work on projects where people care about quality and care about the problem that is trying to be solved.
However, I feel like my IC career is akin to an assembly-line worker. The people I have worked with do not care about quality nor programming/computer science at all. They just want to get things done as fast as possible while extracting as much money as they can.
So yes, I am about to stop caring. If companies want fast churning, low-quality software, then so be it. I'll just need to get over tying some part of my identity to my work.
I hear echoes of myself here. I made it a goal to learn enough about compilers because they were cool, and also to try to escape the thermocline of quality that I saw that was pervasive in industry. The hope was I could build skills in something that isn't easily commoditized. I was somewhat successful: I've worked on some nifty and difficult things, learning a lot of CS along the way.
However, the risk of burnout still exists, but this time, from overwork, because there is essentially an unbounded amount of work that could be done. Additionally, my career growth at my current place is probably stalled out unless I want to do substantially less tech work. This occurs because they have a lot of people who've amassed a lot of specialized expertise, so technical skill is commonplace.
Ultimately, I arrived in a spot in my career that isn't terribly different from most people, despite the amount of work and time put into trying to break away from that. I don't regret it, but there is a sense of wondering whether it was really worth it if my progression, pay, and everything else follows the same age-gated gradient that is prevalent in industry.
>> Maybe for people <30. Priorities change very fast, as you age.
This.
I read here on HN some time ago an article stating that teenager-ish people crave to find "meaning" in work due to being what in essence can be described as emotionally retarded (although intellectually normal). This all changes fast as they age and/or have kids or other inevitable live event that manages to pull their head out of their ass.
Basically Mark Twain's "When I was 17, my father was so stoopid" remark.
I think it's more to do with the fact that a teenager wants to break free from their family and start working as an adult. They've never worked before in a "career" (most of them). So it's new and exciting.
Then once they reach about 30 they realize family is what mattered the most, work is just a means to an end most of the time and it's really hard to make your "mark" on the world. Why not make your mark in a smaller way that's more guaranteed? By being there for family and friends
45 here, happily married with kids and yet I love writing software more than ever.
> It's clear that the industry is shifting from being geeky and nerdy to being more business and management focused.
I've heard this same complaint for the last 30 years, probably starting with this - Bret Hart helps you debug a null pointer dereference: https://www.youtube.com/watch?v=HSmKiws-4NU
Just because you've heard it for 30 years doesn't mean it's not still true. Some things move at a glacial pace, and I see it too.
> Projects like Brotli aren't built to maximize personal profit;
In the case of Google, they very much are driven by profit. For a small company, reducing your payload size or decompression time by 0.01% may be senseless, but at their scale the benefit will greatly outweigh the costs.
In this case, GP has it very much right. Brotli was developed by people, not just faceless Googlers. Jyrki, who led the project, is as passionate an engineer as you're likely to meet. In this case, being able to pursue that passion happened to align well with Google's business interests, as it is indeed the case that improvements to compression have obvious benefits at scale when bandwidth and storage cost real money. But someone still has to push the initiative, and it's not as easy as you might think.
Disclosure: have collaborated with Jyrki and the compression team, including WOFF2 font compression, an early application of Brotli.
> Brotli was developed by people
And this type of work was only possible because someone provided resources because they were expecting some type of payoff.
Let's stop romanticizing the past. Brotli's first release is from 2015. More than 10 years after Google's IPO. To claim that this type of project used to indicate that companies were more geeky and nerdy is completely asinine.
This argument assumes that code is an ends not a mean, which is false. The value you deliver is not your code, it’s the enablement of business functions. Let’s say you launch a new product that gains traction. Sure, in 5 years your code may be refactored out of existence. But the people doing the refactoring only have jobs because of the value you delivered when launching the initial product. That is your lasting contribution, not the lines of code you wrote.
> the most useful goal is to make money fast in a way that doesn't drain your life energy
There's a couple issues with your assertion. Even if you go the VP route, people rarely make VP in under, say, seven years, and usually more like twenty years, without exceptional luck like getting in on the ground floor of a rocket ship. If you don't like the managerial path then you'll burn out long before you get to VP. The second issue is that learning to control your expenses is far more powerful than earning more money. I promise you, no matter how big the salary is, there are people drowning in debt despite of it.
Hobbies, friends, family - none of these should require outsize financial outlay. Doing what you love, building your community, and living below your means is a much more powerful strategy for lifelong happiness and fulfillment, and also much more likely to succeed than some years-long "sprint" to a job you can barely tolerate.
Ten years ago, while a junior engineer at a FAANG, I made a tiny change to one of the most popular pieces of software in the world. It's still executed billions of time per day, and I'm never quite sure if I should be proud or a bit sad that the sheer number of CPU cycles spent on this almost certainly vastly outweighs everything else I've ever done in my career combined.
I don't find that to be true. I remember many of my co-workers... some fondly, some not, but they are remembered. They added as much flavor to my life as my family and friends, if not more, because we spent more hours together. Their work influenced mine and I learned from them. And their insights helped direct which directions we took the projects.
Now, did our presence impact the company? Did our code survive? Or documentation? Do people who work there today have any idea we ever existed? No, perhaps not. But really... who cares? The relationships we have with people in our lives matter, as do the impacts we have on each other, regardless of what our impact was on some rando corporation I earned a check from some number of years ago.
One of the constants in this field is the people; I've continued to work with the same individuals in various environments and configurations for decades - often intentionally.
> the most useful goal is to make money fast in a way that doesn't drain your life energy. And most of the time, this means responding to opportunities, not sticking to your guns
This is a tightrope I think many people wind up struggling with—it’s easy to slip into doing something that pays well but does drain your energy, then struggle to wind things back once you’re used to the increased income.
To me this seems to make a strong case for focusing more on relationships at work with people and less on work products. I still remember people I worked with 10+ years ago though I have no idea if the code they wrote then is still in production.
Very true. I saw comments in the code base where I work from someone that had worked there 3 years prior. Most of the people I asked could barely remember the person.
Yep -- this is something I wish I understood earlier on: burn hard, make as much as you can, then do what you _really_ want once you have enough money.
But when do you have "enough" money? There are many traps here.
With lifestyle creep, mortgages or kids' educations to pay for, the sum that would have been "enough" in your twenties isn't in your forties.
Many people work hard for decades and drop dead of a heart attack the first day after their retire.
Others retire too early and find out the hard way that they did not, in fact, have enough money.
Some people get both right and still find themselves bored or spiraling unhealthily (drinking to much etc).
you have enough money when you can comfortably live taking out 4% of your invested savings. math always checks out for this.
also I know one family who retired early, realized they will run out of money and instead of going back to work moved to costa rica :)
Even in small tech. I worked for an agency in the aughts and we would put up websites at roughly the pace of 1 a week. In my time there I'd guess I'd personally built a little over 100 websites and developed our internal framework for us to make doing so easier.
Every couple years since, I've gotten a bug in my butt and investigated how many sites still had pieces I'd clearly worked on. On this most recent occasion, I could no longer find anything. They've changed over to some open source CMS and I was unable to find anything I had built.
It's been 12 years in there since I left, but as far as I can see on the front side everything I'd written is gone. It's a strange feeling, like 5 years of my life just evaporated.
The code may be gone but not the impact.
A gas station sells gas that is gone within weeks. But someone fills their car, and drives to Mountain View and gets a job that changes your life.
Helping a business grow by 10% more each year because they were an early adopter to websites is something you impacted, even if your code isn’t there to remind people why.
“All we are is dust in the wind.” (Kansas and Ecclesiastes)
That feels true, but a single gas station disappears and people fill up somewhere else.
The world isn’t a static place. The impact is often closer to saving X thousands of people a few seconds than anything more meaningful. Perhaps the indirect result is someone finds the love of their life but it could just as easily be a life changing STD or getting run over and impacting many people means many such indirect changes both positive and negative.
I think “a cloud never dies” is more apt for this sentiment
I left a project in 2003. I can still hit their web login page, and I still see something specific in the URL I put there. I've no doubt they've upgraded some stuff behind the scenes, but they've likely not done huge overhaul, otherwise they'd have simply redone the auth process to whatever an upgraded system uses. They did change some graphics on the login page, and added a google tag thing, and converted some styles to css.
Very odd to look at it and know that I'm probably one of 2 or 3 people who know why that specific code is there, and also to know that the base of this is still running.
>It's a strange feeling, like 5 years of my life just evaporated.
To quote Roy Batty, "All those moments will be lost in time, like tears in rain."
If there's anything I've noticed in this industry, it's that abstractions tend to outlive their origins. For instance, back in the 80s the Unix systems my workplace used (and subsequently, many of the applications they ran) had an 8 character max username length, and although those old Unix boxes (and their vendors) are long gone, we're still given 8 character usernames since nobody wants to find out the hard way that there still are some applications that depend on an 8 character max or which truncate longer usernames to 8 characters.
If you want to make a lasting impact on an industry but you weren't able to get in on the ground floor, your best bet is to get into advanced R&D, whether at a major hardware company or in academia. Anywhere else and your knowledge will either be wasted because nobody cares or it will be siloed off because the company will never open-source the tech you pioneered (and someone else will likely take the credit for it later on when they create an open-source equivalent).
Given how much of one’s life time is taken up by working, the highest priority besides making ends meet should be to do something that fills you with purpose and is rewarding in a non-monetary sense. “Making money fast” isn’t that for most people, unless you shoot for retiring very early, which is quite difficult to achieve.
> for most techies, the most useful goal is to make money fast in a way that doesn't drain your life energy
Is it so insane to think that it is possible to enjoy your job? I feel that this treatment of your job as a toxic thing that must be handled with safety gloves from a distance may contribute more to the "drain[ing] of life energy" than the actual job itself.
Maybe I am wrong about this, but being a VP is exactly the kind of things that sound like draining the life energy out of someone. VPs all sound completely formatted in a way that only happen if you are under an immense pressure and the only way out is through that very tight exit, which leaves you nearly formatted.
For my previous job some stuff is public, and I can see it's still being used as it gets commits. I left about five and a half years ago. For the non-public stuff I wrote a lot of the foundational code, and I'd be surprised if all of that that been replaced.
The best of all worlds is when you can work with real friends with on cool new stuff. I had a job like that for seven years. I also had enough experience by that point to know I was in a rare situation, and to cherish it while it lasted.
> For example, a lifetime IC job may be ultimately worth less than a management job that gets you to VP level in a decade
How are you positive that you can get to VP level in a decade as a manager? That doesn't sound easy. Just by looking at the number of managers and number of VP in my company it would seemed that around ~2% would eventually become VP if the ratio hold, that's an incredible standard for "reasonably good". Doubly so if you are not even starting from the same track.
There's no guarantee your code will be rewritten or refactored. I have code written over 15 years ago that I know is still in production because it is stable and core to the application. I suppose one day it probably will be replaced but I'm pretty satisfied with that piece of work and found it to be, if anything, more life affirming than draining.
You can have your cake and eat it, too: if your work is satisfying and seeing people use the things you built gives you joy, you can make good money doing something you life without optimizing your entire life solely around ladder climbing or bigger paychecks.
yeah, if anything it's dangerous to assume that your code will get thrown away soon-ish.
as an extreme example I'm aware of, the core AWS infrastructure is still heavily dependent on Perl scripts mashed together 15+ years ago.
> core AWS infrastructure is still heavily dependent on Perl scripts mashed together 15+ years ago
What part of the infrastructure? The control-plane logic that triggers when the dashboard/CLI/CloudFormation request modifications to resources?
I never worked with it directly so this may not be totally accurate, but IIRC a lot of the fundamental networking code for managing data centers -- DNS, traffic routing, etc -- was legacy Perl scripts. While I was there, at least one major us-east-1 outage was directly linked to a problem with one of these scripts.
The problem with that is that it drains away your life energy in your late 20s and throughout your 30s, and in fact it's not only about draining one's energy, let's say that would be fine up to a point, but it drains away your purpose in life, and, in the end, your will to live. I refuse to believe that there are people whose purpose in life is to be a manager/VP, and, if they are, they might as well be walking corpses for all I know.
> I refuse to believe that there are people whose purpose in life is to be be a manager/VP, and, if they are, they might as well be walking corpses for all I know.
You could say the same thing about ICs though -- "I refuse to believe there are people whose purpose in life is to spend 5 days a week for 3 years building an enterprise line-of-business app to automate an obscure legacy business process that will be used by 10 people in total, and all 10 of those people will complain about the new app and wish they could go back to doing things the old way"
And as VP you can make a ton of money and spend it wisely, make a difference to your extended family or even a community you live.
That is a real meaning and sense of purpose for your earned money!
The very fact of calling "computer programmers" as "ICs" is part of this syndrome, I'm not sure exactly when it started showing up, I'd say it was popularised by FAANGs, so maybe 2015-2016-ish?
ICs aren't just computer programmers, they're designers, sales, marketing, customer support, etc. It's just an easier term for people who aren't managers than "not a manager".
Is IC offensive? I’ve never considered it to be. “Resources”, on the other hand, feels very offensive.
Well, taken at face value, it is a bit of an oxymoron. To contribute is to be part of a group; by definition, a contributor can't be wholly independent, because they're adding to a corpus, not producing it by themselves.
Oh, I take it the other way. To me it implies that management doesn’t contribute anything on their own, which is kind of true but also kind of a funny phrasing.
It stands for Individual Contributor, not Independent Contributor.
I don't read it negatively, but to play devil's advocate here... Managers are also individuals who are contributing to the group corpus. They just do it by interfacing with people instead of code.
Though, that's just semantics on the naming. IC just means not having direct reports.
True. Who is not an individual contributor? I find the term meaningless.
I've heard the term (or "individual contributor") since at least the first dotcom boom in the late 90s.
It's been in use in engineering for decades now. My father was familiar with the term in his career, and he's pre-boomer.
I've noticed that the successful ones have exceptional self discipline, part of which is not letting it affect your life as a person. Also, from their body language as observed through office windows and meeting rooms, they're spending a lot of their time socializing.
The only way I know how to deal with this is FIRE. Investing as much as possible and working towards early retirement or semi-retirement so that you can at least live a good chunk of your life.
The world we live in still sucks away the best years of your life but at least you don't have to wait until your 60s to live the life you want. You can also work on side projects in your spare time that will hopefully accelerate this process.
This should be doable on a tech salary.
> The only way I know how to deal with this is FIRE. Investing as much as possible and working towards early retirement
I retired at 50 and "the dream" of FIRE is almost like someone else's idea of an ideal goal and I'm not that satisfied with it - perhaps because I'm out of sync with my peers (I have gained some retired 65+ friends). I had planned to enjoy investing however I find investing soulless and unsatisfying even though I'm doing well at it, so my life plan needs to change. My hobbies remain hobbies - they are not fulltime.
> The world we live in still sucks away the best years of your life
Some of the most satisfied people I know work in plain jobs.
I could found a startup but that's just creating a job for myself and the benefits of many many millions don't seem like they'd improve my life enough.
> however I find investing soulless and unsatisfying even though I'm doing well at it
Agreed, but how do you know you are doing well at it? Who hasn’t? Stock market only goes up and has been fueled by low interest rates for almost 2 decades.
>you don't have to wait until your 60s to live the life you want
But, at least at some point in your life, doing work within a company may provide that life. At some point, you're done. And that point may vary. But many people wouldn't really love (or at least benefit from) a bunch of money dropped in their lap when they graduated from college.
I can 100% tell you it will not provide that life to a lot of people. I'm happy for you if it does but others like myself would rather kill themselves than work a 9-5 until they're 60.
"others like myself would rather kill themselves than work a 9-5 until they're 60". If its in a corporate hell-hole, I might at times feel like that too. However, not all 9-5s are equal :) Public sector such as govt or academia, or other non-profit, can be fulfilling and not soul-sucking. Or, at some point switch to something only slightly related to tech, such as teaching. People talk about "full fat" FIRE, but thats unrealistic and/or requires some years of miserable sacrifice for most people (being rich before you start, or getting randomly lucky with stocks, doesn't count IMHO). They also talk of "Barista FIRE" - i:e you can't totally retire but can work a supposedly low-stress job (personally, not convinced by it, baristas can still feel "oppressed" at work) . What about the middle road... which is, live frugally (which helps the planet too), over-pay mortgage and avoid other debts, with such an attitude hopefully most techies would by their 40s be able to work in a job with a moderate professional salary, perhaps arguably underpaid for what they do, but, if that's what necessary to be fulfilled at work and not feel like killing oneself, then so be it? ;)
And a lot of those people would not have been in a position to start their own companies--much less succeed at it.
Have a big trust fund? Sure. If it were from Day 1, depending on the circumstances, 9-5 would have been ehh. But not sure how directed I would have been absent strong parental direction.
I have no idea what you're trying to say.
People need to have income in some way, shape, or form. They can earn it themselves whether by working for someone or by being an entrepreneur in some fashion. Or they they can be given it by family.
Your argument, while valid, also kind of misses the point of the original post: to know where your career ends, you also have to know what the general trajectory looks like. Basically, you cannot "coast" ever upward "naturally" anymore, because we've learned that's a bad concept (hence the term "failing up").
We pressure people into management roles who have no reason being there other than "that's where more money is" or "that's how you create change". If someone's "end state" is a highly competent and flexible IC, then why isn't there more money for them to continue succeeding at that role as compared to an ineffective manager? For all the talk that tech is a meritocracy, it obviously isn't, otherwise we'd be rewarding the best talent without forcing them into bad roles or hollow titles.
Motivations aren't restricted to money alone, either, as we've seen post-pandemic with the WFH-RTO conflicts. A plurality of workers have realized their time is more valuable than their work, and are refusing to take chump change for multi-hour commutes from affordable suburbs just because their employer is arbitrarily demanding butts-in-seats in a pricey city. Others want their employers to be more involved in politics, or at least acknowledge that choosing to be a for-profit business is in fact a political statement in and of itself; hiding behind faux-neutrality in times of crisis isn't sufficient response anymore. The times are a changing, and the workforce is increasingly making its frustrations known.
Which brings me to your last paragraph:
> ...for most techies, the most useful goal is to make money fast in a way that doesn't drain your life energy.
I would like to proudly stand up as one of those not in that "most techies" crowd. I do this work because it comes easy to me, is incredibly interesting, and allows me to work in infrastructure in a way that isn't building roads or laying pipe. I identified my career ending way back in High School: acting as the jack-of-all-trades IT guy for the school or district, grey hair and hoarse voice, gradually nerd-sniping the kids who, like I was, are bored out of their skulls and looking for a challenge. The money certainly helps (even if it's not nearly enough to buy a home close to the office), but my career begins and ends in ultimately the same place.
And that's the point of the post: identifying where your career ends, and the arc it takes to get there. It's why I'm doing the leadership courses and trying to beat a new path upward in the corporate world, one where highly-competent ICs who are also good leaders are recognized as such and put into long-term positions within an organization, to weather the storm of cyclic leaders and fickle shareholders, and ultimately build a stronger, successful, and sustainable entity as a result. I need those years/decades of leadership and money to reach that position where I have a paid-off home, decent retirement savings, and can finally dedicate my remaining time and talent toward building a better future for the next-generation of people.
> Your code will get refactored or rewritten. Docs will be superseded, then lost in some CMS migration. Before long, it will be as if you have never worked there.
The exception is if you build a fundamental component of the system, and that component is so unique in what it does that nobody who comes after you will even consider the idea of ground-up reimplementing it, but instead just has to immerse themselves into your mindset, trust your docs, etc, whenever they're maintaining that component, forever.
---
The bad/painful version of this, is when the component relies on unique hardware (e.g. a mainframe's native IO-acceleration capabilities), and was designed by someone who was immersed in that ecosystem and understood how to write code to take advantage of it. So the code is incredibly non-portable, written in terms of the low-level abstractions of the hardware, that nobody else in the company will ever understand to the same level the original programmer did. This is e.g. flight booking.
You should hope to never encounter these, since they make the rest of your service that has to interact with this thing into a tar pit of low momentum, from your lack of ability to effect change on this component.
--
There is a good version of this, too, though: when the component relies on unique concepts and math (say, doing static analysis by generating constraint statements and solving/simplifying them using a prover) that are portable, and could in theory be reimplemented in a new codebase if desired... but which were literally invented by the programmer in the process of implementing the code, at the climax of months of lateral thinking about how to solve the problem. This is an engineering True Dweomer.
There's usually nothing wrong with codebases containing True Dweomer code; they're not any less maintainable than usual. And they solve a problem that isn't solvable with simpler solutions — that's why such a weird solution was arrived at in the first place. So they usually tend to stick around.
But everyone who arrives at the company will nevertheless be slightly afraid of touching the True Dweomer code. They don't understand it, even though they know they could understand it given enough time (and prerequisite textbook reading.) Unlike mainframe code, people might look fondly on the code, looking for opportunities to be assigned to a project that requires that they come to grips with it... but the project usually ticks along by itself, not requiring much maintenance.
(What you'll actually hope for, is that whoever writes the True Dweomer code requests to lift it out, out of whatever project it's a part of, out of the company itself, into an open-source project. Because that way, that person who does understand it, can keep maintaining it, even after they leave.)
[dead]
> almost no one will remember
And that is true for all memory, I suppose. There is none. It's constant communication, down to the quantum level, a constant vortex of information, and if the vortex stops, all memory is gone.
"What do you want to be?" is a question we have all constantly been asked since middle school by parents, teachers, career counsellors, professors, recruiters, mentors, managers, HR and lots of other well meaning souls. My answer is the same at 40 as it was at 14 – I don't know. And you know what? I've been fine.
I have worked at some great companies, and some not so great ones. A couple FAANGs as well as a 20-person startup and everything in between. I have been part of some fantastic product teams and a fair number of disasters. I have been a code monkey, an architect, a tech lead, a staff engineer, a manager, a director...and now know that none of these fancy titles really mean anything. And throughout all this I have managed to put a decent chunk of money in the bank.
Most would consider my career to be pretty successful. I like to say that I don't really have a career but simply jump from one project to the next and one opportunity to the next depending on how the wind is blowing. Never once have I had any semblance of a "plan" or a "goal". And despite what all the authority figures in your life will tell you, that is a perfectly fine way to live and be happy.
> Never once have I had any semblance of a "plan" or a "goal". And despite what all the authority figures in your life will tell you, that is a perfectly fine way to live and be happy
That's the ideal career for sure, but how common is it?
It would be great if I knew I could bumble along and become a staff eng/manager/director without any sort of plan or goal. I don't believe that's a common experience though, and it seems even more unlikely for people who are at the start of their careers today (Like me).
I think he covers this early on: if you don't aspire for anything more, congrats. Incidentally I'm in the same boat. Literally told my manager "nope, not really interested in pursuing a promotion. Just want to be paid fairly and continue working at this level." They actually appreciated having one less engineer that they have to try to cultivate a career for.
Not following a strict career plan does not mean you aren't aspiring for growth. In fact it may be the exact opposite. Being loyal and jumping through hoops for your current team/manager/company in the hopes of a promotion may mean that you are ignoring other opportunities out there that may be a much better fit for you. Your company's career ladder is designed to get you to stay there for as long as possible while minimizing compensation. It does not prioritize your personal growth over the company's. Especially in today's world, the people most likely to get ahead in life are ones who stay flexible and ready to jump on new opportunities as they arise.
I'm happy to hear this. Cheers.
Have you had a common theme for these projects you navigated?
A friend of mine, who is quite successful in his occupation, told me that his motto is: "Always do the next thing."
Our culture possesses this weird belief, that people always need to be transformed. This cuts across all ideologies, ranging from religion to Marxism and corporate culture. I think simply declaring "bullshit" to that belief can lead to a much happier life.
Maybe I am a pessimist but I really don't believe you can plan for 20y in the future especially in the tech sector. People fail to realize that we live in a world that changes not in a linear fashion but rather exponential. For all we know in 10y we will only need 1/5 of the coders we have and IC won't be viable, who knows.
IMO, there's no such thing as a career in tech, outside of maybe FAANGs (or whatever they're called now). It's just a series of jobs until accumulated wealth, ageism, or disability ends it.
Ugh, your dagger of truth cuts me so deep...but truthfully so. :-)
I'm beginning to feel ageism big time nowadays. And, while i'm thankful that i don't have any impact from disability (yet?!) from employers, the wealth accumulation is not enough to where i'd be comfy just yet. I wonder if "unicorns" outside of FAANGs nowadays are simply trying to accumulate enough wealth from conventional corporate IT jobs to have a comfy retirement like folks from the 60s/70s/80s/90s eras have had? ;-)
The public sector is probably a decent place for a well defined career.
This is a good point. There have a bunch of excellent HN posts about the UK gov technical service. It looks like a good place to work, and, since it is civil service, then likely a good career. I think a lot of HN overlooks working in light & heavy industry. Like: Who is writing software that runs power plants and turbines and ABS breaking systems? There are lots and lots of devs in light and heavy industry. And those companies are old and stable.
This article assumes a lot more self-determinism than is available in practice to most people.
Beyond that many of us have been running on fumes for years, I can't lose ten extra hours every week away from seeing my family, so I can up-skill for a new variation on the same career with ultimately the same bull.
If your goal is to get a cushy high paying job you will need to make sacrifices, otherwise that job would no longer be cushy and high paying. Some sacrifice their 20s and grind an education, career, and have no kids or spouse. Others put a large burden on their spouse to retrain, you have to weigh the short term toil versus the amortized improvements over your career. And it is important to remember that luck plays a part as well. Some get lucky on their first go around and others never get luck in life. The only thing you can do is maximize the number chances you have for good luck.
It is important to live well within your means. Having an extra margin makes job and life changes much easier and lower risk. Many people’s expenses grow to their income and they paint themself into a financial corner. Unfortunately once you are in that spot it becomes much more difficult to get out, and larger sacrifices need to be made.
There are always options, and we have more opportunities and “stuff” than any other generation which has lived. Our stuff and jobs should serve us and not the other way around.
I have sacrificed my relationships with my friends and family for two decades and it hasn't helped advance my career beyond a normal, lowly IC.
I don't want to manage people. I would be the exact kind of manager that destroys my own will to live. A senior role would be nice, but because I don't have any social skills (all that time I spent learning all of the technical knowledge I have now had unforeseen consequences, specifically, my social skills and emotional restraint are significantly stunted.)
Stop using the argument that people need to make sacrifices. It's not true.
Well that’s just assuming alternative paths would have been much better than current situation. Looking at how life played out for many of my classmates even my lowly IC job looks quite good.
This is the point I was going to make as well. I think the article is written for high-agency people, which are rare in my experience, even in tech.
Also related: The Peter Principle: people get promoted to their level of incompetence. We think we want something but then realize the job is actually harder than we thought, so we do a bad job (or burn out).
So to the excellent points in the article I would add an introspection about the level we want to achieve and how to continue working at that level, assuming we don't hate the job.
What if it’s an article for self-determined people ?
Or meant to plant a seed of thought in someone’s mind ?
> I can’t lose ten extra hours every week away from seeing my family
I hope you find the time to make it work for you.
And , I don’t want to assume but so have found “I can’t” attitudes don’t work for effecting change in life.
Maybe work on that aspect of your personality.
> And , I don’t want to assume but so have found “I can’t” attitudes don’t work for effecting change in life.
I personally subscribe to framing “I can’t” as “I will not”. Then you can view such things as the conscious choices they are. You can also avoid feeling forced to do things just because they are expected of you.
E.g. “I can’t give up time with my kids” vs “I will not give up time with my kids”.
"Here, drink this Flavor Aid. If you don't like it, it's a personality defect in you."
What kind of advice would have been better?
It's not true that in all companies you have to chose between tech and management. It's true in some companies. But at many companies lead and director roles are very hands on.
At Stream a lead is 80% technical, a director roughly 50% sometimes more. And even VPs and up are still somewhat technical.
I think the idea of management without technical excellence track is just misguided. Small teams, technical excellence, and leaders who can do the work is the right way.
I agree that Managers/Directors should have a deep technical experience but having them contribute code to the day to day development is not a good situation for anyone (especially the companay).
There are some different aspects to this; The director will have many other responsibilities and may not be able to provide to provide the research/expertise required to produce a good code solution to the issue at hand and integrated with the rest of the system.
The rest of the project team may be delayed with waiting for the directors code and may well find it difficult to co-ordinate with the directors level of knowledge (which is perhaps out of date). In general, criticising the director for delay or bad code is not likely to be a career-enhancing path.
In small company/start-ups, this a common condition that does need to be remedied. Directors/managers have significant responsibilities that needs to come first rather than feed their own ego/desires. Hire good people and direct them to scale the business, your job is different now and you need all your skill/time/resources to do it well.
In short, personally been there a number of times and it wasn't good for anyone. But we struggled on.
> It's not true that in all companies you have to chose between tech and management. It's true in some companies. But at many companies lead and director roles are very hands on.
I‘ve seen bad companies where it is true, but in good companies typically not true. Look for example Peter Norvig, 100% hands on technical type, but in a high management position.
These types of ultra-high IC positions tend to be gate-kept by companies, often requiring a lot of prestige and experience.
It's a nice gesture that they exist, but we're not all Rob Pike or Peter Norvig.
Yeah, top-level IC positions are much harder to acquire than their equivalent management positions and tend to require some level of public claim to fame.
there is a difference between "technical" and "writing code every day".
c-levels, VPs, and directors can be very technical, but rarely write code. team leads definitely do, though it may be only 3 days a week, and rest is org/planning/pr reviews.
only at small companies does the CTO write code. our cto has written plenty of deep code back in the day that enabled the business to scale to its current size.
> management without technical excellence track is just misguided
It's different technical excellence.
What's not given proper weight is that it's different technical excellence. Roles seen as "more management" demand system-level understanding and technical knowledge. And a technical knowledge that includes what many see as not technical such as awareness of people or finance dynamics. They can, should be seen as technical aspects. A more senior, "more management" role has different levers to use to make projects come through. And these are different higher level projects. A more senior role is also free to juggle reports who specialize in this or that. If you hate or you are bad at task scheduling, have someone do that for you. If you are not great at writing speeches, etc, etc.
Among the ways you can prepare for that: (1) find at least one mentor (someone at least two steps more senior who can guide you on what to think about and on how things work. If the people two steps up in your company are bros... your mentors don't have to be in your same company.) (2) Consider what's missing to your skillset - and that's not planning software but maybe it is.
There is also a difference between being a capital-L Leader, and leadership. Healthy companies have space for technical leadership that is different from being on the management track to being CEO.
Healthy companies may have CEO with domain specific knowledge of the field. Airbus, for example. Unhealthy companies may have capital-L Leaders living off in capital-L Lalastocklandia who have not done so well by various measurements, such as their planes falling from the sky, or stranded lowearthorbitnauts. Boeing, for example.
I never intended to have a career as a programmer. I planned to work for two years, save a bit of money, and get a PhD in Chemistry. Forty years later I retired as a programmer. Every step was something new, I had 15 different employers (plus myself for 9 years starting two little companies). There was never a plan beyond finding a better/different/less irritating job, and constantly improving what I could do. I never gave any thought to what I wanted to end my career on. It actually ended entirely as my decision, I still was at the top of my ability, and my employer was happy to pay me, but I was tired of working.
While planning might work for some people, having a more short term view can work for others. The only thing I could ever control was what I was able to do, and when I was ready to move on. There are many optimizations available to succeed in life; not all are obvious.
> While planning might work for some people, having a more short term view can work for others
One thing I noticed is that what I valued in my 20s wasn't what I valued in my 30s and 40s. It's difficult to anticipate who you will be in a few years from now. It may change drastically. Keep that in mind when planning!
Agree with the above. Seems to me, the many of us "going with the flow" without a thorough long-term plan, are perhaps applying Agile development principles to our "career" (aka series of jobs) , whereas the author is taking the nowadays-apparently-discredited Waterfall approach , where supposedly you can know where you're going to be at date X. Which of course we now know doesn't actually work out in software. And as for careers, even more so. One cannot predict the overall economy, or who one might marry , how many kids one might have, whether everyone is healthy in extended family, what one might feel like doing to be happy later on etc ;)
Could you describe how each job hop was less annoying than the less?
I know it’s a big ask.
I am just insanely curious to know.
I feel the discussion needs to be opened up to other ends of careers.
My favorite career end that I'm naturally working towards to is the ability to jop hob to different roles without having prior experience. One way to do that is to be able to show in an interview that you have transferable skills and learn crazy fast. Another facet of that is that you need to identify companies that are open to this sort of thing.
Another career end is to become rich and not work. It's not achievable for everyone of course. But it is a type of career end.
Other career ends that one becomes disabled and live on disability checks or welfare. To me, it seems that this is a career end that people want to avoid.
I feel digital nomads aren't really represented in this career end. You could put it under independence, but the characterization of independence in this blog post was quite narrow which is why I feel the need to state it explicitly. Some people are in their career end when they can just work remote 4 days and have a decent salary.
There are many more career ends, what could you come up with?
The more capable you are, the more experience and ability you will have with specialized skills which will result in people that don't have those capabilities to think that your skills are not transferable.
If you find a magic workaround to that, please let us know.
> ...My favorite career end that I'm naturally working towards to is the ability to jop hob to different roles without having prior experience. One way to do that is to be able to show in an interview that you have transferable skills and learn crazy fast. Another facet of that is that you need to identify companies that are open to this sort of thing...
Maybe its been the job hunting climate of the most recent decade or so...but I no longer see opportunities for jobs where employers are willing to take on someone who might be awesomely enthusiastic, and well-rounded, but lack a very super-specific set of skills. This also goes back to those ridiculous job descriptions where an employer __"requires"__ a candidate to have, let's say, 10 years of a specific experience - even though said skill might have only existed for slightly over 10 years.
I wish i could do something like that: sort of jump to a different role without prior experience (or at least very little experience)....For me it would be more of an intellectual fulfillment, and wanting to learn more, etc...And, for any employer who would give me that chance, i'd legit give them 110%! But, i'm not holding my breath for that.
As someone who has fallen into this trap myself, I feel like many people tend to just go with the flow and then end up in a place they don't like doing work they don't enjoy, with no idea how to get out. This has inspired me to approach my manager about possibly stepping down from my role into a more IC role, or possibly swapping jobs, as I realized a Senior IC is where I want to be
The end of my career is uncertain. My entire career has been uncertain. Not completely unplanned, but rather has progressed in ways I could never have predicted.
I had luck and opportunity to ride the cloud computing wave and it carried me into software development and distributed analytics systems, from a B.A degree in business. 20 years of lateral moves up to Sr. Level, but never outside of IC, yet.
I daydream about turning my DIY skills into some type of construction trades business while I am physically able. Or testing the waters with software consulting.
Manager role is not appealing working for someone else's company although just like construction trades, being an apprentice in that role is probably going to be the best way to learn it. I dread the meetings and politics and employee reviews. But if I really want to run my own business, at some my point I may need to be a manager on someone else's payroll. Even if just for a year.
Joke's on them. I have a job, not a career.
> Most managers are terrible.
A sweeping statement indeed, but it does reflect my experience too.
Perhaps it's my ingrained deference to authority - when I start a new position I tend to believe that my manager has my best interests at heart. This is a mistake and I now believe it's better to maintain a kind of defensive attitude and to always be assertive in establishing, and if necessary negotiating, the responsibilities and expectations of your role and your relationship with the manager.
This may not necessarily be a personal failing on their part, this may just be a consequence of the operational management system you both work within.
> A sweeping statement indeed, but it does reflect my experience too.
IMO - managers are terrible at the same rate as ICs. But the damage a terrible IC can do is limited in most companies because there's guardrails like automated testing, pull requests, no access to the production database, etc. At worst they end up being a big timesuck for other team members until they get let go.
A terrible manager will sink a project or team single-handedly, though.
There is no code-review process for management decisions. Management is essentially like writing code on the production server all the time. The stakes are maybe a little lower, it's a good bit harder to make disastrous mistakes, but there's no real roll-back or testing for if you're about to ruin your team.
But why isn’t there a code review process for management decisions?
What if code was how decisions were recorded ?
What if companies were programmable ?
The most obvious reason, in my mind, is that merely proposing a decision is enough to be a problem. Suggesting we're killing a project a dev has spent months on, or moving someone to another team, or saying we'll miss a major KPI, or not promoting someone aren't things you can have a public full-team review on. Just knowing the manager was considering it is enough to upset people.
If someone writes code that has an error in it, you maybe think a bit worse of them, but it's a learning opportunity and that's what the review is for. If your manager suggests a course of action that you deeply disagree with, that's hard for them to come back from.
But thats politics. Look at every railway, roadway, power station - always supported or opposed by various factions. We think it’s actually healthy for our society, so why is it bad on the scale of companies - some of whom have larger GDP than some countries
Having political discussions out in the open is - I hold as an axiom - a positive on balance.
This who are “upset” about things - well they are adults in a political society - they can understand the issues. Do they feel exposed / vulnerable ? Maybe there is a political solution to thinking you have two weeks notice and that’s all the protection
I think it’s worth having decisions openly debated - otherwise we are blessing an elite and frankly hoping they will get it right.
The survival rate of companies suggests they might not be
What if there were no hypothetical questions?
That is, you can ask hypothetical what ifs all you like, but unless you have a concrete plan for getting there, you're just writing fantasies.
And, management decisions get reviewed before implementation all the time. It's just not a code review, precisely because management decisions are not code.
Why aren't they code? Because people aren't computers. If you're going to treat them like they are computers, then I don't want to work in your company.
It's also that a lot of management "decisions" happen in the moment. Is how they phrase something in a meeting or a one on one. It's how they respond or ignore questions. It's how strongly the push for someone to be promoted.
They're decisions, but often not something you can have sitting for review for days ahead, even if it's only seen by senior management. I've had plenty of times management announced something I agreed with, but the way they explained it was so rancid I came out of it upset.
At the end of the day, management, and in general all human interactions, are a glimpse into who you are. It can go amazingly well, or disastrously poorly. You can try to be very careful and say what's needed, but tone and timing and phrasing will almost always give things away.
Look with a historical lens - democracy in USA. From the point of view of say Chartists in 1776 it is a good start, 80 years till slave males can vote, 80 years till women can vote and another forty till civil rights. In 1776 can we call that a “concrete plan”?
Or is the fantasy “votes for all” actually a plan?
Yeah we can have plans - get Zuckerberg to give up power and place it in the hands of employees? Maybe convert Meta to a co-operative?
But on the literacy point - at some point we ran everything with illiterate “managers” - but slowly developed organisations that use literacy. My, yes ok fantasy, is not only democracy but that everyone inna company is software literate and has access to (maybe not write access) the code base of the company.
So there is a concrete plan - a whole org test rig, a company that every IRL action has a virtual shadow, a codebase that directs this IRL actions day-to-day and everyone having access to the codebase and able to suggest / comment or even vote on pull requests.
Run the company through code - change the company through democratic politics
Just as a personal data point, most managers I had in my now 25-year career in tech were good.
They set clear goals and expectations, provided honest feedback, both positive and negative, and quickly jumped to help re-plan when things did not work out.
They were also asking what I am optimizing for (for me at different times it was more money; promotion; interesting problems to work on; time to explore other long-term products) and as far as I could tell worked with their managers to move me in that direction, sometimes successfully, sometimes not.
I did not assume any of my managers had my best interest in heart, but one of my first managers gave me some lessons on "how to manage your managers, myself included". It took a few iterations, but he convinced me that by far the #1 thing most managers want is for me to deliver things on time; not cut a few days off the project timeline. And if I learn to do that, they will advocate for my interests, shield me from corporate BS, etc.
Some specific advice from that manager was (in his words) "never promise something in 2 weeks unless you could demonstrate it today" and "do not sit quietly when you are given unrealistic timelines; counter with specific subtasks you see and how long you expect each will take". That general advice worked very well for me and helped build symbiosis with direct managers.
I did dislike a few managers, but those were generally good ICs stuck into a management role they did not like (or at least did not know how to do) and kept both sticking their fingers into what their team was doing and start timeline discussions with "it would take me one day to do this, I will give you two; go-build-this-now".
Again, just a personal data point; not claiming that most of the world works this way. I may have been just lucky.
> Some specific advice from that manager was (in his words) "never promise something in 2 weeks unless you could demonstrate it today" and "do not sit quietly when you are given unrealistic timelines; counter with specific subtasks you see and how long you expect each will take".
Thanks these are good advice.
> most managers I had in my now 25-year career in tech were good.
I didn't have tons of managers, but my experience as well. Of course, they have their own interest in mind, rather than mine, but in my case at least, our interests were more or less aligned (completing projects, not burning out or leaving the team, working on things that matter to the company, avoid conflicts...).
I think that’s largely due to the weird notion that engineers will eventually “upgrade” to management, as though one is the advanced version of the other.
There are whole degree programs dedicated to managing and organizing people, but we’re like, “nah, Joe’s a good programmer so we should talk him into stopping that so he can supervise people instead”.
Fact is, there’s little relation between the two. A person may happen to be good at both, but expertise in one does not imply adequacy in the other.
Not every programmer can be a good manager, but no non-programmer can be a good manager on a programming project.
This is objectively and demonstrably untrue. I’ve had very good non-technical managers. Part of the requirement is them knowing they’re non-technical so they can stay out of the way and concentrate on the PM bits, rather than micro-managing.
We train people in their technical role, but we (generally) don't train people to manage -- and years of poor experience don't count.
I'm not a manager, and I don't want to be. But I'm quite happy with the manager training that my employer puts people through before giving them direct reports.
One should always be negotiating expectations, though, even when one considers management to have our best interests in mind. And also remember that your manager is learning how to manage from you. You get to shape their experience of being a manager, and you get (to an extent) to guide them in how they grow as a manager.
OTOH, this can be a case of the "if everyone around you is a jerk, the jerk is really you" rule.
If you can't work well with any manager the common denominator is you. It's also the only thing you can change.
The difficulty is the small sample size. Most people won't have a ton of different managers in their career and you'll change over time and your role will change over time and want/need different things from your manager.
There's also a lot of selection bias. What many people point out in these threads is that the sort of people who desire to be in management, and the sort of skills selected for in managers often don't align to what more ICs would actually want out of their managers. Managers are often hired by other managers and not by the managed, so the skills that get you the job often aren't aligned to what would make them good to work for.
This. I’ve known many an engineer who thinks their manager is bad because they don’t do what this IC (who has never been a manager or knows that is happening at the company above them) would do. The kind of people who think Elon is a bad CEO. Results are what matters first and foremost in tech
An employee not knowing what's happening at the company above them is a fault of the manager. There are some things that need to be kept secret, but if it's not one of those things, secrets are not a good thing.
It’s not that straight forward. It’s not the ICs job to know everything that is happening nor is it their job to make decisions based on pass through data, especially not a junior/mid career engineer.
Transparency and keeping people informed, yes. Sharing a bunch of info and letting every IC make their own strategy and prioritization decisions, no.
People rise to their level of incompetence[1]. This simple principle explains most managers completely.
[1] https://en.wikipedia.org/wiki/Peter_principle
My first manager was really good so it came as quite a shock when the next one turned out to be a lying, conniving bastard. Given enough experience you get hardened to it. Of course it would be better if you didn't need to.
> it's better to maintain a kind of defensive attitude
As a manager/developer, I do sometimes see this attitude in some devs. I try very hard to help them find a different job where they are not working for me.
As a person whose done it all, independent stuff, senior ic stuff, management stuff, the main thing that makes management terrible is simply that most companies have no support for middle managers.
You are a good IC? Sure let's promote you to management, but in 95% of cases, we're not even going to pair you with anyone or have a senior manager help you understand, build and grow - we're going to throw you in the deep end and have you sink or swim.
This often ends up with stressed out people used to doing well now approaching an entirely new problem with slow feedback loops and entirely different protocols than before, and the amount of burned out shitty middle managers I see is off the charts.
Like the article, not fan of the title. I understand it's supposed to be catchy, but it is just not accurate. Planning for the next phase of your career would be better. Planning of the end of the career is a very valid topic, but it's a different one (planning for retirement).
Plans are worthless, but planning is everything.
It's not entirely clear that much of this field will look the same in five years, but still, I think doing the thinking and the planning for the sake of mapping out the route is important.
If only to inform you that no, you don't want any of those routes.
(I did this planning and ended up in academia/microbiology, as a product designer, for better or worse but it's been fun)
My wife asks me from time to time: "What do you need to learn now for the next five years of your career?"
It's a great question. It is also, I think, the right time frame, though one could argue for three years instead of five. Given the terrain I see now, I can plan for the next five years, and have those plans be mostly reasonable most of the time. Past that is harder.
I honestly have no idea what to even plan for the next couple of years and it's stressful
Plan for AI to be a tool that can help you, but not one that will replace you. Learn how to use it to help you; learn how far you can listen to it and how far you can't.
If you're in embedded systems, probably learn Rust.
If you're in Android apps, probably learn Kotlin.
If you're in web programming, I have no idea how to advise you, but there are others who can.
I have found that I can't actually plan with much certainty, and, quite often, the very worst thing that can happen, is that Everything Goes As Planned.
I have found utility in "overengineering" my life. Not just the tech I do, but in most things, and creating small, robust, high-Quality, and adaptable structures. Things that can be rearranged, and repurposed, when (not "if") the context/paradigm changes.
I started maxing out my retirement in 1990, and that's a good thing, because, in 2017, when I finally started looking for work, I was surprised (and disgusted) to find that no one wants to hire us olds. I wasn't planning to retire, but I wasn't consulted by Reality.
In my work, I have found utility in writing in modular fashion, and making every module as high-Quality as possible. I've had to toss quite a few, and had to do substantial refactoring on some, but, for the most part, they have served me very well, and continue to do so, to this day.
In a similar fashion, I try to address all sorts of corner cases in my code, to the point of being called obsessive by some colleagues - but it definitely helped a few times with really stubborn and obscure bugs.
An extra log line here or there, or an e-mail sent to the admin in weird situations, goes a long way - provided that you don't generate many false positives, because no one pays attention to a program that cries "binary wolf" too often.
It's always surprised me how many people are happy with somewhat sloppy work, doing just enough to solve a particular issue. Most of the time it doesn't even come from management pressure, it's just the way people work.
Perhaps there is something wrong with me but I always want to dot all the i's and cross all the t's.
> If you love what you’re doing now and don’t ever want to change jobs, great: you’ve reached the end of your career
Guess I'm there. I don't know how common my mindset is around here, but I have a relatively low stress, unexciting remote job in web dev. It's not glamorous or particularly interesting, but it pays well and offers the flexibility for me to travel a lot/spend time with loved ones and have extra mental energy for my hobbies. Well worth the tradeoff for me personally - I have no particular impetus to climb the corporate ladder when I already make six figures in a low cost of living area.
Yes, I do find that a lot of people get caught in whatever race they started running in the beginning of their careers and don't care to stop for a bit and try retrospecting/introspecting.
I recently took a break from work with the intention of working on some side projects and also thinking about what it is I like to do (somewhat along the lines mentioned in the article - do I want to stay on my current trajectory and try to hit senior IC, management etc). I am only about 6 years into my career, perhaps a bit early for a sabbatical but I felt this was the right time for it. I had a pretty good reputation in my job and I could have done the thinking while on the job, yet I felt I couldn't. I am helped by not having any financial concerns or other responsibilities.
I am not sure what I expect to gain from this though most people assume that either I must be starting my own business or chilling at home although neither is true. I took care to put some structure into it so I don't while away the time scrolling HN. I don't think I will get a sudden epiphany but feel if I put in some hours without any external constraints, something might happen. The worst that could happen is that I have to write off this time and go back to running the race in my IC track.
> Lao Tzu teaches: the best fighter is never angry. More important than the blow is knowing when to strike
Seems like a fake citation https://www.taoistic.com/fake-laotzu-quotes/fake-laotzu-quot...
The person (Denpok) who quotes it is a charlatan posing as a guru, which makes the fake citation fitting.
Yeah, the Lao Tzu I know advises people to be simple, like uncarved blocks of wood.
> You probably won’t get to choose what to work on, and you may not agree with all the decisions of the powers that be. In fact, it’s practically certain you won’t. After all, you know more about the subject matter than they do.
Wait a minute if the people most suited to make a decision are overridden by people less competent than them (they have to be most of the time, given the different focus of their career), that's kind of a problem, isn't it? Is there any way to avoid such structural failures?
Less competent in what? The people with decision-making power are supposed to be good at some combination of product innovation, product management, sales, marketing and accounting. ICs are only suited to making some decisions in the first two, and have next to zero expertise in the others.
I'm afraid "supposed to" is the operating word here.
In practice, the people who make the calls more often does not do so because they inherited a crap load of money, not because their own genius or hard work raised them to the top.
Does someone know how to find good IC coaches that can mentor a mid-level(ish) engineer 8+ YoE? I have issues with rejection and I am working on them.
I am a generalist, and I have been struggling with how to find opportunities myself by connecting to people 1:1 and discussing first hand the nature of the problem and whether I can help them with it. I imagine a coach help me typically with forming a coherent career statement and pointers on how to have these conversation.
I'm always happy to talk through career and engineering issues.
Hit me up, if you're interested: https://www.linkedin.com/in/neurohack/
I want to be able to work as a generalist who can learn most coding stacks and a wide range of experience in backend(ranking/recommendation) systems, data engineering and some early career full stack experience.
I prefer the journey. I don’t want to “be” independent, I want to “become” independent. The former is winning the lottery, the latter is a long and difficult path.
The mistake I see people make it _not_ ending their career out of narcissism, pride, ego, etc.
I am not a religious person but it is good to remember you will die. You should have some better stuff to put on your tombstone than your job title.
People aren't going to care who you were in 100 years and people aren't going to remember you in 1000 years. Your tombstone will crumble in the dirt.
Spend time with people you love, spend time with your family and friends. Find meaning without economic strings attached.
I highly recommend folks read Ecclesiastes, which opens with "Everything Is Meaningless". It's a philosophical book on what matters in life (and what doesn't).
Oh and by the way: you might die sooner than you think. It happens all the time. Are you spending time the way you want?
I like this authors frame of reference. Independence is definitely my goal.
I want to get to a point where I can start an independent EE consultancy, then slowly get more and more selective about my clientele, until I choose to stop working.
2022; previous discussion: https://news.ycombinator.com/item?id=30428602
I am curious about how he accidentally shut down a nuclear reactor.
On the contrary, it's those who can't write code that become managers. They're not even good enough to ascend to the truly parasitic executive class.
And those who can't manage people become managers of managers.
“Managing people is hard; much harder than programming. Computers just do what you tell them, whether that’s right or wrong (usually wrong). Anyone can get good at programming, if they’re willing to put in enough time and effort. I’m not sure anyone can get good at managing, and most don’t. Most managers are terrible.
That’s quite a sweeping statement, I know. (Prove me wrong, managers, prove me wrong.) But, really, would a car mechanic last long in the job if they couldn’t fit a tyre, or change a spark plug? Would a doctor succeed if they regularly amputated the wrong leg? We would hope not. But many managers are just as incompetent, in their own field, and yet they seem to get away with it.”
The fact that most managers are terrible doesn’t really prove managing is hard. in fact you could make a case it proves the opposite, the fact that most managers are terrible shows that management is easy, at least if we are talking about what it takes to keep your job.
FWIW I would agree with the point that being a good manager is hard but I don’t think this argument holds water.
Great article and thought provoking.
> and unlike your colleagues in management, you won’t spend all day in meetings.
The author will be surprised. In a bureaucratic company like Google, even an E6 can spend all their time having meetings and writing docs, to the point that they even get rusty at drawing boxes.
> If you want to reach this level, you’ll need to become a master of your chosen craft
One thing that worries me is that mastery also means specialization, and specialization is the most risky when there's a paradigm shift. My cope is to be specialized in a category. For instance, be a specialist in distributed systems instead of being a master of building Spring-boot services. That said, even that type of specialization is not immune to paradigm shift. Case in point, scaling out a service is really not that hard these days compared to 10 years ago.
What a useful, well written article. Thanks for sharing.
I have advised multiple people in their 50s that they are no longer seeking a position, they are looking for a decent paying job.
Career progression should be dominated by FIRE...
One thing I didn't anticipate when younger is the extent that other people will prevent your advancement. Whether by being in the way, *isms - a.k.a. refusing to hire you for positions you'd be great at, or very common today... the majority of companies that no longer train or encourage career development. Because you might leave?
Advancement seems to be lot of outmaneuvering these folks.
> very common today... the majority of companies that no longer train or encourage career development.
I don't get this. What is stopping anyone from doing that themselves? Why does someone else have to do it?
> career ending mistake
> the time I inadvertently shut down one of Britain’s nuclear power stations
There is a scram joke in there somewhere ;)
Good read