Bobby Craig.A personal corner
of the internet.

Software,
with a sense
of play.

I’m Bobby, a software engineer. I like building useful things, figuring out how they work, and leaving a little room for curiosity.

Go on. Push a few buttons.

Orbital pinball.

←→ flippers · hold Space to launch · P pause

How to play.

Hold Launch (or Space) to pull the plunger and let go to fire. For the first eight seconds after a launch, a drained ball comes straight back. You get three balls; when one drains, your bonus is paid times your multiplier.

Knock down all three drop targets on the right to light a mission, then shoot either ramp to accept it. Missions come in order: Reactor Service wants eight bumper hits, Navigation Check all three top lanes, and Supply Circuit two more ramp shots. After those three, Station Turnaround asks for four bumper hits, then the orbit, then the dock.

An accepted mission starts with 60 seconds of fuel. The orbit adds eight seconds and the dock twenty, up to 60; run dry and the mission fails. Each mission earns a mark (Turnaround earns two), and three marks raise your rank, shown as chevrons on the display.

Roll through all three top lanes to raise the multiplier (up to 5×) and arm a kickback (the left first, then the right), which sends one outlane drain on its side back into play.

Keys work while the table is focused: ← or A for both left flippers, → or D for the right, Space for the plunger, P or Esc to pause, and Z, X, / to nudge. On a touch screen, hold both flipper buttons at once if you need to.

High scores, your rank and the sound setting stay in this browser. Leaving the page pauses the game; come back and you can resume at the start of the ball you were on. Sound starts off.

Always a work in progress.That’s part of the fun.

Things I work on The toolbox Latest notes

Good systems.
Interesting
problems.

I spend a lot of time thinking about what happens on the other side of the screen.

Behind the scenes.

APIs, backend systems, and all the little decisions that make software reliable. The parts you notice most when they stop working.

Built to keep working.

Infrastructure, observability, and turning an unexpected problem into a fix that lasts. Good tools make room for the interesting work.

A safer internet.

Abuse prevention, content safety, and security. Making systems useful means thinking about how they can go wrong, too.

A few things
in the toolbox.

Languages, infrastructure, and the bits in between. Open a drawer.

LanguagesGo / Python / TypeScript

From backend services to scripts and interfaces. Different problems call for different tools.

InfrastructureAWS / Terraform / Kubernetes

Running software, describing infrastructure in code, and making deployments repeatable.

Data & deliveryDynamoDB / Redis / GitHub Actions

Storing state, moving quickly, and automating the steps between a change and a release.

InterfacesReact / Next.js

The part people touch. Turning the system underneath into something clear and useful.

Notes from
the keyboard.

Things I’m building, things I’m learning,
and the occasional rabbit hole.

All writing
  • Hello, world

    Why I rebuilt this site and what I plan to write about.

Got something
on your mind?

An idea, a question, a good rabbit hole.
I’m always happy to talk shop.