Hacker News Clone new | comments | show | ask | jobs | submit | github repologin
A Career Ending Mistake (bitfieldconsulting.com)
186 points by gus_leonel 3 hours ago | hide | past | web | 104 comments | favorite





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.

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.

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.

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.


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

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.

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.

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.

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


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.

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


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.

I've heard the term (or "individual contributor") since at least the first dotcom boom in the late 90s.

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.


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


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


Have you had a common theme for these projects you navigated?

I'm happy to hear this. Cheers.

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.


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.


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.


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.


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.

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.


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!


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.


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


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


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


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.


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.

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

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.

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.


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.


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.


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


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.


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.

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.

The public sector is probably a decent place for a well defined career.

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

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.


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?

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

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.


Joke's on them. I have a job, not a career.

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?


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.


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.


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.

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.


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

I am curious about how he accidentally shut down a nuclear reactor.

> career ending mistake

> the time I inadvertently shut down one of Britain’s nuclear power stations

There is a scram joke in there somewhere ;)


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




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

Search: