Tools - Technologies I work with
The tools and technologies across my stack — from languages and frameworks to infrastructure and deployment.
Languages
TypeScript
Default language for all JavaScript projects. Type safety across the stack surfaces bugs at compile time, makes refactoring safer, and improves the development experience significantly.
Python
Primary backend language for API services, data pipelines, and scripting. Clean syntax, rich ecosystem, and the language of choice for AI/ML integrations.
C# / .NET
Used for enterprise-grade backend systems where strong typing, team scale, and long-term maintainability are priorities. Deep ecosystem for complex business domains.
Node.js
Used for lightweight backend services, scripts, and tooling. Consistent language across frontend and backend when TypeScript is the team default.
Frameworks
Next.js
My default framework for full-stack web applications. Handles routing, SSR/SSG, API routes, and deployment out of the box — removes a lot of infrastructure decisions early on.
React
Component model I use for all UI work. Paired with Next.js for web apps. The mental model of composable, reactive UI is something I apply across every frontend I build.
FastAPI
Preferred Python web framework for building APIs. Async-first, auto-generates OpenAPI docs, and fast to develop with. My default when the backend is Python.
Tailwind CSS
Utility-first CSS framework that ships consistently with my frontend stack. Removes context-switching between markup and styles and keeps design decisions close to the component.
Databases & ORMs
PostgreSQL
Default relational database for production systems. Reliable, feature-rich, and handles the vast majority of data storage needs. I use it on almost every product I build.
Redis
Used for caching, session storage, rate limiting, and pub/sub messaging. Keeps hot data fast and takes pressure off the primary database.
Drizzle ORM
Preferred ORM for TypeScript projects. Type-safe SQL with a thin abstraction layer — close enough to raw SQL to stay in control, with great DX for schema migrations.
Entity Framework
ORM used in .NET projects. Convention-driven, tightly integrated with the .NET ecosystem. Used on enterprise C# backends.
SQLAlchemy
Python ORM used for database access in Python/FastAPI backend projects. Flexible with both ORM and core SQL expression approaches — a standard part of the FastAPI stack.
Infrastructure & Cloud
Docker
Containerises all services for consistent environments across development, staging, and production. Eliminates "works on my machine" problems and simplifies deployment.
Supabase
Managed Postgres with auth, storage, and real-time out of the box. My go-to backend platform for MVPs and early-stage products — significantly reduces initial infrastructure overhead.
AWS
Primary cloud platform for production infrastructure. Used for compute, storage, networking, and managed services. Default choice when scale, control, or compliance requires it.
Vercel
Deployment platform for Next.js projects. Zero-config, edge-optimised, and excellent for frontend-heavy products. My default for web app deployment unless self-hosting is required.
Fly.io
Platform for deploying containerised applications close to users. Used for backend services that need more control than serverless but less overhead than full Kubernetes.
Kubernetes
Container orchestration for large-scale deployments. Used for managing multi-service architectures with auto-scaling, health checks, and rolling deploys.
DevOps & CI/CD
GitHub Actions
CI/CD platform for automated testing, builds, and deployments. Tight GitHub integration keeps pipelines close to the code and easy to maintain.
Terraform
Infrastructure as code for managing cloud resources. Makes infrastructure repeatable, version-controlled, and reviewable — same standards as application code.
Testing
Playwright
End-to-end testing framework for web apps. Reliable cross-browser automation with a great API. Used for testing critical user flows before deployment.
Jest
Unit and integration testing for JavaScript and TypeScript. Fast, zero-config for most projects, and integrates well with the React ecosystem.
AI & Tooling
Cursor
AI-first code editor built on VS Code. Cursor's agent mode and codebase-aware completions have significantly accelerated my development workflow — now my primary editor.
Codex
Coding agent workflow I am actively learning for repo-aware implementation, terminal-driven task execution, and tighter human-in-the-loop development loops.
VS Code
Primary editor before Cursor. Deep extension ecosystem, excellent TypeScript integration, and a familiar environment across every project.
OpenAI API
Used for integrating GPT models into products — chat, summarisation, classification, and structured output. Core platform for AI feature development.
Anthropic API
Used for Claude integrations — particularly for agentic workflows, tool use, and complex reasoning tasks. Powers AI features across personal and commercial projects.
Gemini Code Assistant
Google's coding assistant for in-editor help, code understanding, and workflow acceleration. I am currently learning where it fits best alongside the rest of my AI-assisted development stack.
n8n
Open-source workflow automation platform. Used for building no-code/low-code integration pipelines and automating business processes without writing boilerplate.
CodeRabbit
AI-powered code review tool that provides automated PR feedback. Catches issues early and reduces the cognitive load of reviewing large diffs.