Join our engineering team

To start our hiring process send your answers to these questions to join-us@intercom.io.

Our process

The first part of our process is to answer a few quick questions & exercises over email. After we review your answers, if we think you're a good fit, we'll set up a phone call and our final step is an interview in our office in Dublin city centre. Don't worry, we'll send you more details of what to expect beforehand.

How we evaluate

Before tackling these questions, it's a good idea to read how we'll evaluate your answers. You can find details here: https://blog.intercom.io/how-we-hire-engineers-part-1/

In answering the code questions, please submit code as if you intended to ship it to production. The details matter. Tests are expected, as is well written, simple idiomatic code.

We'd recommend you use whatever language you feel strongest in. It doesn't have to be one we use -- we believe good engineers can be productive in any language. Other applicants have found gist.github.com useful for sharing solutions, email is fine too. We can't accept answers on a shared Google Drive or Dropbox account.

Responses

Please email your answers directly to join-us@intercom.io. It may take us 2 to 3 days to review your answers. They're passed to one of our engineering team to review.

Questions

  1. What's your proudest achievement? It can be a personal project or something you've worked on professionally. Just a short paragraph is fine, but I'd love to know why you're proud of it.
  2. Write some code, that will flatten an array of arbitrarily nested arrays of integers into a flat array of integers. e.g. [[1,2,[3]],4] -> [1,2,3,4].
  3. We have some customer records in a text file (customers.json) -- one customer per line, JSON-encoded. We want to invite any customer within 100km of our Dublin office (GPS coordinates 53.3381985, -6.2592576) to some food and drinks on us.

Write a program that will read the full list of customers and output the names and user ids of matching customers (within 100km), sorted by user id (ascending).

You can use the first formula from this Wikipedia article to calculate distance: https://en.wikipedia.org/wiki/Great-circle_distance -- don't forget, you'll need to convert degrees to radians. Your program should be fully tested too.

Customer list is available here: https://gist.github.com/brianw/19896c50afa89ad4dec3