Definitions:
Backend: Distributed Systems, scalable applications, fault tolerant systems, control plane applications, API development, uses higher-level languages like Java/Python.
Low-Level: Database Internals (Query Optimization, Transaction processing, Data/Storage engines), Compilers, GPUs, latency sensitive software, accelerators. Usually C/C++.
Which is better for long-term career growth and compensation?
Here is my (non-answer) to your question 😅
The way you would answer "Which domain is better for long-term career growth and compensation" is to look at things like:
In my opinion, these are the wrong questions to ask when deciding a career direction.
Since you're on Taro, you're ambitious, career-oriented, and a fast learner. You should aim to be in the top 10% of the field, not to be average. Any of the stats you find online will bias toward avg data points, things like:
Instead of trying to work backward from whether backend or low-level systems are better, work forward from promising situations.
The people with the most successful careers benefit from outlier events or people. A company, project, or relationship that becomes transformative for their careers. Focus your energy on putting yourself in that position rather than trying to big-brain which domain will be hotter in 5 years.
Rahul is 100% right, but here's my high-level thoughts on the specifics between these 2:
The real answer though is to pick whatever you're passionate about and get extremely good at it. Rahul mentioned Top 10%, but I think you should push yourself to be the Top 1% of your field. If you're legitimately in the Top 1%, you'll have no shortage of quality job opportunities.
I'm very confident I'm in the Top 1% of Android engineers: I have built multiple Android side projects for fun with 500,000+ users that have vast majority 5 star reviews. I have also shipped highly polished features to billions of users across Instagram and Robinhood. This is why my compensation before I started Taro was in the Top 1%. However, I have always been doing Android because it's super fun for me. I wasn't thinking about compensation at all when I made this stack choice back in college.
At the end of the day, the best tech companies want to hire the best engineers, regardless of tech stack.
Here's another great discussion on the topic: "If my main goal is compensation, would it be wise to learn blockchain tech since it will potentially be the tech of the next couple decades?"