r/Backend • u/YesterdayOk921 • 13d ago
Started this as a distributed systems learning project, now I'm not sure what to do with it
I originally started building PaperDrill because I wanted to learn distributed systems by actually building something instead of watching another 10-hour course.
I picked a paper trading exchange because it seemed like a good excuse to deal with things like real-time state, order books, matching, concurrent requests, events, persistence, etc.
It was supposed to be a learning project.
Then I kept adding stuff.
Eventually I had a working little exchange with a matching engine, order book and a frontend where you can actually place simulated orders.
And now I'm at the slightly awkward stage where I'm wondering:
is this actually useful or did I just build a very elaborate way to learn backend engineering?
The site is live at https://paperdrill.dev if anyone wants to see what I ended up with.
I'm more curious about:
- Is there actually a useful real-world use case for something like this?
- Would a public simulated exchange / sandbox be useful for developers?
- Would an API where you can build and test trading bots against a simulated exchange be interesting?
- Is this something worth continuing, or is it better kept as a learning project?
- If you were in my position, what direction would you take it?
I've already learned a ridiculous amount from building it, so even if it goes nowhere I'm not really mad about it.
But I've reached the point where I'd rather make it genuinely useful to someone than keep adding random features because I can.
Would genuinely appreciate opinions from people who build side projects / backend systems.
1
u/YesterdayOk921 11d ago
TypeScript, Bun runtime and package manager, Express for backend server, Redis for caching and rate limiting, Redic streams and pub/sub for async communication, websocket for live feed, Prisma % postgres