Using shared tmux to interview candidates (2024-02-29)

For a long time I have been using services such as CoderPad to interview Software Engineers.

Long time ago I was interviewed by Carey Nachenberg (Symantec, Google, UCLA prof) and the IDE was… a Google Doc. It was a torture, but in retrospect - I love the method. It aligns with my philosophy on competitive programming on paper first.

But today I am going to use something different. I am going to leverage a shared tmux session. Inspiration for this are Jeff Dean and Sanjay Ghemawat:

TL;DR: Jeff and Sanjay used xterm with shared tmux and then of course Emacs. This in parallel with a Google Meet.


(source)

So my plan today is to:

  • create an Azure VM with a public IP
    • maybe: Standard D4s v3 (4 vcpus, 16 GiB memory) with Ubuntu 22.04
  • prep: sudo apt-get install gcc python emacs-nox vim
  • start shared tmux: tmux -S /tmp/interview
  • for interviewer - ask interviewee for their public SSH key cat ~/.ssh/id_rsa.pub and put on new Ubuntu machine in /home/u/.ssh/authorized_keys
  • then interviewee will ssh u@interview.pluralist.net and then attach to shared tmux with tmux -S /tmp/interivew a - and if they are running iTerm - tmux -CC -S /tmp/interview a
  • before the interviewee begins coding - get permission and run asciinema
    • sudo apt-get install asciinema (available on Ubuntu 22.04)
    • start with asciinema rec ~/.ascii/interview.cast
    • exit to stop recordirg
    • scp to local host
    • play with asciinema play interview.cast

This solution may not be as pretty as CoderPad and needs a few extra chords or key strokes to compile and run, but it is in the hacker spirit and drastically cheaper ($0.20/hr). Arguably this tests interviewees’ ability and comfort level in the UNIX shell.