At the start of the year, I highlighted what I thought was the formula for getting and developing front-end engineers. To summarize, it’s a combination of: identifying the right traits, cross-pollinating developers from disparate disciplines, and attracting talent by producing awesome work.
I forgot to mention that the ideas were a work in progress.
Six months later, I can come back and verify that I wasn’t just spewing theory for pageviews, but that we’ve been able to build an awesome front-end development team at Square. I think we’ve hit on all points above: we’ve been able to identify engineers with the appropriate skillset and put them into roles of impact; we’ve been able to onboard new engineers who didn’t start with FE expertise but were able to quickly learn and develop; we have been able to execute and build cool products. Going from one front-end dev to almost a dozen in less than a year is nothing short of awesome.
Some additional observations and addendum for those looking to build their own teams:
- Pair program. I’m firm in my belief that pairing is the best way to onboard new engineers onto a tech stack and share best practices. That said, it is a tool and should be sheathed when appropriate; sometimes, nailing down the exact pixels to a CSS rule does not require two sets of eyes.
- Find ways to challenge developers. It’s one thing to build aesthetically-pleasing websites that have the right amount of animations and states; it’s another to try to do something that users simply do not expect from a browser.
- Pair great engineers with great designers. They will demand the impossible and expect perfection, and it will result in tension between design and engineering, but it will keep the developers challenged and engaged.
- Allow time for prototyping and experimentation. There is no shortage of exploration into what the browser can accomplish with a sprinkle of code and a dash of genius.
- Convert backend developers to frontend development. One problem with front-end development is that many of the really technical pain points are left unaddressed; FE devs are understandably reluctant to dive onto build systems and deployment frameworks, and it’s a real opportunity cost as most teams have more backend than frontend engineers to begin with. Getting a backend dev to feel the same pain will encourage them to either build or fix the systems, resulting in productivity gains for the entire team.
- Brag (and I honestly have a hard time doing this). FE development is unfortunately not regarded as technically challenging nor as difficult as design, although I’d argue that the difficulty of hiring is proves it’s much more than a trivial skill. Sadly, most of the innovation in our field are only really appreciated by others in the field, so it takes some time and effort just to show and explain our work.