An old friend of mine got an offer from Facebook recently. He was doing frontend development before. And after joining Facebook, he will be doing mostly backend stuff. According to him, this is a big relief because he thinks the frontend development is really hard.
This also reminds me of a colleague of mine, who recently also decided to switch to backend. However, his reason is that he wants to learn more things.
Either too hard or too few things to learn, It's actually unsurprising to me.
Frontend development nowadays actually can be really complex. This is not because we have so many frameworks, but because the traditional app development has mostly shifted to the web. So things like spreadsheet or image editors can now be built with web technologies and commercially, it is much easier to have people adopt it than asking them to install something in their system.
However, if all you need to build is a couple of web pages, it can be really boring. Maybe the most challenging part is building a nice UX, but that can be done by leveraging a customized design system. Or maybe to optimize the pages to make them load faster on mobile. The so-called progressive web app. Yes, they are interesting to build, but they are also bound by the business requirements. So if you are in a company or a business unit that only builds web pages for certain use cases, things can get a bit boring.
My last job was in a logistic company. Besides doing frontend development, I had the chance also work on the backend. I used Java to build services that consume messages from Kafka stream. I wrote a program that uses Entity/ORM to interact MySQL database directly. I wrote quite a bit of Golang as well. Sometimes, I also have to solve concurrency issues. I find it pretty interesting given the diversity of the problems backend has and different technologies to solve them. Compared to backend, frontend at that time seems quite boring. Just build web pages after pages, using the same tech stack. The set of the problem to solve on frontend is very limited given the business model. Frontend is really like the tip of the iceberg while backend is the iceberg itself.
Yes, backend is interesting. But really, do we have to draw the line between frontend and backend? Is the comparison of frontend and backend really so much different than the comparison of many backend disciplines, e.g. data science vs API development?
Every engineer, no matter frontend or backend is an engineer first. So there should be some common ground of certain computing knowledge. With that, and being smart, engineers are expected to learn any tech fast.
Big tech companies are aware of this and readily provide opportunities for their employees to do internal transfers. I have not tried before, but I do hope when they evaluate the transfer candidate, they do look at the overall quality rather than his tech domain. And I do hope, my friend and colleague who switched to other disciplines do not lock themselves there. Maybe in the future, there are some fun and challenging frontend project that requires their expertise as well.