
I am Srikanth Sastry. I am currently an engineering lead at Meta working on privacy infrastructure. Before Meta, I was a software engineer at Google in Cambridge, MA, and before that a postdoctoral associate with Nancy Lynch at CSAIL, MIT. Prior to that, I received my PhD from Texas A&M University.
My professional interests include distributed system design, software engineering processes, and building engineering teams. I also maintain a digital garden — a collection of evolving ideas and notes that complement my blog posts.
In a previous life, during my years in academia, I worked on distributed systems, networking, fault tolerance, and algorithm design and analysis. My list of publications are available on DBLP.
Recent Writing
All 66 posts →
The Architecture Orphaning Problem with AI Agents
Spec-Driven Development gets functional correctness right but leaves architecture unanchored. The Suggestible Actor model explains why: specs cannot enforce structural constraints, and LLMs, reasoning locally, orphan the architecture one generation at a time.
From the Garden
All 98 notes →AI Collapses the Economic Moat of Clean-Room Reimplementation
🌳The copyleft moat was never purely legal. It was economic: compliance was cheaper than reimplementation. AI collapsed that cost.
AI Reviewing AI: Shared Blind Spots
🌳AI models reviewing AI-generated code share systematic blind spots with the generator, creating gaps that neither side detects.
AI Security Cost Asymmetry Favors Closed Source
🌳AI equalizes the defender's security cost across open and closed source but varies the attacker's cost by source availability. This inverts Linus's Law.
Align Alerts to SEV Criteria
🌳Alerts should fire at or near the threshold where an SLO breach would occur, not well before.
Architecture Orphaning
🌳Architecture orphaning is the phenomenon where architectural decisions fall between layers that neither specs nor AI agents can govern.
Backward Compatibility for Leaky Abstractions
🌳When a framework leaks implementation details (like serializing arguments at schedule time but loading code from HEAD at execution time), changing a function signature breaks the assumption that old code calls old signatures.





