Ask HN: How to have a long career in tech?

37 points by bosch_mind ↗ HN
I’ve been in this field professionally for 6 years and work as a senior engineer at big tech.

Curious on opinions for sustaining a long-term technical career in tech. Not interested in management and looking to stay technical.

I see the market shifting, but obviously that doesn’t mean core CS knowledge disappears. I’m moreso looking to stay ahead of the curve, but what does that mean? Master stats and ML? Master the fundamentals because those never change?

Would be nice to hear a perspective from the older generation who have weathered so many storms.

41 comments

[ 3.3 ms ] story [ 93.6 ms ] thread
Master the people skills and understand business concerns. When push comes to shove, business people just look at programmers as people to tend the machines.
Really you might consider seeking a short career in tech, i.e. retiring early with early employee stock options or a startup exit.

As for career longevity, there are a million opportunities out there for millions of types of engineers. My step dad is very reliable old school .net programmer, he has a boring very-stable gig that pays well. I stay nimble with the newest JavaScript technologies and have been able to job hop my way up the ladder.

What's important is finding a niche that works for the lifestyle you want to have. And being able to roll with the changes if shit hits the fan

Re: stock options or startup exit is akin to winning the lottery

save money, invest wisely and spend less

A guiding principle I've stuck to is: "In every job, you should be learning, earning, or leaving." This is especially important if you want to remain technical.

Learning is a painful process. It is natural to feel stupid when learning so it's important to prevent your ego from trying to "protect" you from the early follies of learning. In time, this process will humble you and make you a better person. You may even come to like it.

Follow your passions. More often than not, you'll learn and "stay ahead of the curve" just by learning adjacent subjects to what you care about. Don't learn anything you are not passionate about (within reason).

Look after your health, nothing else matters more, that includes mental health as well.

Couldn't be expressed better than this. Kudos :)
Awesome answer, wish I had met you when I was young. I would say networking with people helps to provide opportunities to implement your principles.
a problem with tech careers is that we have to learn all the time. it never ends.

many careers do not require this. for example law. maybe you’ll have to get up to speed on a new law here or there once a year. but you will not be learning a new tool set all the time.

in tech every year there is a new tool set which means you spend every hour catching up and you will never get caught up.

Indeed, if you can only withstand the treadmill so long, be ready to hop off at some point. That’s why (imho) a lot of tech folks subscribe to early financial independence; the recognition that we have a shelf life and the odds of continuing employment (voluntarily or not) diminish as we approach late 40s and early 50s.

It’s fine to be willing to spend significant amounts of your personal time earlier in life staying current on whatever the new hotness is, but it gets old later in life and can encroach on having a quality life with loved ones and friends.

From the NY State Bar: "Experienced attorneys must complete a total of 24 accredited CLE credit hours during each biennial reporting cycle (the two-year period between your attorney registrations)."

No, they don't have to learn a new JavaScript framework every two years, but they do have to take classes.

In tech, you have to learn new stuff. I would have left the industry if I was still writing the same code on the same platform that I was using in the 90s. It's a feature, not a bug, and it's a good profession for people who like learning. (Electrical Engineering is still there for people who want to learn one thing and nothing else for the rest of their career.)

You're never going to know it all.

I've gotten paid for programming since 1990.

I got into programming because I was an engineer, and I used finite element modelling, but nobody would adequately explain time sharing. Then SGI loaned my group a Unix workstation.

I've quit several jobs because the company decided to go all Microsoft all the time. Those companies aren't around, but I'm still writing programs for Linux. Mastery of CS fundamentals is key, but you have to learn to apply them, not just grind leetcode with them.

My lesson is that if you learn and do commodity things, Java, Windows, XML, you'll have a commodity resume and you'll get commodity jobs that you have to fight a plethora of other commodity developers for. Do different things. Learn and master something unusual. Teach yourself new things as often as you can.

Doesn't that limit you to a few positions in certain locations. Wouldn't casting a bigger net be a more risk averse?
Casting a wider net would indeed be more risk averse, if the job market had more symmetrical information. I know about my own situation, and a little bit about friends' and acquaintances' situations. Even medium sized companies know a huge amount more about what the going salary is, and how many applicants a given position gets. The decrease in risk isn't as much as you might suppose.

Be different, stand out. In my case, this was by refusing to do Windows, sticking with Unix and then Linux.

