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?
Top comments (4)
I like that you brought the Chris Coyier article to your post, I always take "the great divide" onto the table when taalking about front-end development, I am also a UI/UX Designer but i have learned many things that i am now both sides of that great divide 😂😂
🤣🤣 That's awesome! I think Chris Coyier and Brad Frost are great references about this subject.
I am a "functionality-first, 'pretty' second" developer. I prefer making things work (and work well) first and worry about whether the software is visually appealing/intuitive after the fact - sometimes many years later. I've used plenty of "beautiful" UI/UX over the years that is VERY broken software behind the scenes (i.e. doesn't function at all or barely functions) and completely ugly UI/UX that works just fine once the user knows how to use it. Training users on how to use any given system is a better approach, IMO. Nothing is intuitive for 80+ year old users (and even many 20+ year old users) - they have to be taught how to do things. If their job entails them using a specific system, they will learn how to use that system or lose their job. That's up to them. Obviously, the more consistent a system feels compared to other systems they have used in the past, the better off they will be.
I mostly build web admin interfaces for business systems. Internal users are easier to work with and train than external customers. I guess that makes me a backend engineer/designer.
I got your point of view! ✔ And of course that if the functionalities are broken, the visual can´t help a lot.
I think the best scenario is when the visual and functionality work very well together, because one thing depends on the other. For example, Donald Norman said in the Emotional Design theory that there are three levels when we look at some interface:
1- Visceral Design: it is totally related to the appearance and unconscious. The user needs to feel attracted with the visual at the first time they look at the page.
2- Behavioral Design: it refers to the practical and functional aspects of a product. At this point the functionalities and usability should be working very well. We can love or hate a product depending on if we are able to use it or not.
3- Reflective Design: and last but not least "This is the highest level of emotional design; representing the conscious thought layer, where we consciously approach a design; weighing up its pros and cons, judging it according to our more nuanced and rational side, and extracting information to determine what it means to us as an individual. "
So, I completely understand what you said and I know that when users must use a specific system they will find a manner to do it, but, on another hand, these three levels of Emotional Design should be working very well in all applications (by the way, the reflexive level can make users use some product even when the visual and functionalities are not great or are very hard to understand - Facebook and Internet banking's for example).
I like this explanation about Emotional Design.