Cultivating Front-end Engineers

Note: This is part three of a three-part series titled "Developers in the New Age of the Web"

You can't have your cake and eat it to. You can't ask front-end engineers to be creative and curious but bind them down with beurocracy.

Look at education. How many computer science programs can you name that teach the front-end? What certifications are there for a front-end engineer?

Most front-end engineers are self-taught. They've learned what they know in their free-time, because it's what they're passionate about. They experiment with different ideas and different ways of doing things. They're used to solving problems by trying approach after approach in twenty different ways until they get something that works.

So why would you take a highly creative individual and pin them down to a specific tool or a specific library? For example, if your server-side developer have a particular tool they love, but the new front-end developer you just hired wants to try something different, you may be hesitant to let them have it. After all, you've already invested a lot of time and money on a tool that server-side engineers love.

While that's a reasonable response, it goes against every grain of curiousity in the front-end developers body. Why a different tool? Because, we're curious to see if it's better than what we already have. That's it. The same curiousity that drove us to spend hours this past weekend learning a new technique drives us to try out different tools at work.

You also need to give them time to develop. Why put them in a role then ask them to do something different?

Don't hold them back from progressing in their career because they don't know a specific server-side language. You can't hold it against a front-end engineer that they don't know the same level of server-side code as a server-side developer. Of course not, it's not their specialty, the front-end is.

Companies can't be afraid to take a risk with front-end development in the same way that front-end developers can't be afraid to make mistakes. You simply can't keep up with the web if you're playing it safe and resisting change every step of the way.

Hiring Front-end Developers

As I mentioned before, most computer science degrees don't have front-end programs. So many front-end engineers don't have computer science degrees. This means that you're not going to find most front-end engineers by attending computer science job fairs at colleges. You may not even find them at "computer science" colleges, or colleges at all.

So where do you find them? You find them on the web. They're either writing blog posts about what they're interested in or making simple utility libraries for some niche need they have. Good front-end engineers produce and share. If you're looking for someone passionate and knowledgable, look to the front-end community.

Job Titles

I'm not a ninja. I'm not a rockstar, guru or wizard. Is the role so dire and boring that the only way you can "spice" it up is to pretend that it involves being a covert agent or mercenary in feudal Japan performing espionage, sabotage, infiltration, and assassination?

I'm not even a "JavaScript Developer". As I said, there's really no such thing as a "JavaScript" developer. They have to know HTML and CSS in order to write good JavaScript. The success of JavaScript really hinges on its tight integration with HTML and CSS, so disregarding either language really impacts the quality of the JavaScript code written.

I'm a Front-end Developer. A UI Developer. A Front-end Engineer. An actual job title, not some cute name.

Technical Interviews

If you're looking for talented front-end engineers, stop interviewing for server-side developers. Questions involving programming logic puzzles undermine what makes a front-end engineer good.

Ask them questions about accessibility or the maintainability of a CSS file. Ask them how to use CSS to create a desired effect. Ask them what excites them about the industry they're in. But please don't ask them to write a function that, when given an array of integers (positive or negative), finds the sub-array with the largest sum. It's just not that important.

Server-side engineers as front-end engineers

"Asking backend developers to do frontend engineering is a mistake. Frontend engineering is an established discipline." Steve Souders

Since it's tough to find and hire a good front-end engineer, a common approach is to ask someone who's done server-side programming to take on the job. The mistake with this approach is not that someone who programs Python can't program JavaScript. Rather it's that it's not a long-term switch.

Rarely does the developer get to commit to the assignment; they're either pulled off in some other direction two months down the line or they're only allowed to spend 15% of their time on the front-end.

It doesn't matter how good you are at one thing, if you don't have experience with the other you simply won't be effective at it. It takes time to master a craft, so if you're asking someone who has only dabbled in JavaScript or CSS to fill a role, give them time to learn it and expect some mistakes.

The other part of that goes back to what I originally said about the front-end being an intersection between design and development. If you're asking someone without an ounce of creativity or design experience to work on the front-end, you're going to get really ugly applications. They're also not going to be passionate about it, because it just doesn't fit their skillset. Look at the skills I described and make sure they align before asking someone to make the switch.

That concludes the part series on "Developers in the New Age of the Web". If you're interested to learn more, the following resources served as inspiration for the topic:

Previous posts in this series: