Elly

Theme editor

Pick a colour scheme

Front-end development’s identity crisis

Created on Last modified on Complete BlogWorkingWeb design

I’m not a “[full-stack] developer”, regardless of what my last job title says.

I’m not even a front-end developer, thanks to the JavaScript–industrial complex.

I’m a front-of-the-front-end developer, but that’s too long.

So, I’m a web designer. And I also specialise in accessibility, design systems, and design.

That was densely packed, so let’s break it down

I’m not a “[full-stack] developer”, regardless of what my last job title says

I know how to do full-stack development, not because I wanted to but because I had to. My title was “developer”, as was everyone else’s. According to our titles there were no front-end or back-end developers. We had to do it all. This led to lots of bad HTML and CSS from back-end developers and lots of bad Node and PHP from front-end developers.

“HTML, CSS, JavaScript, Python, C#, and SQL may all be code, but they’re really quite different kinds of code and are suited to different kinds of people.”

“I recently worked with an organization where there were dozens of Full Stack Developers and no Frontend Developers. We had a website to build and nobody understood Flexbox, except me. Of course I was happy to help, but I had to learn React on the job to put the work in place. Fortunately I picked it up quite quickly, but the next CSS expert may not have done. The value you want from a CSS expert is their CSS, not their JavaScript, so it’s absurd to make JavaScript a requirement.”

— Heydon Pickering in Reluctant Gatekeeping: The Problem With Full Stack

Just because I know how to use Docker, Node.js, PHP, SQL, AWS, Linux, Serverless, CI/CD, etc. doesn’t mean I should have to. Please let me do what I’m good at!

I’m not even a front-end developer, thanks to the JavaScript–industrial complex

In this section whenever I refer to React please feel free to replace it with any of the following: Next.js (what people mean when they say React); Tailwind (what people mean when they say CSS); Webpack; CSS-in-JS; TypeScript; Gatsby, etc.

I came into the industry during the reign of React. I know React well. It was all I knew for a while. I rushed past HTML and CSS on my way to learning React. I didn’t understand they were the main building blocks of the web.

I hate it. There are so many things wrong with React. The cult surrounding it, the company making it, its countless footguns, its bloat, its incompatibility with web platform features—the list goes on.

“Not only are new services being built to a self-defeatingly low UX and performance standard, existing experiences are pervasively re-developed on unspeakably slow, JS-taxed stacks.”

— Alex Russell in The Market for Lemons

Even if I didn’t have issues with it I should still be able to choose not to use it, right? Wrong, sorry! There is no choice anymore, I can’t escape it. React is so pervasive that almost every job is using it. On the rare occasion that they’re not using it, they’re using something like it.

Okay, so I can’t escape React but surely I could just work on something that doesn’t touch React. Like for example, CSS! Oh wait, no. That’s all done with Tailwind, CSS-in-JS, CSS modules, or whatever the next way they come up with to write CSS without actually writing CSS.

If you can’t beat 'em, join 'em, I guess? 🤷🏼‍♀️

The issue is, React—like the supermassive black hole it is—pulls everything towards it. Towards more JavaScript. I start out only touching the HTML, CSS, and a bit of JavaScript for DOM manipulation. But before I know it I’m in there making API calls, transforming data, and writing middleware.

Yikes! I need some separation of my concerns.

I went a bit off topic here but what I’m getting at is this. Actual front-end work has been devalued and isn’t treated as a full-time job. Now front-end no longer actually means front-end. The duties of a front-end developer are more accurately described as full-stack. And as we learnt earlier, I have issues with full-stack development as a concept. I don’t want to be a full-stack developer. So, I must be something else? Well, according to Brad Frost, I’m a front-of-the-front-end developer.

I’m a front-of-the-front-end developer?

Okay so, I’m a front-of-the-front-end developer…
While those words do accurately describe what I do, it’s way too long. No-one is actually going to use that as their title. So we need something shorter that still conveys the same meaning. People have come up with new titles like:

I’ve actually seen some companies using them. Though, I’ve also seen companies misusing them for “front-end” (aka full-stack) roles—which undermines the whole point of coming up with these new titles. I don’t hate these titles; for a while there I was even using design engineer to describe myself. But, there’s a better option that’s been around since before even front-end was being used. We had the right title in front of us all along, web designer!

I’m a web designer

Why do I think that this is the best title? Here’s why.
I’m designing for the web. The infinitely flexible web. The web that doesn’t have one screen size, one browser, one operating system, or one device. The web that can be used by anyone, anywhere, on any internet connection, on any device, on any operating system, on any browser, with any screen size. I’m designing with the web. Using the web platform (HTML, CSS, JS, ARIA, etc.), not a bloated harmful abstraction. I have a deep understanding of HTML and its semantics. I love CSS, I know how and when to utilise its many features, and I keep up-to-date as more are added. I have a strong understanding of modern JavaScript and most importantly I know when not to use it.

  • Crafting semantic HTML markup with a strong focus on accessibility, in order to make experiences that are friendly to browsers, assistive technologies, search engines, and other environments that can consume HTML.
  • Creating CSS code that control the look and feel of the web experience, tackling colors, typography, responsive layout, animation, and any other visual aspect of the UI. Frontend designers architect resilient CSS code with a focus on modularity, flexibility, compatibility, and extensibility.
  • Authoring JavaScript that primarily manipulates objects in the DOM, such as making an accordion panel open or close when you click the accordion title, or closing a navigation panel.
  • Testing across browsers and devices to ensure the UI is functional and good-looking on a never-ending stream of desktops, mobile phones, tablets, and all manner of other web-enabled devices (and even anticipating ones that haven’t been invented yet!)
  • Optimizing the performance of frontend code in order to create lightweight, fast-loading, snappy, jank-free experiences.
  • Working with designers to ensure the brand, design vision, and UX best practices are properly translated into the browser, which, to remind you, is the actual place actual people will go to use the actual product.
  • Working with backend & application developers to ensure the frontend code is compatible with backend code, services, APIs, and other technology architecture.

— Brad Frost in Frontend Design, React, and a Bridge over the Great Divide

But I’m also…

I could have ended the article without this. But since I’m the one writing it I wanted to add some extra information specific to me. Let me preface this by saying, web designers are completely valid doing only the previously mentioned things. Just because I also specialise in some other things does not mean that all web designers have to. I hope I’ve made that clear throughout this article.

I’m also an accessibility specialist. That’s not to say web designers don’t have to know about accessibility, they definitely do. My expertise goes beyond what web designers need to know though. Actually, as of late I’ve mostly applied to accessibility specialist roles. Because of all the aforementioned issues with front-end roles.

I’m also a design system specialist. I’m a systems thinker. I love standardising things to simplify the web development process. That way less mistakes get made because we’re not constantly reinventing the wheel. This goes hand-in-hand with my love of accessibility because most of the time they’re accessibility mistakes.

I’m also a designer. But that’s very broad and I don’t want another full-stack developer situation. So, to be more specific I’m a UI designer. And to be even more specific then that I’m an inclusive UI designer. I love human-centred design and co-design—nothing about us without us.

Conclusion

The current landscape of front-end development presents challenges for web designers like me. As I navigate through the complexities of our industry, I will continue to advocate for the importance of expertise in these undervalued areas.

If your company is looking for a web designer who also brings a wealth of knowledge in accessibility, design systems, and inclusive UI design, let me know! As I would love to share my expertise with a company that values the intricacies of web design.