What is a Front-End developer?
By: Ricardo Granda Vásquez
Tags: JavaScript, Software Development, Front End Development, Web Development, Front End Developer

I understood that premise listening to the Chris Coyier conference, “How to Think Like a Front-End Developer”, which took place in the US WordCamp in Nashville, in 2018. As I, myself am on the transition from Full-Stack developer ( another question arises at this moment: what is a Full-Stack developer? ) to Front-End developer, I’m digging more often into CSS-Tricks website and was happy to find that presentation.

One of the quotes I liked the most, despite the fact that it is a very extensive definition, was the following:

“[A] Front-End developer is [one] who deals with things that you can see on the web, or on the browser”. Mina Markham.

But, does dealing with the browser also means dealing with the data coming from an API and showing in a Web or the Client Side? Or is it just constructing the layout with HTML and CSS, and letting the JavaScripts Engineers do the connection? There are so many engineers that think that way as Steven Davis commented on the following post “What Makes a Good Front-End Developer?”

“I think we need to move away from the term myself. We should split into UX Engineers and JavaScript Engineers. They are different mindsets. Most people are not amazing at both JavaScript and CSS. Let UX Engineers work closely with UX/Design to create great designs, interactions, prototypes, etc and let JavaScript Engineers handle all the data parts. So sick of being great at CSS but being forced into JavaScript. I’m not a programmer!”

That is the main constraint to find a definitive solution for the term “Front-End developer”. Since the programming skills are now accessible for everyone and not so complicated to learn ( there are many IT boot camps and Websites which teach the magic of coding ), a developer can perform more than one task concerning not just the front-end, which covers ( and I’m understanding that now ) a lot of capabilities. For example, I know HTML, CSS, and JavaScript, but I am completely useless when talking about SVG, or designing itself. I code the designs, but I don’t create them. Does that mean that I’m not a Front-End developer?

What are the core skills for a Front-End developer?

According to Chris Coyier ( and I totally agree ), a Front-End developer should be able to manage the following set of skills:

HTML: Structured content, Semantics, Accessibility.

CSS: Design, Layout, Typography, Interaction, Accessibility.

JavaScript: Functionality, Interactivity, Accessibility.

Basic knowledge for a Front End Developer

In the meantime, as a plus, a “Front-End developer” should understand Design, Writing, Research, DevOps ( why ? ), Security, Performance, Law, Photography, Video Editing, On-Call Availability, Evangelism, SEO and Management. These skills would be in the “is desirable for you to have” section of a job offer.

Many profiles on just one definition

Peggy Rayzis believes that “Front-End developer is such a broad term… has many specialties”, that is difficult to define. In fact, it’s an ongoing discussion that will hardly come to an end soon. That’s for sure. Consider two types of developers:

1: someone who has knowledge of React/Next.js, Apollo GraphQL, styled-components, WebPack, JS architecture, and perf focused.

2: someone who has knowledge of Interaction Design & SVG, CSS/Sass architecture, Wordpress Themes, Light JQuery, UX and A11Y focused.

Shouldn’t both be included in the definition of “Front-End Developer”? For me, the answer is yes.

Conclusion

Discussions to define “Front-End developer” have been plentiful, but there will be plenty more before we reach an agreement on what it is. I think a professional who is recognized as a “Front-End developer” should meet the core skills mentioned in the previous paragraph. However, the definition should focus on a profile that meets not just the technical capabilities, but also the personal ones: good communication, creative problem solving, empathy, being eager to constantly be learning, and have a willingness to give and accept opinions from others.

Sources: