Uses
This page describes the tools and technologies I use daily for software development. Inspired by uses.tech.
Editor
Visual Studio Code
My primary editor for all development. I keep the extension count low and rely on built-in features where possible.
Key extensions:
- Language-specific LSP extensions
- Prettier for formatting
- GitLens for Git history
Vim
For quick edits in the terminal or on remote servers. I use a minimal vimrc with just the essentials.
Terminal
Zsh with Oh My Zsh
Zsh provides better autocompletion and history search compared to Bash. Oh My Zsh adds useful plugins without much configuration overhead.
Tmux
I use Tmux for session management, especially when working on multiple projects simultaneously or on remote machines.
Languages and Frameworks
Python
My go-to language for backend development, automation, and data processing. I use FastAPI for web services and Click for CLI tools.
JavaScript and TypeScript
For frontend development and full-stack web applications. I prefer vanilla JavaScript for small projects and TypeScript for larger codebases.
Hugo
My static site generator of choice. This website is built with Hugo. Its speed and flexibility make it ideal for content-focused sites.
Infrastructure
Git and GitHub
Version control and collaboration. I use GitHub for open source projects and GitHub Actions for CI/CD.
Docker
For consistent development environments and deployment. Docker Compose defines my local development stacks.
Linux
My primary operating system. I use Ubuntu on workstations and Debian on servers.
Hardware
Laptop
A ThinkPad with plenty of RAM. Reliable, repairable, and runs Linux well.
Monitor
A 27-inch 4K display. Single monitor setup to minimize distraction and encourage focused work.
Keyboard
A mechanical keyboard with tactile switches. Good typing feel matters when you type all day.