Conducting technical job interviews

Know what you are after

  • List the killer factors that will make a person appropiate for a role

Steps

1. Introduce yourself

  • Introduce yourself
  • Make small talk
  • Let them know how the interview is going to be carried out

2. Make the questions

  • Ask all the question you have set up
  • Ask all type of question, this will give you a better insight

3. Let the candidate ask questions back

  • Ask the candidates what questions do they have
  • Ask if there is anything else to highlight in case something was missing

What questions to ask?

General

  • Walk me through your progression in your career leading me up to your current role
  • Tell me about your proudest achievement
  • What were the responsibilities of your last position?
  • What are you not so proud of having done and how did you addressed it?
  • If you could master one technology this year, what would it be?

Technical

General

  • What did you learn yesterday/this week?
  • What excites or interests you about coding?
  • What is a recent technical challenge you experienced and how did you solve it?
  • What technology considerations do you make while building a web application or site?
  • Talk about your preferred development environment
  • Which version control systems are you familiar with?
  • Can you describe your workflow when you create a web page?
  • If you have 5 different stylesheets, how would you best integrate them into the site?
  • How would you optimize a website's assets/resources?

HTML

  • What does a doctype do?
  • Can you name HTML5 elements and attributes?
  • Where do you position CSS tags and scripts tags and why?
  • Have you used different HTML templating languages before?

CSS

  • What is the difference between classes and IDs in CSS?
  • How would you approach fixing browser-specific styling issues?
  • Have you used or implemented media queries or mobile specific layouts/CSS?
  • What are the advantages/disadvantages of using CSS preprocessors?
    • Describe what you like and dislike about the CSS preprocessors you have used.
  • Do you write your CSS using any standard? Which one and why?

JS

  • Explain how this works in JavaScript
  • Explain how prototypal inheritance works
  • What do you think of AMD vs CommonJS?
  • Explain why the following doesn't work as an IIFE: function foo(){ }();.
  • What is a closure, and how/why would you use one?
  • What's a typical use case for anonymous functions?
  • Explain "hoisting".
  • What is the difference between == and ===?
  • What are some of the advantages/disadvantages of typescript and coffeescript?
  • What tools and techniques do you use debugging JavaScript code?
  • From the latest versions of ECMAScript what’s your favorite feature?
  • What's destructuring assignment ?
  • Do you know any task runner?
  • Do you know any module bundler?

Testing

  • What are some advantages/disadvantages to testing your code?
  • What tools would you use to test your code's functionality?
  • What is the difference between a unit test and a functional/integration test?

Angular 1.x

  • What's interpolation?
  • What's the difference between directive and controller?
  • Explain the concept of data-binding
  • What's the difference between template and view?
  • What's a service?
  • What's dependency injection? What are the advantages?
  • Do you know the $resource factory? what's its purpose?
  • What's a module?
  • How do we add custom behavior when an element is clicked?
  • How do we hide the template for being briefly displayed by the browser in its raw form while the application is loading?
  • If you want to manipulate the DOM what should you do?
  • Can you explain the Scope Inheritance?
  • Can you explain the controller as syntax?

Angular 2.x

  • Name some common or popular angular features
  • What are some of the advantages of Angular over other frameworks?
  • Whats Ivy?
  • What ways angular offers to compile the application?
  • What is an angular module?
  • Can you mention a few lifecycle hooks in angular? explain them.
  • Differences between @Directive() & @Component() (attribute directive & component directive).
  • What is a structural directive?
  • What is angular CLI? how do you run an application?
  • What is one-way binding and two-way binding?
  • Can you mention some strategies to share data between components?
  • Explain the concept of dependency injection
  • How can you configure the angular dependency injection to override a dependency with a concret implentation in one specific component?
  • What is trackBy option in an ngFor ? Why is it important?
  • What is lazy loading? How to use it with modules?

RxJs

  • How are observables different from promises?
  • What are the differences between : switchMap, conactMap, mergeMap & exhaustMap
  • What’s the difference between hot observable & cold observable?

Frontend Architecture

  • Whats the difference between folders by feature vs folders by type? When to use each?
  • Can you mention any latency compensation strategy ?
  • Can you mention some strategies to increase the maintainability of an application?

Fun

  • What's a cool project that you've recently worked on?
  • What are some things you like about the developer tools you use?
  • Who inspires you in the front-end community?