Pairing interview
Goals
- Provide a good experience
- Finish the first challenge
Before the interview
Good things to remember before starting the interview
- Set up keyboard and mouse for pairing. Make sure your desk is ready.
- Have Atom, Sublime and Visual Studio Code installed
- Run through the setup script for the pairing-interview-app https://github.com/futurelearn/pairing-interview-app
- If you’ve set up the app before, make sure you reset the app with be rake db:reset git clean -fdn
- 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/
- The Frontend test version uses webpacker, so it starts up differently than the real futurelearn app.
At the start of the interview
- Offer glass of water
- Ask if setup is ok.
- Point out it’s ok to say “I don’t know”.
- Point out we don’t need to get to the end.
- 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
- 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.
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.
HAML can be confusing. Might be worth walking them through it. A tutorial is available here: http://haml.info/tutorial.html
Process: Sign up -> Start now (this creates an enrollment) -> Click on a Step
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.
Routes should be nested under steps! This simplifies things.
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.htmlFor 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.
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.There is a harder version of the Ruby exercise (the Admin section) which involves adding roles using the cancancan gem.
- 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.
For this exercise, you should not care about styling.
Make sure you find a balance between helping and letting them find their own info.
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
- 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
?” - Extra marks: Do they offer suggestions to make the feature better?
- Offer praise where you feel they’ve done well
- Keep opinions until after scoring discussion.