A Guide to the Backend Interview
Congratulations! We’re extremely excited to move on in the application process! We’ve put this guide together so you know what to expect during your interview. Interviews will be 30 minutes long, and we’ve attached a signup sheet with your email!
Interviews consist of three different sections, system design, code review, and a short technical question. All sections are weighed equally, and at the end of the interview you’ll have some time to ask any questions that you might have for us!
This section is a great opportunity to show that you can think about the bigger picture. Generally, we will ask you how you would design a database for a particular application. Be prepared to draw diagrams, and talk through your thought process.
Reviewing database concepts is helpful. Understanding how to model data and relationships is the primary focus of this section.
Don’t worry about SQL queries/syntax.
No design is perfect! We might ask you the drawbacks of your design. This doesn’t mean your solution is wrong. Being able to recognize the pros and cons of different designs is very important when designing a backend.
In AppDev, whenever a developer wants to make a change to the code base, they must go through code review. Code review is a process where other developers on the team can give constructive criticism and feedback on another developer’s code.
Being able to read code, understand it, and give meaningful feedback is important. It prevents trivial mistakes from happening and ensures that quality code is being produced. Most importantly, it helps all of the developers improve.
In this section, you will be given code from the language of your choice (Python or Java) and will be asked to first read it. Then, we will ask you to provide feedback and suggest any improvements that you may see.
Take your time reading the code.
Point out everything you see! Everything from stylistic and structural errors or just bad coding practices that you notice is fair game.
Ask questions! If you are unsure about certain parts of the code, we will be more than happy to explain.
This last section is your typical whiteboard coding question. You will be asked one or two coding questions (depending on time). You can use the language that you are most comfortable with such as Python, Java, etc.
Steps for a successful technical interview:
Take a moment to make sure you understand the question. Ask any clarifying questions.
Think of a solution or the approach you will take. Think out loud! Talk through your reasoning so we know what you’re thinking. If you have no idea where to start, don’t be afraid to tell us. We’re here to help!
Write your code, while talking us through each line.
Walk through your code and run it on an example to test correctness.
Think about if any improvements can be made or any edge cases you might have missed.
After you code up your solution, we will ask you about the time complexity so be mindful.
A brute force solution is better than no solution! We can try to optimize after.
Focus on the approach rather than the solution. We’re more interested in seeing how you approach problems rather than simply whether or not you can solve a given problem.
Be yourself! We’ve designed the interview to best simulate the work you’d be doing on the team, in a 30 minute interview. Ask questions if you need clarification, our goal from the interview is to know what it’d be like to work with you!