I have spent a large portion of my career hiring junior front-end developers. I have spoken to folks who were fresh out of college, folks who were transitioning from a different role in a completely unrelated domain and folks who have worked in a bunch of previous jobs/internships.
But one thing that remains constant amongst a large chunk of these candidates is that they think frontend engineering is an entry-level thing and they would need to transition into backend/DevOps/Ai ML in order to face the interesting problem and do challenging work.
This is a curious question. I have worked in frontend engineering for over 5 years now, in one of the fastest-growing startups in India. If anyone asks me whether my work was challenging or not - my answer would always be the same - it's how you approach the problem.
If you approach the problem in a naive fashion disregarding extensibility - frontend development can be slow and boring. But if you approach it from the perspective of optimising for the speed of future development, it can be quite fun.
The first technique I ask my direct reports to understand is the split of presentational and smart components. This split is the first step to building something that can be extended easily and cleanly.
The second thing would be understanding the concept of state management. Understanding the inner workings of redux and state machines is my recommendation for this step.
Next would be understanding and learning Scss properly. Most developers don't take the time to learn CSS properly. Because of this most developers would spend an exceedingly unnecessary amount of time doing styling. Learning the structures and principles goes a long way here.
Last doing an extra deep dive into how JavaScript works. JavaScript the weird parts is a very good starting point to learn this.
And this is the starting point of learning as a front-end developer.
You can think of going in multiple directions once the basics are covered.
Websites are actually tricky to get traction with from customers. It is often easier to build a chrome extension or mobile application development and get started here.
Mobile application development is a complex area - my recommendation would be to build experience with a hybrid application development framework like react native or ionic and then try native.
Mobile application development is a rabbit hole and you never really finish learning new things here which you probably never need to use. Figure out things as and when you need them.
After this learn a little bit of backend development - node js, express and Prisma ORM are good starting points.
Next, it's time to learn how to build slack, discord and telegram applications.
After this phase, you have finally gotten a grasp of the basics of application engineering.
Now you can deep dive into system design, design patterns, and UX. The list is endless.
Now tell me - is frontend development shallow or boring?
It's a choice. Whoever says otherwise I will go ahead and call them naive.