back to notes

Pairing interview

 Goals

  1. Provide a good experience
  2. Finish the first challenge

 Before the interview

Good things to remember before starting the interview

  1. Set up keyboard and mouse for pairing. Make sure your desk is ready.
  2. Have Atom, Sublime and Visual Studio Code installed
  3. Run through the setup script for the pairing-interview-app https://github.com/futurelearn/pairing-interview-app
  4. If you’ve set up the app before, make sure you reset the app with
be rake db:reset
git clean -fdn
  5. Have Rails guides open in a tab and point to them and say it’s ok to use the guides or look up stuff: https://guides.rubyonrails.org/
  6. The Frontend test version uses webpacker, so it starts up differently than the real futurelearn app.

 At the start of the interview

  1. Offer glass of water
  2. Ask if setup is ok.
  3. Point out it’s ok to say “I don’t know”.
  4. Point out we don’t need to get to the end.
  5. Signpost how long it’s going to take. We will spend 1h 30m. Midway we’re going to take a five minute break - maybe they want to a glass of water or they need to go to the toilet etc.

 Pairing exercise - Ruby

  1. Present the Domain Model

Show them the schema.rb file. NB: We don’t have a Run model in this app.

User 1 —> * Enrollments * —> 1 Courses 1 —> * Steps 1 —> 1 ContentType

ContentType is polymorphic, but the only type we have in the app is Article

The interviewee has to associate the Comment to a user, but they can choose whether to connect it to a Step directly or via a Course.

  1. Explain (if they don’t ask): What is a learner? We talk about this in the challenge text, but we don’t really explain what it is in the code. It’s a user.

  2. HAML can be confusing. Might be worth walking them through it. A tutorial is available here: http://haml.info/tutorial.html

  3. Process: Sign up -> Start now (this creates an enrollment) -> Click on a Step

  4. Starting on a spec. For the Ruby exercise, you can point out the “participatinginacoursespec.rb”. This is a good place to add tests related to comments. And there are already good examples in there.

  5. Routes should be nested under steps! This simplifies things.

  6. Make sure they know about form_for helpers. If they don’t you can explain it to them: https://guides.rubyonrails.org/v5.2/form_helpers.html

  7. For non-Rails people, it might be worth quickly explaining what MVC means in Rails land: https://guides.rubyonrails.org/v2.3/getting_started.html#the-mvc-architecture. Also make sure you explain how routes access a controller:

  • Example1: admin/ has views & controllers. You can point out that controllers make use of strong_params.
  • Example2: Models -> the Step model has good relationship examples.
  1. One of the challenges involves displaying a timestamp. There is a time_ago tag that they could use. Prompt them to go look in the docs.

  2. There is a harder version of the Ruby exercise (the Admin section) which involves adding roles using the cancancan gem.

    1. The goal is to finish at least the first exercise. If you feel they aren’t going to do that, you should take the lead and finish it up for them. Summarise how they helped you get there.
  3. For this exercise, you should not care about styling.

  4. Make sure you find a balance between helping and letting them find their own info.

  5. Keep features to a minimum. Future improvements can come later.

 Halfway mark

Give them 5 mins to chill

Get up and get yourself a glass of water. Offer to get them one as well. If they need to go to the toilet, this is a good time. Give them 5 mins to chill.

 After the interview

Write down notes immediately after the interview. Score the candidate based on the 5 items in the competency framework.

1 - if you hire this person I will leave 3 - on the fence 5 - if you don’t hire this person I will leave

 Things of note

  1. If you’re going down a path that is not leading anywhere, a good way to stop the person and suggest another option is to say: “I’m not sure this is the right way. Could we ?”
  2. Extra marks: Do they offer suggestions to make the feature better?
  3. Offer praise where you feel they’ve done well
  4. Keep opinions until after scoring discussion.


last updated december 2019