Erik Shafer · Software engineer · Nebraska: Software that remembers how it got here.

I help teams build event-sourced, event-driven systems that are easy to change and hard to break.

I'm a Senior Consultant at Improving and a member of the JasperFx core team, which builds the Critter Stack for .NET: Marten, Polecat, Wolverine, and CritterWatch.

Erik Shafer

Design.

Software architecture and design for .NET teams: event sourcing, CQRS, and event-driven systems, as a Senior Consultant at Improving.

How I work →

Teach.

Conference talks, user groups, workshops, and writing on event sourcing, software architecture, and the Critter Stack.

Talks →

Build.

Core team on JasperFx's open-source Critter Stack, plus reference apps you can clone and argue with.

Open source →

Latest talk

KCDC 2026 (Kansas City Developer Conference) ·

How I Gave Up Clean Architecture, and Why My Code Got Simpler

Walking through the move from layered Clean Architecture to vertical slices in an open-source .NET system. Why layering accumulates accidental complexity, and how Vertical Slices, A-Frame Architecture, and Railway Oriented Programming simplify feature development. One bakery API, built twice, verified by one shared test suite.

Erik Shafer speaking from the podium at KCDC 2026, beside a slide titled "The confession" that shows the Clean Architecture diagram, with a full room in the foreground.

Writing and talks

From the log.

  1. How I Gave Up Clean Architecture, and Why My Code Got Simpler

    Walking through the move from layered Clean Architecture to vertical slices in an open-source .NET system. Why layering accumulates accidental complexity, and how Vertical Slices, A-Frame Architecture, and Railway Oriented Programming simplify feature development. One bakery API, built twice, verified by one shared test suite.

  2. The Critter Stack: Event-Driven .NET Without the Ceremony

    Wolverine and Marten as the alternative to boilerplate-heavy .NET frameworks and the in-house mediator library that quietly grows into one. Plain C# methods, with durable messaging, persistence, retries, and observability handled by mature open-source tooling.

  3. YouTube Channel Launched

    I recently launched a new YouTube channel focused on software development, design, and architecture!

  4. EventStoreDB vs PostgreSQL

    Writing about EventStore and PostgreSQL was such an interesting experience. I thoroughly enjoy using both technologies, but it was also important to convey how when used together that they truly complement each other by providing flexibility and value to both developers and the business.

  5. Event Store Developer Advocate and the Future

    I have some awesome news to share! I'm now a Developer Advocate at Event Store! I'll be posting content more regularly and attending more conferences + user groups in the future.

Building something event-driven?

I like hearing about systems that need to remember what happened. Tell me what you're working on.

Get in touch