Understand burnout, how to avoid it, and what to do when it strikes.
I've been doing this for 22 years now in the infrastructure space. The only thing that has helped me is keep learning. Even in the most boring job in the world, you can still make it interesting by being curious.
My 2¢:

I’ve been doing this thing for over 20 years. I’m a voracious reader and always trying to stay just beyond the edge of the industry, as far as knowledge goes. As a programmer, I’m probably somewhere smack in the middle of the bell curve. I’m nothing special, except that I can do it FAST. I don’t just mean the programming part, but the figuring out some new problem is some subset or superset of problems I’ve solved before and applying those to the new problem.

I have a couple secrets that I don’t tell people and it has nothing to do with writing code.

1. Learn how to sell crap and take business 101

Seriously, you learn how to sell and what a business needs to survive. Don’t stop learning, this is just the beginning. It gets you in the doors that friends will open for you, it gets people on board for projects you pitch. It gets you paid more.

This will probably work for as long as other engineers aren’t doing this.

2. Train your memory

I don’t have a photographic memory anymore. I hit my head too many times. You can train your memory though, to that point. Especially when you are young. My memory is still sharper than my peers, I still only need to glance at a file path once to remember it. Usually.

Seriously, go learn how to train your memory. Research it like you’re trying to decide on a new framework. Use what works best for you.

3. Don’t work on bad days

When you have a bad day/morning, call in sick. Take time for you because no one else is going to give you that time. If you aren’t working on bad days, people only see you at your best and you’re more likely to get promoted or a raise.

If you have a lot of bad days, get some therapy and work with them to get to the root of the problem.

> Seriously, go learn how to train your memory. Research it like you’re trying to decide on a new framework. Use what works best for you.

Any pointers on this one? It's hard to tell what is BS

Not OP, but in my experience, two methods actually work for me

1. Use SRS (spaced repetition system) like Anki to learn a difficult-to-read language. Slowly but consistently ~1 hour a day learn mandarin or japanese. Personally I managed to get JLPT N3 this way in ~2 years.

2. Specific to muslims: Memorize the Quran with the Itqan method [0]. Literally intense drilling by reciting 100+ times for a page of Quran a day by looking the page then 100+ times not looking. Can spend 2-4 hours easily for a page.

[0] https://hifdh.weebly.com/mauritanian.html

Personally Itqan method is way harder than SRS but retention is faster and stronger even without revision for months.

I think we admire what we know, for example, "technical". My advice is to remain open-minded. Life is about finding a good partner (wife/husband) and working hard at your job. Jobs come and go. The third job is normally the good one.
I think there are two main paths:

- you become really good working for really good top-notch companies. This is the hard path, not because becoming really good is hard, but because working for top-notch companies and becoming good requires putting a lot of hours. One could become really good in say, 10 years... but on top-notch companies if you don't make it in a couple of years you re not anymore "ahead of the curve"

- you fake it. If you have already enough experience in the field, chances are there are companies out there in need for "principal engineers" or vps or whatever term they use nowadays to designate "top level tech guys". You can convince them you know your shit, and they may believe you. One you get your first job in such a role, everything is just gonna get better (e.g., more money, more free time because all you need to do is "to give advice", more knowledge because you can learn tons of stuff using that free time). This is easier than the path above in the sense that you don't need to put extra hours besides the regular 10-5. It could be difficult if you don't have enough confidence in yourself yet to sell yourself as the best tech guy out there

How do you sell yourself as the best when you don’t have what it takes to back it up? Just backing it up with BS is going to backfire and the alternative, to stick the nose into brown holes and continue the BS is really not for many of us…
BS just at the edge of your comfort zone. As in, I don't know it yet, but know enough terminology to talk the talk and need no more than 30 days to walk the walk. If you've made a lifestyle out of learning, this shouldn't be a problem.
Oh well, that’s just business as usual. The BS part is not disclosing one needs documentation and a bit of time is unfortunately quite the norm. I find that part pathological as far as industry goes. One should not need to resort to BS to get their work done.
> How do you sell yourself as the best when you don’t have what it takes to back it up?

Obviously you need some sort of knowledge to do so. But I think it's not much what you need. OP has already 6+ years of working experience, so imho he has probably accumulated quite a lot of knowledge in whatever field he has worked on. On top of that add the usual BS jargon to patch the zones where you don't have a lot of practical experience yet. That's a good combo.

