Today is an exciting day because we've just started accepting applications for our summer internship programme! If you're reading this then hopefully you've already applied or you're thinking of applying. Don't worry if that's not the case, but just bear in mind that the target audience of this blog post is internship programme candidates.
Before you apply
In my second year of university I remember sitting in the computer lab, applying for internships for the first time and being incredibly apprehensive about what to expect. We know applying for jobs can be stressful but it doesn't have to be. We want this blog post to provide a behind the scenes look on our hiring process to give you a better idea of what would await you as a candidate in the interview process. There should be no unexpected surprises or gotchas. Culture is so important to us at OpenTable and ensuring that we have an honest and fair recruitment process is a key part of that.
Let's firstly dispel three myths that might prevent you from applying in the first place:
- You have to have the perfect grades
- You need to be studying computer science
- You need to know at least X programming languages
Without trying to state the obvious, to succeed in an interview you first need to apply. We hear all kinds of excuses from people who never get around to applying. Perhaps you're avoiding it because you believe one of the myths above, or perhaps you believe that you'll just do it tomorrow. Regardless, you can't succeed without an application and there's nothing stopping you from applying. We don't need to see straight A grades, you don't need to be studying a particular degree, you definitely don't need to know every programming language under the sun. Throughout the interview process we just want to get to know you and see whether you'll fit in well in the team. We're not looking for rockstars or ninjas. We're looking for friendly, competent people who we'd be happy working with. The only requirement is that you have to be hungry to learn more about software engineering in the real world.
Our process
There's four stages to our interview process. Although that might sound long now, each stage is a chance for you to learn about us as well as for us to learn more about you. It starts with a resume review stage where the hiring manager reviews your application to see whether they think you're a good fit. The second stage is a telephone interview with someone from the team who will go through your CV and try and understand you and your background in more depth. The third stage is a time-boxed take-home coding challenge to assess whether you meet the base level of technical competency required. The fourth and final stage is a remote interview with separate technical-fit and culture-fit components. If you pass this final stage we'll extend an offer for you to join us for the summer.
Stage 1: Resume review
When you apply, you'll send us your CV/resume and an optional cover letter.
Your CV doesn't have to be perfect, just be sure to check that it doesn't contain any formatting errors or spelling mistakes. We like to see a keen interest in programming outside of your studies so if you have any examples of code you've written or apps you've built, please include links to them in your CV. We don't judge candidates for a lack of side projects but we certainly look upon candidates more favourably if there's evidence of a passion in software engineering beyond daily studies. Above all else, think about what story you want your CV to tell, is it consistent and is it an accurate representation of you. Try your best to distil your past experiences into one page. You're early into your career so aim to keep it brief and to the point so the best bits stand out.
We don't require a cover letter for all applications because we don't feel as though they're always necessary. It's up to you to decide whether you want to write one. They can be useful if you're applying with a non-traditional background and want to provide additional context. Maybe you're coming from a coding bootcamp or you're transitioning careers and have only recently got into programming for example, but if you're coming from a technical degree at university we don't typically expect a cover letter with your application.
Stage 2: Initial phone call
If we like the look of your application we'll schedule a short informal phone call with someone from the engineering team. There should be no preparation required prior to the call. It's an opportunity for you to ask any questions that you have about the internship programme as well as for us to evaluate whether we think you're a potential fit for it. Ultimately, the purpose of this interview stage is to ensure that there's mutual benefit in both of us moving forward to the next stage of the interview process which is more time consuming. It helps to have a copy of your CV handy at the time of the call as we'll typically start the conversation by asking you to take us through it. We'll ask any questions we have about your background as we go through it. In addition to this we'll also ask some basic qualifying technical questions that are based on foundational knowledge. For example, you might be asked about object-oriented programming, unit testing or how the internet works. We're not looking for dictionary definitions, just a high-level understanding and an ability to explain your thinking.
Stage 3: Take-home coding challenge
The next stage is a small take-home coding challenge that we ask you to complete on your own and then send back to us. You can already view this online if you want a sneak peek. It's a time-boxed assignment where we only want you to spend a maximum of two hours on it. The goal is not to create the perfect web app, the goal is to deliver something that meets the requirements where you're able to explain the technical decisions you've made. We know that the challenge might feel somewhat pointless, but it gives you an opportunity to demonstrate your coding skills and problem solving ability in a real-world setting, without the pressure of doing it live in an interview. We've found this gives a more accurate assessment of technical skills. Generally you'll have as much time as you need to complete your coding challenge, although we ask that you complete it within a couple of days to keep the interview process moving along.
Stage 4: Final round
Previously we did the final round on-site in our Shoreditch office but we now do it remotely over video call. Not only is this for practical reasons because we have a work-from-anywhere policy so not everyone is always in the office, but it's also easier in many ways, particularly for screen sharing and pair programming. Because everything happens over video call, it's really important to check that your microphone and camera are working correctly prior to the interview and that you have a quiet place with a reliable internet connection to take the call. When these conditions aren't met it can lead to a frustrating interview, for both you and your interviewer. The final round includes a technical interview and a values interview and should last no more than two hours.
Technical interview
As part of the technical interview we're looking to assess your hands-on knowledge of software engineering. It will start with a short pair programming session with an engineer where you'll work through an extension of your take-home coding challenge. You will be the driver and will be sharing your screen. You'll work with your interviewer to add extra functionality to your take-home project. We're less concerned about productivity here and pumping out as many lines of code as possible, instead we're more concerned with what you're like to work with. We love this interview because it's reflective of how we work as a team. We collaborate a lot and pair programming is an almost daily occurrence. As part of this technical interview we might also follow up on anything we spotted in prior interviews where there might be gaps in your knowledge. We'll try and integrate this into the natural flow of the pair programming session but you could also be asked some questions at the end. You'll have opportunities to ask questions at many points throughout the interview process but as this a 1:1 interview with a fellow engineer this is a great opportunity to ask any technical questions you might have about our products.
Values interview
Technical skills are great but they're no good on their own, we also need people who align with our values and our company culture. The values interview will be with two people and depending on availability it could be with engineers, product managers, or designers. It's easy to underestimate the difficulty of the values interview. Take some time to think about yourself, what you're good at and what you enjoy. Think about your past experiences and your history of working in teams. What did you find challenging? What did you find rewarding? You will be asked questions about your past experience as well as your motivation for applying and goals for the future.
In summary
Hopefully you found this insight into the hiring process useful. We know many of you applying to the internship programme will be applying to jobs for the first time, so we want you to have a great first impression of industry. We encourage everyone to apply, even if you don't feel 100% ready for it. Even if you're unsuccessful this time, that's not necessarily always going to be the case, and if you apply for a different position after graduation your application will be looked at independently. You've got nothing to lose.