For me, there's 2 broad ideas here:
- The ability to build independently
- Of course, product managers, designers, etc are very important to the product development lifecycle, but at the end of the day, they are reliant on software engineers for implementation (unless they choose to hybridize and learn to code themselves). There are no-code solutions out there, but they only get you so far.
- This means that a software engineer completely on their own, especially if they're working on the front-end (i.e with pixels on screen), can build a very concrete and sharable product and share it with the world. The design might not be too great (it probably isn't), but the thing will work.
- I am an extreme example of this. I work on mobile, which is arguably the most consumer facing surface out there. I am constantly working on apps in my spare time, even when I was working at a high-performance company like Meta (and now I work on apps full-time building Taro). I've deployed ~30 Android apps to Google Play as side projects for fun, and they have been used by 2.5 million+ people. The most rewarding part of my career has been reading the glowing feedback (literally 10,000+ 5 star reviews) on these apps I built outside of work for fun.
- The tech "meta" being centered around the software engineer
- With Google and Meta in particular, this new age of tech has a huge theme of software engineer empowerment, where software engineers get a ton of autonomy and the company is built around the software engineer as the primary working unit.
- This means that software engineers are considered more as holistic problem solvers as opposed to more mechanical workers who come in, do a specific branch of work, and then leave, day after day. This is what weaker tech companies do: They'll treat software engineers as "commodity coders", and all they do is write code in their corner for 8 hours a day (which would personally make me miserable).
- This allows software engineers, especially those at these top, modern tech companies to have a ton of autonomy and freedom to grow. Meta, at least among the big companies, is an extreme example of this:
- Want to go deep on the data for your feature and hybridize as a data scientist? No problem!
- Want to learn how to craft an excellent PRD (product requirements document) and help shape the vision, hybridizing as a product manager? No problem!
- Do you enjoy bringing people together? No problem! Mentor other software engineers on the team (hybridizing as a manager), learn to run giant meetings (hybridizing as a PM/TPM), and just become a well-rounded tech lead in general.
- Want to become the Sherlock Holmes of code? No problem! Just spend all of your digging into the trickiest bugs and SEVs.
And on top of all this, software engineers are generally paid well (at least relative to other trades). This is why I truly believe I landed my dream career when I chose Computer Science as my major almost on accident - I am extremely lucky/privileged to be where I am today.