The tools, hardware, and software I use day-to-day.
The /uses tradition started with a simple idea: tell other developers what you actually run, not what looks good in a blog post. Everything on this page is a tool I have used for at least a month on real work — the editor, the terminal, the database, the deploy pipeline, the laptop on my desk.
My bias is toward boring, durable tools. I would rather learn one editor well than chase a new one every quarter. The list is grouped by category so you can scan to the part that interests you — daily editor, terminal and shell, runtime, database, deployment, and hardware.
If a tool on this list has a public link, I have included it. The intent is for this page to be useful as a reference, not a flex.
My default database for document-centric data. Flexible schema, great Node.js driver, and Atlas makes cloud hosting easy.
ODM for MongoDB in Node.js. Schema validation, middleware hooks, and virtuals make working with MongoDB structured and safe.
Serverless Redis for rate limiting, caching, and session storage. Serverless-compatible with a generous free tier.
Where this site lives. Zero-config deploys, preview URLs per PR, edge functions, and first-class Next.js support.
CI/CD automation. I use it for running tests, type checks, and build validations on every pull request.
Containerization for local development environments. Consistent setups across machines without 'it works on my machine' surprises.
My primary full-stack framework. App Router, RSC, server actions, and first-class TypeScript support make it the best React meta-framework today.
The component model I think in. I use it through Next.js but understanding React deeply — hooks, reconciliation, context — is essential.
Lightweight and unopinionated Node.js framework for building REST APIs. Straightforward when you need a quick HTTP layer.
My default language for everything frontend and backend. The type system catches bugs before runtime and makes refactoring safe.
The foundation of the web. I write TypeScript but think in JavaScript — understanding the runtime semantics matters.
Go-to for scripting, data processing, and automation tasks. Clean syntax, huge ecosystem, and fast to iterate.
Version control. Conventional commits, branching strategies, and a clean git history are non-negotiables on every project.
API development and testing. Collections, environment variables, and automated tests for REST APIs.
Design tool for wireframes and UI mockups. Even as a developer, being able to read and work in Figma is essential for collaboration.
AI assistant for coding. I use it for code review, exploring unfamiliar patterns, and accelerating implementation on well-understood tasks.