Thanks so much for your interest in working at Maybe as a Backend Engineer! Below is a challenge we'd like to have you do. The primary purpose of this is to understand how you solve engineering challenges.

You should spend no more than 2 hours on this project.

There are two parts to this challenge. The first part is about system design and is focused on learning how you approach large, complex problems from a planning perspective. The second part is about actually coding that system.

💾 System Design

Design a platform that syncs transaction data from external providers (banks, crypto exchanges, etc) and allows users to track their net worth over time. Suppose that there are 100k users, with each user connecting 10 or more data sources.

Please spend no more than 1 hour on this part. We’d like you to talk us through your plan and data model, draw a system diagram and touch on the scalability/reliability/maintainability of your system.

🔐 Code

Using your data model from the System Design part, please write a query that outputs the ending balance of each bank account at the end of each month.

To verify your query works, please write a script that generates transaction data.

We happen to use Postgres here, but that's not a requirement for this challenge.

Please spend no more than 1 hour on this part. We'd like you to talk us through your query, the tradeoffs you use and how it's optimized for this specific job.

📦 Deliverables

As an asynchronous company, this test project will be done asynchronously. You may submit your challenge response in text or video, or a mix of the two. As a company, we generally optimize for text, but this is up to you.

Ultimately, it's more important for us to understand your thought process and why you make the decisions you do versus the format you use. Whatever format helps you convey your solution to the challenge is fine with us.

Reply to your job application email thread with your solution to the challenge and we'll go from there!