RSSAmplifier

Blog

Gaurav Singha Roy – Tech Blog

Recent posts on Gaurav Singha Roy – Tech Blog

blog.gauravsingharoy.netRSS feed ↗10 posts

Latest posts

Etiquettes for AI Assisted Code Generation

Some opinionated etiquettes for AI-assisted code generation, inspired by the Boy Scout Rule. Covers writing human-readable code in hybrid codebases, reviewing AI-generated code and PR descriptions, acknowledging AI in commit messages, maintaining project steering rules, avoiding test manipulation, structuring code review feedback across linters, AI agents, and humans, and evaluating AI-introduced…

Spec Driven Development with Kiro

Covers the limitations of vibe coding with Claude Code for production-grade work — context window constraints, ad-hoc design, and prompt-as-context friction — and how spec driven development with Kiro addresses them. Walks through Kiro’s three-document workflow (requirements, design, tasks) using a real Cloudflare R2 migration as a worked example. Discusses repository structure, where Kiro…

Migrating my Tech Blog From Medium to Markdown with Claude Code

A walkthrough of migrating a personal blog from Medium to a Hugo-based static site hosted on Cloudflare Pages. Covers the reasons for leaving Medium — ads, poor code highlighting, and Markdown friction — and how the full migration was completed in under 90 minutes.

The Non-Tech Tasks of a Principal/Staff Engineer

Ten categories of non-technical work that Staff and Principal Engineers frequently take on, drawn from personal experience and peer observations. Covers interviewing and promotion panels, networking patterns, onboarding, budget involvement, knowledge sharing, community building, mental health advocacy, and establishing credibility — aimed at raising awareness rather than prescribing a complete…

Summer 2021: The Top 6 Work Related Books I Read This Year

Six work-related book recommendations from the first half of 2021, chosen from a Senior Individual Contributor’s reading list. Covers product management strategy, Amazon’s internal operating principles, team topology frameworks, large-scale mobile engineering, the Staff Engineer archetypes from Will Larson’s book, and emotional intelligence as a foundation for career and…

Approaching Your First Event-Driven Design Implementation: A Case Study

A case study on tapping into an existing event-driven architecture using a publish-subscribe model over Kafka. Covers a three-component design — consumer, API, and database — modelled around typed information flow contracts. Includes practical traps to avoid, from parallelism pitfalls to coupling the API and consumer into the same application.

How to Prepare for a Developer Job Interview in Germany

Practical tips on navigating the developer job interview process in Germany, based on nine years of industry observation. Covers where to find roles, how to stand out in the virtual selection round, strategies for both timed and take-home code challenges, and what to expect in onsite interviews.

How to Add Defaults for Missing Properties in Play Scala JSON Serialization

Three approaches to handling missing JSON properties when unmarshalling into Scala case classes with the Play Framework. Covers Play 2.6’s built-in WithDefaultValues, the Reads.pure() fallback pattern, and a reusable JsonDefaultValueFormatter trait that deep-merges incoming JSON with a default object — useful for large, deeply nested case classes where backward compatibility matters.

Asynchronous Programming with Go

Four progressively improved approaches to concurrent programming in Go, demonstrated through a URL health checker. Covers synchronous iteration, goroutines with a naive sleep workaround, WaitGroup-based synchronization from the sync package, and typed channels for structured goroutine communication — illustrating Go’s concurrency model from basic to idiomatic.

Build Your First API Server with httprouter in Golang

Step-by-step tutorial for building a REST API server in Go using the httprouter multiplexer. Covers creating endpoints, structuring the project across multiple files, writing tests with the httptest package, and adding middleware for logging — finishing with a recommended package layout for larger projects.