Tuesday, June 1, 2010

Job Interview Tips for a Front-End Developer: Show How Passionate You Are

As my nervousness rises, my palms begin to sweat. I've been summoned for a job interview. There's a plethora of questions and answers ping-ponging through my mind as the time ticks closer to the interview. With my confidence banked on my experience, skills, and knowledge, I'm guaranteed this job--so why am I nervous?

The receptionist enters, "Mr. Anderson?" I look up, "Yes, that's me." She smiles, "Mr. Smith will see you now."

I thought I would open this blog with a different approach--it's one of those memorable experiences that you'll always keep getting every time you go for a job interview. The feeling of nervousness, the thoughts buzzing through your head like a bees nest, and the prediction of your outcome.

The Sad State of Front-End Engineering

After conducting job interviews on a number of front-end developers, I've come to realize that my discipline (front-end engineering) is saturated with non-programming programmers. Programming is an art, much like a Martial Arts--there are people out there that can get by and be successful using the skills/techniques without actually understanding the discipline. Surely, I believe that this has happened because of the fact that 'anyone' can really jump into building web sites. The Internet encompasses a plethora of tutorials that show how any person can copy paste (control C, control V) and voila, the page is done. The problem here comes from the lack of fundamental knowledge.

  • How do I contain multiple floats inside a container? 
  • How do I give an element layout in IE? 
  • Why is eval() evil? 

These questions really escape the undisciplined web developer on a day-to-day basis. Subsequently, I feel like the title 'front-end programmer', 'front-end developer', 'front-end engineer' is given out too easily. I am a firm believer that a true developer shows passion in what they do, as well as, understands the fundamentals of how/why things happen.

How passionate are you about Front-End Engineering?

When the interviewer asks you this question:
  • Based on your past project experience, in your opinion, what was the most challenging feature you had to develop? 
This is a blessing in disguise. This provides you with the ability to pick out a particular feature you've developed and talk about the techniques you've implemented, the push-back you've done with the designers, as well as, outline the lessons you've learned. Tone is everything while telling your interviewer about your experience. Show him that you are a passionate developer: you take pride in your work, you are dedicated to your discipline, and you are constantly trying to learn more. You can single handedly get the job based on your response if you evoke an emotional response from the interviewer. To me, when I see a developer really showing me how passionate he is about front-end development, it strikes me emotionally. As a more experienced developer, I love working with other developers that are just as passionate as I am about front-end engineering.

How technical are you?

Even if you can't fully answer the technical questions, do not be discouraged. If you can't answer them, at least give it a shot. One thing that I've noticed is that candidates full-stop themselves if they can't answer the typical, "how would you write a fibonacci method in Javascript? How does fibonacci relate to Javascript implementation?", "What are the 4 types of 
method invocation in Javascript?", and "how many methods do you know for triggering hasLayout in Internet Explorer".  Even though these questions can be quite technical, they test your thought process. Are you a programmer or not?

  • Prior to developing an application, what are your first steps when analyzing a mock-up given to you by a designer?
Initially, this should raise flags in your mind as soon as possible. This is a test of your critical thinking abilities. We live in a Web age of really complex user interfaces, so think about the commonalities.
  • Can we re-use the drop shadows across all modules?
  • Can we re-use the rounded corners?
  • Are the fonts aliased so that they are more realistic in terms of Internet Explorer 6?
  • Are the fonts web friendly?
  • Are the states in the mock all complete?
  • Are you able to tell the designer to reduce a certain component's transparency to make IE6 development not-so stressful?
  • Can we sprite all the buttons, icons, etc? (Save http requests)
  • Is the design screen resolution friendly? (1024x768)
  • Is there a Flash piece where your application has to have elements ovelapping?
  • Will I have to use CSS Grids (OO CSS, Blueprint CSS, etc) to maximize re-use?
  • Will I have to develop re-useable, re-skinnable components? (Accordions, Filmstrips, Slideshows)
Of course, this is just a small list of things to cover during a job interview. 

When applying for front-end jobs, applicants should start indoctrinating some of the thought process I've listed above. Some job interviews might be purely technical--asking only the evil questions about Internet Explorer or perhaps some of the deeper intrinsic features of Javascript. Ultimately, you can't go wrong with the advice above. If you disagree with me or have other suggestions to add, put them in the comments below.


Jaime Bueza is a software developer in Vancouver, British Columbia, Canada. He has developed web applications for Nintendo, Electronic Arts, Ritchie Brothers, Kiwi Collections, and Cox Communications. When he's not developing useful software that constantly evolves with business requirements, he's creating tutorial videos for aspiring front-end developers.