Terms like web designer and web developer were very popular in the past, but nowadays there are many different labels.
The current state of technology is different from a decade ago. Terms like web designer and web developer were very popular in the past, but nowadays there are many different labels for them: UX designer, UI developer, UI designer, client-side developer, UI engineer, design engineer, frontend architect, designer/developer, front-end engineer, prototyper, front-end designer, unicorn… So which type of front-end developer am I?
A short history about the beginning of my career
About 10 years ago, when the world of web development was changing a lot, I was starting my web career as a web designer. Several new technologies and concepts have emerged, such as Web 3.0, tableless, CSS3, CSS Reset, plugins for transform PSD into HTML / CSS, flash death, jQuery, Wordpress, HTML5 (the future is now, as the slogan said), SEO, responsive design and more. In the midst of all these transformations, I developed my first website and it was so amazing because I could find my passion as a professional.
I was the person who created beautiful interfaces on PSD and then coded using HTML/CSS, JQuery and Wordpress, focusing on browser compatibility, SEO, semantics and accessibility. I could motivate myself to get involved with all these technologies by creating a blog and twitter to talk about it all and helping the community to organize various events on all these new trends.
I was really excited being a web designer.
The identity crisis as a web professional
Around 2013, my professional life began to change when Angular, React and Javascript became the center of world development. Fast online solutions for building websites have also become very popular, and Web Designer, as a career label, was dying and the Front-end developer has emerged as a strong trend.
Web development was fragmenting into specialized areas, and the traditional idea of web design was being replaced by a focus on user experience and complex interface solutions instead of just aesthetics.
I felt a strong identity crisis because I loved creating interfaces and then coding them. I felt I had to make a choice about continuing as a traditional web designer or becoming a front-end developer. But to be a front-end developer, professionals needed to have a much deeper understanding of the back-end programming concepts such as MVC, high-order functions, APIs... So I kept improving my design skills, learning a lot of UX and things like psychology to understand user needs and at the same time I tried to bridge the gap in advanced development knowledge. But in the end, I kept feeling a web designer and very confused.
And then in 2016, Brad Frost, the creator of Atomic Design, published a famous post with a thought that helped me find my peace again:
“Somewhere between design – a world of personas, pixels, and polish – and engineering – a world of logic, loops, and linux – lies frontend design. Frontend design involves creating the HTML, CSS, and presentational JavaScript code that makes up a user interface.”
And that other piece of his thoughts translated exactly what was happening to me:
“There’s a fundamental misunderstanding that all coding is ultra-geeky programming, which simply isn’t the case. HTML is not a programming language. CSS is not a programming language. But because HTML and CSS are still technically code, frontend development is often put in the same bucket as Python, Java, PHP, Ruby, C++, and other programming languages. This misunderstanding tends to give many frontend developers, myself included, a severe identity crisis.”
And then I found that I could keep doing what I love: improving people's lives using all my knowledge as a web designer to create experiences that look and function beautifully, but being a Front-end Designer.
Front-end Designer vs Front-end Engineer
Since Node.js was first released and Javascript has become inevitable and future for web development, Front-end Engineer has been another term that has been coined.
"And this is where Node.js allows front-end engineers a lot of power. The back-end engineers can write their REST services in whatever language they want. We, as front-end engineers, can use Node.js to create the back-end UI layer using pure JavaScript." - Nicholas C. Zakas, creator of ESLint
See the full post about Front-end engineer and Node.js here.
Now you know that is possible being a Front-end developer with design or back-end skills (or both, full-stack?), let's talk a little more about these two types of professionals:
I will use two explanations from a post published at the beginning of 2019 by Chris Coyier (creator of CSS-Tricks) and you can also check different opinions about this subject in his post:
Front-end Engineer
“On one side, an army of developers whose interests, responsibilities, and skill sets are heavily revolved around JavaScript.”
Front-end Designer
“On the other, an army of developers whose interests, responsibilities, and skill sets are focused on other areas of the front end, like HTML, CSS, design, interaction, patterns, accessibility, etc.”
So, who am I?
Although I have been using advanced Javascript, Git, Npm, and API for a long time and have been learned several more specific concepts for front-end engineers (such as backend using Node.js, GraphQL, React and React Native environments for example) I feel more comfortable with the term front-end designer.
I love creating amazing experiences on beautiful and functional interfaces that help people on the web, mobile devices, or anything else. I love planing every detail of a page that can guide users' eyes to find what they are looking for. I am very interested in concepts and techniques such as Donald Norman's Emotional Design and Tim Brown and Stanford d.school's Design Thinking. I like a lot to spend time analyzing website galleries, reading about UX, discovering new trends in the world of web design, creating prototypes...
And I also love code.
I think I'm on the way to calling myself only the front-end developer, without the complement of the words engineer or designer (maybe full-stack instead?). I'm looking to be a front-end that knows both sides. And that is what I am focused on now.
How about you? Which type of front-end developer are you?