Nicholas recently wrote a piece about the rise of the front end engineer (FE) as a legitimate engineering discipline in the age of the Internet. It’s a fascinating read, and I highly recommend anyone working with FE engineers to read both that article as well as his other post on working with software engineers. He briefly touches on some of the frustrations FEs deal with as they try to break into an industry driven by technical brilliance, but I feel that’s just the tip of the iceberg.
I recently went through a number of interviews at numerous companies around the valley, and one of the most frequently asked questions from both recruiters and prospective employers was “Why have you stayed at Yahoo so long?”. It’s a pointed question, and it was usually asked with a sense of both curiosity and incredulity. It’s easy to see why outsiders would have such an impression. Yahoo is consistently painted in a negative light to serve as an omen to other tech giants in the valley, as if to say “hey, this is what happens when you become complacent!”
My answer to the recruiter’s question was simple: talent. Because of the way Yahoo embraced FE as a rigorous discipline nearly 10 years ago, it became a breeding ground for the best FE talent in the valley. I don’t think I need to repeat what Nicholas said, but the huge amount of FE talent that was unearthed from within the depths of Yahoo is unequaled. Even as these pioneers left the nest, an incredible plethora of knowledge was passed on and retained, allowing Yahoo to become a haven of learning for the FE discipline. The fact that I was hired specifically as part of a special program to groom FE gurus says so much about the kind of culture that Yahoo has fostered.
With the explosion of HTML5/CSS3/JS and its acceptance as the UI stack of the future, I felt that FE had finally reached the grand stage. It seemed like heaven; there were numerous FE opportunities across the the Bay Area, and many companies had disciplined FE organizations due to the influence and migration of ex-Yahoos. Speaking with recruiters was also an empowering feeling! It was as if the industry had finally come to accept FE for what it was – a mix of engineering and creative, all rolled up into one neat package.
However, diving into phone screens and interviews I soon realized this to be only half true. Despite applying for a FE position, with a FE centric resume, I was subject to various questions asking me to demonstrate mastery of algorithms such that I could solve for X in O(n) time. I can appreciate the technical complexity of these types of questions, but I think asking these kinds of questions is extremely problematic. First, as a FE these are not the types of problems I solve on a day to day basis. To ask a FE to solve algorithmic problems is like asking your electrician to be your new personal plumber. Second, the unhealthy focus on technical chops over various other interpersonal skills sidelines a lot of really great candidates. I would much rather work with someone who is an effective team player and communicator, than a hero who is out to prove his technical brilliance. This is not to say there isn’t a bar, but the bar shouldn’t be set only by their technical ability (this however, is the topic of another post altogether…. perhaps we’ll come back to that later).
I’ve heard from many FE engineers that with the exception of the interview process, they have never again worked with algorithms within the scope of their work. So my question to interviewers out there: why is that we vet FE engineers by asking them to write algorithms and optimize database queries? Do we vet back end engineers by asking them to design CSS frameworks and optimize client code? What do we expect to gain from having potential FE candidates solve these types of problems? I understand the need to verify a good foundation of technical skills, but I don’t believe this is the right way.
The only answer that seems reasonable is to assume that “traditional” computer science concepts are still the most important pieces of knowledge an engineer can demonstrate. Even if that means biasing against the entire FE community, who have built their careers on skills learned on the job (or on personal time). I don’t want to call it elitism, but it is my opinion that many other disciplines including UI/UX/Product Development, are all negatively affected by this mindset to some degree. A few years ago Yahoo began an initiative to change this attitude by cooperating with iCarnegie to offer FE courses as part of a proper college curriculum. This would allow both current students as well as working students an unparalleled opportunity to better prepare themselves for a career in web development. It was a great idea, and one I wanted to pitch to my alma mater, UVa. I wrote to both the Dean of the Engineering School as well as residing UVA CS legend Anita Jones, neither of whom bothered to respond to my email. It was rather disappointing, although not entirely unexpected.
In my opinion, the rise of FE as a legitimate discipline means we must also find methods in which to vet FE engineers correctly. The algorithm based interviews are a pointless exercise which results in nothing useful for either side. I would much rather interviewers take a gander at Darcy Clark’s compendium of FE interview questions. It’s far more relevant to a FE engineer’s duties, and also serves as a much better indicator of a candidate’s overall mastery of FE concepts. As a prank, I would love to use this material to interview a BE engineer. Just the thought of a squeamish BE engineer tickles my bones. :)