Uses
The setup
The setup, kept current. Nothing here is a recommendation — it is just what I ended up with after enough iterations to stop changing it.
Machine
Custom desktop
Runs the lab VMs and everything else. The reason the whole environment lives locally instead of in a cloud bill.
Laptop
For CTFs away from the desk and anything that needs to travel.
Desk
27" 1440p display
Enough room for an editor and a proxy side by side, which is most of the job.
Mechanical keyboard
Tactile switches. Typing is the interface — it is worth caring about.
Wireless mouse
Unremarkable, which is the point.
Editor & terminal
Primary editor. Fast enough, and the extension ecosystem is where the actual value is.
Daily driver. Arch-based, tuned, and close enough to the targets I test that context switching is cheap.
Zsh
With completions and history search. Most of my productivity gains have come from the shell, not the editor.
tmux
Sessions that survive a disconnect. Essential the first time a long-running scan outlives an SSH connection.
VS Code extensions
Kept short on purpose — every extension is code running in the editor.
ESLint
Errors where I write them, not in CI.
Prettier
Ends every formatting discussion.
Tailwind CSS IntelliSense
Class autocomplete and the resolved values on hover.
GitLens
Blame inline. Mostly used to find out why I did something.
Error Lens
Diagnostics on the line instead of in a panel.
MDX
Syntax and component intellisense for the content in this repository.
Browsers
Firefox
Daily browsing, containers for keeping sessions apart.
Chromium
Testing, and whatever refuses to behave in Firefox.
A separate testing profile
No extensions, no saved sessions, no personal cookies. Never test authenticated flows in the browser you live in.
Daily tools
The proxy I reach for first. Fast, and the workflow suits how I actually test.
Still the reference, and what most methodology is written against.
Content and parameter discovery. Fast enough to change how you enumerate.
Notes, methodology checklists and write-up drafts. Plain markdown, so it outlives the app.
Docker
Disposable everything. Vulnerable targets, throwaway services, reproducible environments.

