Editors, CLIs, automation and the workflow around the code.
How to enforce deterministic resolution with lockfile checks, CI diffing, and package manager flags to eliminate works on my machine failures.
How to use git bisect run with a script to automatically find the commit that introduced a bug, including setup, exit codes, and common pitfalls.
Eight shell functions for navigation, git, Docker, and file wrangling that survive years of dotfile churn. Each with trade-offs and edge cases.
Replace scattergun console.log statements with conditional breakpoints and logpoints in VS Code and DevTools. Set targeted pauses and inline logs without modifying code.
Which pre-commit hooks actually serve the developer rather than slowing them down. Concrete lint, format, and type-check setups that teams keep enabled.
Set up commitlint, commitizen, and semantic-release to generate changelogs from commit messages, with zero hand-editing and a clean git history.
Automate large-scale refactors across a TypeScript codebase using jscodeshift and ts-morph, comparing their APIs, performance, and error handling.
How to configure tmux with tmux-resurrect and tmux-continuum to automatically save and restore session state across reboots and crashes.
Practical patterns for GitHub Actions that stop quickly on failure and surface the root cause in logs: step-level checks, fail-fast matrix, actionable error messages.