allenc allencheung

Front-End Engineering and the Application of Trivia

I’ve written plenty of front-end opinions and experiences on this blog over the years, around:

I’ve spent a good amount of time thinking about the role, the specialization and how the field would mature over time. So when I read this post on the poor interview experience from a front-end’er who was interviewed as a generalist engineer, it was predictably disastrous. The worst part is that those companies all had real web front-end needs, and mismatched interviews are a preventable false negative.

But, instead of me ranting about the mistreatment of the front-end discipline, I instead want to raise a concern.

Is front-end engineering reliant on trivia from experience?

I have the same deep battle scars as any front end developer – working against the IE6 box model; dealing with a different set of events and event parameters per browser and per version of the browser; using a series of fallbacks to polyfill and work around unsupported or barely-supported features of the spec – so my perspective is more reflective than derogatory. That we work in an openly hostile operating environment still requires a fair amount of skill and experience.

That said, when in position to hire or otherwise make judgement on front-end work, the justifications and qualifications revolve around enumerating the various quarks, bugs, and differences that browser vendors and standards have constructed over the past decade-and-a-half. This list of proposed front-end interview questions is what the community has come up with to test candidates, to see just how deep those scars go.

Philosophically, I’m a bit sad that the art of creating a user interface on the web has to be reduced to a smattering of trivia, which itself only serves as a proxy for experience. It might help to remind ourselves that good user interfaces are hard to build: they reduce a giant bucket of business and application logic into simple onscreen controls and widgets. Not only that, but the web is so far ahead of other interface systems that it’s expected to respond perceptibly immediately, and it has to run decently well on all modern computing platforms. Figuring out the ways to do this, and do it well, is much more interesting than trying to hack together a series of symbols that only Internet Explorer can parse.

Pragmatically, the age of the trivia has plateaued and can only be less relevant over time. Standardization has come a long way since building sites became a career path, and that bag of tricks we carry around to sprinkle onto troublesome spots of a rendering engine or JavaScript interpreter is becoming less valuable. The interaction of systems is a richer and deeper topic, and it need not be limited to the well-trod trifecta of markup, styles, and jQuery DOM manipulation. In fact, the keys to kingdom are increasingly available to non-front-end engineers in the form of rich libraries and bootstrap projects.

As usual, it’s time to roll up our sleeves and learn something new.

By allen
allenc allencheung