The playground / Callum Watt

A little play.
A little systems
thinking.

Take a seat at the table. Catch a broken event. Small games and experiments inspired by the things I've built.

01 / From hardware to browser

Take a seat.

A browser adaptation inspired by
my Raspberry Pi blackjack project.

THE CW TABLEJUST FOR PLAY · NO MONEY OR WAGERS
DealerWaiting for a deal

BLACKJACK PAYS IN BRAGGING RIGHTS

Dealer stands on all 17s · Aces count as 1 or 11
YouReady when you are
Deal a round to begin.
0 wins · 0 losses · 0 pushes
Behind the game ↗

My university implementation used C++, a Raspberry Pi Zero W, GPIO buttons and cloud database persistence. This adaptation runs entirely in your browser with a fresh 52-card deck each round. It is newly written for the portfolio, rather than the original hardware code.

Aces are revalued when a hand would bust, natural blackjacks resolve immediately, and the dealer draws until reaching at least 17. There are no bets, cash balances, accounts or stored player data.

Explore the original IoT project →

02 / A small engineering challenge

Rescue the pipeline.

Six events. Some are broken.
Can you keep the clean ones flowing?

Incident 01 / 03AWAITING TRIAGE

Quarantine the faulty records.

Select the records that should be held back, then check your decisions. Valid records should keep moving.

Validation rules
  • Event ID and user ID must be non-empty strings.
  • Types: page_view, click or purchase.
  • Value must be a number, not text—even if the text looks numeric.
  • Timestamp must be a real UTC date and time.
  • Keep the first event ID; quarantine subsequent duplicates.
Inspect the batch and make your selections.

Synthetic records. A simplified challenge based on data quality principles, not company data or a production incident.

Behind the challenge ↗

The challenge uses the same validation engine as the engineering lab. It checks actual record fields and compares your choices with the validator's decisions. Three incident sets cover missing IDs, impossible dates, string-valued amounts, unsupported event types and duplicate IDs.

Explore the engineering lab →

An expanding collection

More room to experiment.

These are the first two. Market simulations and more small games can join the collection as I build them.

Back to the work behind the play ↗