<?xml version="1.0" encoding="UTF-8"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Srikanth Bandaru: writing</title><description>Interactive explainers for working engineers.</description><link>https://bsrikanth.com/</link><language>en</language><atom:link href="https://bsrikanth.com/rss.xml" rel="self" type="application/rss+xml"/><item><title>Code review was never about the bugs</title><link>https://bsrikanth.com/writing/code-review-not-bugs/</link><guid isPermaLink="true">https://bsrikanth.com/writing/code-review-not-bugs/</guid><description>An opinion piece on what code review is for, backed by the research, with an AI reviewer as the comparison.</description><pubDate>Sun, 01 Nov 2026 00:00:00 GMT</pubDate></item><item><title>The A/B testing casino</title><link>https://bsrikanth.com/writing/ab-testing-casino/</link><guid isPermaLink="true">https://bsrikanth.com/writing/ab-testing-casino/</guid><description>Why about 1 in 4 significant A/B wins is noise, why fixing peeking doesn’t change that, and why shipped wins add up to more than you got.</description><pubDate>Sat, 31 Oct 2026 00:00:00 GMT</pubDate></item><item><title>Chrome changes how it counts in May 2027</title><link>https://bsrikanth.com/writing/crux-counts-soft-navigations/</link><guid isPermaLink="true">https://bsrikanth.com/writing/crux-counts-soft-navigations/</guid><description>Chrome’s public speed data is starting to count soft navigations. If the plan holds, single-page app charts may jump in May 2027 even though nothing in the app changed. Put a note on them now.</description><pubDate>Sat, 17 Oct 2026 00:00:00 GMT</pubDate></item><item><title>Your auth token is a cache</title><link>https://bsrikanth.com/writing/auth-token-is-a-cache/</link><guid isPermaLink="true">https://bsrikanth.com/writing/auth-token-is-a-cache/</guid><description>A token is a cached decision. Who holds copies, how stale they may get, and which way they fail decide which revocation scheme works.</description><pubDate>Mon, 12 Oct 2026 00:00:00 GMT</pubDate></item><item><title>A migration is done when the last reader is gone</title><link>https://bsrikanth.com/writing/last-reader-gone/</link><guid isPermaLink="true">https://bsrikanth.com/writing/last-reader-gone/</guid><description>The contract step of a schema change is a proof, one reader at a time. A short note on who the readers are and how each proof fails.</description><pubDate>Sat, 03 Oct 2026 00:00:00 GMT</pubDate></item><item><title>GPU to pixel</title><link>https://bsrikanth.com/writing/gpu-to-pixel/</link><guid isPermaLink="true">https://bsrikanth.com/writing/gpu-to-pixel/</guid><description>Where a streamed reply gets held, cut or re-counted on its way to the screen, with a table of symptoms and fixes.</description><pubDate>Sun, 27 Sep 2026 00:00:00 GMT</pubDate></item><item><title>Click once, charge twice</title><link>https://bsrikanth.com/writing/click-once-charge-twice/</link><guid isPermaLink="true">https://bsrikanth.com/writing/click-once-charge-twice/</guid><description>An idempotency key has to live exactly as long as the customer’s intent to pay. Too short charges twice. Too long replays the wrong order.</description><pubDate>Sat, 19 Sep 2026 00:00:00 GMT</pubDate></item><item><title>Two tabs, one refresh token</title><link>https://bsrikanth.com/writing/two-tabs-one-refresh-token/</link><guid isPermaLink="true">https://bsrikanth.com/writing/two-tabs-one-refresh-token/</guid><description>Refresh-token rotation plus 2 tabs can log a user out. The Web Locks API lets only 1 tab refresh at a time.</description><pubDate>Sat, 15 Aug 2026 00:00:00 GMT</pubDate></item><item><title>Every user got faster. The average got worse.</title><link>https://bsrikanth.com/writing/every-user-got-faster/</link><guid isPermaLink="true">https://bsrikanth.com/writing/every-user-got-faster/</guid><description>The YouTube Feather story, with a model you can play with. A faster page can reach people who used to give up, so check who is in an average before you trust it.</description><pubDate>Sun, 19 Jul 2026 00:00:00 GMT</pubDate></item><item><title>Width flows down, height flows up</title><link>https://bsrikanth.com/writing/width-flows-down/</link><guid isPermaLink="true">https://bsrikanth.com/writing/width-flows-down/</guid><description>Why height: 100% doesn’t fill and flex items won’t shrink, from the direction each size travels through the box tree.</description><pubDate>Sat, 04 Jul 2026 00:00:00 GMT</pubDate></item><item><title>Prompt injection is a 2600 Hz whistle</title><link>https://bsrikanth.com/writing/prompt-injection-2600hz/</link><guid isPermaLink="true">https://bsrikanth.com/writing/prompt-injection-2600hz/</guid><description>Three industries fixed attacks where data acts as a command, and none of them did it with a better filter. What that means for AI agents.</description><pubDate>Sat, 27 Jun 2026 00:00:00 GMT</pubDate></item></channel></rss>