/FE-Dev-Interviews

:clipboard: Front-End Dev Job Hunting

Front-End Dev Interview Questions

Based on my experiences searching for a job in Toronto 2014.

Interview formats:

  • Screening phone call
  • Non-formal chat about position
  • Formal interview that covers non-technical and technical questions
  • Interview Test
  • Technical Interview

HR questions

  • Tell me a little bit about yourself.
  • What have you learned this week?
  • What have you been up to since X?
  • What side projects have you been working on?
  • How do you indulge yourself in the industry? How do you stay current?
  • Why did you take a web development bootcamp after a Comp Sci Degree?
  • What about CompanyXYZ interests you?
  • What type of company do you want to work for?
  • Why do you think you'd be a good fit?
  • What is your biggest character strength and weakness?
  • If you could work for any company, which would it be and why?
  • Where do you want to be in 5 years?
  • What music do you listen to? - They replied with yeah we play X here in the office.

Technical questions

HTML

  • What is a doctype?
  • Can you name some HTML5 elements?
  • What are the new media-related elements in HTML5?
  • Have you worked with Canvas?
  • What are SVGs?
  • What are different types of storage in HTML5?
  • Are you familiar with Jade or Haml?

CSS

  • What is a rem unit? When do you use them?
  • What is an example of a pseudo element?
  • What are vendor prefixes?
  • Do you use bootstrap?
  • Do you have any experience with CSS preprocessors? Have you used LESS or Sass?
  • How many different ways can you apply styling to a webpage?
  • What does the CSS Child Selector do?
  • Explain the properties of Float in CSS?
  • Using animations what CSS property do you use to increase/decrease the size of an element?
  • How do you guarantee a section of CSS will override any other reference?

Responsive Design

  • What is Responsive Design?
  • Have you used break points?
  • What are a few different ways you could implement Responsive Design?
  • What is Mobile first design?
  • How familiar are you with adaptive design and development?

JavaScript

  • Have you used any testing on your code?
  • Are global variables good or bad?
  • Have you used any other JavaScript Libraries?
  • What is the difference between == and === ?
  • Have you used CoffeeScript?
  • Do you lint your code?
  • Which linters do you regularly use?
  • What is event binding?
  • How do you prevent event bubbling?
  • How do you trigger multiple events on click?
  • What are namespaces? Give an example.
  • When you write your JavaScript, do you choose functional programming or object oriented?
  • Describe how you would make a JavaScript object. How would you call a function inside of it that accesses a property of that object?
  • When would you use a JavaScript animation over CSS3 Animations? Explain why.
  • You have a button outside of a form, describe how you would use JavaScript and jQuery to collect data from the form after clicking on the button and what would you do with the data?
  • What is use 'strict'?
  • How would you design a large scale project with JavaScript?
  • Explain what happens when you make an AJAX request?
  • What happens when you use var?
  • What is a Callback function?
  • What is a Promise?
  • What is a Closure?
  • What is a Prototype? Give an example.
  • What is Prototype Chaining?
  • What does the bind() function do? What does the call() function do?
  • What is Inheritance in JavaScript? Give an example.
  • How would you assign Child Specific Objects?
  • What is require in JavaScript? How could you use it to reduce load time to a webpage?

Computer science questions

Using any programming language and being syntactically correct as possible, on paper:

  • Write out a function that solves the Fibonacci sequence.
    • Write a function that solves the Fibonacci sequence a different way.
    • In big O notation compare and explain the complexity of both functions.
  • Write out a function that computes a Factorial given a non-negative integer number.
    • Write out the function a different way.
    • In big O notation compare and explain the complexity of both functions.
  • Given an Array of Integers, write a function that computes the sum of the two largest numbers.
  • Fizz-Buzz: Write a function that iterates through the numbers 1 - 100 and if the number is divisible by 3 print "fizz", if its divisible by 5 print "buzz", if its divisible by both then print "fizz"

Client scenarios

  • If a client has called you and said that the web page is loading slow, what steps would you ask the client to take to diagnose the problem?
  • If you have just finished a project for a client and the client says the web page needs to have a video feature incorporated, assuming the implementation takes 1 extra week to implement, how would you reply to the client?
  • While you are implementing the new change you discover a bug that pushes your time line back by 3 days, how would you reply to the client?

