Our interview process is a little different from what you might expect. For instance, we do not test for skills like...
- Whiteboard puzzle/problem solving!
- Data structures and algorithms!
The detailed explanation on why we do not test for these skills can be found here. tl;dr? we fundamentally believe in testing only for skills that we expect will be needed for (most of) the kind of work that we do here.
Here's what our hiring process looks like:
1. Evaluate the job for suitability
Go through the job description and assess which of these skills are you already strong on. That will be purpose of our early screening. Another assessment to make is, the compensation range we share for open positions. This helps us avoid a situation of last minute surprise if either of our expectations are way off, and we find that out after a month of conversations. We also don't negotiate on this stated compensation range - the reason is that we have internal parity across roles and that information is transparent within the organisation. To stay true to that means there is very little wiggle room.
2. Answer the "Opinion Questions"
As a team, we're quite an opinionated one! It helps us to listen to everyone, and we end up learning from each other's point of view. To know you better, we ask you to write down answers to these 4 questions:
- What advice would you give to your younger self (back when you started programming)?
- What is your favourite programming language, or framework? Why? What do you not like about it?
- What are some of your favourite technical essays, books, or videos? What do you like about them?
- Why do you want to be at Obvious?
We're not judging your English skills here. Instead, we're looking for clarity of thought and explanation. There are no right or wrong answers to these questions. All of us have very different thoughts on them, shaped by our experiences, and we hope your answers will make for a riveting discussion.
3. The first call
We have a 15-30 minute call with you to understand your realities, explain ours and mutually assess if our values have enough of an intersection set, for us to potentially work together happily. This helps both of us get a sense of the absolutely essential right at the start and save everyone time.
4. Take-home exercise
Aha, finally some code! We will ask you to build a small app using publicly available resources.
- You do this exercise on your own computer, and in an environment that is comfortable for you.
- We expect you to use git, commit code as you go along, and build the app iteratively -- just as you would during a normal workday.
- When you're done, make your repository public and send us a link to it. We'll go through what you've built and get back to you in a few days.
- The exercise requires a few hours to complete. In order to be considerate of your time and ours, we expect the exercise to be submitted in a maximum of two weeks' time.
- In case you face any issues, our hiring team is available to help and resolve your doubts over e-mail.
5. Virtual Obvious Day
This is the penultimate step in our process — congratulations! You will be spending half a day at our virtual office, meeting our team, seeing how we work, and writing some code. Here's a peek at the schedule for the day:
Technical interview: 1 hour
You talk to one or two engineers from our team about your technical journey. Expect the questions to be practical, platform specific, and related to the kind of work you've done. We might end up discussing your answers to the Opinion Questions, and talking about the choices you've made in the Homework Exercise. Since we are remote-first, these series of conversations can happen online, on a day we schedule in with you. When our office is operational post-pandemic, and you are located nearby, and so are the interviewers, we could also schedule this in-person.
Pairing exercise: 2 hours
You pair with an engineer on the Homework Exercise code you wrote. This might involve refactoring or adding some features. To make you comfortable, we will do this on your computer, or give you time to setup one of our computers to fit your usage.
Mentor a Junior Developer: 1 hour
If you're interviewing for an experienced position, we ask you to explain a concept/pattern to a junior developer. You may use a computer or whiteboard or anything else you feel comfortable with. One of our engineers will silently shadow this discussion.
6. In-person Conversation
The final piece is an hour-long friendly conversation with our engineering lead to understand your journey so far, what you're looking for in the future, and any questions you might have about Obvious.
You should go through our Playbook beforehand, as it answers many frequently asked questions. We also welcome your feedback about the entire process — bouquets and brickbats alike!
And... that's all!
We'll get back to you with an answer in less than 7 days. Good luck!