Skip to content
Adam Probert

Hello World, I'm Adam.

Expert Generalist
Adam Probert

An engineer from Cardiff, Wales. Ten years of platforms, backends, frontends and the infrastructure underneath, plus a long tail of projects that peaked my interest. None of it was planned, it was a series of successful stumbles, each one mostly figured out as I went.

This site is the record of that: what I built, and the lessons learnt along the way.

Where I am now

Games, and some really interesting problems

Lead engineer at a games consultancy in Cardiff, working with studios whose ambitions usually run ahead of their infrastructure.

The running theme is walking into complicated projects and working out what actually matters. Two things have mattered more than anything technical. The first is focus: there is always more to do than you can do, and picking well is most of the job.

The second is getting as close to the client as possible: how they actually work, the nuances of their business, the things nobody writes down. Only then do you have a fighting chance of building them something genuinely valuable rather than something technically correct.

Games is a good place to be doing this. The clients are often whimsical, the briefs are genuinely creative, and a lot of what is settled practice elsewhere is still up for grabs here. Bringing that in from other industries is a really satisfying part of the job.

Crème de la crème

Some of my favourite projects

Four projects that were harder than they looked, in the most interesting ways

  • The observability system behind Amazon's official GameLift Servers SDKs

    Averages hide exactly the frames you care about. Once the timing signals moved to histograms and percentiles the problems became obvious, and they had been sitting there the whole time. Measuring the right thing beats measuring more things, and on anything latency-sensitive the right thing is almost always the tail. The tick budget taught me the rest: the measurement has to be cheaper than the thing it measures, and cheap on every tick rather than on average, because a spike from the collector is indistinguishable from the bug you were sent to find. Designing for three languages added the last piece: the hard part is not the code, it is agreeing what a metric means and holding that meaning identical across implementations, because the moment two SDKs disagree the dashboard stops being trustworthy. And an SDK nobody can work out how to switch on measures nothing at all, which is why the docs and the default dashboards mattered as much as the instrumentation.

  • Scrapkings - Mascott

    ScrapKings

    2026 · Game

    A top-down arcade roguelike about bolting a ridiculous machine together mid-run.

    This one is on pause, and I would rather say so than pretend otherwise. The scope grew faster than I could keep up with and the summer of 2026 has been a glorious one. Due to pick it back up in October. Writing the design pillars down before building anything was the best decision on it: driving has to be fun with zero upgrades, behaviours over stat modifiers, readable chaos. Those three lines killed a lot of bad ideas cheaply.

  • Cheddar

    2025-26 · Robotics

    A six-wheeled rover that crabs, spins on the spot, and climbs stairs.

    I shelved this for the best part of a year over a serial connection. I was set on running it over the GPIO pins, and it worked perfectly in isolation - Pi to ESP32 to drivers to motors and servos - and fell apart every single time it was integrated. I came back a year later, plugged in a USB cable instead, and it worked immediately. Weeks of pain resolved by the most boring option available. Keep it simple, stupid rang very true that day.

  • The Grimoire ML mark: a burning spellbook with ML in the flames.

    Grimoire ML

    2025 · AI / Web

    Natural-language Magic: The Gathering search, as a small fleet of services.

    Asking a language model to emit search syntax directly is brittle and impossible to debug. Putting a structured intermediate representation in between turned an unpredictable component into a testable one - I could exercise the whole query layer with no model involved at all. That indirection is what made the results trustworthy, and it is the bit I would do first next time rather than last.

All projects →
If you’re here for a nudge

If you’re sat on a weird idea wondering whether it’s worth building: it is. Half the things on this site are stalled, shelved or a bit broken. Give it a go. See what happens.

Contact

Say hello.

Whether it’s work, something you’re stuck on, or a project you’re thinking about starting, I’m happy to chat through it.

Get in touch
  • Something you're building, or thinking about building
  • A problem you're stuck on and want another pair of eyes on
  • Anything on this site you want to know more about
  • A role or piece of work worth a conversation