Thanks so much for your interest in working at Sport Buff as a Backend Engineer! Below is a little challenge we've put together that we'd like you to have a go at. The primary purpose of this challenge is to try to understand how you solve engineering problems.

There are two parts to to this challenge. The first part is about system design and is focused on helping us understand how you work. We want to see how you approach a large, complex problem from a planning perspective. The second part of this challenge is an attempt at coding that system.

You should try to spend no more than 5 hours on this project. We believe it is unfair for you to spend too much of your free time working on this challenge but if you feel like you can impress us by spending a little longer then that is fine.

📋 System Design

Design a system for aggregating users points into leaderboards. The business want to be able to build new leaderboards on the fly and the engineering team are trying to solve this problem. Points and votes are brought in from an external service and this is something you'll not need to worry about.

Below we have provided an example data structure for how points are represented.

Leaderboards are made up of a collection of games and are identified with the games_id field.

points

leaderboards

Please do not spend no more than an hour on this part. We'd like you to talk through your plan and system design, draw a diagram (paper and pen 📝 is alright) and touch on the scalability/reliability/maintainability of your system.

<aside> ℹī¸ Please include a high resolution picture of your diagram if opting for pen and paper

</aside>

đŸ’ģ Code

Using the data model from the System Design part, we'd now like you to attempt to implement this in the provided technical task boilerplate. We'd like you to write a solution that produce and output a leaderboard.

Try to think about the limitations and problems your solution might have, how can it be optimised, what parts of the system could be changed to improve performance.

Please only spend a few hours on this part. We'd like you to talk through your query, the tradeoffs you've made and how it's is optimised for building the leaderboards.

You can access the technical task boilerplate from the following GitHub Repository

GitHub - buffup/backend-challenge

đŸ“Ŧ Deliverables

Please attach your System Design either to your backend challenge or send it to use via email.