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.