Selected work
Projects I designed, built, and still run. The code for these is private, so each one is shown through what it does, how it's put together, and what it produced.
Quanta Analytics
Free closed beta since October 2026
A multi-tenant analytics SaaS for Rust game servers. It captures everything that happens in-game and turns it into 20+ dashboard pages on player behavior, retention, cheating, and map balance.
1.8Mevents logged
369players tracked
3,545hours of play recorded
5servers connected
Game serversC# plugin (Oxide and Carbon) hooks in-game events and batches them on a timer
Ingestion APIFastAPI + asyncpg checks server credentials and assigns each event to a wipe and session
Time-series databasePostgreSQL + TimescaleDB, daily compressed chunks, hourly rollups
DashboardServer-rendered pages with Chart.js and Leaflet map heatmaps
The problem
Rust server owners make big calls about loot, events, map design, and moderation with almost no data. The game fires events constantly, but nothing collects, stores, or explains them over time.
What I built
- The entire data path, from the in-game plugin to the ingestion API, database design, and dashboard.
- Session-based event tracking: the API ties every event to the player's play session and the server's current wipe, so each session can be replayed and wipes compared side by side.
- Time-series storage on TimescaleDB: event tables split into daily chunks that compress after 24 hours, with hourly continuous aggregates behind the heavier charts.
- Query tuning so each page reads each table only once, plus rollups and response caching, benchmarked against a 1.5M-row copy of production.
- An opt-in public leaderboard API that exposes only a random public ID, which now powers the leaderboards on thelastofrust.com.
- Multi-tenant accounts: Steam and Discord sign-in, organizations that own several servers, invite links, and roles that control which pages each team member sees.
- Separate production and development environments, each with its own branch, service, and database.
What server owners can see
- HeatmapsPvP, building, looting, and gathering drawn over the real game map
- Player sessionsEvery kill, loot, craft, and chat line on a timeline
- RetentionDay 1, 3, and 7 retention and each wipe's half-life, compared wipe over wipe
- Cheat detectionAccuracy and headshot outliers by weapon, alt accounts, and Steam ban checks
- Map balanceRisk versus reward for every monument, and NPC fight outcomes
- Staff and moderationAdmin logs, staff coverage by hour, and report response times
Stack
quantaanalytics.gg
The Last of Rust
Game servers and community site
Three heavily modded Rust servers, two PvE and one PvP, that I run end to end: hardware, custom gameplay code, the website, and the community of 800+ Discord members.
Infrastructure
I ran a colocation-versus-rental cost analysis and moved the servers onto two dedicated machines I picked for Rust's heavy CPU load: AMD Ryzen 9800X3D processors with 64 GB of RAM each.
Favorite plugins I've built in C#
Object-oriented C# built to be configured rather than edited: each plugin reads JSON config files, so server owners can tune its behavior without touching the code.
- Drug Deals: lets players buy, grow, and sell drugs for in-game currency. Seeds arrive by cargo plane, and harvests vary with each plant's genetics.
- Drug Raids: lets players raid drug hideouts defended by turrets and NPCs, stealing drugs they can then sell through Drug Deals.
- Wonder Weapon: a ray gun in the style of Call of Duty Zombies. It repurposes a chosen weapon so it can gather resources and kill zombies.
- Server Menu: a custom in-game UI that puts the server's rules, features, leaderboards, and helpful info in one place for players.
- Player Spawn Points: sends players to different spawn locations based on their permissions and whether they're new or returning. Monument spawns are stored relative to the monument, so they survive map wipes.
Drug Deals and Drug Raids both build on a shared Drugs API plugin I wrote, so the drug types and plant genetics are defined once and reused.
I also sell plugins on Codefling, the main marketplace for Rust plugins, where 150+ copies of my 5 paid plugins have sold to other server owners.
A static Astro site on Cloudflare with server guides, rules, a feedback form, and store integration. A small Worker handles only the live data, and its leaderboards are fed by Quanta Analytics.
Quanta public feedOpt-in per server, read-only, exposed by a random public ID
Cloudflare WorkerFetches all feeds in parallel, merges them, caches 5 minutes
Leaderboards pageKills, gathering, accuracy, and playtime with an online-now indicator
- Secure by design: server owners switch the public feed on from the dashboard, which generates a random public ID, so internal server IDs and API keys are never exposed.
- Fails gracefully: if one server's feed is down, that server comes back empty and the others still show. If every feed fails, nothing is cached, so the next visit tries again.
- Live player counts from Steam's public server list, cached for 60 seconds.
- Same-origin API, so the browser needs no cross-origin setup, and images hosted on Cloudflare work both on the site and in-game.
Short-term rental business
3.5 years hosting
I bought and operate a short-term rental, from the investment analysis to the day-to-day guest experience.
- Ran market and financial analysis to choose the property and project its returns.
- Adjust pricing across seasons and local events to keep occupancy high.
- Handle all operations: guest communication, turnovers, and maintenance.
4.94 rating across 224 guest reviews.