How a simpl-ish problem can scale in production environments

Building a 500K req/s IP Geolocation Service: Radix Trees, .NET 10, and the Pursuit of Sub-5ms Latency

Story behind this blog post A couple of months ago, a friend of mine approached me with a challenging problem: building a service that can identify Iranian ISPs from IP addresses at an extreme scale. The requirements were brutal: around 500,000 requests per second with a P99 latency of under 5 milliseconds. As a reference for the data load, Iran has about 10,000,000 (Ten Million) IPs allocated across roughly 50,000 CIDR ranges, and the system was gonna be in the hot path of a very high-load environment. ...

December 30, 2025 · 11 min · Kia Raad
Spec-driven development meets agentic coding: specs, instructions, and an AI assistant bridging idea to implementation.

When Specs Become the Interface: Notes from a Talk on Spec-Driven Development and Agentic Frameworks

Recently, more often than not my coding sessions involve AI agents in some capacity. Whether it’s GitHub Copilot suggesting snippets, or me creating an instructions file to guide the agent’s behavior, AI has become an important part of my workflow. And a couple of nights ago I caught myself doing something that would’ve sounded ridiculous just a year ago: I was “working” without writing code. Not in the I’m procrastinating way. In the I’m building the thing way. ...

December 23, 2025 · 7 min · Kia Raad