.. | ||
src | ||
test | ||
.gitignore | ||
README.md |
SoundCloud backend engineering code review interview exercise
Introduction
Welcome to the SoundCloud backend Pull Request review challenge!
This repository contains a simulation of a microservice. The service is intentionally simplistic. The code for the service is python, but only using basic aspects of the language. We intend this to read like pseudocode - and in particular we do not judge your submission based on your knowledge of Python. Exposure to any popular programming language(s) should be enough to effectively work this exercise.
You will be reviewing Pull Request #1 (present under the "Pull Requests" tab). It's meant to be a simplified simulation of the sort of code review you might encounter in your everyday work.
Also see: a quick introduction to GitHub pull requests.
Your challenge
The code should be robust and reasonably feature-complete. We only want to merge this Pull Request once you and your (imaginary) colleague are confident that:
- The implementation actually supports the requested feature.
- The implementation is likely to work, including proper handling of easily-foreseeable corner cases.
- The implementation is not easy for a mailcious user to attack.
- Other engineers can productively and confidently change this code, meaning:
- The code is clear and straightforward to reason through.
- It has high-quality unit tests and good test coverage.
- It's well-organized and code elements have intention-revealing names.
- There are comments, where those are useful.
In short, we are interested in gaining some insight into what is important to you when you review code. We'll be concentrating especially on what you feel is important to change, and the way you communicate that. Please provide change requests, ask questions, and otherwise make comments as you normally would when reviewing code.
The only GitHub review features that matter in this exercise are commenting-related: commenting on the whole Pull Request, and comments targeted at specific areas of the code. If you prefer to make use of Github's markdown features in your comments, please feel free to do so - but if you haven't used these features before, please do not use them.
As a general guideline, this exercise should take about 30-60 minutes. You are free to take more (or less) time than that, however.
When you're done, please notify your SoundCloud recruiter contact via email.