Kiran P K

Writing

Notes from production — concurrency, databases, testing, and the bugs that taught me something.

Aug 22, 2026·14 min readLatest

I Backtested Dual Momentum on Indian Markets Over 19 Years — Here's What Actually Worked

19 years of data, 8 rounds of testing, and two silent data bugs that would've fooled anyone — building and correcting a dual-momentum strategy for Nifty, Gold, and cash.

Quantitative InvestingBacktestingNifty 50Read →
Mar 11, 2026·7 min read

File Signature: How Systems Actually Detect File Types

A file extension is a hint, not a fact. How magic bytes actually identify a file — and where signature-based detection breaks down.

SystemsSecurityGolangRead →
May 1, 2025·8 min read

Concurrency in Practice — A Job Claiming System That Works

Concurrency bugs rarely show up in development — they show up when real users hit the same row at once. Building a claim flow that never oversells a job.

ConcurrencyPostgresGolangRead →
Nov 11, 2024·3 min read

Handling Numeric Input in Go: Base Interpretation Mistakes to Avoid

A leading zero quietly turned my input into octal. What Go's numeric literals actually do, and how to read integers the way you meant to.

GolangDebuggingRead →
Jan 5, 2024·3 min read

How I Built a WhatsApp Campaign Internal Tool

Replacing manually-run scripts with a real scheduling and execution system for outreach campaigns — EventBridge, Lambda, and a CSV.

Node.jsAWSArchitectureRead →
Sep 19, 2023·4 min read

Implementing a Simple Cache Invalidation System in Vue.js

Caching is the easy half. A pragmatic way to know when cached content on the client has gone stale — and refresh it automatically after a release.

Vue.jsFrontendPerformanceRead →
Sep 9, 2023·3 min read

Navigating the Jest Memory Issue — My Workaround

Our backend API suite ran fine until it didn't — heap climbing until the runner died. How I chased it down and the workaround that kept CI green.

TestingNode.jsDebuggingRead →
7 posts and counting.