The Blog
VPS Deployment Basics for Developers
A practical introduction to deploying small projects on a VPS, including SSH, users, firewalls, services, reverse proxies, logs, and repeatable deploy steps.
Read More
Debugging Broken Local Dev Environments
A practical debugging checklist for local development environments that fail after cloning, pulling, moving machines, or changing configuration.
Git Branching Explained: Feature Branch to Master
A practical explanation of Git feature branches, commits, pushing, pulling, and merging changes back into master.
Git Rebase vs Merge Explained
A practical explanation of the difference between Git merge and rebase, when to use each one, and what to avoid.
Git Stash Explained With Real Workflows
A practical explanation of git stash, when to use it, how to apply or pop stashed changes, and when a temporary branch is safer.
My Neovim Setup for Python, Go, and TypeScript
A practical overview of a Neovim setup built around fast navigation, language servers, formatting, and daily work in Python, Go, and TypeScript.
Setting Up a Mac for Development
A practical Mac development setup checklist covering Homebrew, Git, SSH keys, language runtimes, editor setup, and project organization.
Terminal Tools I Actually Use
A practical list of terminal tools that improve daily development work without turning the shell into a complicated project.
Building a Browser Extension With TypeScript
A practical introduction to browser extensions, including manifests, background scripts, content scripts, permissions, and where TypeScript fits.
Fetch API Error Handling in Frontend Apps
A practical guide to handling Fetch API errors in frontend apps, including network failures, HTTP status codes, JSON parsing, timeouts, and user-facing messages.