People really latched onto Brad’s framing. And for good reason. Front-end development has gotten so wide scoping that there are specialists inside of it. Two years ago, I cut it down the middle and now Brad is putting a point on that here, saying he has actual clients who have shifted their hiring strategy away from full-stack and toward these exact distinctions. Nice.
Brad shoots for a simple distinction:
A succinct way I’ve framed the split is that a front-of-the-front-end developer determines the look and feel of a
button,
while a back-of-the-front-end developer determines what happens when thatbutton
is clicked.
Part of me loves the clarity there. And part of me is like But! But! Wait! I’m a front-of-the-front kinda guy, but I totally deal with what happens on click. I’m a state updating machine over here. I’ll fire off that GraphQL mutation myself, thankyouverymuch. I friggin own that onClick
.
And yet, I still don’t feel back-of-the-front at all. I can’t set up that GraphQL API or troubleshoot it. I don’t know what the security implications of the network request are. I don’t know if the query I wrote will be performant or not, or where to look at a graph to find out. I think I’d draw the line in a slightly different place than Brad, but he knows that. He’s flexible here:
The line between front-of-the-front-end and back-of-the-front-end can be fuzzy and varies greatly from developer to developer. It’s totally possible that one developer might be able to perform many tasks across the front-end spectrum. But it’s also worth pointing out that’s not super common.
That’s why the term “full-stack” isn’t my favorite. I bet an awful lot of developers have skillsets on both sides of the “great divide” which I think makes it feel like you’re full-stack when it’s more likely you’re cross-stack. Full-stack makes me feel like you’re deeply knowledgeable about literally everything across not only the front-end spectrum, but back-end too. Brad says that’s uncommon and I’ll up that and say it’s downright rare.
My main regret about trying to cut front-end development in half is that it’s too clean of a metaphor for a messy thing.
I live in Bend, Oregon, where outdoor hobbies are like the main thing. You don’t really go up and ask people if they are a summer sports person or a winter sports person because they are almost always both. But one person might be into snowshoeing, downhill skiing, and day hiking, where the next person might be into paddle boarding, nordic skiing, and mountain biking. So, I had this idea of Bend Name Tags where it lists all the outdoor hobbies and you write your name and then circle all the ones that you’re into.
It should almost be like that with front-end development. You write your name and then list out all the things you’re into. Me? I like HTML, CSS, JavaScript, Build Processes, Design, React, WordPress, with a dash of Accessibility, Performance, and Copywriting. What does that make me? Me.
I can see why and agree on the perception that frontend and backend are both wide and could be their own spectrum; however, I find it silly to refer Web Design / UI Design as if it was a Front-End Development thing (yes, a dev can do both, it doesn’t make it a front-of-the-front-end dev thing tho). Same goes for UX Design, something an FE Dev can do as well but it’s still a different discipline which is a field of its own as well (just like UI Design). The same things can apply to the Back-End, which is quite big and numerous Devs on that side touch upon other areas like DevOps, InfoSec, DBA, …
Now regarding Full-Stack, it’s true that it’s rare to find someone who excels or who’s a master on the FE as well as the BE (whether or not that person is a T-shaped specialist or a generalist), but I’ll wholeheartedly disagree that it’s rare to find such Devs who can get the job done front-to-back/back-to-front, they may not be as knowledgable at both ends as two specialists, but someone who’s T-shaped and FS will have a better understanding of the whole system and big picture than someone who doesn’t have that much ground-level knowledge that spans a full stack.
Awesome. I like HTML, Javascript, React, Tailwind, CSS, Design and Building patterns, Hello World tutorials… same result, me.