If space lives up to even a fraction of its potential over the next ~10-20 years then robotics is going to grow astronomically as a field. More generally I have not found software to be a longterm satisfying career - the compensation, freedom, and potential are all excellent. You are well compensated, can work from anywhere*, and a single successful side project (don't sign away your rights to code you write outside of work) always has the possibility to blow up into something worth billions - this is really unlike any other "normal" career. But I think there's a reason that there's a growing sect of people leaving to do everything from farming, woodwork, and even welding. Building even simple things in the real world is somehow so much more satisfying.
If I had it to do over again I'd pick a field where software complements something done in the real world - robotics, astronomy, aerospace, etc.
Having done work in hardware and software, I'm somewhat in agreement, but I'll also counterpoint.
Building software is a fast development cycle. Find bug, fix bug, compile, release, improve. Things can be done in hours or days.
Building hardware is a slow development cycle. If I think of a new feature it might take a month just to get a prototype board designed, made, populated etc. The results are cool, but the feedback cycle is slow.
For my personality, I prefer software. I can have an idea, play with it, realize it's rubbish, and discard it - all before lunch.
But people are different. So someone else might prefer the hardware cycle.
Ultimately my advice to the original question is that "it likely doesn't matter" and "you cant predict the future". Both paths lead somewhere, but you can't really "know" up front.
So choose the one that gets you out of bed faster. The one that excites you more. And in a couple years you'll be better placed to make the next decision.
I can back this up. I work as an FPGA engineer, which is very much an amalgam of software, "firmware" (RTL), and hardware. If I find a software bug or want to spin up something quickly on the HPS (on chip CPU) it might take me a few days - the reward cycle is really quick. Hardware issues on the other hand might take months if not a year+ to fix depending on complexity, meaning the design cycle is long. It might involve multiple board respins because something has been incorrectly connected, whole redesigns because there was a baked in bug on the chip that we need to workaround, or there's some really ethereal signal integrity issue that can come up when working with high speed interfaces that nobody can work out why its failling 1/4000 times. It's fulfilling, but really is a slog at times for a smaller reward financially for something that cost so much more (12 hour day crunch times I've found are way more common in hardware).
>But I think there's a reason that there's a growing sect of people leaving to do everything from farming, woodwork, and even welding
I think that's pretty much entirely because the compensation is good enough that a lot of people can retire by fourty even without having planned for it. Many people in other office jobs find them tedious or get fed up with office politics or whatever but can't reasonably just decide to start farming instead.
This is not true for the vast majority of software engineers. It probably only applies to 2% of the total SE workforce that got lucky to be at FAANG or FAANG adjacent companies during a certain time period.
That's for sure. I've had a lucky career where I feel like I've made above average compensation the entire time, but my upside is that I can maybe retire in my mid-50s rather than mid-60s. Which is about when (I fear) ageism would kick me out anyway.
Way more than 2% of software engineers in the us are earning at least two or three times the local median income and, barring lifestyle choices that prevent it, that's enough for very early retirement.
Great take on the potential of software career!
Could you please share any tips on how to not sign away right to have commercial side-projects?
Every employment contract I've seen recently seems to claim IP really broadly, e.g. "everything created in the course of employment belongs to you employer". The better the job otherwise, the harder this seems to fight. I have just recently quit a job just so I could work on a "side-project" but would be nice to have an income.
Definitely check with a lawyer because the exact meanings are not intuitive. For instance that phrasing you gave (within the scope/course of employment) is typical, and would generally not apply to unrelated projects you did outside of work, but it's obviously not something to just assume - one way, or the other.