My Development Setup in 2025
The tools and workflows I use daily as a software developer.
devtools productivity linux
My Daily Drivers
After years of tweaking, here’s the setup that sticks.
Operating System
I daily-drive Arch Linux on a ThinkPad. Rolling release means I always have the latest tools, and the AUR makes package management a breeze.
# Quick system updatesudo pacman -Syu yay -SuaTerminal
Wezterm with a custom config. It’s GPU-accelerated, cross-platform, and Lua-configurable — which means I can script everything.
-- wezterm.lualocal wez = require("wezterm")local config = wez.config_builder()
config.font = wez.font("Hack Nerd Font")config.color_scheme = "Catppuccin Mocha"config.window_padding = { left = 8, right = 8, top = 8, bottom = 8 }
return configEditor
Neovim is where I spend most of my time. Here’s a glimpse of my config:
-- Key mappingsvim.keymap.set("n", "<leader>e", "<cmd>Neotree toggle<cr>")vim.keymap.set("n", "<leader>f", "<cmd>Telescope find_files<cr>")vim.keymap.set("n", "<leader>g", "<cmd>Telescope live_grep<cr>")Shell
Fish shell with custom completions. It’s the most user-friendly shell I’ve used.
# Custom abbreviationsabbr -a g gitabbr -a gp git pushabbr -a gl git pullabbr -a gs git statusGit Workflow
I use lazygit for interactive git operations. It’s fast, intuitive, and keyboard-driven.
# Install lazygitparu -S lazygitWhy This Stack?
- Speed: Everything is keyboard-driven and instant
- Customizability: Lua configs for Neovim and Wezterm
- Consistency: Same setup across machines via dotfiles
- Community: Active communities for every tool
The best setup is the one you know well. Don’t chase shiny tools — master your current ones.