home

writing links

My Current Setup

I thought it would be interesting to document my current development setup, not because I think it’s particularly unique, but because I’d like to see how it changes over time. Especially with the rapid impact AI is having on the industry at the moment. So here goes.

Hardware

I think it’s the easiest place to start. I don’t use all that much.

MacBook Pro

I am currently using a Space Black 16” MacBook Pro with the M3 Max chip.

Sony MDR-7506

These are the headphones I use, which I apparently bought on the 27th May 2014. Over ten years later, they’re still going strong.

Software

I do use a little more software, but to be honest, not a lot. I really try to keep my setup minimal. Here is what I do use, though.

Neovim

This is currently my editor of choice. A few years ago, I made it my goal to learn how to type properly and switch to Neovim.

I was amazed when I watched videos of engineers using Neovim and saw how quickly they could change code and context. I made the switch about a year and a half ago, and while I can’t say I’m exactly at their speeds, it has significantly improved my daily developer experience.

Plugins

I manually configure my Neovim so that I have control. They are:

Comment.nvim
Makes commenting out code quick and easy.
diffview.nvim
Simplifies viewing Git diffs, especially during merge conflicts.
harpoon
Lets me quickly switch between frequently used files.
lazy.nvim
My plugin manager of choice.
mason.nvim
Manges my installed LSP servers.
nvim-cmp
Handles autocomplete.
nvim-lspconfig
Helps me configure LSP servers
nvim-treesitter
Provides syntax highlighting, code folding, and more.
oil.nvim
My file explorer for checking project structure and CRUD operations.
telescope.nvim
My tool for searching files and text in projects.
undotree
Lets me view a file’s edit history.
vim-sleuth
Automatically adjusts indentation based on the file’s existing style.
vim-visual-multi
Enables multiple cursors.

Theme

I am currently using nightfox.nvim in the Carbonfox variation.

Screenshot of my carbonfox Neovim

Ghostty

This is my terminal emulator which I use with Zsh (Oh My Zsh). I have been through a few of these in the past starting with the built-in terminal, followed by iTerm2, Alacritty and finally Ghostty.

I landed here because it was easy to setup, performant and configurable.

tmux

I prefer to keep just one terminal open, so I use tmux to manage everything in one place. Most of the time, this means running multiple Neovim instances for different projects. tmux makes it easy to switch between them with a few shortcuts.

tmux-sessionizer

This is a script that accompanies my tmux setup, and it’s what I use to navigate between projects quickly. It’s a critical part of my setup. There’s a video at the end of this post where you can see it in action.

Hammerspoon

I use Hammerspoon solely for one thing. I want to be able to press ⌥ + Space to show and hide Ghostty from anywhere. It means Neovim is always a keyboard shortcut away.

Firefox

Firefox is my browser of choice. I used to use Chrome but recently switched as they removed the use of uBlock Origin.

T3.chat

This is a tool I pay for to access a large number of AI models. I use it throughout the entire software development lifecycle.

In terms of workflow, I keep coming back to My LLM codegen workflow atm as my inspiration. For model usage, I use Claude Sonnet 4 the most, followed by Gemini 2.5 Pro, and finally GPT-4o.

Repomix

When I need to provide context to T3.chat, I use Repomix to pack up the relevant files. This could be the whole repository or just a subset, depending on the size of the project or the prompt.

Dotfiles

I manage my dotfiles using GNU Stow. This tool allows me to store all my configuration files in a single folder structure, and it automatically creates symlinks to the correct locations in the file system.

Git

I use Git as my VCS, with the majority of projects being stored on Github. This site is an exception because it is hosted on Gitlab.

Bringing it all together

I wanted to end with a little demo of how I use some of the tools mentioned above. It doesn’t cover everything or go into too much detail, but hopefully, it gives you a bit of a flavour of how I code.