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 EngineeringAfter 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?
- 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.
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.