I'm Braden.
I build backend and cloud systems, and this page is one of them.
I like systems where the money has to add up and the logs have to explain why.
The numbers below are live.
Bank Job
Talk Penny, an AI bank teller, into wiring you money.
live systems
Site
100%
up
179 checks in 30 days
as of build
Site: how it's measured
Each check fetches the homepage through Cloudflare's front door, as a visitor would. It starts inside Cloudflare's own network, so a Cloudflare outage would stop the checks too, and a failure shorter than 5 minutes can be missed. Uptime is the share of checks in the last 30 days that succeeded.
Source: Synthetic GET of the homepage every 5 minutes from Cloudflare's network
API latency, p95
≤ 300 ms
normal
46 requests in 24 hours
as of build
API latency, p95: how it's measured
Every visitor request to /api/* adds one count to a fixed bucket (5, 10, 20 ms and up to 5 seconds), so the p95 is shown as at most a bucket edge rather than a falsely precise number. Deployed Workers only advance their clocks after I/O, so this is time spent waiting on the database and network, not CPU time. The site's own checks aren't counted.
Source: Worker-side duration of visitor requests to /api/*, last 24 hours, from a bucketed histogram in D1
Last deploy
51 min ago
deployed
as of build
Last deploy: how it's measured
Just before deploying, the deploy job writes the commit, the time and a link to the run into /deploy.json. The Worker reads that file.
Source: /deploy.json, written by the deploy job
CI on main
unknown
GitHub rate limit
as of build
CI on main: how it's measured
The Worker asks GitHub for the newest Actions run on main and keeps the answer for 5 minutes, so it calls GitHub at most once per data center every 5 minutes.
Source: GitHub Actions
Game backend
unknown
status endpoint HTTP 530
as of build
Game backend: how it's measured
The game has its own status endpoint that answers without waking anything. Only pressing Play wakes the game.
Source: Bank Job's status endpoint, read every 5 minutes without waking the game
Data age
2 min ago
last check
as of build
Data age: how it's measured
The checks run every 5 minutes, so this should never be much older than that. If it is, the other values are stale, and the site and game cells switch to unknown after 15 minutes.
Source: Time of the newest synthetic check
site up, 100% over 30 days. API p95 ≤ 300 ms. last deploy 51 min ago.
case studies
Same con, five defenses
write-up in progress
The ledger under failure
write-up in progress
Waking from zero
write-up in progress
Hi-Lo Trainer
widget ready, write-up in progress
selected projects
No projects are published yet. I'm reviewing every entry before it goes up.
open source
openGabrieleGiuseppini/Floating-Sandbox#122
Add native Apple Silicon MacOS support
Opened
mergedasands1769/Adam-Blaze-Crafters#39
basic styling completed
Merged
mergedasands1769/Adam-Blaze-Crafters#36
Added forum link to open in new tab to navbar
Merged
about
I build things end to end and finish them, including the ones I started years ago.
I also run a one-person software company that ships small, useful apps.
contact
Email is fastest. I answer everything.