Tools and workflow
Uses
The hardware, tools, and software stack I use to build and ship products.
I currently work at SynopticData, building the Synoptic Data Viewer.
Hardware
Computers and input
- MacBook Air M3 for work
- MacBook Pro M4 Pro for personal projects
- Logitech MX Master 3
- Keychron K8 Pro
- Logitech G Pro
- Apple Trackpad
- iPad Pro M4
Audio
Software and workflow
Editors and AI tools
- Zed and Visual Studio Code are my editors.
- T3 Code and Conductor are the AI coding tools I use.
- Dia is my browser, and Hex by Kit Langton is my dictation tool.
Terminal and local development
- Ghostty is my terminal emulator.
- I use zsh with Oh My Zsh for shell configuration.
- OrbStack provides a lightweight local environment for containers and Linux machines on macOS.
btop,tree, andlsdhelp me inspect processes and files.
Building software
Languages and frameworks
My work often spans TypeScript and JavaScript, with React, Next.js, and TanStack Start for web applications. I also build mobile apps with Expo and React Native, and have used Astro and Tailwind CSS.
Workspaces and monorepos
For smaller projects, I reach for Bun and Bun workspaces. For larger projects, I use pnpm workspaces with Turborepo to share packages and coordinate builds.
Backend services, data, and email
- BullMQ for background jobs and queues.
- Elysia and Hono for backend services and APIs.
- Convex, Neon, and PlanetScale for database needs, depending on the project.
- Resend for sending email.
Analytics and hosting
- I use PostHog or Umami for analytics, depending on the project.
- I deploy to Vercel, Render, or Railway. On Render, I typically deploy Dockerized applications.
API and debugging tools
- Hoppscotch for exploring and testing HTTP APIs.
- Browser developer tools and application logs help me reproduce interface and integration issues.
- Git and GitHub for source control, reviews, and project history.
Fonts
I like Dank Mono for its character, and have also used Fira Code, Iosevka, and Cascadia Code. Font choice is mostly about readability over long sessions; ligatures are a bonus, not a requirement.
Everyday carry
My everyday carry bag is the Peak Design Everyday Sling 7L.
How I choose tools
I prefer tools that stay out of the way, work well together, and make it easy to understand what is happening when something breaks. I will try a new tool when it solves a real friction point, but I avoid adding dependencies or workflow steps just because they are popular. This list is a practical snapshot, and it changes as my setup and projects change.