I started work at a big tech company five months ago. By this, I mean first time ever being full-time employed. This is a scary fact on its own. I applied for a back-end position. However, due to shortages in the front-end teams, there was an abrupt change of plans for me. So this is how I got into first contact with the world of front-end technology. Looking back, I am quite happy this has happened. I have gained so many skills and find so much pleasure in doing both front and back-end work now.
Front-end is not simply front-end
One thing I could observe is that one can easily make many distinctions between areas of expertise and roles in back-end technology. There is the software architect, database administrator, DevOps engineer etc. The roles in front-end are usually much more vague. What I mean by that is that one would rarely make an accurate distinction between e.g. front-end developer and front-end designer. For some reason, people tend to be a bit sloppier at differentiating the various facets of front-end work. Someone who only does CSS related work for example is called the same role as someone who does mostly JavaScript or vice versa. That seems a bit... I don't know. Ignorant maybe? In reality, 'front-end' work can be so diverse. One could be a web designer who mostly deals with design software and does maybe a bit of CSS and HTML. The focus of the work is to make the product appealing to the user. Designers are not responsible for the actual implementation of the designs. That's where the front-end developers or engineers step in. People could also identify as JavaScript developers/engineer. This would imply that their focus lies less on the visual representation but more on providing functionality. The sloppy differentiation comes from another aspect.
Front-end work has a bad rep
I think this has several reasons. For the start, the barrier to enter the professional world without formal education is easier for front-end developers. This could also stem form the fact that in higher education, front-end is often not covered in the curricula for computer-science-related degrees. In practice, this could be a reason why most of my colleagues in front-end actually come from very different backgrounds (like myself, actually). Their backgrounds are usually not at all related to a classical computer science path. Still, only because people haven't had formal education in it, that should not be a reason to respect their work less. Another reason could be that generally, people who work closer to the bits and bytes are considered more 'hard-core'. Front-end is the furthest away from this ideal. Looking at the web stack, there are many layers. At the very bottom you've got the network layer. On top of it sits the web server and so on. Front-end sits on the very top of this stack. It relies on so many components which all contribute to noise. So working at the upper level of the web stack means that the development environment can be quite hostile. If you write Java, the JVM will always make sure that wherever your code gets executed, the outcome will be the same. With the front-end stack, things are very much different. It is hard to have full control of your outcomes. A big reason why is that the web, as we all know, is a cluster-fuck of technologies. Don't even get me started on browser-support.
It's fun!
At the same time, this makes things much more exciting. You have to find your way around those obstacles. The challenge is to make things both look good and work well across different browsers. Especially now that web applications are becoming increasingly advanced. I find that working with front-end is really satisfying. You get to talk to so many people in the company, from the UI and UX designers, to the SEO teams and the business. Further, you get the satisfaction to see instant feedback on your screen. There is no need to wait for hours for feedback because of cacheing for example. Lastly, there is the knowledge that thousands of people get to see your work.