// uses

The machine, the shell, and the bike.

What I build with, the terminal helpers I wrote because I got tired of typing the same five commands, a few corners of the internet worth bookmarking, and the gear that gets me out of the city.

Workstation

  • MacBook Pro, M3 Pro

    Fast enough that a full Gradle build is a coffee sip, not a coffee break. macOS, keyboard-first.

  • LG 27U631A - 27-inch QHD

    2560×1440 IPS at 100Hz with USB-C power delivery - one cable to the MacBook, and enough room for editor, terminal and logs side by side.

  • Logitech MX Master 4

    Ergonomic, with the free-spinning scroll wheel that makes long log files and stack traces bearable.

  • iPad Pro + Magic Keyboard

    The second screen for reading, sketching system designs, and travelling light.

  • Raycast

    Launcher, clipboard history, window snapping and snippets - the first thing I install on a new Mac.

  • Arc

    Spaces per context (work, side projects, contests) keep the tab count civilized.

Editors & AI

  • IntelliJ IDEA

    Home for Java and Spring - the refactoring and debugger are still unmatched for large JVM codebases.

  • Cursor & VS Code

    TypeScript, Python, and anything that isn't the JVM.

  • Claude Code

    Pair programmer in the terminal - this site was scaffolded, committed and deployed with it.

Terminal

  • Ghostty + iTerm2 + Zsh

    Ghostty for speed, iTerm2 for the odd split-pane session, Zsh with a file of hand-rolled functions (below).

  • glit

    One-step git add, commit, push and cleanup - the helper I run more than any other.

  • cbjson

    Pretty-prints whatever unreadable JSON is on the clipboard (or in a file) and puts it back - jq colours when available.

  • weather

    Terminal forecast with short, one-line and graph modes, plus the moon phase - checked before every ride.

  • port · webshare · myip · pingmap

    Who is on :8080 (and kill it), share a folder over LAN HTTP, local and public IP with geolocation, and a latency breakdown.

  • todo · countdown · keepawake

    A persistent CLI task list, timers with macOS notifications, and caffeinate with a kill switch.

  • The full write-up ↗

    Every function above, why it exists, and the source - free to steal. On Medium.

Backend toolbox

  • Docker

    Local Kafka, Mongo, Postgres and Redis on demand.

  • Postman

    Collections for every service I touch.

  • NoSQLBooster & Offset Explorer

    Poking at MongoDB and Kafka topics without writing a consumer.

  • Grafana, Prometheus & New Relic

    If it isn't graphed, it isn't in production yet.

Awesome finds

  • Information is Beautiful

    David McCandless's data-visualization studio - dense facts turned into graphics you actually want to read. A masterclass in making numbers obvious.

  • The Pudding

    Visual essays that explain culture with data and interactive storytelling. The best argument I know for scrollytelling done right.

  • Our World in Data

    Open research and charts on the world's biggest problems - poverty, health, climate, energy. My go-to when an argument needs a real number.

Off the grid

  • Royal Enfield Himalayan 450

    The touring bike. Built for bad roads and long days - which is exactly how I use it.

  • Trekking kit

    Layers, a good pair of boots, and a pack light enough to forget about at altitude.

  • 7 Wonders Duel

    The two-player strategy game that never leaves the shelf for long.