What I use
every day.

The hardware, software, and AI tools that make up my daily engineering workflow. Opinionated picks — these are things I actually use, not a sponsored list.

Editor & IDE

  • Editor & IDE
    Cursor favourite

    My primary editor for nearly everything. The AI pair-programming built into the editing loop — not bolted on as a sidebar — is genuinely the most productive setup I've found. The Tab completions understand context across files in a way Copilot never quite did.

    cursor.sh ↗
  • Editor & IDE
    Xcode

    Non-negotiable for Swift / SwiftUI / iOS work. I still use it for the simulator, Instruments profiler, and native SwiftUI previews. No serious alternative exists in this space.

    developer.apple.com ↗
  • Editor & IDE
    VS Code

    Kept around for config-heavy editing, markdown, and tasks where I want zero AI involvement. Also the fallback when a project's devcontainer doesn't play well with Cursor.

    code.visualstudio.com ↗

AI Tooling

  • AI Tooling
    Claude (Anthropic) favourite

    Claude Opus 4 and Sonnet 4 are my go-to LLMs for architecture thinking, code review, writing, and complex reasoning. Consistently better than GPT-4 for nuanced technical discussions and long-context work. I use Claude Code for agentic tasks directly in the terminal.

    claude.ai ↗
  • AI Tooling
    Antigravity (AGY) AI

    IDE-integrated AI coding agent I use daily for autonomous multi-file tasks — refactoring, generating tests, implementing features from specs. Significantly faster for non-trivial work than chat-based workflows.

  • AI Tooling
    OpenAI Codex / GPT-4o

    Secondary model for quick one-shot tasks, code translation between languages, and cases where I want a second opinion on an architectural decision.

    openai.com ↗
  • AI Tooling
    Perplexity new

    Replaced Google for most technical research. The cited, up-to-date answers save a lot of tab-hopping when evaluating packages, docs, or changelogs.

    perplexity.ai ↗

Terminal & Shell

  • Terminal & Shell
    WezTerm favourite

    GPU-rendered terminal with a Lua config that actually makes sense. Replaced iTerm2 after a few days — faster, more customisable, and the multiplexer is good enough that I barely reach for tmux.

    wezfurlong.org ↗
  • Terminal & Shell
    Zsh + Starship

    Starship prompt gives me Git branch, exit codes, and language version in the prompt line with zero startup overhead. Config lives in a dotfiles repo.

    starship.rs ↗
  • Terminal & Shell
    mise new

    Replaces nvm, rbenv, pyenv, and sdkman in one tool. Declarative `.mise.toml` per project means runtime versions are committed alongside code — no "works on my machine" nonsense.

    mise.jdx.dev ↗

Local Dev

  • Local Dev
    Laravel Herd favourite

    Native macOS PHP / Laravel environment with zero Docker overhead for local development. Isolated PHP versions per site, built-in Nginx, one-click SSL. I still use Docker for production parity in staging but Herd is unmatched for day-to-day speed.

    herd.laravel.com ↗
  • Local Dev
    TablePlus

    The best GUI for databases on macOS. Supports MySQL, Postgres, Redis, SQLite, MongoDB. Clean UI, fast, native. I open it many times a day.

    tableplus.com ↗
  • Local Dev
    Proxyman

    HTTP proxy / debugger for inspecting network traffic from iOS simulators and devices. Essential when debugging API integrations in mobile apps.

    proxyman.io ↗
  • Local Dev
    Docker Desktop

    For running dependent services locally (Postgres, Redis, RabbitMQ, Localstack) in docker-compose stacks. Also used for any production-parity build validation.

    docker.com ↗

Desktop Apps

  • Desktop Apps
    Raycast favourite

    Replaced macOS Spotlight entirely. AI commands, clipboard history, window management, and deep integrations with GitHub, Jira, and calendar. The free tier covers most of what I need.

    raycast.com ↗
  • Desktop Apps
    Obsidian

    My second brain — architecture notes, project journals, meeting notes, and long-form writing drafts. Local-first Markdown files synced via iCloud. The graph view is useful for connecting ideas across projects.

    obsidian.md ↗
  • Desktop Apps
    Linear

    Project and issue tracking for personal and client projects. Fast, keyboard-driven, and the roadmap views are genuinely useful. Far better UX than Jira.

    linear.app ↗
  • Desktop Apps
    CleanShot X

    Screenshot and screen recording tool. Annotate, OCR, scroll-capture, and record GIFs without leaving the flow. Indispensable for writing docs and bug reports.

    cleanshot.com ↗

Hardware

  • Hardware
    MacBook Pro 16" (M3 Pro) favourite

    Primary machine for everything. The M3 Pro handles Docker stacks, iOS simulators, and large codebases without a fan spin. 36 GB unified memory means I rarely feel constrained.

  • Hardware
    LG 27" 4K IPS Monitor

    Side monitor for reference, browser, and terminal. Not the best panel on the market but the 4K resolution at 27" hits a sweet spot for code density.

  • Hardware
    Apple Magic Keyboard + Trackpad

    Nothing exotic — the Magic Keyboard with Touch ID is good enough and keeps the desk minimal. The trackpad gesture support on macOS is still unmatched.

Open to interesting work.

Backend architecture, native iOS, or AI-augmented engineering — available for freelance and contract projects.