Savvas Sheittanis
Software Engineer at Trafalgar Tickets/Cyprus/Freelance since 2020/Last shipped 2025
All work01 / 15
LiveTypeScriptNextJSReactJSPostgreSQLSupabaseRedisStripeMulti-cloudRealtime

SaaS for a Video Game

A live SaaS platform for online gaming communities that I designed, built and run on my own. It has around 70 pages, more than 120 API endpoints, a PostgreSQL database of over 200 tables and more than 9,700 automated tests, built across 12,000+ commits. Behind it, background jobs run across two cloud providers, large volumes of data are processed every day, and paid subscriptions are handled end to end.

The product is live and commercial, so it is not named, linked or shown here. Get in touch and I will walk you through it privately, with a live demo and the code behind it.

Request full details
Date
Jan 2025 - Present
Kind
Web app
Status
Still live
SaaS for a Video Game
Notes on the build

Working with very large data

Incoming data is processed once, stored as simple running totals, and combined inside PostgreSQL across tables of around a hundred million rows. I wrote two custom database functions to do it in a single query, and reworked the heaviest job to save progress as it goes instead of timing out.

Juggling several external APIs

The platform leans heavily on five external APIs, and each one plays by its own rules, with its own rate limits and its own ways of failing. Pulling data from all of them without hitting those limits, and staying up when one of them is slow or down, is a large part of the everyday work.

Fast caching that never leaks data

A Redis cache speeds up reads across more than 150 kinds of data. It is built so a failed request can never get stuck in the cache, and so one customer can never be shown another customer's cached results.

Cloud jobs that track their own cost

Heavy background jobs run on machines across two cloud providers. Each job reserves its own machines up front, and three separate safety checks shut down any machine left running after a crash, so costs stay predictable and match the bill.

Live collaboration

A 4,000-line editor lets several people work on the same plan at once, with live cursors and drawing. Positions are stored relative to the content rather than the screen, so everyone sees each other in the right place whatever their zoom or scroll.

Reading undocumented file formats

Two desktop apps only share their data in their own scripting format, with no API. I wrote an interpreter to read it, nearly 3,000 lines, plus a decoder for an undocumented binary format and a generator that writes files those apps can load.

Smart scheduling

Several features solve real planning problems, such as filling roles against a ranked list of goals. Results are repeatable, so the preview always matches what gets saved, and anything that could not be placed comes with a clear reason.

What made it hard

Rarely the features themselves. The hard part was making them work together safely: permissions that agree between the app and the database, a shared cache that keeps customers' data apart, and background jobs that stop costing money when something crashes.