Tools
Uses
Operating system & shell
- Windows 11 with WSL2 for development work
- macOS for video and design work when needed
- Terminal: Windows Terminal + zsh in WSL
Code editor
- VS Code with these extensions I actually use:
- Astro
- Tailwind CSS IntelliSense
- GitLens
- Error Lens
- Markdown All in One
- GitHub Copilot (used judiciously - see writing on AI Trailblazer adoption)
Development stack
- Node.js 20 LTS - primary runtime
- Python 3.11+ with FastAPI for AI services
- Docker Desktop + Docker Compose for local infrastructure
- GitHub for version control and collaboration
- PostgreSQL, Redis, MinIO as the standard local services for AI/RAG work
AI / LLM tooling
Daily drivers
- Claude (Anthropic) — primary reasoning and writing model. Best long-context analysis in my hands, and the tool I reach for on complex technical problems, program documentation, and anything requiring careful structured thinking.
- Claude Code — Anthropic’s AI CLI tool for software development. The backbone of how I build and iterate on this site and side projects. Runs in the terminal, has full codebase access, and the MCP tool ecosystem makes it genuinely extensible.
- ChatGPT (GPT-4o) — secondary driver. Useful for image analysis, multimodal tasks, and as a cross-check on reasoning I want an independent take on.
- Perplexity AI — AI-powered search for research and citation-backed answers. Faster than manually cross-referencing Google for technical questions.
- Gemini 1.5/2.0 Pro — long-context document analysis. Useful when I need to ingest large technical specs, RFPs, or policy documents in one shot.
AI coding tools
- Claude Code — daily coding workflow (see above). The agent loop and MCP integration make it the most capable coding tool I’ve used.
- Cursor — AI-first code editor built on VS Code. Good for greenfield projects and large cross-file refactors. I switch between Cursor and VS Code + Claude Code depending on task complexity.
- GitHub Copilot — available in VS Code; useful for repetitive code completion but I prefer Claude Code for reasoning-heavy tasks.
Orchestration & multi-agent
- LangGraph — stateful multi-agent graphs with cycles, interrupts, and human-in-the-loop checkpoints. My default for production AI workflows that need durability and control.
- LangChain — orchestration scaffolding for simpler pipelines where LangGraph is overkill.
- CrewAI — role-based multi-agent framework. Good for sequential agent pipelines and team-simulation patterns.
- Model Context Protocol (MCP) — Anthropic’s open protocol for connecting AI systems to external tools and data sources. I run several MCP servers (Google Ads, Google Calendar, Gmail, Slack, browser automation, Canva). It’s how I’ve started wiring AI into actual operational workflows rather than isolated chat prompts — the difference between a tool and an assistant.
- AutoGen (Microsoft) — multi-agent conversation library; used selectively for prototyping conversational agent patterns.
RAG & vector infrastructure
- Weaviate — vector database of choice. Runs cleanly on-premise which matters in government-sector work. Clean Python client, good hybrid search support.
- LlamaIndex — data framework for LLMs; better than LangChain for document-heavy RAG pipelines that need careful chunking, metadata filtering, and retrieval evaluation.
- Ollama — local LLM runner. I run Llama 3.1, Phi-3, and Qwen2 for prototyping where data residency constraints prevent sending data to external APIs.
- Pinecone / Qdrant — managed and self-hosted vector databases respectively, for projects needing purpose-built infrastructure.
- Hugging Face — model discovery, embeddings, and fine-tuning experiments. The go-to index for model evaluation.
Observability & evaluation
- Langfuse — open-source LLM observability. Traces, evals, prompt versioning. The tool I wish I had two years ago when debugging production AI pipelines without visibility.
- OpenRouter — unified API across LLM providers. Useful for comparing models on identical prompts in production without re-wiring integrations every time a new model ships.
Workflow automation with AI
- n8n — self-hostable workflow automation. Increasingly use it to wire AI steps (classification, extraction, summarisation) into operational processes without building bespoke backends from scratch.
Project management & delivery
- Jira - most engagements use it. I’m fluent.
- Microsoft Office (Word, Excel, PowerPoint) - the lingua franca of executive communication. Don’t fight it.
- Notion - personal knowledge management and program documentation.
- Miro / Lucidchart - architecture diagrams and stakeholder mapping.
- Loom - async walkthroughs are underrated.
Writing & content
- Obsidian - local-first markdown notes. Where ideas mature before they reach the site.
- VS Code - for writing this site’s MDX.
- Grammarly - light copy-edit for English writing.
Web development for this site
- Astro - static site generator. Zero JavaScript by default, content collections, MDX. The right tool for a writer-first personal site.
- Tailwind CSS - utility-first styling.
- Pagefind - build-time search with no backend.
- Self-hosted Google Fonts via
@fontsource- Fraunces, Inter, JetBrains Mono. - GitHub for version control. Hosted on shared hosting via FTP - proof that you don’t need fancy infrastructure to run a fast personal site.
Browsers
- Arc for daily browsing
- Firefox for testing and privacy-sensitive work
- Edge for compatibility checks and Microsoft 365 work
- Chrome for DevTools when nothing else will do
Productivity
- Apple Notes / Microsoft OneNote - quick capture
- Calendar: Outlook for work, Google Calendar for personal
- Email: Outlook (work), Gmail (personal)
- VPN: [TBD]
What I don’t use
A list almost as important as what I do use:
- I don’t use AI image generators for production content. The site has no AI-generated imagery.
- I don’t use heavy IDEs (IntelliJ, VS) when VS Code can do the job.
- I don’t use no-code site builders for personal work - too much lock-in, too little control.
- I don’t use Twitter/X for thinking out loud anymore. Long-form writing is a better signal.
This list will go out of date. I’ll refresh it every few months. If you spot something interesting and want to compare notes - particularly on the AI tooling - I’d love to hear what’s working for you.