Clarifying the 5+ Roles of a “Front-End Web Developer”
wclittle.comIt bears mentioning that the "Designer" and/or "Front End Developer" in a small startup team will usually end up wearing several of these hats.
Larger teams can afford the level of specialization described here, but a smaller company (or a small internal team) may have a technical front-end developer who produces prototypes and live code, plus a non-technical designer who does everything else on the design side. If it's a really tiny team, there might be a single person who rapidly produces mockups and scripts for usability tests, then turns around a few days later and starts writing HTML/CSS/JS based on their findings.
I wish there were a better word than "unicorn" for people with a wider band of responsibilities. "Full-stack UX" sounds a bit silly too.
Also, in that same startup, the same person writing the HTML, CSS, and JS is very likely also writing the server communication and building the production infrastructure, making the entire "front-end" distinction rather moot. Honestly, even in larger companies, the front-end/back-end specialization makes little sense to me. If you can write a good front-end javascript application, it's very likely you can write a good back-end in pretty much any stack.
I totally agree. Most startups have one or two people wearing all 5+ hats (which is OK, of course). I've found it especially helpful to think about these different roles when building out the team (and, in earlier stages, considering if there is sufficient coverage amongst the founders).
I like the separation between design and development (also mentioned by atomicfiredoll). I'm decent at implementation but have zero design skills. I realize that a lot of companies don't have the budget to have separate designers and developers, but it does limit the talent pool to require both in one person.
It may be a bit out of date (and sparse in places,) but I've always pointed those who seem confused to this article from CSS Tricks:
The UI Designer role described in this article should ideally be able to cover everything in the UI Developer role. The JavaScript Developer role should also be able to cover that role. I agree with the rest of the whittling down.
However, saying that someone who specializes in JavaScript is essentially the same as a back-end developer is inaccurate. The types of problems an experienced JavaScript developer deals with on a regular basis are fundamentally different than those that a back-end only developer deals with (not trying to imply that there isn't overlap).
All that said, I think there is more room for the UI Developer role in a company that does lots of client work on a frequent basis (this person might work on 5-10 new projects each month), not so much in a startup or web application shop (4 months to a year in between projects/redesigns with a small amount of template and style work required for features after the initial work is completed). No hard evidence beyond my own experience to support this reasoning, but thought it was worth adding to my above points.
Cool. Agreed.
Good call, this does need better clarification. Thanks. I was aiming at the idea that a JS Dev will need to think through model relationships, views, security, performance, etc... (similar to what a "back-end" dev does)...but I could have phrased that better.
I was wondering are there any companies at all that follow such differentiation between the job offerings?
I consider myself "Front-end developer". Actually I've been working and marketing what I"m doing with those 2-3 words for the last 10 years and I had been hired on a couple of jobs using this as a s a job title.
I don't think I'm a designer, though.
I've typically seen teams that look like this: Designer, Front-End (or "UI", or JS) Developer, and Back-End (or Python, or Ruby, etc.) Developer.
Designer is responsible for all UX tasks that don't involve writing lots of code, Front-Ender writes all client-side code "above the API." API code, devops, and DB admin falls to the server-side engineer. You might create a separate mobile role too, if you're working on a mobile client. If one of these roles gets contracted out, it's usually the designer or the mobile dev.
Then again, I'm most familiar with small teams. You see more specialization at larger firms.
Yes. I always thought it is like this.
As a front-end developer :
I've been doing JSPs, but I've rarely modified .java files.
I've been doing JS, but I would not be confident in pushing commits to the server-side code of a NodeJS project.
I've been doing REST API calls, but it would be hard for me to change database queries.
etc.
That's what I think I'm best at. ( You know as every developer it's not a big deal to dig into any problem, but professionals usually rely on experience ).