General questions

  • How would you rate your skills 1 - 10 of the following:
    • HTML
    • CSS
    • JavaScript
    • jQuery
    • PHP
    • Wordpress
  • When you start a new project, what is your development approach?
  • What's your typical workflow like?
  • What type of projects would you prefer to work on, JavaScript or HTML & CSS?
  • What is your preferred development environment?
  • What do you do when you find a bug?
  • Do you blog?
  • What blogs do you follow to stay up to date?
  • Who do you follow on twitter?
  • Who is the best developer that you've ever worked with and why?
  • Do you speak at conferences or lead workshops? Have you done public speaking in the sector?
  • Have you contributed to any open source projects?
  • Have you participated in a hackathon?
  • How many different ways can you center text vertically and horizontally on a page?
  • How can you make a div the height of the page?
  • Name as many ways as possible to make text not display on your page.
  • How do you optimize a website's assets?
  • Name three ways to reduce page load time?
  • How would you rate one of your latest projects out of 10? What would you change about it?
  • Do you use Photoshop? Can you slice a PSD and get assets out of it?
  • Are you familiar with version control? Do you use Git, Subversion or Mercurial?
  • Have you worked with a CMS?
  • What browsers do you typically test in and support?
  • How would you test if you could use a microphone inside the browser on a mobile device?
  • Are you familiar with Cross-browser compatibility testing? Have you used it on any projects?
  • What is a polyfill?
  • What do you use as your primary text editor?
  • Do you use Github and/or Bitbucket?
  • What is your testing workflow?
  • Have you worked with a team before?
  • Are you familiar with Agile methodologies?
  • What is Test-Driven Development?
  • Do you think you're a fast learner? If so, why?
  • What was the most difficult project you worked on and why?

How to prepare for an interview?

  • Research the company
    • Why do you want to work for them?
  • Research who you are interviewing with
  • Minify your live projects and personal website
    • Be prepared to have the interviewer pull up your website and project and view source.
    • If it is minified then they might start a conversation about what task runner you used to minify it.
    • If it is not minified then they may pick apart your code and poke around.
  • Review your projects' code.
  • Review your resume
    • Anything listed on your resume is fair game. If you listed SQL as a skill then be prepared to answer questions about SQL. Only attribute skills you are confident in.
  • Read the job posting.
    • If they list "nice to haves" technologies that you've never heard of, then spend some time learning what they are.
    • Brush up on skills that they're looking for.
      • If they're looking for a candidate for an AngularJS project, maybe spend a few nights building an app with it.
  • Familiarize yourself with some of the latest web technologies
    • Frameworks
      • Angular
      • Backbone
      • Ember
      • ReactJS
      • Meteor
      • Bootstrap
    • Libraries
      • Lo-Dash
      • Modernizr
      • Underscore
      • Marionette
      • WebGL
      • threeJS
      • D3
      • Processing
    • Task Runners
      • Grunt
      • Gulp
    • Testing Frameworks
      • Jasmine
      • Mocha
      • QUnit
    • Test Runner
      • Karma
    • Tools
      • NPM
      • Bower
      • RequireJS
    • Preprocessors
      • HTML
        • Jade
        • Haml
      • CSS
        • Sass
        • Less
        • Stylus
      • JavaScript
        • Coffeescript
    • Canvas
    • NodeJS
    • MEAN stack

What to ask at the interview?

  • What type of work do you usually do? What are you working on right now?
  • Whats your favorite project at the moment, why?
  • Do you generally do product work or advertisements?
  • Do you build static websites or CMS? .com or apps?
  • What type of clients do you generally deal with?
  • What is a typical day in the life as that role?
  • What would my responsibilities be?
  • What is your stack?
  • How big is your development team?
  • What are the tech backgrounds of your developers?
  • What front-end technologies do you use?
  • What is the culture like at XYZ? What is your company culture?
  • Do you guys eat lunch together?
  • Do you have social events?
  • Does the company do hackathons?
  • Are you supportive of developers attending conferences?
  • Your company has a foosball table, but do you actually use it?
  • Where is the beer fridge / scotch cabinet?