Live data from Hacker News

A career-ending mistake

bitfieldconsulting.com

61–70 of 211 posts

Re: A career-ending mistake

#61
post #14

Earlier quoted context omitted.

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.

Re: A career-ending mistake

#62

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…

Well said: I think in this sense, flexibility is key.

Re: A career-ending mistake

#63
post #51

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…

> 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 goo…

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.

Re: A career-ending mistake

#64

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…

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

Re: A career-ending mistake

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

Re: A career-ending mistake

#66

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 neve…

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.

Re: A career-ending mistake

#67

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…

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

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.

Re: A career-ending mistake

#68

> 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 responsibi…

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.

Re: A career-ending mistake

#69
post #56
post #37

Earlier quoted context omitted.

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

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?

Is IC offensive? I’ve never considered it to be. “Resources”, on the other hand, feels very offensive.

Re: A career-ending mistake

#70
post #52

Earlier quoted context omitted.

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 an…

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?

Post reply on HN