Qualities of a frontend developer

Very often, I see people confused about the role of a frontend developer. Those persons tend to think that a frontend developer is just a developer, and that you can have a backend developer assume the job of a frontend developer in a matter of days (or weeks). I'd argue that coming to become a real productive frontend developer takes one or more years. I think it is so because a frontend developer requires some acquired capabilities that are just not a part of the tool set of a backend developer.

Good frontend developers make interfaces that are:

Paper plane flying fast

Efficient: A good frontend is very lean in code. It doesn't try to be perfect. For example, why using classes when you don't need it? Also, every dependency should be stripped from the delivered code, which called bundlers like Webpack to life. Everything gets reduced to the minimum, because frontend developers know that most of their code will be downloaded by the client. They also know how to monitor the size and impact of the code they write to evaluate not only the time it takes to execute, but also the weight downloaded to client. They know that one byte is not always equal to one byte when considering the impact to the page load time. They optimize the code with asynchronous loading, but in a way that has a minimal impact on the experience - choosing between async and defer, for example.

Frontend developers will also often code quick examples of features in online tools like CodePen or CodeSandbox to test and share things quickly. They will usually delay a full deployment when possible, or when required will use dedicated tools like Netlify, that will simplify the experience away so they can focus on their specialty instead.

Paper plane flying fast

Robust: Frontend code, unlike server code, doesn't run in a well-known and defined environment. You can be pretty sure that backend developers are often staffed with frontend work in enterprise products that list the browsers supported. That's not how it works on the web. New browsers have to be accommodated for (that means frontend developers must monitor beta versions as they get released to be ready when they get released to the general public), but also older browsers. New features should fail gracefully. They can also have fallbacks, but we're back to the first point where you can't just ship a full older browser API to each user, so you have to carefully select what you send over and when, possibly using feature detection.

A circle with a shadow

Beautiful: Frontend developers code interfaces that are elegant, beautiful, and have their own visual identity. This is due to two acquired skills as well: understanding of the design rules and learned taste from analyzing and implementing proper designs. After a while, the frontend developer becomes skilled into implementing designs in a pixel-perfect manner, and even to correct small errors from the designs. They implement the layout in a structure that supports the original structural intent of the designer, so it behaves the right way on different sizes. They are also able to engage in informed and qualitative feedback with the designers to show where things could be improved. Such a feedback is usually a mine field to start with for anyone not well trained in the topic.

Conclusion → As you can see, those aptitudes require a mindset change for multiple years to bring fruits and be applicable in business projects. Being a frontend developer is a specialty of its own, and tools that pretend to solve that in a few hours are just not telling the truth. They can help with consistency, some tricky use cases, and other limited aspects, but they won't solve all the points above.

– Stephane