Mark Brown

I’m Mark Brown — a Principal PM Manager at Microsoft on the Azure Cosmos DB team. I’ve been a developer since 1992 and at Microsoft for most of the last 25 years across some of the platforms I’m proudest of: Bing Maps (back when it was Virtual Earth), IIS / ASP.NET / WebMatrix on the Web Platform team, the Azure App Service launch, Azure Networking, and now Cosmos DB. The contents of this blog are my own.

What I work on today

Most of my time is spent helping developers and architects build at cloud scale on a distributed NoSQL database. Recent areas of focus:

  • Distributed data modeling and partitioning — how to take a relational schema and reshape it so it scales horizontally without falling over.
  • Vector search and AI apps on Cosmos DB — building chat, retrieval, and multi-agent workloads with Azure OpenAI, Semantic Kernel, and LangChain on top of Cosmos.
  • Resilience patterns — active-active replication, Saga transactions, global secondary indexing, and what it actually takes to run zero-downtime workloads on AKS + Cosmos.
  • Teaching the hard parts — CAP, PACELC, consistency trade-offs, and the things people get wrong about distributed systems. I speak about these at conferences fairly regularly (Sessionize).

You can see most of this work in the open at github.com/markjbrown and across the AzureCosmosDB org.

How I got here

I’m completely self-taught — I went to school to study finance and hacky-sack. I wrote my first application in a beta of Microsoft Access 1.0 while working in the accounting department of a golf resort in Scottsdale, AZ, mostly so I could do my job for me. That experience was liberating, and I shifted to software the next year and devoured everything I could get on engineering. By the mid-90s I was writing EAI and business-process automation in VB, Java, and C/C++ on Windows and Unix.

Then I moved to So-Cal and built websites in ASP, JSP, and PHP. Not many people remember, but in the mid-90s Windows was actually the cheap way to build websites — Linux didn’t really exist yet and Unix servers were expensive. I worked at a string of dot-com start-ups doing the stuff behind the “Purchase” button: message-based systems that handled e-commerce volume and scaled well (they still do). I also built racks of servers myself, some mounted on milk crates in closets with portable AC units pointed at them, others a little more elegant.

I joined Microsoft for the first time in early 2000. Highlights from that run included building apps on the first generations of Pocket PC, Smartphone, and Tablet PC; working on Virtual Earth (now Bing Maps); and a long stint on the Web Platform team behind IIS, ASP.NET, the Web Application Gallery, Web PI, and WebMatrix — including a lot of community work as Microsoft was opening up to open source. My last role on that tour was on the original Azure team, both as Community Manager for the Azure MVPs/Insiders and as Product Marketing Manager for Azure Websites and Cache.

In late 2014 I left Microsoft and joined a small startup called Solliance as a Cloud Architect, building Azure solutions for customers. It was a big change after so many years inside, but I really love working with customers and being an engineer all day again. I also earned recognition as an Azure MVP, which is still very special to me.

I came back to Microsoft in early 2016, and after a stint on Azure Networking I landed on Cosmos DB, where I’ve been since.

When I’m not at work or writing the occasional post here, you can usually find me on Twitter / X at @markjbrown.