- Assure interviewee this is not a grill-session.
- Don't worry about knowing all the answers.
- This is supposed to be difficult.
- It's a way to gauge their skill set, what their development interests are, and how we can work together.
- How has your front-end skill set evolved during your time developing websites?
- On a scale of 1-10, what is your comfort level developing with HTML, CSS & JavaScript?
- Do you follow any particular set of coding standards/guidelines?
- Do you have any web peers/heroes you look up to?
- Experience with Django or Python?
- Do you have experience with Node?
- Do you have experience with Grunt?
- Do you have a GitHub account?
- How well do you think you work with other fellow developers?
- Would you feel comfortable taking a support role in projects?
- Are you comfortable taking direction on your code?
- Given a choice, would you rather work alone or in tandem with someone?
- Are you comfortable leading discussions on what's technically possible or feasible given time-lines, technical limitations, etc?
- How do you respond to client revisions, feature requests, scope creep? (open ended perhaps to discuss agile/waterfall approaches)
- How do you make your code legible? (documentation, OO, multiple files)
- {a} Are you following the development of HTML5 and CSS3? Which features are you looking forward to the most, and why?
- {a} What is your favorite feature in HTML5 and how would you use it?
- {b} What would you change about HTML5/CSS3 if you could?
- {b} What is your opinion on HTML5 polyfills, such as Respond.js or CSS3 PIE? Do you lean towards polyfilling browser support, or towards a more progressive approach?
- {b} Do you prefer to crowdsource CSS/JS solutions or build functionality in-house?
- Do you have a standing list of plugins or scripts you take advantage of?
- {b} Do you know what responsive web design is? Could you explain it?
- The approach that suggests that design and development should respond to the user's behavior and environment based on screen size, platform and orientation.
- The use of media queries to appropriately display a website based on screen resolution.
- {b} Any experience developing for the mobile web?
- {b} Are you familiar with the HTML5 Boilerplate? Any strong opinions?
- {a} How important is HTML validation to you?
- {b} How important is it for you that your site works with JavaScript turned off?
- {c} Any experience with the History API? What kind of challenges did you encounter using it?
- {c} Any Canvas experience? Would you consider specializing in that aspect of HTML5?
- {a} What's your typical "lowest common denominator" browser?
- {a} Scenario: A project requires the use of a gradient background. Do you:
- Use CSS3 to achieve the effect?
- Use images to achieve the effect?
- Something else?
- {a} Do you think it's safe to drop the prefixes from the border-radius property? What about box-shadow?
- A: Yes for border-radius, no for box-shadow.
- {a} Are there any cutting-edge CSS properties you've used or want to use?
- {b} Are you comfortable with the concept of CSS specificity? Which has more specificity, a class or an id?
- A: An id will override a class.
- {b} Have you tried your hand at CSS transitions and/or animations?
- {c} Scenario: A project has removed IE7 from its required browser list. What HTML/CSS/JavaScript features can you now use freely?
- IE8 support is dropped. Now what?
- {c} Can you explain the concept of hasLayout?
- A: An IE proprietary concept that determines how elements relate to each other
- {c} Is there a way to change a browser's box model with a CSS property?
- A: box-sizing
- {a} Have you had experience using box-sizing?
- {a} Have you worked with CSS preprocessors such as LESS or SASS? Any strong opinions?
- {a} Are you comfortable coding in vanilla JavaScript?
- {a} How strong is your dependency on jQuery? Would you be able to work well without it?
- {a} What's your favorite jQuery function?
- Bonus points for more obscure functions like
$.delegate, $ .Deferred, $.proxy
- Bonus points for more obscure functions like
- {a} Do you prefer native for loops or jQuery's $.each method?
- A: Open-ended, but bonus for choosing native code.
- {a} Do you JSHint your code?
- {b} Do you have experience with AMD? Can you explain how you've used it in a project?
- Asynchronous Module Definition
- Specifies a mechanism for defining modules such that the module and its dependencies can be asynchronously loaded.
- {b} What are some tips to optimizing your JS/jQuery code?
- A: Open-ended. Caching variables, OO-approach, chaining, string concatenation, foreach optimization…
- {b} What over types of libraries have you used?
- e.g., RequireJS, etc…
- {b} What is your templating engine of choice?
- e.g., Mustache, Handlebars, Swig, etc.
- {b} Is a reverse for loop faster than a regular for loop?
- A: Yes.
- {b} What are you using to animate the DOM?
- Declarative animation? Scripted animation?
- Have you heard of requestAnimationFrame? Have you used it in a project?
- {c} Explain the difference between the JavaScript call and apply functions.
- Call: Requires arguments to be explicitly passed
- Apply: Arguments are passed in as an array
- {c} Do you have experience with WebGL? How?
- {c} What are your thoughts on object oriented patterns in JS? Do you use any?
- What's your favorite browser? Why?
- Tabs or spaces?
- Semicolons or ASI?
- Favorite website that showcases HTML5?
- Why do you want to work at RED?