In my current role at Microsoft, I’m working on a UI SDK product. I hear this concern from some of my team members. More specifically, here’s a paraphrased version of what I hear:
“I talked to my friends in software and they told me it’s better to work on the backend or full-stack to have a fast-tracked career.”
First, I do agree that there are generally more full-stack or backend engineering jobs than purely frontend jobs. I also agree that there’s a general perception that frontend is easy / bunch of scripts / not real engineering, yada yada…
However, I think it’s a short-sighted view. Let me make my point here.
Let’s imagine the UI and UX of a familiar product, Google Maps. You can use Google Maps on your browser or natively on the phone. You can embed Google Maps within your own app on these platforms as well. You can ask Google Maps to give you navigation direction for walking, biking, driving, or ask it to show realtime transit and traffic infomation. If you take a detour, it’ll show you new directions on the fly. You can see the map view, or the 3D view, or a camera view of a location. At night, you can see the dark-mode. It’ll show you how many lanes you have on a road, and how fast you can legally go, in realtime. It’ll let you share your location in realtime with your buddy. You can search using your voice and it’ll also give you turn by turn voice guidance. Let’s not mention avoiding toll-free roads, u-turns, etc.
I hope you see the engineering challenge I see in the above paragraph. Very few engineers I know can architect a system such as Google Maps. Since a lot of the engineers choose the path of backend engineering, it’s incredibly hard to find frontend engineers who can pull high impact projects. If you consider yourself above average, and you probably are if you’re reading this blog, you should not follow the path of the average. Instead, if you like building visual products and obsessing about delighting millions or billions of users, you can have a very rewarding and fast-paced career in frontend engineering.
Most of your engineering knowledge is transferrable, irrespective of what part of the stack you work on. After all, you’ll learn to work with people, delight customers, build systems that are robust, scalable, secure, compliant, testable… So, you can move into a different part of the stack at will as long as your foundation is strong.
Modern frontend engineering is complex, but it’s powered by innovative tools. Most of the tooling is open-source and the community is vibrant with lots of conferences and meetups around the world. As a frontend engineer, you can create an outsized impact and differentiate yourself from the masses.