Examples of time bound asynchronous coding exercises that evaluate candidates on certain skills that we think are relevant to being successful at Sourcegraph.
TypeScript coding exercise
We designed this exercise to measure your understanding of callbacks and asynchronous execution.
- You will choose a two-hour timeframe to independently work on the exercise. You can choose any day and time; we just schedule an email.
- At your chosen date and time, we will send you a zipped TypeScript project that contains instructions and some unit tests.
- TypeScript is a superset of JavaScript, so if you are comfortable with JavaScript and have experience reading any typed language, then you should be fine. We recommend reading through the TypeScript docs if you aren't already familiar with TypeScript.
- You should have Node.js (>=8.16.0) installed on your computer.
- You can look up documentation on the Internet while you are coding.
- You may use open-source libraries, but most candidates don't find it necessary. For some parts of the exercise, we'll explicitly require that you not use any.
- After two hours, you will email us your solution as a zip file and we will get back to you on next steps within 2 business days.
If we decide to move forward, we will schedule a 30-minute followup call to discuss your code.
Frontend live-coding exercise
We designed this exercise to measure your understanding of building web UIs.
- We will schedule a 60- or 90-minute timeframe (depending on the position) to work with a Sourcegraph engineer.
- The exercise asks you to implement a UI in a scaffold TypeScript React app.
- We provide you with the code of the scaffold app, the URL of a working backend API to fetch data from and a link to a Figma design for the UI.
- The backend exposes data over both a RESTful interface.
- You can lookup documentation on the internet.
If you have never worked with React or it's been a long time, we recommend brushing up on their basics a bit before taking the exercise.
There are no "advanced" React features needed to pass the exercise.
We will grade your submission on both the code (implementation) and the result (UI, functionality, etc), so we recommend to not compromise one over the other.
Apply the same standards to your solution you would to any solution you implement in a real-world production-ready app.