Exploring programming languages, systems design, and software craftsmanship
A practical deep dive into Go’s concurrency model using a simple Amazon product scraper. Learn how buffered and unbuffered channels work, how goroutines communicate safely, and how Go’s runtime manages channel internals—all illustrated with live examples and diagrams.
Part 5 of Learn Go - write expressive BDD-style tests with Ginkgo & Gomega, and document your APIs cleanly using Swagger.
Part 1 of Learn Go - from fmt.Println to a JSON API, this post shows how little code you need to build web services in Go.
From Glide to Dep - a quick, hands-on guide to modernizing Go dependency management without breaking your build.
Lost in a swamp of Git branches? This post introduces a simple command to visualize branch relevance against master.
From flashing JetPack to booting off an SSD, this post walks through making the Jetson TX1 actually usable for ML work.
Flutter setup on macOS isn’t always smooth—this post documents the exact steps (and gotchas) to get flutter doctor green.
PATH, which, PS1, exec, and other shell magic explained simply.
Charting a path beyond comfort - reflections, principles, and plans after leaving Tarka Labs to embrace curiosity, learning, and impact.
👋 I'm Gaurav Agarwal, a Director of Engineering passionate about building scalable systems and sharing knowledge with the engineering community.
Through this blog, I share deep technical insights, programming concepts, and lessons learned from years of software development.
Looking to upskill your engineering team? CoderMana offers custom technical training and architecture consulting for enterprises.