Took me a while to accept that theres much more to learn from good people in top companies. Working with mediocre/bad programmers will hold you back. Great design principles wont just come to you, you need to work on great systems with brilliant people
Now that I’m 30 years into my career I’d recommend the following:

- look out the window every few minutes to keep your eyes healthy

- stretch every day to keep your hamstrings from shortening and your pelvis from tilting

- if you are feeling stuck or stressed get out and take a walk or go for a run, otherwise the bad mojo will build up in your system

This is the best advice in the thread. If we don't have our health, what else do we have? Most people seem to agree there will never be a shortage of programming jobs, so I wouldn't worry about "staying ahead of the curve" too much if you have a solid foundation.
I concur! Currently going thru some occupational health issues, sitting and stress related and I really have thoughts to completely quit IT. The positive side is I'm debtless with savings but at what cost.
> Master the fundamentals because those never change

Do that for sure if you're doing web app development. The core fundamentals have not changed much in 20 years. Its HTML, CSS, JS and an HTTP server and likely a database. All the frameworks, packaging of client side code, code transpilers, etc. have to do the core stuff and once you understand what/how they do their thing it should be relatively easy to pick up another "new" tech that does these same things.

Get good at maintaining, refactoring and extending existing applications. Understand the business value of doing these things vs. a common crutch engineers go to of "that code is crap, we have to rewrite". Being helpful and flexible with solutions to business problems is going to be better than an engineer that wants to rewrite everything, has an ego about their code, says no a lot, etc.

I think the best way to have a long career in tech is by expanding your knowledge, don't focus on only one area (like Frontend or Backend), but try to learn new things every day.

For example, you can try studying Blockchain, I'll share this article if you want to start: https://www.ratherlabs.com/post/the-roadmap-to-become-a-bloc...

And this article to stay ahead of the curve: https://bootcamp.berkeley.edu/blog/most-in-demand-programmin...

Good luck!

This appears to be a scam account doing nothing but promoting rather labs.
Me: started in my career in 1999.

Identify the core skills that cut across technology choices. SQL, etc.

Always try new languages.

Never be loyal to any vendor or platform.

Be willing to work for small companies doing big things. You often have opportunities to "craft the menu" and can grow and learn in ways that you can't in a large company that paints you into a specialized (and often well paid) corner.

Freelance on the side - it's not about the money.

Understand the businesses that you build solutions for.

Love the cockroaches. Unix, TCP/IP, C, Lisp, ML, Javascript, SQL, Data structures & Algorithms and your mathematics. These are never going to die, everything else is a variation built on top of them.

These are jumping pads that allow you to learn most new shiny things.

I get found some my friends selected one small proved company at the beginning and worked these within all the years. I catch for every new job, but also stay in the tech. Company should be proven or you should improve yourself.
I've been writing code professionally, full-time for over twenty-five years. I've never had a period of unemployment that lasted more than a few weeks.

The truth about remaining an individual contributor and staying out of management is just to flatly turn down any offers of management positions. You'll likely make less money because of this. Management will tell you this isn't the case, but in most orgs, power is centered around management. As an example, people with fifteen years at Google were laid off by a management team with less tenure. Maybe they're next, but you'll be first.

The longest I have ever stayed at a job is about seven years and that was several years too long. If you've been at a company more than a few years, your salary is stagnating.

Don't do free labor. That includes an expectation for regular work beyond 40 hours. Learn on the job. Not just by doing new things. Read books, blogs, practice coding during work hours. This is how all other professions operate. I have no side-hustle. I'm a professional programmer.

No one knows what the future will bring. I've professionally written code in a dozen languages and as many platforms. Stay intellectually curious and learn how businesses operate.

Don't let the jaded nobodies make you think you're burned out when you're not. There's lots of people in this industry and you'll hear from complainers and those who have a romanticized vision of the tortured creator the most.

Lemme break it to you, there's only one Hemmingway and he died.

One option is to work in larger companies where the tech itself is not the business, but is just a tool used to drive the business. Then no matter where the "tech industry" goes, you still have your job keeping that business running. In downturns, contractors and consultants go out the door, and you are told to "Just keep the lights on." And you keep your job.

You also learn an industry other than "tech". You gain the T-shaped skill set that makes careers grow - deep in tech, broad in business, and able to jump from ship to ship to seek those raises and promotions.

Now I fully admit, this path is not exciting. It does not maximize income. It does not have opportunity for stock options or "exits". But it absolutely can bring sustainability and stability to your career if those are your goals.