how did you guys choose a specialty? Did you jump between different specialties? Did you just pick the first one, and then stuck with it? What things did you consider?
By specialty, I mean roles like: backend, frontend, full-stack, infra, ML ops, android, iOS, Windows, recommender systems, NLP, CV, speech engineer, product engineer, embedded systems, macOS, distributed systems, data...
You should expect technology to change. Avoid becoming too reliant on a specific language or framework. There are nuances to this:
gradle
but still too narrow since you're only useful to larger Android apps, where build times are painful.Instead of thinking about your career 10 years from now, work forward from what you enjoy doing and where you have a unique insight for the next 6 months or year. The world will be very different in 10 years. Tactically, I have two pieces of advice:
See also this very relevant video from an Amazon Principal Eng about Why It Doesn’t Make Sense To Have a 5 Year Career Plan.
To have a great career with 7-figure income, you have to specialize.
Just not in the way that you mean.
Let's take Meta's IC7+ engineering archetypes:
According to levels.fyi, these engineers make $1.34M per year on average.
The existence of the whole "archetype" concept itself is a clear hint that specialization matters. It's just not specialization in a certain technical stack. That thinking will point you in the wrong direction.
You should specialize by how you deliver Impact.
And this depends 100% on your strengths.
Your strengths are what you are good at, and what fills you with energy (as opposed to drain you).
So my advice?
Figure out what type of work you love doing. Then specialize in how to leverage this type of work to deliver outsized Impact.
This is a bit reductive, but my advice is just try stuff and see what resonates with you. This is pretty much what I did with Android. I had some spare time, and I've always been an Android user alongside my UCLA roommates. We wanted to build some silly apps, so I just did that over the summer and fell in love with it.
I got lucky because Android was the first thing I seriously tried outside of school work (which I really didn't like); most engineers will need to try multiple things before they discover a true passion. What I will say though is that if you truly love something, you'll immediately know. You'll feel it in your gut.
I recommend this video as well: How To Find Your Path Among The Countless Paths In Tech