Following up on my previous post about the generic types of front end engineers, this post will deal with the common roles that I see people trying to fill. Unlike the previous list which was written solely from the perspective of a front end engineer, looking at the actual skill sets of the people whose resumes I’ve reviewed, people I’ve interviewed and folks I’ve worked with; this list is based on job descriptions and roles designed by people may not really understand what being a front end engineer means in 2011. Hopefully a few of those people (and maybe a recruiter or two) will visit this site and come away with a better sense of how to staff these roles.
I’ve seen examples of all of these over the past few years.
“The Hybrid”
This role includes some combination of User Experience/Visual Design and Front End Development. I see this one a lot. This combination was the prototype in the early 2000s and still has a lot of traction in a lot of organizations. Look around at the next An Event Apart you attend and you’ll spot more than a few Hybrids (including several people on stage.)
The Creative from my previous post is clearly the best suited type for this role.
The prevalence of this role drive me crazy, personally. Not because it’s an invalid role. Not at all. It’s a great fit for certain organizations and it’s a great role for a lot of people and a lot of companies are well served by it. What drives me crazy is the lingering effect this role has on hiring and perception across the front end engineering spectrum. The general trend of the front end engineering spectrum is expanding away from this type of role. With the emergence of JavaScript as a driving force on the web over the past six years, the definition of “front end” has shifted strongly over to the programmer side. Assuming everyone with HTML, CSS and JavaScript on their resume is still ready to bust out Photoshop to design some buttons is a mistake. Maybe in 2003 that was a safe(r) assumption. It’s not a safe one in 2011, so dig around a little bit to see if the person you’re talking to about a role like this actually does design.
“Soup to Nuts”
This role is on the rare side, at least in terms of the job descriptions I see, but does exist. The role is responsible for every aspect of site development from design to the server. Why include it here? This somehow gets classified as a “front end” role because a lot of what people are interested in these days is in the interaction layer, so the job descriptions are peppered with front end keywords (jQuery, HTML, CSS, etc.)
I understand the desire for this role. One paycheck for four roles! One person to yell at if something goes wrong. I don’t understand why anyone thinks this role is a good idea. The thinner you spread someone, the less likely it is that they’ll have the skills to do their job well and that their attention can remain high across all facets of a project.
There are some situations where it’s reasonable. A reasonably technical Creative should be able to work with something like WordPress, Expression Engine or Drupal where a lot of the heavy lifting is abstracted away. Beyond that it gets a little sketchy. I mean, are there many really good designers out there writing good SQL and Java? Not many. How many C# developers would you have run wild with Photoshop? Again, not many.
(yes, there are exceptions, but still…)
Of my previous types, a Core developer with a very wide skill spread is the best fit here.
“The Full Stack”
This is the opposite of the Hyrbid. This person takes PSDs or Fireworks PNGs and comes back a few weeks later with a fully functioning site. This role has grown organically over the past few years. The growth has come from two directions. As was mentioned previously, front end developers are skewing heavily towards being “programmers,” so expanding the “front end” role into doing server code isn’t that much of a stretch. There’s also been a similar expansion from the server side into the interaction layer. As JavaScript becomes more important (and more people realize how cool it can actually be to write), there’s been a steady drift from the server into the browser layer.
These days, the biggest hurdle with this role is figuring out how happy the individual is with actually doing the full stack. A lot of people get pushed into doing everything on a project and they might even have strongly developed skills across both layers. That doesn’t mean they’re happy doing that work. Some people are really happy to specialize, so just because there are a lot of acronyms on someone’s resume, that doesn’t mean they want to make alphabet soup for a living.
The Coder is clearly the archetype for this role.
“Markup Master”
Several years ago this represented the job description of 50% of the “front end developers” out there (mostly everyone that wasn’t a Hybrid.) This person takes PSDs and makes HTML templates out of them. That’s it.
There are less of these than there used to be. I evolved one Markup Master position out of existence myself. My role at Cramer was initially this kind of job and by the time I was done with building out the Presentation group you had to have solid JavaScript skills or else I wouldn’t have any use for you. That’s a long way from where I started. I was actually told there was “not any JavaScript” in the role when I was interviewed. Even then I was a bit confused by that. This was 2006 and I’d just spent several months building an Ajax application from scratch.
JavaScript had already made “the leap.”
Why I was so sure I could change the role, I’m not sure. I took the job anyway and my own skills and interests plus the growing demand for JavaScript quickly put the “markup master” job description there to bed.
The Creative is probably the closest fit for this role, but if you’re looking to fill this role the real issue is whether or not doing just HTML and CSS all the time is of interest to the candidate. There are a lot of people for whom that kind of work is a dream. Other people would get bored pretty quickly.
“Front End Developer”
Oh look, my job. This is the prototypical large team (read: agency) front end role. The Front End Developer is responsible for HTML, CSS and JavaScript templates and prototypes at the beginning of development and remains heavily involved with the integration and QA phases of a site build. This person is solely focused on the presentation layer. While one might occasionally help out with tasks on either the design side or the server side, 95% of the work done in this role is in the narrow band defined above.
The problem with hiring for this role, and here I speak from experience on the hiring side of the desk, is that it’s tough to fill. If you’re set up this way, with clearly defined strategy, user experience, visual design, front end and server side roles for teams of 6-10 (or many more,) the person you want to fill the front end role has to have really exception skills in HTML, CSS and JavaScript. I mean, when you have a bunch of specialists, sometimes with decades of experience, all playing mad scientist on a project it stretches your abilities pretty quickly.
This is either the Core or a Coder who’s happy to focus.
And that’s that for this little examination of the glamorous world of front end engineering. I’ve got more on interviewing, hiring, titles and team structure posts coming up, so keep your eyes peeled if you’re into that sort of thing.