Hi, I'm Mukul 👋
Software developer writing about technology, programming, book reviews, and tools I build. Welcome to my corner of the internet.
Latest Posts
-
Semantic Versioning Explained: major.minor.patch and When to Bump
Semantic versioning gives version numbers meaning. Learn what major, minor, and patch represent, when to bump each, and how semver works with npm, pip, and git tags.
-
macOS Keyboard Shortcuts Every Developer Should Know
A practical cheat sheet of macOS keyboard shortcuts that save developers time every day — from Finder and terminal to text editing and window management.
-
Local LLMs with Ollama: Run AI on Your MacBook
Ollama makes running open-source LLMs like Llama 3, Mistral, and Phi-3 on your Mac as easy as a brew install. Here's everything you need to get started.
-
iTerm2 + Zsh + Oh My Zsh: The Ultimate macOS Terminal Setup
Set up a fast, beautiful, and productive terminal on macOS with iTerm2, Zsh, Oh My Zsh, and the plugins that actually save time. Step-by-step from scratch.
-
Homebrew: The Complete Guide for macOS Developers
Homebrew is the missing package manager for macOS. This guide covers installation, taps, casks, Brewfiles, and the commands you'll use every week as a developer.
-
Git Rebase vs Merge: When to Use Which
Rebase and merge both integrate changes but produce different histories. Here's a clear explanation of how each works, when to use which, and what to avoid.
-
Git Branching Strategies: Git Flow vs Trunk-Based Development
Git Flow and trunk-based development represent opposite ends of the branching spectrum. Here's how each works, when to use which, and the trade-offs that matter.
-
Fine-Tuning vs RAG: When to Use Which Approach
Fine-tuning and RAG both extend what an LLM knows, but they solve different problems. Here's how to decide which approach is right for your use case.
-
Understanding Embeddings and Vector Databases (pgvector, Pinecone)
Embeddings turn text into numbers, and vector databases make those numbers searchable. Here's how both work, with practical examples using pgvector and Pinecone.
-
Dotfiles: How to Manage and Sync Your Dev Environment
Dotfiles let you version-control your shell, editor, and tool configuration so any new machine is set up in minutes. Here's a practical approach using Git and symlinks.