Skip to content

Instantly share code, notes, and snippets.

@joninvski
Last active August 29, 2015 14:26
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save joninvski/7ccf6694a34c6107a7d5 to your computer and use it in GitHub Desktop.
Save joninvski/7ccf6694a34c6107a7d5 to your computer and use it in GitHub Desktop.
Interview questions

Interview planning

Time schedule:

  1. 10m - candidate CV
  2. 5m - Organization technologies and dev workflow
  3. 20m - overall computer OS/network questions
  4. 5m - linux/git
  5. 10m - scalability

1 - Candidate CV

The candidate is given 10 minutes to talk a little about himself. Where did he studied, where did he worked, projects he has done before, technologies he likes.

2 - Organization technologies and dev workflow

Here we give a brief overview on what it is to be in the organization. We list the technologies/languages we work on, how our developement workflow occurs, and what is a normal day at the office.

3. Overall computer OS/network questions

Indicate to the candidate that this is a two way conversation, where the important thing is not the answer per se, but the process that uses to get to the answer. Wikipedia probably already has all the answers.

First question is:

" When I turn my computer on, i go to my browser and type in the URL bar: *www.google.pt*. 
Can you tell me what happens next? I know a lot of things happen, don't worry, just start somewhere and we will talk
about other pieces gradually"

Things that should be discussed with candidate (order not important and some might be skipped, depends on candidate profile):

  • DNS - Hierachical, cached
  • Routing - DHCP, routing tables
  • System calls (sockets)
  • HTTP/TCP protocol - Here on HTTP ask status codes, and what is GET/POST/PUT
  • Load balancing (on the google side)
  • Cookies - Google already knows my account, who does he do that, security problem with cookies?

Segway to the next question using the fact that the candidate explained about GET/POST/PUT before and ask what is a REST architecture

Final question for this part. Ask if candidate know minimum of C (if not please interviewer should adapt to other language)

If i do a malloc on a program, and that program crashes does that memory become lost until next reboot?
(include JAVA Virtual machine in the crash to if java is the language)

4. Linux and Git

Linux - Question: Imagine that the business team asks me every night to send a very important report at 1am to a client.
 On the first two nights I wake up, run the script manually and then go to bed again. On the third night I'm sleepy. 
 How can you help me to not wake up every night.

 Git - What is a difference between a git pull and a git fetch. 

If candidate does not know, no problem, ask what is difference between git add and git commit. Here important is not if he knows the exact definition but if he understands the fundamentals concepts of git.

Algorithms

Open google docs, invite him to the document and ask the user to code with you the following problem. Explain that you are going to work as a team (pair program) and there is no problem in asking about anything. There is missing information on purpose to incentivize the dialog. Choose the language you want.

Each user has a list of calls.

We want to show to the user his 8 calls with longer duration, but right now we notice that every time we ask the server:

        get_8_longer_calls(user)

        get_all_calls(user)

it is getting slower each day that passes. 

How can we diagnose, mitigate/solve the problem?
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment