<?xml version="1.0" encoding="UTF-8"?><?xml-stylesheet type="text/xsl" href="https://compiledconversations.com/rss.xsl"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" xmlns:podcast="https://podcastindex.org/namespace/1.0"><channel><atom:link rel="self" type="application/atom+xml" href="https://compiledconversations.com/rss.xml" title="MP3 Audio"/><atom:link rel="hub" href="https://pubsubhubbub.appspot.com/"/><title>Compiled Conversations</title><description>In-depth conversations with the people shaping software and technology. Each episode explores real-world experiences, technical challenges, and the thinking behind the tools, systems, and decisions that drive modern development. From engineering practices to architectural choices, this is a show for developers who care about how software is built - and who's building it.</description><copyright>© 2026 Edd Mann</copyright><podcast:guid>https://compiledconversations.com/</podcast:guid><podcast:locked owner="edward.mann@gmail.com">no</podcast:locked><language>en</language><pubDate>Tue, 10 Feb 2026 07:00:00 +0000</pubDate><lastBuildDate>Wed, 11 Feb 2026 14:26:35 +0000</lastBuildDate><link>https://compiledconversations.com/</link><image><url>https://compiledconversations.com/album-art.jpg</url><title>Compiled Conversations</title><link>https://compiledconversations.com/</link></image><itunes:category text="Technology"/><itunes:type>episodic</itunes:type><itunes:author>Edd Mann</itunes:author><itunes:image href="https://compiledconversations.com/album-art.jpg"/><itunes:summary>In-depth conversations with the people shaping software and technology. Each episode explores real-world experiences, technical challenges, and the thinking behind the tools, systems, and decisions that drive modern development. From engineering practices to architectural choices, this is a show for developers who care about how software is built - and who's building it.</itunes:summary><itunes:subtitle>Conversations with the people shaping software and technology.</itunes:subtitle><itunes:keywords>software development, technology, programming, engineering, developers</itunes:keywords><itunes:owner><itunes:name>Edd Mann</itunes:name><itunes:email>edward.mann@gmail.com</itunes:email></itunes:owner><itunes:complete>No</itunes:complete><itunes:explicit>false</itunes:explicit><item><title>From Linguistics to Large Language Models with Chris Brousseau</title><itunes:episode>19</itunes:episode><podcast:episode>19</podcast:episode><itunes:title>From Linguistics to Large Language Models with Chris Brousseau</itunes:title><itunes:episodeType>full</itunes:episodeType><guid isPermaLink="false">https://compiledconversations.com/19/</guid><link>https://compiledconversations.com/19/</link><description>Chris Brousseau, co-author of LLMs in Production and VP of AI at Veox AI, joins us to peek under the hood of large language models. We explore the journey from linguistics to machine learning, what LLMs can and can&amp;#39;t do with meaning, the gap between demos and production systems, and where agents and context engineering are heading.</description><content:encoded><![CDATA[<p>Chris Brousseau, co-author of LLMs in Production and VP of AI at Veox AI, joins us to peek under the hood of large language models and explore why getting them into production remains one of the hardest challenges in the field.</p>
<p>We start with Chris&rsquo;s journey from linguistics and translation into machine learning, tracing how a graduate seminar on Python and machine translation in 2017 led him into the world of NLP.
His background in semiotics and how meaning is created in language provides a grounding for understanding what LLMs can and can&rsquo;t do - and why they produce useful results despite having no understanding of semantics.</p>
<p>From there, we dive into the fundamentals - transformers, tokenization, word embeddings, context windows, and the training pipeline from self-supervised learning through reinforcement learning (PPO and GRPO) to supervised fine-tuning.
Chris shares lessons from deploying billion-parameter models at MasterCard and JP Morgan Chase, including the gap between demos and production systems and the operational challenges that come with deploying models at scale.</p>
<p>We also explore hallucinations, the evolution from prompt engineering to context engineering, how logic manipulation and context-free grammars can make a 2023-era 7B model outperform frontier models at math, and where agents and code-based tool calling are heading in 2026.</p>
<p>Topics include:</p>
<ul>
<li>Chris&rsquo;s journey from linguistics and translation into machine learning</li>
<li>The gap between demos and production: why deploying LLMs is uniquely hard</li>
<li>What LLMs actually are: autoregressive transformers, tokenization, embeddings, and context windows</li>
<li>Stochastic parrots and semiotics: why LLMs have syntax but no semantics</li>
<li>Emergent behavior and the key insights of the Attention is All You Need paper</li>
<li>The training pipeline: self-supervised learning, RLHF (PPO vs GRPO), and supervised fine-tuning</li>
<li>Hallucinations and the fundamental challenge of evaluating language model outputs</li>
<li>From prompt engineering to context engineering</li>
<li>Logic manipulation and context-free grammars: making small models outperform frontier ones</li>
<li>LoRA, distillation, and quantization: running and adapting your own models</li>
<li>Agents, Code Mode versus MCP, and practical techniques for running your own models</li>
</ul>
<p>Throughout the conversation, Chris demonstrates how a linguistics background provides a unique lens for understanding both the strengths and fundamental limitations of large language models - and why bridging the gap between language research and computer science could unlock the next wave of progress.</p>
<p><strong>Show Links</strong></p>
<ul>
<li>

<a href="https://www.linkedin.com/in/chris-brousseau/" target="_blank">Chris Brousseau on LinkedIn</a>
</li>
<li>

<a href="https://www.youtube.com/@IMJONEZZ" target="_blank">Chris Brousseau on YouTube (IMJONEZZ)</a>
</li>
<li>

<a href="https://github.com/IMJONEZZ" target="_blank">Chris Brousseau on GitHub (IMJONEZZ)</a>
</li>
<li>

<a href="https://huggingface.co/IMJONEZZ" target="_blank">Chris Brousseau on Hugging Face (IMJONEZZ)</a>
</li>
<li>

<a href="https://www.manning.com/books/llms-in-production" target="_blank">LLMs in Production (Manning)</a>
</li>
<li>

<a href="https://veox.ai/" target="_blank">Veox AI</a>
</li>
<li>

<a href="https://arxiv.org/abs/1706.03762" target="_blank">Attention is All You Need (2017)</a>
</li>
<li>

<a href="https://arxiv.org/abs/2203.15556" target="_blank">Training Compute-Optimal Large Language Models (Chinchilla Paper)</a>
</li>
<li>

<a href="https://arxiv.org/abs/1301.3781" target="_blank">Word2Vec</a>
</li>
<li>

<a href="https://openai.com/index/better-language-models/" target="_blank">GPT-2 (OpenAI)</a>
</li>
<li>

<a href="https://www.deepseek.com/" target="_blank">DeepSeek</a>
</li>
<li>

<a href="https://arxiv.org/abs/2402.03300" target="_blank">DeepSeekMath: GRPO Paper</a>
</li>
<li>

<a href="https://github.com/openai/grade-school-math" target="_blank">GSM8K: Grade School Math Dataset</a>
</li>
<li>

<a href="https://artefact2.github.io/llm-sampling/index.xhtml" target="_blank">LLM Sampling Visualisation</a>
</li>
<li>

<a href="https://dspy.ai/" target="_blank">DSPy</a>
</li>
<li>

<a href="https://moonshotai.github.io/Kimi-K2/" target="_blank">Kimi K2 by Moonshot AI</a>
</li>
<li>

<a href="https://github.com/THUDM" target="_blank">GLM by Zhipu AI</a>
</li>
<li>

<a href="https://github.com/vllm-project/vllm" target="_blank">vLLM</a>
</li>
<li>

<a href="https://lmstudio.ai/" target="_blank">LM Studio</a>
</li>
<li>

<a href="https://github.com/ggml-org/llama.cpp" target="_blank">llama.cpp</a>
</li>
<li>

<a href="https://huggingface.co/docs/smolagents/en/index" target="_blank">Hugging Face smolagents</a>
</li>
<li>

<a href="https://www.anthropic.com/engineering/code-execution-with-mcp" target="_blank">Code Execution with MCP (Anthropic)</a>
</li>
<li>

<a href="https://modelcontextprotocol.io/" target="_blank">MCP (Model Context Protocol)</a>
</li>
<li>

<a href="https://frame.work/desktop" target="_blank">Framework Desktop</a>
</li>
<li>

<a href="https://www.nvidia.com/en-us/products/workstations/dgx-spark/" target="_blank">NVIDIA DGX Spark</a>
</li>
<li>

<a href="https://www.youtube.com/watch?v=LvNAjJIeLz8" target="_blank">I spent $17k on AI hardware so you don&rsquo;t have to (YouTube)</a>
</li>
<li>

<a href="https://forgeutah.tech/" target="_blank">Forge Utah Community</a>
</li>
</ul>
]]></content:encoded><pubDate>Tue, 10 Feb 2026 07:00:00 +0000</pubDate><author>Edd Mann</author><enclosure url="https://podsignal.eddmann.com/s/348109d7-a90b-4f00-bc6b-6223fcd79439/r?url=https%3A%2F%2Fpodcasts.compiledconversations.com%2F019-from-linguistics-to-large-language-models-with-chris-brousseau.mp3" length="93039043" type="audio/mpeg"/><itunes:author>Edd Mann</itunes:author><itunes:duration>5805</itunes:duration><itunes:image href="https://compiledconversations.com/album-art.jpg"/><itunes:summary>Chris Brousseau, co-author of LLMs in Production and VP of AI at Veox AI, joins us to peek under the hood of large language models. We explore the journey from linguistics to machine learning, what LLMs can and can&amp;#39;t do with meaning, the gap between demos and production systems, and where agents and context engineering are heading.</itunes:summary><itunes:subtitle>Exploring what LLMs actually are under the hood, why production deployment is so challenging, and how linguistics illuminates the fundamental limits and possibilities of language models</itunes:subtitle><itunes:keywords>software development, technology, programming, engineering, developers</itunes:keywords><itunes:explicit>false</itunes:explicit></item><item><title>Architecture Modernization with Nick Tune</title><itunes:episode>18</itunes:episode><podcast:episode>18</podcast:episode><itunes:title>Architecture Modernization with Nick Tune</itunes:title><itunes:episodeType>full</itunes:episodeType><guid isPermaLink="false">https://compiledconversations.com/18/</guid><link>https://compiledconversations.com/18/</link><description>Nick Tune, author of Architecture Modernization and Staff Engineer at Payfit, joins us to discuss the challenges and strategies of modernising legacy systems. We explore the four pillars of successful modernisation, socio-technical alignment, team topologies, domain modeling, and how AI tools like Claude Code are transforming architecture work.</description><content:encoded><![CDATA[<p>Nick Tune, author of Architecture Modernization and Staff Engineer at PayFit, joins us to explore the complex world of modernising legacy systems.</p>
<p>We start by reframing legacy systems as successful products asked to solve problems they weren&rsquo;t designed for.
Nick introduces his four-pillar modernisation framework and the concept of &ldquo;Death Valley&rdquo; - the dangerous hybrid state during migration.
We explore socio-technical alignment, how domain models drift from business language over time, and how team structure shapes architecture through Conway&rsquo;s Law.
The conversation also covers how AI tools like Claude Code are transforming architecture work through code analysis, refactoring, and living documentation.</p>
<p>Topics include:</p>
<ul>
<li>Reframing legacy as successful systems outgrowing their design</li>
<li>Four pillars: business/strategy, design/discovery, architecture, execution</li>
<li>Month three milestone: balancing analysis with demonstrable progress</li>
<li>Death Valley: dangerous hybrid state during migration</li>
<li>Semantic drift: business terminology vs code terminology</li>
<li>Conway&rsquo;s Law: team structure mirroring software architecture</li>
<li>Architecture Modernization Enabling Teams (AMET)</li>
<li>Platform as product: standardisation vs developer experience</li>
<li>Using Claude Code for analysis, refactoring, living documentation</li>
<li>Guardrails: linting, test coverage, complexity limits for AI agents</li>
<li>Multi-agent workflows running in parallel</li>
</ul>
<p>Throughout the conversation, Nick demonstrates how architecture modernisation is fundamentally about aligning business needs, team structures, and technical systems - and how AI tools are becoming essential for understanding, documenting, and evolving complex codebases.</p>
<p><strong>Show Links</strong></p>
<ul>
<li>

<a href="https://nick-tune.me/" target="_blank">Nick Tune</a>
</li>
<li>

<a href="https://www.linkedin.com/in/nick-tune/" target="_blank">Nick Tune on LinkedIn</a>
</li>
<li>

<a href="https://bsky.app/profile/nick-tune.me" target="_blank">Nick Tune on Bluesky</a>
</li>
<li>

<a href="https://github.com/ntcoding" target="_blank">Nick Tune on GitHub</a>
</li>
<li>

<a href="https://www.manning.com/books/architecture-modernization" target="_blank">Architecture Modernization</a>
</li>
<li>

<a href="https://legacy-modernization.io/" target="_blank">Legacy-Modernization.io</a>
</li>
<li>

<a href="https://living-architecture.dev/" target="_blank">Living Architecture</a>
</li>
<li>

<a href="https://nick-tune.me/blog/2025-11-01-software-architecture-as-living-documentation-series-index-p/" target="_blank">Software Architecture as Living Documentation Series</a>
</li>
<li>

<a href="https://www.youtube.com/watch?v=Ah-X2wvxzes" target="_blank">The Long Journey of Legacy Modernization</a>
</li>
<li>

<a href="https://www.youtube.com/watch?v=DwAI2NqscMo" target="_blank">Architecture Modernization: Aligning Software, Strategy &amp; Structure - GOTO 2024</a>
</li>
<li>

<a href="https://www.youtube.com/watch?v=sDLGB6VWrDg" target="_blank">Architecture Modernization with Nick Tune &amp; Eduardo da Silva - GOTO 2024</a>
</li>
<li>

<a href="https://teamtopologies.com/book" target="_blank">Team Topologies</a>
</li>
<li>

<a href="https://learnwardleymapping.com/" target="_blank">Wardley Mapping</a>
</li>
<li>

<a href="https://martinfowler.com/bliki/ConwaysLaw.html" target="_blank">Conway&rsquo;s Law</a>
</li>
<li>

<a href="https://backstage.io/" target="_blank">Spotify Backstage</a>
</li>
<li>

<a href="https://github.com/NTCoding/claude-skillz" target="_blank">Nick&rsquo;s Claude Code Skills</a>
</li>
<li>

<a href="https://agents.md/" target="_blank">AGENTS.md Standard</a>
</li>
<li>

<a href="https://ts-morph.com/" target="_blank">TS Morph - TypeScript Compiler API Wrapper</a>
</li>
<li>

<a href="https://bugmagnet.org/" target="_blank">Bug Magnet by Gojko Adzic</a>
</li>
</ul>
]]></content:encoded><pubDate>Wed, 28 Jan 2026 07:00:00 +0000</pubDate><author>Edd Mann</author><enclosure url="https://podsignal.eddmann.com/s/348109d7-a90b-4f00-bc6b-6223fcd79439/r?url=https%3A%2F%2Fpodcasts.compiledconversations.com%2F018-architecture-modernization-with-nick-tune.mp3" length="101570828" type="audio/mpeg"/><itunes:author>Edd Mann</itunes:author><itunes:duration>6338</itunes:duration><itunes:image href="https://compiledconversations.com/album-art.jpg"/><itunes:summary>Nick Tune, author of Architecture Modernization and Staff Engineer at Payfit, joins us to discuss the challenges and strategies of modernising legacy systems. We explore the four pillars of successful modernisation, socio-technical alignment, team topologies, domain modeling, and how AI tools like Claude Code are transforming architecture work.</itunes:summary><itunes:subtitle>Exploring architecture modernisation strategies, socio-technical alignment, team topologies, domain modeling, and using AI to accelerate architectural transformation</itunes:subtitle><itunes:keywords>software development, technology, programming, engineering, developers</itunes:keywords><itunes:explicit>false</itunes:explicit></item><item><title>Event Sourcing with Shawn McCool</title><itunes:episode>17</itunes:episode><podcast:episode>17</podcast:episode><itunes:title>Event Sourcing with Shawn McCool</itunes:title><itunes:episodeType>full</itunes:episodeType><guid isPermaLink="false">https://compiledconversations.com/17/</guid><link>https://compiledconversations.com/17/</link><description>Shawn McCool returns to discuss event sourcing in depth. We explore what event sourcing really means, how it differs from event-driven architectures, the relationship with CQRS and DDD, and practical strategies for building evolvable systems with short-lived aggregates.</description><content:encoded><![CDATA[<p>Shawn McCool returns to the podcast to explore event sourcing - a pattern that fundamentally changed how he thinks about modeling software systems.</p>
<p>We start by tracing Shawn&rsquo;s journey into event sourcing, beginning with his work on Laravel.io around 2012 when a friend introduced him to domain events.
This discovery led him deeper into the DDD community and eventually to creating Event Sourcery, a free video course on domain modeling and event sourcing.
Shawn shares how working with event sourcing broke him out of the &ldquo;way we&rsquo;ve always done it&rdquo; mindset.</p>
<p>The conversation covers the core concepts - what event sourcing actually means (using events as the source of your model state), how it differs from event streaming and event-driven architectures, and when you might choose this approach.
We explore the relationship between event sourcing and CQRS, discussing how separating read and write models enables independent evolution and scaling, while acknowledging the trade-offs around eventual consistency.</p>
<p>Topics include:</p>
<ul>
<li>What event sourcing means: events as the core of your model state</li>
<li>The distinction between event sourcing, event streaming, and event-driven architectures</li>
<li>Domain events versus CRUD: capturing intent and context</li>
<li>CQRS: separating decision-making models from read models</li>
<li>Eventual consistency: trade-offs between reliability and immediate feedback</li>
<li>Synchronous versus asynchronous projections</li>
<li>Why DDD isn&rsquo;t a specific methodology but a pursuit of understanding</li>
<li>Aggregates as lifecycles, not nouns - designing for short-lived event streams</li>
<li>The bank account anti-pattern: why long-running aggregates are problematic</li>
<li>Testing event sourced systems: given-when-then with events</li>
<li>Projections as pure, side-effect-free transformations</li>
<li>Versioning strategies and avoiding the pain of long-lived aggregates</li>
<li>GDPR and data retention: designing systems that don&rsquo;t need to keep data forever</li>
<li>Implementation approaches: relational databases versus dedicated event stores</li>
<li>Rolling your own versus using frameworks like EventSauce or Marten</li>
</ul>
<p>Shawn emphasizes how building systems around short-lived aggregates - where event streams naturally terminate - eliminates entire classes of versioning and data retention problems.
He shares insights from his work at a payment processing company, where the system is designed so that event streams exhaust within 30 minutes, making evolution and versioning remarkably straightforward.</p>
<p>Throughout the conversation, Shawn demonstrates how stepping away from noun-centric thinking and embracing events as the core building block leads to systems that are easier to understand, test, and evolve.</p>
<p><strong>Show Links</strong></p>
<ul>
<li>

<a href="https://shawnmc.cool/" target="_blank">Shawn McCool&rsquo;s Website</a>
</li>
<li>

<a href="https://x.com/ShawnMcCool" target="_blank">Shawn McCool on X/Twitter</a>
</li>
<li>

<a href="https://www.linkedin.com/in/shawnmccool/" target="_blank">Shawn McCool on LinkedIn</a>
</li>
<li>

<a href="https://github.com/ShawnMcCool" target="_blank">Shawn McCool on GitHub</a>
</li>
<li>

<a href="https://www.youtube.com/@EventSourcery" target="_blank">Event Sourcery</a>
</li>
<li>

<a href="https://laravel.io/" target="_blank">Laravel.io Community Portal</a>
</li>
<li>

<a href="https://www.domainlanguage.com/ddd/blue-book/" target="_blank">Domain-Driven Design: Tackling Complexity in the Heart of Software by Eric Evans (Blue Book)</a>
</li>
<li>

<a href="https://www.oreilly.com/library/view/implementing-domain-driven-design/9780133039900/" target="_blank">Implementing Domain-Driven Design by Vaughn Vernon (Red Book)</a>
</li>
<li>

<a href="https://leanpub.com/esversioning" target="_blank">Versioning in an Event Sourced System by Greg Young</a>
</li>
<li>

<a href="https://compiledconversations.com/12/" target="_blank">Building on the BEAM: Exploring Erlang and Elixir, Part 1 with Shawn McCool</a>
</li>
<li>

<a href="https://compiledconversations.com/13/" target="_blank">Building on the BEAM: Exploring Erlang and Elixir, Part 2 with Shawn McCool</a>
</li>
<li>

<a href="https://martinfowler.com/bliki/CQRS.html" target="_blank">CQRS Pattern</a>
</li>
<li>

<a href="https://martinfowler.com/eaaDev/EventSourcing.html" target="_blank">Event Sourcing Pattern</a>
</li>
<li>

<a href="https://www.eventstorming.com/" target="_blank">EventStorming</a>
</li>
<li>

<a href="https://eventsauce.io/" target="_blank">EventSauce - PHP Event Sourcing Library</a>
</li>
<li>

<a href="https://martendb.io/" target="_blank">Marten - .NET Event Store on PostgreSQL</a>
</li>
<li>

<a href="https://www.kurrent.io/" target="_blank">Kurrent (formerly Event Store DB)</a>
</li>
<li>

<a href="https://en.wikipedia.org/wiki/Shuhari" target="_blank">Shuhari - Japanese Training Philosophy</a>
</li>
<li>

<a href="https://verraes.net/2019/06/talk-temporal-modelling/" target="_blank">Temporal Modelling by Mathias Verraes</a>
</li>
<li>

<a href="https://shawnmc.cool/active-record-how-we-got-persistence-perfectly-wrong/" target="_blank">Active Record: How We Got Persistence Perfectly Wrong</a>
</li>
</ul>
]]></content:encoded><pubDate>Fri, 16 Jan 2026 06:00:00 +0000</pubDate><author>Edd Mann</author><enclosure url="https://podsignal.eddmann.com/s/348109d7-a90b-4f00-bc6b-6223fcd79439/r?url=https%3A%2F%2Fpodcasts.compiledconversations.com%2F017-event-sourcing-with-shawn-mccool.mp3" length="118676892" type="audio/mpeg"/><itunes:author>Edd Mann</itunes:author><itunes:duration>7407</itunes:duration><itunes:image href="https://compiledconversations.com/album-art.jpg"/><itunes:summary>Shawn McCool returns to discuss event sourcing in depth. We explore what event sourcing really means, how it differs from event-driven architectures, the relationship with CQRS and DDD, and practical strategies for building evolvable systems with short-lived aggregates.</itunes:summary><itunes:subtitle>Exploring event sourcing fundamentals, CQRS, eventual consistency, and how modeling with events changes the way we build and evolve software systems</itunes:subtitle><itunes:keywords>software development, technology, programming, engineering, developers</itunes:keywords><itunes:explicit>false</itunes:explicit></item><item><title>Building Event Catalog: From AWS to Solo Bootstrapping with David Boyne</title><itunes:episode>16</itunes:episode><podcast:episode>16</podcast:episode><itunes:title>Building Event Catalog: From AWS to Solo Bootstrapping with David Boyne</itunes:title><itunes:episodeType>full</itunes:episodeType><guid isPermaLink="false">https://compiledconversations.com/16/</guid><link>https://compiledconversations.com/16/</link><description>David Boyne joins us to share his journey from AWS serverless advocate to solo bootstrapper building Event Catalog. We explore event-driven architecture governance challenges, the transition to full-time open source work, building for developers, and how AI is changing architecture documentation.</description><content:encoded><![CDATA[<p>David Boyne joins us to share his journey from AWS serverless advocate to solo bootstrapper building Event Catalog, an open source tool bringing discoverability to event-driven architectures.</p>
<p>We start by exploring David&rsquo;s background at AWS, where he spent over two years as a serverless advocate focusing on event architectures, EventBridge, and helping customers navigate the complexities of distributed systems.
He shares insights into the problems he consistently saw teams struggling with as they scaled their event-driven systems, particularly around governance and discoverability - noting that event architectures are still 10-15 years behind API documentation, with most organizations lacking machine-readable specifications for their events.</p>
<p>Seeing these governance challenges repeatedly, David made the decision to leave AWS and pursue Event Catalog full-time as a solo bootstrapper.
He shares candid insights into the realities of that journey and discusses how Event Catalog evolved from a Christmas side project to a tool used by developers, architects, business analysts, and product owners, each finding different value in the platform.</p>
<p>Topics include:</p>
<ul>
<li>David&rsquo;s journey from AWS serverless advocate to solo bootstrapper</li>
<li>Visual thinking: how EDA Visuals emerged from David&rsquo;s Zettelkasten note-taking system</li>
<li>Event-driven architecture fundamentals and alignment with domain-driven design</li>
<li>The governance challenge: why EDA needs better discoverability and documentation</li>
<li>Transitioning from AWS: making the leap to full-time open source work</li>
<li>Solo developer journey: the highs, lows, and lessons learned from bootstrapping</li>
<li>Open core business model: balancing open source with sustainable revenue</li>
<li>Building in public: sharing the journey and making the pie bigger for everyone</li>
<li>Customer discovery: how to engage with users as a solo builder</li>
<li>Building for developers: the unique challenges of B2D (business-to-developer) markets</li>
<li>Pricing strategies: understanding value and avoiding the &ldquo;too cheap&rdquo; trap</li>
<li>Event Catalog: bringing discoverability to event architectures</li>
<li>Event Catalog Studio: visual design tools for event architectures</li>
<li>Tech stack decisions: choosing Astro, self-hosting, and GitOps workflows</li>
<li>AI integration: MCP tools, context-aware documentation, and the future of architecture docs</li>
<li>The importance of talking to customers and focusing on problems over features</li>
</ul>
<p>Finally, we explore how AI is changing architecture documentation, with David sharing his experiments with MCP tools that provide context-aware assistance to developers working with event architectures; while recognizing that business context, domains, and ubiquitous language must come from human understanding.</p>
<p>Throughout the conversation, David emphasizes the importance of being human, focusing on problems over features, and advocating for the space rather than just the product.
Whether you&rsquo;re interested in event-driven architectures, considering a solo bootstrapping journey, or curious about building developer tools, this episode offers both practical insights and inspiration.</p>
<p><strong>Show Links</strong></p>
<ul>
<li>

<a href="https://www.boyney.io/" target="_blank">David Boyne&rsquo;s Website</a>
</li>
<li>

<a href="https://x.com/boyney123" target="_blank">David Boyne on X/Twitter</a>
</li>
<li>

<a href="https://www.linkedin.com/in/david-boyne/" target="_blank">David Boyne on LinkedIn</a>
</li>
<li>

<a href="https://boyney123.substack.com/" target="_blank">David Boyne&rsquo;s Substack</a>
</li>
<li>

<a href="https://www.eventcatalog.dev/" target="_blank">Event Catalog</a>
</li>
<li>

<a href="https://github.com/event-catalog/eventcatalog" target="_blank">Event Catalog on GitHub</a>
</li>
<li>

<a href="https://studio.eventcatalog.dev/" target="_blank">Event Catalog Studio</a>
</li>
<li>

<a href="https://eda-visuals.boyney.io/" target="_blank">EDA Visuals</a>
</li>
<li>

<a href="https://eventbridge-canon.netlify.app/" target="_blank">EventBridge Canon</a>
</li>
<li>

<a href="https://eventbridge-atlas.netlify.app/" target="_blank">EventBridge Atlas</a>
</li>
<li>

<a href="https://www.eventbridgebook.com/" target="_blank">The EventBridge Book</a>
</li>
<li>

<a href="https://aws.amazon.com/eventbridge/" target="_blank">EventBridge</a>
</li>
<li>

<a href="https://compiledconversations.com/1/" target="_blank">Thinking in Events: Principles of Event-Driven Architecture, Part 1 with James Eastham</a>
</li>
<li>

<a href="https://compiledconversations.com/2/" target="_blank">Thinking in Events: Principles of Event-Driven Architecture, Part 2 with James Eastham</a>
</li>
<li>

<a href="https://astro.build/" target="_blank">Astro</a>
</li>
<li>

<a href="https://docusaurus.io/" target="_blank">Docusaurus</a>
</li>
<li>

<a href="https://modelcontextprotocol.io/" target="_blank">MCP (Model Context Protocol)</a>
</li>
<li>

<a href="https://en.wikipedia.org/wiki/Zettelkasten" target="_blank">Zettelkasten Method</a>
</li>
<li>

<a href="https://www.soenkeahrens.de/en/takesmartnotes" target="_blank">How to Take Smart Notes by Sönke Ahrens</a>
</li>
<li>

<a href="https://www.openapis.org/" target="_blank">OpenAPI Specification</a>
</li>
<li>

<a href="https://swagger.io/" target="_blank">Swagger</a>
</li>
<li>

<a href="https://www.asyncapi.com/" target="_blank">AsyncAPI</a>
</li>
<li>

<a href="https://c4model.com/" target="_blank">C4 Model</a>
</li>
<li>

<a href="https://www.momtestbook.com/" target="_blank">The Mom Test</a>
</li>
<li>

<a href="https://developerfacingstartup.dev/" target="_blank">Developer-Facing Startup Book</a>
</li>
<li>

<a href="https://boyney123.substack.com/p/dont-sell-to-developers-focus-on" target="_blank">Don&rsquo;t sell to developers. Focus on value, advocacy and creating internal champions - David Boyne&rsquo;s Blog Post</a>
</li>
<li>

<a href="https://boyney123.medium.com/a-journey-from-junior-developer-to-technical-lead-b1af4d2419fb" target="_blank">A journey from Junior Developer to Technical Lead - David Boyne</a>
</li>
<li>

<a href="https://kandddinsky.de/" target="_blank">KanDDDinsky</a>
</li>
<li>

<a href="https://ndclondon.com/agenda/stars-dont-pay-the-bills-turning-open-source-into-a-business-0929/060xapapxvw" target="_blank">NDC London - Stars Don’t Pay the Bills: Turning Open Source Into a Business</a>
</li>
</ul>
]]></content:encoded><pubDate>Fri, 12 Dec 2025 07:00:00 +0000</pubDate><author>Edd Mann</author><enclosure url="https://podsignal.eddmann.com/s/348109d7-a90b-4f00-bc6b-6223fcd79439/r?url=https%3A%2F%2Fpodcasts.compiledconversations.com%2F016-building-event-catalog-from-aws-to-solo-bootstrapping-with-david-boyne.mp3" length="85809967" type="audio/mpeg"/><itunes:author>Edd Mann</itunes:author><itunes:duration>5353</itunes:duration><itunes:image href="https://compiledconversations.com/album-art.jpg"/><itunes:summary>David Boyne joins us to share his journey from AWS serverless advocate to solo bootstrapper building Event Catalog. We explore event-driven architecture governance challenges, the transition to full-time open source work, building for developers, and how AI is changing architecture documentation.</itunes:summary><itunes:subtitle>Exploring event-driven architecture governance, the journey from AWS advocate to solo founder, and building discoverability tools for event architectures</itunes:subtitle><itunes:keywords>software development, technology, programming, engineering, developers</itunes:keywords><itunes:explicit>false</itunes:explicit></item><item><title>Machine Learning Fundamentals, Part 2 with Shannon Wirtz</title><itunes:episode>15</itunes:episode><podcast:episode>15</podcast:episode><itunes:title>Machine Learning Fundamentals, Part 2 with Shannon Wirtz</itunes:title><itunes:episodeType>full</itunes:episodeType><guid isPermaLink="false">https://compiledconversations.com/15/</guid><link>https://compiledconversations.com/15/</link><description>We continue our conversation with Shannon Wirtz, diving into ensemble methods, neural networks (including CNNs, RNNs, and Transformers), model training and evaluation techniques, interpretation methods, and practical learning resources for those getting started with ML.</description><content:encoded><![CDATA[<p>We continue our exploration of machine learning fundamentals with Shannon Wirtz, diving deeper into advanced model architectures, training techniques, and evaluation methods.</p>
<p>We start with ensemble learning - why combining multiple models often outperforms single models, and how techniques like Random Forest and XGBoost prevent overfitting through clever sampling strategies.
From there, we explore neural networks, understanding how they learn directly from raw data through sequences of linear and nonlinear transformations.</p>
<p>The conversation covers the evolution from convolutional neural networks (perfect for images) to recurrent neural networks (for sequences) to Transformers (the architecture behind modern LLMs).
We dive into how Transformers revolutionized natural language processing through parallelization and attention mechanisms, enabling the large language models we see today.</p>
<p>We then shift to the critical topic of model evaluation - exploring loss functions, gradient descent, learning rates, and the importance of proper train/validation/test splits.
Shannon explains why you need separate validation and test sets, how k-fold cross-validation works, and the various metrics used to assess model performance beyond simple accuracy.</p>
<p>Topics include:</p>
<ul>
<li>Ensemble learning: why combining models works (Random Forest, XGBoost)</li>
<li>Neural networks: linear and nonlinear transformations, neurons, and layers</li>
<li>Convolutional Neural Networks (CNNs): recognizing visual patterns and edges</li>
<li>Transformers: the architecture behind modern LLMs, attention mechanisms, and why they&rsquo;re so powerful</li>
<li>Training and evaluation: loss functions, gradient descent, and learning rates</li>
<li>Train/validation/test splits and why you need all three</li>
<li>K-fold cross-validation: a more robust evaluation approach</li>
<li>Performance metrics including precision, recall, F1 score, AUC, and the confusion matrix</li>
<li>Model interpretation: white box vs black box models</li>
<li>Interpretation techniques including partial dependence plots, SHAP values, and individual conditional expectations</li>
<li>Learning resources: Andrew Ng&rsquo;s courses, Kaggle, DataCamp, and hands-on projects</li>
</ul>
<p>Shannon also shares his personal learning journey, from rote learning to practical hands-on experience, and discusses how he learns most effectively through immediate feedback and engaging projects.</p>
<p>Whether you&rsquo;re looking to understand how modern AI systems work or seeking practical guidance on getting started with machine learning, this episode provides both theoretical depth and practical strategies for building and evaluating ML models.</p>
<p><em>This is Part 2 of a 2-part series. In 

<a href="https://compiledconversations.com/14/" target="_blank">Part 1</a>
, we explored the foundations of machine learning - including core concepts, terminology, different learning approaches, and fundamental model types.</em></p>
<p><strong>Show Links</strong></p>
<ul>
<li>

<a href="https://www.linkedin.com/in/shannon-wirtz-a8387144/" target="_blank">Shannon Wirtz on LinkedIn</a>
</li>
<li>

<a href="https://en.wikipedia.org/wiki/Ensemble_learning" target="_blank">Ensemble Learning</a>
</li>
<li>

<a href="https://en.wikipedia.org/wiki/Random_forest" target="_blank">Random Forest</a>
</li>
<li>

<a href="https://en.wikipedia.org/wiki/XGBoost" target="_blank">XGBoost</a>
</li>
<li>

<a href="https://en.wikipedia.org/wiki/Neural_network" target="_blank">Neural Networks</a>
</li>
<li>

<a href="https://en.wikipedia.org/wiki/Convolutional_neural_network" target="_blank">Convolutional Neural Networks</a>
</li>
<li>

<a href="https://github.com/deepseek-ai/DeepSeek-OCR" target="_blank">DeepSeek-OCR</a>
</li>
<li>

<a href="https://www.image-net.org/" target="_blank">ImageNet</a>
</li>
<li>

<a href="https://en.wikipedia.org/wiki/AlexNet" target="_blank">AlexNet</a>
</li>
<li>

<a href="https://en.wikipedia.org/wiki/Transformer_%28machine_learning_model%29" target="_blank">Transformers</a>
</li>
<li>

<a href="https://arxiv.org/abs/1706.03762" target="_blank">Attention Is All You Need</a>
</li>
<li>

<a href="https://en.wikipedia.org/wiki/Gradient_descent" target="_blank">Gradient Descent</a>
</li>
<li>

<a href="https://en.wikipedia.org/wiki/Cross-validation_%28statistics%29" target="_blank">Cross-Validation</a>
</li>
<li>

<a href="https://en.wikipedia.org/wiki/Precision_and_recall" target="_blank">Precision and Recall</a>
</li>
<li>

<a href="https://en.wikipedia.org/wiki/F-score" target="_blank">F1 Score</a>
</li>
<li>

<a href="https://en.wikipedia.org/wiki/Receiver_operating_characteristic" target="_blank">AUC (Area Under Curve)</a>
</li>
<li>

<a href="https://en.wikipedia.org/wiki/Confusion_matrix" target="_blank">Confusion Matrix</a>
</li>
<li>

<a href="https://shap.readthedocs.io/" target="_blank">SHAP Values</a>
</li>
<li>

<a href="https://scikit-learn.org/stable/modules/partial_dependence.html" target="_blank">Partial Dependence Plots</a>
</li>
<li>

<a href="https://www.coursera.org/specializations/machine-learning-introduction" target="_blank">Andrew Ng&rsquo;s Machine Learning Course</a>
</li>
<li>

<a href="https://www.deeplearning.ai/" target="_blank">DeepLearning.AI</a>
</li>
<li>

<a href="https://www.kaggle.com/" target="_blank">Kaggle</a>
</li>
<li>

<a href="https://www.datacamp.com/" target="_blank">DataCamp</a>
</li>
<li>

<a href="https://www.r-project.org/" target="_blank">R Programming Language</a>
</li>
<li>

<a href="https://anilananthaswamy.com/why-machines-learn" target="_blank">Why Machines Learn</a>
</li>
<li>

<a href="https://www.oreilly.com/library/view/hands-on-machine-learning/9781492032632/" target="_blank">Hands-On Machine Learning</a>
</li>
<li>

<a href="http://neuralnetworksanddeeplearning.com/" target="_blank">Neural Networks and Deep Learning</a>
</li>
</ul>
]]></content:encoded><pubDate>Fri, 21 Nov 2025 07:30:00 +0000</pubDate><author>Edd Mann</author><enclosure url="https://podsignal.eddmann.com/s/348109d7-a90b-4f00-bc6b-6223fcd79439/r?url=https%3A%2F%2Fpodcasts.compiledconversations.com%2F015-machine-learning-fundamentals-part-2-with-shannon-wirtz.mp3" length="64526148" type="audio/mpeg"/><itunes:author>Edd Mann</itunes:author><itunes:duration>4023</itunes:duration><itunes:image href="https://compiledconversations.com/album-art.jpg"/><itunes:summary>We continue our conversation with Shannon Wirtz, diving into ensemble methods, neural networks (including CNNs, RNNs, and Transformers), model training and evaluation techniques, interpretation methods, and practical learning resources for those getting started with ML.</itunes:summary><itunes:subtitle>Exploring ensemble learning, neural networks, model evaluation, and practical strategies for getting started with machine learning</itunes:subtitle><itunes:keywords>software development, technology, programming, engineering, developers</itunes:keywords><itunes:explicit>false</itunes:explicit></item><item><title>Machine Learning Fundamentals, Part 1 with Shannon Wirtz</title><itunes:episode>14</itunes:episode><podcast:episode>14</podcast:episode><itunes:title>Machine Learning Fundamentals, Part 1 with Shannon Wirtz</itunes:title><itunes:episodeType>full</itunes:episodeType><guid isPermaLink="false">https://compiledconversations.com/14/</guid><link>https://compiledconversations.com/14/</link><description>Shannon Wirtz, product analyst at Angi, joins us to demystify machine learning fundamentals. We explore what ML actually means, how it differs from traditional programming, and dive deep into core concepts including models, features, training data, and the various types of learning approaches.</description><content:encoded><![CDATA[<p>Shannon Wirtz, product analyst at Angi, joins us to explore the foundations of machine learning - breaking down the terminology, concepts, and approaches that form the bedrock of modern ML systems.</p>
<p>We start by understanding what machine learning actually means in practice, how it differs from traditional rules-based programming, and where it fits within the broader landscape of AI and deep learning.
Shannon shares insights from his experience working with ML models in his professional work, from predicting customer behavior to classification tasks.</p>
<p>The conversation covers everything from the fundamental building blocks (models, features, training sets) to the different paradigms of learning - supervised, unsupervised, semi-supervised, self-supervised, and reinforcement learning.
We explore why generalization is critical, how bias and variance affect model performance, and why the &ldquo;garbage in, garbage out&rdquo; principle is so important in ML.</p>
<p>Topics include:</p>
<ul>
<li>What machine learning means and how it differs from traditional programming</li>
<li>The relationship between AI, machine learning, and deep learning</li>
<li>Core ML concepts: models, training sets, samples, instances, datasets</li>
<li>Classification vs regression problems</li>
<li>Parameters vs hyperparameters in model training</li>
<li>Generalization: why models must work on unseen data</li>
<li>Bias and variance: understanding overfitting and underfitting</li>
<li>Learning paradigms: supervised, unsupervised, semi-supervised, self-supervised, reinforcement</li>
<li>Online vs batch learning approaches</li>
<li>Instance-based vs model-based learning</li>
<li>Anomaly detection and change point detection</li>
<li>Features and the &ldquo;garbage in garbage out&rdquo; principle</li>
<li>The curse of dimensionality: why more features isn&rsquo;t always better</li>
<li>Dimension reduction techniques including PCA</li>
<li>Model families: linear/logistic regression, decision trees, k-means, SVMs</li>
</ul>
<p>Shannon also shares practical examples from his work, including predicting tradesperson behavior, handling missing data, and the importance of understanding your data&rsquo;s context and history before training models.</p>
<p>Whether you&rsquo;re new to machine learning or looking to solidify your understanding of the fundamentals, this episode provides a comprehensive foundation for understanding how ML systems work and why certain approaches are chosen for different problems.</p>
<p><em>This is Part 1 of a 2-part series. In 

<a href="https://compiledconversations.com/15/" target="_blank">Part 2</a>
, we&rsquo;ll explore ensemble learning, neural networks, model training and evaluation, interpretation techniques, and practical learning resources.</em></p>
<p><strong>Show Links</strong></p>
<ul>
<li>

<a href="https://www.linkedin.com/in/shannon-wirtz-a8387144/" target="_blank">Shannon Wirtz on LinkedIn</a>
</li>
<li>

<a href="https://en.wikipedia.org/wiki/Overfitting" target="_blank">Overfitting and Underfitting</a>
</li>
<li>

<a href="https://en.wikipedia.org/wiki/Bias%E2%80%93variance_tradeoff" target="_blank">Bias-Variance Tradeoff</a>
</li>
<li>

<a href="https://en.wikipedia.org/wiki/Semi-supervised_learning" target="_blank">Semi-supervised Learning</a>
</li>
<li>

<a href="https://en.wikipedia.org/wiki/Reinforcement_learning" target="_blank">Reinforcement Learning</a>
</li>
<li>

<a href="https://en.wikipedia.org/wiki/Linear_regression" target="_blank">Linear Regression</a>
</li>
<li>

<a href="https://en.wikipedia.org/wiki/Logistic_regression" target="_blank">Logistic Regression</a>
</li>
<li>

<a href="https://en.wikipedia.org/wiki/K-means_clustering" target="_blank">k-means Clustering</a>
</li>
<li>

<a href="https://en.wikipedia.org/wiki/Decision_tree" target="_blank">Decision Trees</a>
</li>
<li>

<a href="https://en.wikipedia.org/wiki/Support_vector_machine" target="_blank">Support Vector Machines</a>
</li>
<li>

<a href="https://en.wikipedia.org/wiki/Principal_component_analysis" target="_blank">Principal Component Analysis (PCA)</a>
</li>
<li>

<a href="https://en.wikipedia.org/wiki/Robust_principal_component_analysis" target="_blank">Robust Principal Component Analysis</a>
</li>
<li>

<a href="https://en.wikipedia.org/wiki/Curse_of_dimensionality" target="_blank">Curse of Dimensionality</a>
</li>
<li>

<a href="https://tylervigen.com/spurious-correlations" target="_blank">Spurious Correlations</a>
</li>
<li>

<a href="https://www.kaggle.com/" target="_blank">Kaggle</a>
</li>
</ul>
]]></content:encoded><pubDate>Thu, 13 Nov 2025 07:00:00 +0000</pubDate><author>Edd Mann</author><enclosure url="https://podsignal.eddmann.com/s/348109d7-a90b-4f00-bc6b-6223fcd79439/r?url=https%3A%2F%2Fpodcasts.compiledconversations.com%2F014-machine-learning-fundamentals-part-1-with-shannon-wirtz.mp3" length="78268694" type="audio/mpeg"/><itunes:author>Edd Mann</itunes:author><itunes:duration>4882</itunes:duration><itunes:image href="https://compiledconversations.com/album-art.jpg"/><itunes:summary>Shannon Wirtz, product analyst at Angi, joins us to demystify machine learning fundamentals. We explore what ML actually means, how it differs from traditional programming, and dive deep into core concepts including models, features, training data, and the various types of learning approaches.</itunes:summary><itunes:subtitle>Exploring the foundations of machine learning - from core concepts and terminology to different learning approaches and model types</itunes:subtitle><itunes:keywords>software development, technology, programming, engineering, developers</itunes:keywords><itunes:explicit>false</itunes:explicit></item><item><title>Building on the BEAM: Exploring Erlang and Elixir, Part 2 with Shawn McCool</title><itunes:episode>13</itunes:episode><podcast:episode>13</podcast:episode><itunes:title>Building on the BEAM: Exploring Erlang and Elixir, Part 2 with Shawn McCool</itunes:title><itunes:episodeType>full</itunes:episodeType><guid isPermaLink="false">https://compiledconversations.com/13/</guid><link>https://compiledconversations.com/13/</link><description>We continue our conversation with Shawn McCool, exploring the Elixir ecosystem including Phoenix&amp;#39;s LiveView, Ecto&amp;#39;s composable queries, Nerves for IoT, and LiveBook. We discuss when to use built-in BEAM capabilities versus external services, and dive into AI integration with Tidewave.</description><content:encoded><![CDATA[<p>We continue our exploration of Erlang and Elixir with Shawn McCool, diving deep into the Elixir ecosystem and its powerful tools and frameworks.
From Phoenix&rsquo;s revolutionary LiveView approach to Ecto&rsquo;s composable database queries, we examine how Elixir&rsquo;s design enables building sophisticated systems with less complexity.</p>
<p>Shawn shares practical examples from his experience, including building home automation systems with Nerves for monitoring energy usage.
We explore LiveBook&rsquo;s potential for executable documentation and collaborative development, and dive into how Tidewave enables AI agents to interact with running Elixir applications.
The conversation also covers when to leverage built-in BEAM capabilities versus external services, and how this gradual scaling approach simplifies early development while maintaining flexibility for growth.</p>
<p>Topics include:</p>
<ul>
<li>Phoenix Framework and its real-time capabilities through LiveView</li>
<li>Ecto&rsquo;s approach to database access and why it&rsquo;s not a traditional ORM</li>
<li>When to use built-in capabilities vs external services (ETS vs Redis, Phoenix PubSub vs RabbitMQ)</li>
<li>Nerves for embedded development and IoT applications</li>
<li>Numerical Elixir (Nx) for ML and numerical computing</li>
<li>LiveBook for collaborative development and executable documentation</li>
<li>Tidewave and AI integration with Elixir applications</li>
<li>Domain modeling with functional programming principles</li>
<li>Learning strategies: Erlang first vs jumping into Elixir</li>
</ul>
<p>We wrap up by exploring the paradigm shift from object-oriented to functional programming, with Shawn sharing his recommended learning path including books from the Pragmatic Bookshelf.</p>
<p><em>This is Part 2 of a 2-part series. In 

<a href="https://compiledconversations.com/12/" target="_blank">Part 1</a>
, we explored the BEAM virtual machine, the actor model, and how Erlang&rsquo;s unique approach to concurrency enables building more resilient systems.</em></p>
<p><strong>Show Links</strong></p>
<ul>
<li>

<a href="https://shawnmc.cool/" target="_blank">Shawn McCool&rsquo;s Website</a>
</li>
<li>

<a href="https://x.com/shawnmccool" target="_blank">Shawn McCool on X/Twitter</a>
</li>
<li>

<a href="https://bsky.app/profile/shawnmc.cool" target="_blank">Shawn McCool on Bluesky</a>
</li>
<li>

<a href="https://shawnmc.cool/elixir-erlang-learning-resources/" target="_blank">Shawn McCool&rsquo;s Elixir/Erlang Learning Resources</a>
</li>
<li>

<a href="https://www.erlang.org/" target="_blank">Erlang</a>
</li>
<li>

<a href="https://elixir-lang.org/" target="_blank">Elixir</a>
</li>
<li>

<a href="https://www.phoenixframework.org/" target="_blank">Phoenix Framework</a>
</li>
<li>

<a href="https://hexdocs.pm/phoenix_live_view/Phoenix.LiveView.html" target="_blank">Phoenix LiveView</a>
</li>
<li>

<a href="https://livewire.laravel.com/" target="_blank">Laravel Livewire</a>
</li>
<li>

<a href="https://hotwired.dev/" target="_blank">Hotwire</a>
</li>
<li>

<a href="https://hexdocs.pm/ecto/Ecto.html" target="_blank">Ecto Documentation</a>
</li>
<li>

<a href="https://hexdocs.pm/ecto/Ecto.Changeset.html" target="_blank">Ecto Changesets</a>
</li>
<li>

<a href="https://www.erlang.org/doc/man/ets.html" target="_blank">Erlang Term Storage (ETS)</a>
</li>
<li>

<a href="https://hexdocs.pm/phoenix_pubsub/Phoenix.PubSub.html" target="_blank">Phoenix PubSub</a>
</li>
<li>

<a href="https://hexdocs.pm/oban/Oban.html" target="_blank">Oban - Background Jobs</a>
</li>
<li>

<a href="https://nerves-project.org/" target="_blank">Nerves Project</a>
</li>
<li>

<a href="https://github.com/elixir-nx/" target="_blank">Numerical Elixir (Nx)</a>
</li>
<li>

<a href="https://livebook.dev/" target="_blank">Elixir LiveBook</a>
</li>
<li>

<a href="https://tidewave.ai/" target="_blank">Tidewave</a>
</li>
<li>

<a href="https://www.manning.com/books/elixir-in-action" target="_blank">Elixir in Action</a>
</li>
<li>

<a href="https://pragprog.com/titles/jaerlang2/programming-erlang-2nd-edition/" target="_blank">Programming Erlang</a>
</li>
<li>

<a href="https://pragprog.com/categories/elixir-phoenix-and-otp/" target="_blank">Pragmatic Bookshelf - Elixir</a>
</li>
<li>

<a href="https://www.youtube.com/c/EventSourcery" target="_blank">EventSourcery</a>
</li>
</ul>
]]></content:encoded><pubDate>Sun, 02 Nov 2025 07:00:00 +0000</pubDate><author>Edd Mann</author><enclosure url="https://podsignal.eddmann.com/s/348109d7-a90b-4f00-bc6b-6223fcd79439/r?url=https%3A%2F%2Fpodcasts.compiledconversations.com%2F013-building-on-the-beam-exploring-erlang-and-elixir-part-2-with-shawn-mccool.mp3" length="39346683" type="audio/mpeg"/><itunes:author>Edd Mann</itunes:author><itunes:duration>2449</itunes:duration><itunes:image href="https://compiledconversations.com/album-art.jpg"/><itunes:summary>We continue our conversation with Shawn McCool, exploring the Elixir ecosystem including Phoenix&amp;#39;s LiveView, Ecto&amp;#39;s composable queries, Nerves for IoT, and LiveBook. We discuss when to use built-in BEAM capabilities versus external services, and dive into AI integration with Tidewave.</itunes:summary><itunes:subtitle>Exploring the Elixir ecosystem from Phoenix and Ecto to Nerves and AI integration, and how the BEAM's capabilities simplify building sophisticated systems</itunes:subtitle><itunes:keywords>software development, technology, programming, engineering, developers</itunes:keywords><itunes:explicit>false</itunes:explicit></item><item><title>Building on the BEAM: Exploring Erlang and Elixir, Part 1 with Shawn McCool</title><itunes:episode>12</itunes:episode><podcast:episode>12</podcast:episode><itunes:title>Building on the BEAM: Exploring Erlang and Elixir, Part 1 with Shawn McCool</itunes:title><itunes:episodeType>full</itunes:episodeType><guid isPermaLink="false">https://compiledconversations.com/12/</guid><link>https://compiledconversations.com/12/</link><description>Shawn McCool shares his journey from class-oriented programming to discovering the power of Erlang and Elixir. We explore the BEAM virtual machine, process isolation, message passing, and how Erlang&amp;#39;s unique approach to fault tolerance and concurrency enables building more resilient systems.</description><content:encoded><![CDATA[<p>Shawn McCool joins us to explore the unique and powerful world of Erlang and Elixir.
With 27 years of industry experience spanning system administration, web development, payment processing systems, and conference organisation (including DDD Europe) - Shawn shares how discovering Erlang changed his perspective on building distributed systems.</p>
<p>We dive deep into what makes Erlang and the BEAM virtual machine special, exploring how its process-based concurrency model and &ldquo;let it crash&rdquo; philosophy enable building highly reliable systems.
Shawn explains how Erlang&rsquo;s origins in telecom shaped its design for handling millions of concurrent connections with near real-time guarantees.</p>
<p>Topics include:</p>
<ul>
<li>The BEAM virtual machine as an operating system for concurrent processes</li>
<li>Process isolation, lightweight concurrency, and the actor model</li>
<li>Message passing between processes and how it differs from shared state</li>
<li>Supervision trees and the &ldquo;let it crash&rdquo; philosophy of error handling</li>
<li>How process-level garbage collection enables consistent performance</li>
<li>Hot code upgrades and zero-downtime deployments</li>
<li>The difference between concurrency and parallelism</li>
<li>Gradual typing in Elixir and type specs in Erlang</li>
<li>Protocols for polymorphism without class inheritance</li>
<li>Value objects and immutability in functional programming</li>
<li>Testing approaches for concurrent systems and processes</li>
</ul>
<p>Throughout the episode, Shawn demonstrates how Erlang and Elixir&rsquo;s unique approach fundamentally changes how we think about building systems, from state management to error handling, making certain patterns natural and elegant that would be impractical or complex in traditional object-oriented languages.</p>
<p><em>This is Part 1 of a 2-part series. In 

<a href="https://compiledconversations.com/13/" target="_blank">Part 2</a>
, we&rsquo;ll explore the Elixir ecosystem, including Phoenix, Ecto, Nx, Nerves, and AI development tools.</em></p>
<p><strong>Show Links</strong></p>
<ul>
<li>

<a href="https://shawnmc.cool/" target="_blank">Shawn McCool&rsquo;s Website</a>
</li>
<li>

<a href="https://x.com/shawnmccool" target="_blank">Shawn McCool on X/Twitter</a>
</li>
<li>

<a href="https://bsky.app/profile/shawnmc.cool" target="_blank">Shawn McCool on Bluesky</a>
</li>
<li>

<a href="https://shawnmc.cool/elixir-erlang-learning-resources/" target="_blank">Shawn McCool&rsquo;s Elixir/Erlang Learning Resources</a>
</li>
<li>

<a href="https://www.erlang.org/" target="_blank">Erlang</a>
</li>
<li>

<a href="https://elixir-lang.org/" target="_blank">Elixir</a>
</li>
<li>

<a href="https://www.youtube.com/watch?v=xrIjfIjssLE" target="_blank">Erlang: The Movie</a>
</li>
<li>

<a href="https://learnyousomeerlang.com/" target="_blank">Learn You Some Erlang</a>
</li>
<li>

<a href="https://erlang.org/download/armstrong_thesis_2003.pdf" target="_blank">Making Reliable Distributed Systems in the Presence of Software Errors</a>
</li>
<li>

<a href="https://www.erlang.org/doc/reference_manual/processes.html" target="_blank">Erlang Documentation - Processes</a>
</li>
<li>

<a href="https://www.erlang.org/doc/reference_manual/distributed.html" target="_blank">Erlang Documentation - Distributed Programming</a>
</li>
<li>

<a href="https://en.wikipedia.org/wiki/Actor_model" target="_blank">Actor Model (Wikipedia)</a>
</li>
<li>

<a href="https://www.youtube.com/watch?v=hdBm4K-vvt0" target="_blank">Waterpark: Transforming Healthcare with Distributed Actors</a>
</li>
<li>

<a href="https://gleam.run/" target="_blank">Gleam Programming Language</a>
</li>
<li>

<a href="https://elixir-lang.org/blog/2023/06/22/type-system-updates-research-dev/" target="_blank">Elixir&rsquo;s Gradual Type System</a>
</li>
<li>

<a href="https://www.erlang.org/doc/man/dialyzer.html" target="_blank">Dialyzer - Type Checker for Erlang</a>
</li>
<li>

<a href="https://hexdocs.pm/elixir/typespecs.html" target="_blank">Elixir Typespecs</a>
</li>
<li>

<a href="https://elixirschool.com/en/lessons/advanced/protocols" target="_blank">Elixir School - Protocols</a>
</li>
<li>

<a href="https://dddeurope.com/" target="_blank">Domain-Driven Design Europe Conference</a>
</li>
<li>

<a href="https://shawnmc.cool/active-record-how-we-got-persistence-perfectly-wrong/" target="_blank">Active Record: How We Got Persistence Perfectly Wrong</a>
</li>
<li>

<a href="https://www.youtube.com/c/EventSourcery" target="_blank">EventSourcery</a>
</li>
<li>

<a href="https://elixir-language-tour.swmansion.com/introduction" target="_blank">Elixir Language Tour</a>
</li>
</ul>
]]></content:encoded><pubDate>Fri, 24 Oct 2025 07:00:00 +0000</pubDate><author>Edd Mann</author><enclosure url="https://podsignal.eddmann.com/s/348109d7-a90b-4f00-bc6b-6223fcd79439/r?url=https%3A%2F%2Fpodcasts.compiledconversations.com%2F012-building-on-the-beam-exploring-erlang-and-elixir-part-1-with-shawn-mccool.mp3" length="69822191" type="audio/mpeg"/><itunes:author>Edd Mann</itunes:author><itunes:duration>4354</itunes:duration><itunes:image href="https://compiledconversations.com/album-art.jpg"/><itunes:summary>Shawn McCool shares his journey from class-oriented programming to discovering the power of Erlang and Elixir. We explore the BEAM virtual machine, process isolation, message passing, and how Erlang&amp;#39;s unique approach to fault tolerance and concurrency enables building more resilient systems.</itunes:summary><itunes:subtitle>Diving into the BEAM virtual machine, the actor model, and how Erlang's unique approach to concurrency changes the way we think about building systems</itunes:subtitle><itunes:keywords>software development, technology, programming, engineering, developers</itunes:keywords><itunes:explicit>false</itunes:explicit></item><item><title>The Life of a PostgreSQL Table, Part 2 with Bruce Momjian</title><itunes:episode>11</itunes:episode><podcast:episode>11</podcast:episode><itunes:title>The Life of a PostgreSQL Table, Part 2 with Bruce Momjian</itunes:title><itunes:episodeType>full</itunes:episodeType><guid isPermaLink="false">https://compiledconversations.com/11/</guid><link>https://compiledconversations.com/11/</link><description>Bruce Momjian returns to complete our journey through a PostgreSQL table&amp;#39;s lifecycle. We explore how Postgres handles updates, table alterations, row deletions, and table drops - diving deep into MVCC, vacuuming, and the Write-Ahead Log.</description><content:encoded><![CDATA[<p>Bruce Momjian returns to complete our exploration of PostgreSQL internals through a table&rsquo;s lifecycle.
From updates and alterations to deletions and drops, we dive deep into how Postgres manages data changes, maintains consistency, and handles clean-up operations, revealing the intricate mechanisms that make PostgreSQL both powerful and reliable.</p>
<p>We examine how Postgres manages everything from transaction isolation to reclaiming space.
Bruce explains how MVCC enables concurrent updates, how table alterations affect performance, and how the Write-Ahead Log ensures durability whilst enabling features like point-in-time recovery and replication.</p>
<p>Topics include:</p>
<ul>
<li>Updates: MVCC, heap-only tuples, and how Postgres handles concurrent modifications</li>
<li>Transaction isolation levels: read committed, repeatable read, and serializable</li>
<li>Table alterations: lightweight vs heavyweight changes, column additions, and type changes</li>
<li>Row deletion: transaction visibility, reclaiming space, and foreign key cascades</li>
<li>Vacuum operations: regular vacuum vs vacuum full, and auto-vacuum scheduling</li>
<li>Write-Ahead Log (WAL): crash recovery, point-in-time recovery, and replication</li>
<li>Table drops: dependency tracking and cleanup operations</li>
<li>Concurrency control: row-level locking, deadlock detection, and conflict resolution</li>
<li>The importance of indexing foreign key columns for performance</li>
<li>How Postgres maintains durability through careful write ordering</li>
</ul>
<p>Bruce also shares insights into performance optimisation, operational considerations, and the evolution of PostgreSQL&rsquo;s features over time.</p>
<p><em>This is Part 2 of a 2-part series. In Part 1, we explored table creation, data insertion, and query execution in PostgreSQL.</em></p>
<p><strong>Show Links</strong></p>
<p>Bruce generously shared links to all the presentations (with direct references to the discussed slides) and blog articles mentioned in the episode. You&rsquo;ll find them below:</p>
<ul>
<li>

<a href="https://momjian.us/" target="_blank">Bruce Momjian&rsquo;s Website</a>
</li>
<li>

<a href="https://momjian.us/main/writings/pgsql/mvcc.pdf#page=24" target="_blank">Presentation: MVCC Unmasked (Aborted IDs Remain)</a>
</li>
<li>

<a href="https://momjian.us/main/writings/pgsql/mvcc.pdf#page=44" target="_blank">Presentation: MVCC Unmasked (Traditional Cleanup Requirements)</a>
</li>
<li>

<a href="https://momjian.us/main/writings/pgsql/locking.pdf#page=76" target="_blank">Presentation: Unlocking the Postgres Lock Manager (Deadlocks)</a>
</li>
<li>

<a href="https://momjian.us/main/writings/pgsql/administration.pdf#page=85" target="_blank">Presentation: Mastering PostgreSQL Administration (Table Activity)</a>
</li>
<li>

<a href="https://momjian.us/main/writings/pgsql/administration.pdf#page=29" target="_blank">Presentation: Mastering PostgreSQL Administration (Memory Usage)</a>
</li>
<li>

<a href="https://momjian.us/main/writings/pgsql/administration.pdf#page=38" target="_blank">Presentation: Mastering PostgreSQL Administration (Write-Ahead Logging)</a>
</li>
<li>

<a href="https://momjian.us/main/blogs/pgblog/2017.html#January_3_2017" target="_blank">Bruce&rsquo;s Blog: Controlling Autovacuum</a>
</li>
<li>

<a href="https://www.postgresql.org/docs/17/sql-altertable.html" target="_blank">PostgreSQL Documentation: ALTER TABLE</a>
</li>
<li>

<a href="https://www.postgresql.org/docs/17/ddl-depend.html" target="_blank">PostgreSQL Documentation: Dependency Tracking</a>
</li>
<li>

<a href="https://www.postgresql.org/docs/17/continuous-archiving.html" target="_blank">PostgreSQL Documentation: Continuous Archiving and Point-in-Time Recovery</a>
</li>
<li>

<a href="https://threedevsandamaybe.com/postgres-performance-tuning-and-query-planner-with-bruce-momjian/" target="_blank">Three Devs and a Maybe - Postgres Performance Tuning and Query Planner</a>
</li>
<li>

<a href="https://threedevsandamaybe.com/managing-concurrency-in-postgres-with-bruce-momjian/" target="_blank">Three Devs and a Maybe - Managing Concurrency in Postgres</a>
</li>
</ul>
]]></content:encoded><pubDate>Mon, 13 Oct 2025 15:00:00 +0000</pubDate><author>Edd Mann</author><enclosure url="https://podsignal.eddmann.com/s/348109d7-a90b-4f00-bc6b-6223fcd79439/r?url=https%3A%2F%2Fpodcasts.compiledconversations.com%2F011-the-life-of-a-postgresql-table-part-2-with-bruce-momjian.mp3" length="41268745" type="audio/mpeg"/><itunes:author>Edd Mann</itunes:author><itunes:duration>2569</itunes:duration><itunes:image href="https://compiledconversations.com/album-art.jpg"/><itunes:summary>Bruce Momjian returns to complete our journey through a PostgreSQL table&amp;#39;s lifecycle. We explore how Postgres handles updates, table alterations, row deletions, and table drops - diving deep into MVCC, vacuuming, and the Write-Ahead Log.</itunes:summary><itunes:subtitle>Continuing our deep dive into PostgreSQL internals through the life of a table: updates, alterations, deletions, and table drops</itunes:subtitle><itunes:keywords>software development, technology, programming, engineering, developers</itunes:keywords><itunes:explicit>false</itunes:explicit></item><item><title>The Life of a PostgreSQL Table, Part 1 with Bruce Momjian</title><itunes:episode>10</itunes:episode><podcast:episode>10</podcast:episode><itunes:title>The Life of a PostgreSQL Table, Part 1 with Bruce Momjian</itunes:title><itunes:episodeType>full</itunes:episodeType><guid isPermaLink="false">https://compiledconversations.com/10/</guid><link>https://compiledconversations.com/10/</link><description>Bruce Momjian takes us on a deep dive into the lifecycle of a PostgreSQL table. We explore how tables are created, how data is inserted and stored, and how queries work - from physical storage and MVCC to constraints and query planning.</description><content:encoded><![CDATA[<p>Bruce Momjian returns to explore the internals of PostgreSQL by way of a table&rsquo;s lifecycle.
From creation through insertion to querying, we dive deep into how Postgres actually implements tables, indexes, and queries under the hood, revealing why understanding these internals helps you make better decisions as a database user.</p>
<p>We examine how Postgres handles everything from physical storage to transaction visibility.
Bruce explains why constraints are critical for data integrity, how MVCC enables consistent reads without blocking writes, and how the query planner makes decisions about accessing your data.</p>
<p>Topics include:</p>
<ul>
<li>Table creation: physical storage, constraints, and why data types matter</li>
<li>Storage internals: 8KB pages, TOAST, fill factors, and how data is physically laid out</li>
<li>Data insertion: write-ahead logging, transaction visibility, and durability guarantees</li>
<li>Index types and their use cases: B-tree, BRIN, GiST, GIN, SP-GiST and when to use each</li>
<li>Multi-Version Concurrency Control (MVCC): how Postgres handles concurrent reads and writes</li>
<li>Query planning: statistics, costs, and how Postgres chooses access methods</li>
<li>Join strategies: nested loops, hash joins, merge joins and when each is optimal</li>
<li>The importance of constraints and how they protect data integrity</li>
<li>Sequences, transaction visibility, and dealing with concurrent operations</li>
</ul>
<p>Bruce also shares insights into why certain design decisions were made, how they compare to other databases, and practical tips for working with Postgres effectively.</p>
<p><em>This is Part 1 of a 2-part series. In Part 2, we&rsquo;ll explore the remaining lifecycle of a PostgreSQL table - including updating rows, altering table structure, row deletion, and finally dropping tables.</em></p>
<p><strong>Show Links</strong></p>
<p>Bruce generously shared links to all the presentations (with direct references to the discussed slides) and blog articles mentioned in the episode. You&rsquo;ll find them below:</p>
<ul>
<li>

<a href="https://momjian.us/" target="_blank">Bruce Momjian&rsquo;s Website</a>
</li>
<li>

<a href="https://momjian.us/main/writings/pgsql/scaling.pdf#page=6" target="_blank">Presentation: Postgres Scaling Opportunities (Horizontal Database Scaling)</a>
</li>
<li>

<a href="https://momjian.us/main/writings/pgsql/central.pdf#page=4" target="_blank">Presentation: Making Postgres Central in Your Data Center (How Is this Accomplished?)</a>
</li>
<li>

<a href="https://momjian.us/main/writings/pgsql/central.pdf#page=20" target="_blank">Presentation: Making Postgres Central in Your Data Center (Why Extensibility Matters Today)</a>
</li>
<li>

<a href="https://momjian.us/main/writings/pgsql/internalpics.pdf" target="_blank">Presentation: PostgreSQL Internals Through Pictures</a>
</li>
<li>

<a href="https://momjian.us/main/blogs/pgblog/2012.html#January_17_2012" target="_blank">Bruce&rsquo;s Blog: Toast-y Goodness</a>
</li>
<li>

<a href="https://momjian.us/main/writings/pgsql/indexing.pdf#page=10" target="_blank">Presentation: Flexible Indexing with Postgres (Partial Indexes)</a>
</li>
<li>

<a href="https://momjian.us/main/writings/pgsql/indexing.pdf#page=24" target="_blank">Presentation: Flexible Indexing with Postgres (Index Type Summary)</a>
</li>
<li>

<a href="https://momjian.us/main/writings/pgsql/indexing.pdf#page=50" target="_blank">Presentation: Flexible Indexing with Postgres (When To Create Indexes)</a>
</li>
<li>

<a href="https://momjian.us/main/writings/pgsql/non-relational.pdf#page=35" target="_blank">Presentation: Non-Relational Postgres (JSONB)</a>
</li>
<li>

<a href="https://momjian.us/main/writings/pgsql/hw_selection.pdf#page=9" target="_blank">Presentation: Database Hardware Selection Guideline (Magnetic Disk I/O Stack)</a>
</li>
<li>

<a href="https://momjian.us/main/blogs/pgblog/2020.html#June_3_2020" target="_blank">Bruce&rsquo;s Blog: When Does a Commit Happen?</a>
</li>
<li>

<a href="https://momjian.us/main/writings/pgsql/mvcc.pdf#page=24" target="_blank">Presentation: MVCC Unmasked (Aborted IDs Remain)</a>
</li>
<li>

<a href="https://momjian.us/main/writings/pgsql/mvcc.pdf#page=10" target="_blank">Presentation: MVCC Unmasked (Snapshots Determine Row Visibility)</a>
</li>
<li>

<a href="https://momjian.us/main/writings/pgsql/mvcc.pdf#page=44" target="_blank">Presentation: MVCC Unmasked (Traditional Cleanup Requirements)</a>
</li>
<li>

<a href="https://momjian.us/main/writings/pgsql/locking.pdf#page=62" target="_blank">Presentation: Unlocking the Postgres Lock Manager (Two Concurrent Updates Show Locking)</a>
</li>
<li>

<a href="https://momjian.us/main/writings/pgsql/optimizer.pdf#page=17" target="_blank">Presentation: Explaining the Postgres Query Optimizer (Running ANALYZE)</a>
</li>
<li>

<a href="https://momjian.us/main/writings/pgsql/optimizer.pdf#page=30" target="_blank">Presentation: Explaining the Postgres Query Optimizer (Which Join Method?)</a>
</li>
<li>

<a href="https://momjian.us/main/blogs/pgblog/2012.html#July_9_2012" target="_blank">Bruce&rsquo;s Blog: The Externality of Index Creation</a>
</li>
<li>

<a href="https://momjian.us/main/blogs/pgblog/2018.html#December_12_2018" target="_blank">Bruce&rsquo;s Blog: Optimizer Hints</a>
</li>
<li>

<a href="https://threedevsandamaybe.com/postgres-performance-tuning-and-query-planner-with-bruce-momjian/" target="_blank">Three Devs and a Maybe - Postgres Performance Tuning and Query Planner</a>
</li>
<li>

<a href="https://threedevsandamaybe.com/managing-concurrency-in-postgres-with-bruce-momjian/" target="_blank">Three Devs and a Maybe - Managing Concurrency in Postgres</a>
</li>
</ul>
]]></content:encoded><pubDate>Wed, 01 Oct 2025 07:00:00 +0000</pubDate><author>Edd Mann</author><enclosure url="https://podsignal.eddmann.com/s/348109d7-a90b-4f00-bc6b-6223fcd79439/r?url=https%3A%2F%2Fpodcasts.compiledconversations.com%2F010-the-life-of-a-postgresql-table-part-1-with-bruce-momjian.mp3" length="82085383" type="audio/mpeg"/><itunes:author>Edd Mann</itunes:author><itunes:duration>5120</itunes:duration><itunes:image href="https://compiledconversations.com/album-art.jpg"/><itunes:summary>Bruce Momjian takes us on a deep dive into the lifecycle of a PostgreSQL table. We explore how tables are created, how data is inserted and stored, and how queries work - from physical storage and MVCC to constraints and query planning.</itunes:summary><itunes:subtitle>Exploring PostgreSQL internals through the life of a table: from creation through insertion to queries</itunes:subtitle><itunes:keywords>software development, technology, programming, engineering, developers</itunes:keywords><itunes:explicit>false</itunes:explicit></item><item><title>Domain Modeling Made Functional, Part 2 with Scott Wlaschin</title><itunes:episode>9</itunes:episode><podcast:episode>9</podcast:episode><itunes:title>Domain Modeling Made Functional, Part 2 with Scott Wlaschin</itunes:title><itunes:episodeType>full</itunes:episodeType><guid isPermaLink="false">https://compiledconversations.com/9/</guid><link>https://compiledconversations.com/9/</link><description>In this episode, Scott Wlaschin shows how functional programming concepts can enhance domain-driven design, sharing practical techniques for building more expressive, testable domain models using functional approaches.</description><content:encoded><![CDATA[<p>We continue our conversation with Scott Wlaschin, author of &ldquo;Domain Modeling Made Functional&rdquo; and creator of the popular F# for Fun and Profit blog, as we dive into functional programming concepts and how they naturally complement domain-driven design.</p>
<p>In this episode, we explore the practical aspects of functional programming - from understanding what makes a language functional to implementing robust error handling patterns and modeling domain concepts functionally.</p>
<p>Topics include:</p>
<ul>
<li>What functional programming really means</li>
<li>The difference between the FP paradigm and FP languages</li>
<li>Why functional languages make certain patterns natural (immutability, currying, partial application)</li>
<li>Railway-oriented programming and functional error handling patterns</li>
<li>How functional programming approaches dependency injection differently</li>
<li>Three types of errors: panics, domain exceptions, and infrastructure errors</li>
<li>How functional programming helps with domain modeling through composable data types</li>
<li>Pipeline-oriented programming and workflow modeling</li>
<li>Modeling DDD concepts functionally: entities, value objects, and aggregates</li>
<li>Why functional programming language usage is still less common than OO languages</li>
<li>AI&rsquo;s impact on programming and the importance of domain expertise</li>
<li>Learning strategies and the value of multi-paradigm programming</li>
</ul>
<p>Scott also shares insights on why he prefers using languages &ldquo;with the grain&rdquo; rather than forcing paradigms where they don&rsquo;t fit naturally.
He demonstrates practical examples of how functional programming makes domain modeling more explicit and testable, while discussing the trade-offs between different programming paradigms and when each is most appropriate.</p>
<p>We conclude with Scott&rsquo;s thoughts on AI in software development - why it&rsquo;s a tool for augmentation rather than replacement, the importance of understanding fundamentals, and how the subscription model might impact the industry.</p>
<p><em>This is Part 2 of a 2-part series. In 

<a href="https://compiledconversations.com/8/" target="_blank">Part 1</a>
, we explored the fundamentals of domain-driven design - including strategic vs. tactical DDD, (sub)domains, bounded contexts, ubiquitous language, and the critical importance of communication in software design.</em></p>
<p><strong>Show Links</strong></p>
<ul>
<li>

<a href="https://scottwlaschin.com/" target="_blank">Scott Wlaschin&rsquo;s Website</a>
</li>
<li>

<a href="https://x.com/ScottWlaschin" target="_blank">Scott Wlaschin on X/Twitter</a>
</li>
<li>

<a href="https://bsky.app/profile/scottwlaschin.bsky.social" target="_blank">Scott Wlaschin on Bluesky</a>
</li>
<li>

<a href="https://github.com/swlaschin" target="_blank">Scott Wlaschin on GitHub</a>
</li>
<li>

<a href="https://fsharpforfunandprofit.com/" target="_blank">F# for Fun and Profit</a>
</li>
<li>

<a href="https://pragprog.com/titles/swdddf/domain-modeling-made-functional/" target="_blank">Domain Modeling Made Functional</a>
</li>
<li>

<a href="https://fsharpforfunandprofit.com/rop/" target="_blank">Railway-Oriented Programming</a>
</li>
<li>

<a href="https://www.enterpriseintegrationpatterns.com/ramblings/18_starbucks.html" target="_blank">Starbucks Does Not Use Two-Phase Commit</a>
</li>
<li>

<a href="https://fsharpforfunandprofit.com/posts/types-intro/" target="_blank">Understanding F# types</a>
</li>
<li>

<a href="https://fsharpforfunandprofit.com/posts/thinking-functionally-intro/" target="_blank">Thinking Functionally</a>
</li>
<li>

<a href="https://www.commitstrip.com/en/2016/08/25/a-very-comprehensive-and-precise-spec/" target="_blank">Commit Strip - A very comprehensive and precise spec</a>
</li>
<li>

<a href="https://www.youtube.com/watch?v=P1vES9AgfC4" target="_blank">Moving IO to the edges of your app: Functional Core, Imperative Shell</a>
</li>
<li>

<a href="https://en.wikipedia.org/wiki/Path_dependence" target="_blank">Path dependence</a>
</li>
</ul>
]]></content:encoded><pubDate>Wed, 24 Sep 2025 09:00:00 +0000</pubDate><author>Edd Mann</author><enclosure url="https://podsignal.eddmann.com/s/348109d7-a90b-4f00-bc6b-6223fcd79439/r?url=https%3A%2F%2Fpodcasts.compiledconversations.com%2F009-domain-modeling-made-functional-part-2-with-scott-wlaschin.mp3" length="66449076" type="audio/mpeg"/><itunes:author>Edd Mann</itunes:author><itunes:duration>4143</itunes:duration><itunes:image href="https://compiledconversations.com/album-art.jpg"/><itunes:summary>In this episode, Scott Wlaschin shows how functional programming concepts can enhance domain-driven design, sharing practical techniques for building more expressive, testable domain models using functional approaches.</itunes:summary><itunes:subtitle>Exploring functional programming concepts, how they complement DDD, and practical techniques for modeling domains functionally.</itunes:subtitle><itunes:keywords>software development, technology, programming, engineering, developers</itunes:keywords><itunes:explicit>false</itunes:explicit></item><item><title>Domain Modeling Made Functional, Part 1 with Scott Wlaschin</title><itunes:episode>8</itunes:episode><podcast:episode>8</podcast:episode><itunes:title>Domain Modeling Made Functional, Part 1 with Scott Wlaschin</itunes:title><itunes:episodeType>full</itunes:episodeType><guid isPermaLink="false">https://compiledconversations.com/8/</guid><link>https://compiledconversations.com/8/</link><description>Scott Wlaschin, author of &amp;#34;Domain Modeling Made Functional&amp;#34; and creator of F# for Fun and Profit, joins us to discuss the powerful pairing of DDD and functional programming. In Part 1 we focus on DDD, covering strategic vs. tactical DDD, (sub)domains, bounded contexts, and the critical importance of listening and communication in software design.</description><content:encoded><![CDATA[<p>We&rsquo;re joined by Scott Wlaschin, author of &ldquo;Domain Modeling Made Functional&rdquo; and creator of the popular F# for Fun and Profit blog, to explore the powerful pairing of domain-driven design (DDD) and functional programming.
In Part 1 we explore the fundamentals of DDD - not as a rigid methodology, but as a communication-first approach to building software that actually solves real problems.</p>
<p>Scott shares his journey from Smalltalk developer to functional programming advocate, and how he discovered that DDD and functional programming are natural companions.
We dive deep into why most software projects fail not because of technical issues, but because developers don&rsquo;t listen to what users actually want.</p>
<p>Topics include:</p>
<ul>
<li>Strategic vs. tactical DDD - and why most people focus on the wrong part</li>
<li>What domains and subdomains really are (hint: they already exist in your business)</li>
<li>Core, supporting, and generic subdomains - and where to focus your effort</li>
<li>Bounded contexts and why boundaries matter for both code and project management</li>
<li>Ubiquitous language - the &rsquo;everywhere&rsquo; language or common language</li>
<li>The &ldquo;garbage in, garbage out&rdquo; principle and why good inputs matter more than perfect code</li>
<li>Shared mental models</li>
<li>Event storming and domain storytelling as discovery techniques</li>
<li>Fighting the impulse toward database-driven or class-driven design</li>
<li>Conway&rsquo;s Law and the reverse Conway manoeuvre for team organisation</li>
</ul>
<p>Scott also shares practical examples from his experience, including his work at a skincare company where he became a domain expert on cosmetic formulations and built one of his most successful products through constant communication with experts.</p>
<p>Whether you&rsquo;re new to DDD or have been burned by overly complex implementations, this episode offers a refreshing perspective on what domain-driven design really means - and why it&rsquo;s fundamentally about empathy, communication, and solving the right problems.</p>
<p><em>This is Part 1 of a 2-part series. In 

<a href="https://compiledconversations.com/9/" target="_blank">Part 2</a>
, we&rsquo;ll explore functional programming concepts, how they complement DDD, and practical techniques for modeling domains functionally.</em></p>
<p><strong>Show Links</strong></p>
<ul>
<li>

<a href="https://scottwlaschin.com/" target="_blank">Scott Wlaschin&rsquo;s Website</a>
</li>
<li>

<a href="https://x.com/ScottWlaschin" target="_blank">Scott Wlaschin on X/Twitter</a>
</li>
<li>

<a href="https://bsky.app/profile/scottwlaschin.bsky.social" target="_blank">Scott Wlaschin on Bluesky</a>
</li>
<li>

<a href="https://github.com/swlaschin" target="_blank">Scott Wlaschin on GitHub</a>
</li>
<li>

<a href="https://fsharpforfunandprofit.com/" target="_blank">F# for Fun and Profit</a>
</li>
<li>

<a href="https://pragprog.com/titles/swdddf/domain-modeling-made-functional/" target="_blank">Domain Modeling Made Functional</a>
</li>
<li>

<a href="https://threedevsandamaybe.com/domain-modeling-made-functional-with-scott-wlaschin/" target="_blank">Three Devs and a Maybe - Domain Modeling Made Functional</a>
</li>
<li>

<a href="https://www.eventstorming.com/" target="_blank">EventStorming</a>
</li>
<li>

<a href="https://domainstorytelling.org/" target="_blank">Domain Storytelling</a>
</li>
<li>

<a href="https://martinfowler.com/bliki/ConwaysLaw.html" target="_blank">Conway&rsquo;s Law</a>
</li>
<li>

<a href="https://dannorth.net/blog/accelerating-agile/" target="_blank">Dan North - Accelerating Agile</a>
</li>
<li>

<a href="https://en.wikipedia.org/wiki/Wikipedia:Chesterton%27s_fence" target="_blank">Chesterton&rsquo;s Fence</a>
</li>
</ul>
]]></content:encoded><pubDate>Wed, 17 Sep 2025 07:00:00 +0000</pubDate><author>Edd Mann</author><enclosure url="https://podsignal.eddmann.com/s/348109d7-a90b-4f00-bc6b-6223fcd79439/r?url=https%3A%2F%2Fpodcasts.compiledconversations.com%2F008-domain-modeling-made-functional-part-1-with-scott-wlaschin.mp3" length="78345708" type="audio/mpeg"/><itunes:author>Edd Mann</itunes:author><itunes:duration>4887</itunes:duration><itunes:image href="https://compiledconversations.com/album-art.jpg"/><itunes:summary>Scott Wlaschin, author of &amp;#34;Domain Modeling Made Functional&amp;#34; and creator of F# for Fun and Profit, joins us to discuss the powerful pairing of DDD and functional programming. In Part 1 we focus on DDD, covering strategic vs. tactical DDD, (sub)domains, bounded contexts, and the critical importance of listening and communication in software design.</itunes:summary><itunes:subtitle>Exploring domain-driven design fundamentals - domains, bounded contexts, ubiquitous language, and why communication is everything.</itunes:subtitle><itunes:keywords>software development, technology, programming, engineering, developers</itunes:keywords><itunes:explicit>false</itunes:explicit></item><item><title>Boosting Laravel Through AI with Ashley Hindle</title><itunes:episode>7</itunes:episode><podcast:episode>7</podcast:episode><itunes:title>Boosting Laravel Through AI with Ashley Hindle</itunes:title><itunes:episodeType>full</itunes:episodeType><guid isPermaLink="false">https://compiledconversations.com/7/</guid><link>https://compiledconversations.com/7/</link><description>Ashley Hindle, creator of Laravel Boost, joins us to demystify AI terminology, explore practical AI development workflows, and discuss how Laravel Boost accelerates AI-assisted development with structured guidelines, MCP tools, and version-specific documentation.</description><content:encoded><![CDATA[<p>Ashley Hindle, creator of Laravel Boost, joins us to explore the practical side of AI-assisted development - from understanding core concepts to implementing real-world solutions.</p>
<p>We start by breaking down the AI landscape, explaining how artificial intelligence, machine learning, generative AI, and large language models connect.
Ashley shares his journey from building AI-driven features since OpenAI&rsquo;s first API release to creating Laravel Boost, a comprehensive package that accelerates AI-assisted development in Laravel projects.</p>
<p>The conversation covers everything from prompting techniques and context management to the Model Context Protocol (MCP) and how it enables AI agents to interact with external tools and services.
We dive deep into Laravel Boost&rsquo;s architecture, including its 16 MCP tools for database querying, browser log monitoring, and version-specific documentation search.</p>
<p>Topics include:</p>
<ul>
<li>AI fundamentals: understanding AI, ML, GenAI, and LLMs</li>
<li>Prompting techniques: zero-shot, few-shot, chain of thought, and context engineering</li>
<li>Retrieval Augmented Generation (RAG) and vector embeddings</li>
<li>LLM agents: the &ldquo;fancy while loop&rdquo; that powers autonomous AI systems</li>
<li>Model Context Protocol (MCP): enabling AI agents to access external tools</li>
<li>Laravel Boost: structured guidelines, MCP tools, and version-specific documentation</li>
<li>Development workflows: refactoring, bug fixes, new features, and project scaffolding</li>
<li>Testing strategies in the AI era and why tests are more important than ever</li>
<li>Practical advice for developers starting their AI journey</li>
</ul>
<p>Ashley also shares insights on the evolution from simple autocomplete to full task completion, the importance of maintaining responsibility for production code, and how to balance AI assistance with human oversight.
We discuss the challenges of context management, the role of guidelines and rules in steering AI behavior, and the future of AI benchmarking in development.</p>
<p>Whether you&rsquo;re new to AI or looking to optimise your development workflow, this episode provides practical guidance on integrating AI tools effectively while maintaining code quality and developer responsibility.</p>
<p><strong>Show Links</strong></p>
<ul>
<li>

<a href="https://ashleyhindle.com/" target="_blank">Ashley Hindle&rsquo;s Website</a>
</li>
<li>

<a href="https://x.com/AshleyHindle" target="_blank">Ashley Hindle on X/Twitter</a>
</li>
<li>

<a href="https://bsky.app/profile/AshleyHindle.com" target="_blank">Ashley Hindle on Bluesky</a>
</li>
<li>

<a href="https://www.linkedin.com/in/ashleyhindle/" target="_blank">Ashley Hindle on LinkedIn</a>
</li>
<li>

<a href="https://boost.laravel.com/" target="_blank">Laravel Boost</a>
</li>
<li>

<a href="https://github.com/laravel/boost" target="_blank">Laravel Boost on GitHub</a>
</li>
<li>

<a href="https://modelcontextprotocol.io/" target="_blank">Model Context Protocol (MCP)</a>
</li>
<li>

<a href="https://ampcode.com/how-to-build-an-agent" target="_blank">How to Build an Agent</a>
</li>
<li>

<a href="https://opencode.ai/" target="_blank">opencode</a>
</li>
<li>

<a href="https://claude.ai/" target="_blank">Claude Desktop</a>
</li>
<li>

<a href="https://www.anthropic.com/claude-code" target="_blank">Claude Code</a>
</li>
<li>

<a href="https://cursor.sh/" target="_blank">Cursor IDE</a>
</li>
<li>

<a href="https://chatgpt.com/" target="_blank">ChatGPT</a>
</li>
<li>

<a href="https://openai.com/codex/" target="_blank">Codex</a>
</li>
<li>

<a href="https://platform.openai.com/" target="_blank">OpenAI API</a>
</li>
<li>

<a href="https://kiro.dev/" target="_blank">Kiro</a>
</li>
<li>

<a href="https://www.youtube.com/@anthropic-ai" target="_blank">Anthropic&rsquo;s YouTube Channel</a>
</li>
<li>

<a href="https://www.youtube.com/@AndrejKarpathy" target="_blank">Andrej Karpathy&rsquo;s YouTube Channel</a>
</li>
<li>

<a href="https://www.youtube.com/watch?v=iF9iV4xponk" target="_blank">The future of agentic coding with Claude Code</a>
</li>
<li>

<a href="https://www.youtube.com/watch?v=fGKNUvivvnc" target="_blank">Interpretability: Understanding how AI models think</a>
</li>
<li>

<a href="https://conductor.build/" target="_blank">Conductor</a>
</li>
<li>

<a href="https://x.com/marcelpociot/status/1955004968756281620" target="_blank">Trello board for my local projects</a>
</li>
<li>

<a href="https://itrevolution.com/product/vibe-coding-book/" target="_blank">Vibe Coding Book (Gene Kim &amp; Steve Yegg)</a>
</li>
<li>

<a href="https://openai.com/research/whisper" target="_blank">Whisper (Speech Recognition)</a>
</li>
<li>

<a href="https://tiktokenizer.vercel.app/" target="_blank">Tiktokenizer</a>
</li>
</ul>
]]></content:encoded><pubDate>Thu, 11 Sep 2025 09:00:00 +0000</pubDate><author>Edd Mann</author><enclosure url="https://podsignal.eddmann.com/s/348109d7-a90b-4f00-bc6b-6223fcd79439/r?url=https%3A%2F%2Fpodcasts.compiledconversations.com%2F007-boosting-laravel-through-ai-with-ashley-hindle.mp3" length="105417146" type="audio/mpeg"/><itunes:author>Edd Mann</itunes:author><itunes:duration>6579</itunes:duration><itunes:image href="https://compiledconversations.com/album-art.jpg"/><itunes:summary>Ashley Hindle, creator of Laravel Boost, joins us to demystify AI terminology, explore practical AI development workflows, and discuss how Laravel Boost accelerates AI-assisted development with structured guidelines, MCP tools, and version-specific documentation.</itunes:summary><itunes:subtitle>Exploring AI fundamentals, Laravel Boost, and practical AI-assisted development strategies for modern developers.</itunes:subtitle><itunes:keywords>software development, technology, programming, engineering, developers</itunes:keywords><itunes:explicit>false</itunes:explicit></item><item><title>All Aboard the PostgreSQL Train with Bruce Momjian</title><itunes:episode>6</itunes:episode><podcast:episode>6</podcast:episode><itunes:title>All Aboard the PostgreSQL Train with Bruce Momjian</itunes:title><itunes:episodeType>full</itunes:episodeType><guid isPermaLink="false">https://compiledconversations.com/6/</guid><link>https://compiledconversations.com/6/</link><description>Bruce Momjian traces Postgres&amp;#39;s 39-year journey from Berkeley to today, why extensibility (PostGIS, JSON, pgvector) became its superpower, and how the community sustains momentum. We cover TDE trade-offs in core, scaling and storage realities, and decoupled storage/compute in the cloud (Aurora, Neon) - plus what it means to stay &amp;#39;on the train&amp;#39;.</description><content:encoded><![CDATA[<p>Bruce Momjian joins us to explore why PostgreSQL continues to outpace proprietary databases - not just in features, but also in its development model and architecture.</p>
<p>We trace Postgres&rsquo;s 39-year lineage - from its Berkeley origins and Michael Stonebraker&rsquo;s vision for extensibility, through early debates about removing that extensibility, to the decades in which that design proved pivotal.
That architecture has paid off repeatedly, enabling JSON/JSONB, full-text search, PostGIS, and pgvector to land at the right moments without upheaval.
Bruce explains why transparent data encryption (TDE) hasn&rsquo;t landed in core, when sharding actually helps versus scaling up, and how storage choices (latency, power-loss protection) shape performance; we also look at async I/O in Postgres 18, extension-friendly interfaces like table access methods, and what it means to stay &lsquo;on the train&rsquo; within the community.</p>
<p>Topics include:</p>
<ul>
<li>39-year history: Berkeley origins, Stonebraker&rsquo;s vision for extensibility, and community longevity</li>
<li>The four motivations for open source contributors: puzzles, giving back, career growth, and need</li>
<li>Postgres&rsquo;s extensibility: from an early burden to a superpower (PostGIS, full-text search, JSON/JSONB, pgvector)</li>
<li>Why TDE is hard in core: technical value versus code complexity</li>
<li>Scaling and storage: latency, power-loss protection, and async I/O in Postgres 18</li>
<li>Aurora/Neon and decoupled storage/compute: niche wins versus staying on the community &rsquo;train&rsquo;</li>
</ul>
<p>Bruce also shares his approach to lifelong learning, why foundational skills compound, and how the Postgres community keeps engineers at the forefront - sustaining momentum across decades.</p>
<p><strong>Show Links</strong></p>
<p>Bruce generously shared links to all the presentations (with direct references to the discussed slides) and blog articles mentioned in the episode. You&rsquo;ll find them below:</p>
<ul>
<li>

<a href="https://momjian.us/" target="_blank">Bruce Momjian&rsquo;s Website</a>
</li>
<li>

<a href="https://postgis.net/" target="_blank">PostGIS</a>
</li>
<li>

<a href="https://github.com/pgvector/pgvector" target="_blank">pgvector</a>
</li>
<li>

<a href="https://www.postgresql.org/docs/current/datatype-json.html" target="_blank">PostgreSQL JSON Types</a>
</li>
<li>

<a href="https://www.citusdata.com/" target="_blank">Citus</a>
</li>
<li>

<a href="https://www.enterprisedb.com/" target="_blank">EDB (EnterpriseDB)</a>
</li>
<li>

<a href="https://aws.amazon.com/rds/aurora/" target="_blank">Amazon Aurora</a>
</li>
<li>

<a href="https://neon.com/" target="_blank">Neon Serverless Postgres</a>
</li>
<li>

<a href="https://www.postgresql.org/about/news/postgresql-18-beta-1-released-3070/" target="_blank">Async I/O in Postgres 18</a>
</li>
<li>

<a href="https://momjian.us/main/presentations/selecting.html" target="_blank">Bruce&rsquo;s Blog: Selecting Presentations</a>
</li>
<li>

<a href="https://momjian.us/main/writings/pgsql/three.pdf#page=17" target="_blank">Presentation: Three Key Attributes of Postgres (2006 Conference)</a>
</li>
<li>

<a href="https://momjian.us/main/writings/pgsql/pg_open_source.pdf#page=21" target="_blank">Presentation: The PostgreSQL Open Source Development Process (Our Developers)</a>
</li>
<li>

<a href="https://momjian.us/main/writings/pgsql/forever.pdf#page=10" target="_blank">Presentation: Will Postgres Live Forever? (Proprietary Development Flow)</a>
</li>
<li>

<a href="https://momjian.us/main/writings/pgsql/forever.pdf#page=15" target="_blank">Presentation: Will Postgres Live Forever? (Many Focuses)</a>
</li>
<li>

<a href="https://momjian.us/main/writings/pgsql/trajectory.pdf#page=12" target="_blank">Presentation: The Postgres Trajectory (PostgreSQL Evolution)</a>
</li>
<li>

<a href="https://momjian.us/main/writings/pgsql/trajectory.pdf#page=13" target="_blank">Presentation: The Postgres Trajectory (Today&rsquo;s Data Source)</a>
</li>
<li>

<a href="https://wiki.postgresql.org/wiki/Transparent_Data_Encryption" target="_blank">Postgres Wiki: Transparent Data Encryption</a>
</li>
<li>

<a href="https://momjian.us/main/blogs/pgblog/2025.html#February_22_2025" target="_blank">Bruce&rsquo;s Blog: Wish I Was Wrong About TDE</a>
</li>
<li>

<a href="https://momjian.us/main/writings/pgsql/yesql.pdf" target="_blank">Presentation: Battling the NoSQL Hype Cycle with Postgres</a>
</li>
<li>

<a href="https://momjian.us/main/writings/pgsql/sharding.pdf" target="_blank">Presentation: The Future of Postgres Sharding</a>
</li>
<li>

<a href="https://momjian.us/main/blogs/pgblog/2023.html#November_1_2023" target="_blank">Bruce&rsquo;s Blog: Sharding Status</a>
</li>
<li>

<a href="https://momjian.us/main/writings/pgsql/hw_selection.pdf" target="_blank">Presentation: Database Hardware Selection Guideline</a>
</li>
<li>

<a href="https://momjian.us/main/blogs/pgblog/2023.html#October_23_2023" target="_blank">Bruce&rsquo;s Blog: Power-Loss Protection</a>
</li>
<li>

<a href="https://momjian.us/main/writings/pgsql/challenges.pdf#page=6" target="_blank">Presentation: Future Postgres Challenges (Strong Diversified Assistance)</a>
</li>
</ul>
]]></content:encoded><pubDate>Wed, 03 Sep 2025 06:00:00 +0000</pubDate><author>Edd Mann</author><enclosure url="https://podsignal.eddmann.com/s/348109d7-a90b-4f00-bc6b-6223fcd79439/r?url=https%3A%2F%2Fpodcasts.compiledconversations.com%2F006-all-aboard-the-postgresql-train-with-bruce-momjian.mp3" length="81686016" type="audio/mpeg"/><itunes:author>Edd Mann</itunes:author><itunes:duration>5095</itunes:duration><itunes:image href="https://compiledconversations.com/album-art.jpg"/><itunes:summary>Bruce Momjian traces Postgres&amp;#39;s 39-year journey from Berkeley to today, why extensibility (PostGIS, JSON, pgvector) became its superpower, and how the community sustains momentum. We cover TDE trade-offs in core, scaling and storage realities, and decoupled storage/compute in the cloud (Aurora, Neon) - plus what it means to stay &amp;#39;on the train&amp;#39;.</itunes:summary><itunes:subtitle>39 years of Postgres: extensibility, community motivations, TDE, decoupled storage/compute in the cloud - and staying 'on the train'.</itunes:subtitle><itunes:keywords>software development, technology, programming, engineering, developers</itunes:keywords><itunes:explicit>false</itunes:explicit></item><item><title>Learning Domain-Driven Design, Part 2 with Vlad Khononov</title><itunes:episode>5</itunes:episode><podcast:episode>5</podcast:episode><itunes:title>Learning Domain-Driven Design, Part 2 with Vlad Khononov</itunes:title><itunes:episodeType>full</itunes:episodeType><guid isPermaLink="false">https://compiledconversations.com/5/</guid><link>https://compiledconversations.com/5/</link><description>In Part 2, Vlad Khononov applies DDD in practice - covering context-mapping patterns, EventStorming, fit-for-purpose architecture, testing, team ownership, pragmatic adoption, plus AI&amp;#39;s impact on modeling.</description><content:encoded><![CDATA[<p>In Part 2 of our deep dive into Domain-Driven Design (DDD), Vlad Khononov returns to explore how to apply DDD in the real world.</p>
<p>We move beyond the foundations and into implementation - from context mapping and EventStorming to fit-for-purpose architecture, testing, team design, ownership, pragmatic adoption, and AI&rsquo;s impact on modeling.</p>
<p>Topics include:</p>
<ul>
<li>CQRS in practice</li>
<li>Bounded contexts and subdomains: boundaries, granularity, and trade-offs</li>
<li>Context mapping patterns: conformist, ACL, open-host, partnership, separate ways</li>
<li>EventStorming vs Domain Storytelling</li>
<li>Architecture patterns: Layered, Hexagonal (Ports &amp; Adapters)</li>
<li>Implementation choices: Transaction Script, Active Record, Domain Model, Event-Sourced Domain Model</li>
<li>Tailoring testing strategies to fit your chosen implementation pattern</li>
<li>Teams and adoption: ownership, safe duplication, where to start, and AI&rsquo;s role</li>
</ul>
<p>We wrap with how to adopt DDD without overwhelming your team - focusing on shared understanding, clear ownership, and picking the simplest tools that fit your domain today while keeping tomorrow flexible.</p>
<p><em>This is Part 2 of a 2-part series. In 

<a href="https://compiledconversations.com/4/" target="_blank">Part 1</a>
, we covered the foundations: what DDD is for, subdomains and their types, ubiquitous language, bounded contexts, and making flexible architecture decisions.</em></p>
<p><strong>Show Links</strong></p>
<ul>
<li>

<a href="https://vladikk.com/" target="_blank">Vlad Khononov&rsquo;s Website</a>
</li>
<li>

<a href="https://x.com/vladikk" target="_blank">Vlad Khononov on X/Twitter</a>
</li>
<li>

<a href="https://bsky.app/profile/vladikk.bsky.social" target="_blank">Vlad Khononov on Bluesky</a>
</li>
<li>

<a href="https://www.linkedin.com/in/vladikk/" target="_blank">Vlad Khononov on LinkedIn</a>
</li>
<li>

<a href="https://www.oreilly.com/library/view/learning-domain-driven-design/9781098100124/" target="_blank">Vlad Khononov - Learning Domain-Driven Design</a>
</li>
<li>

<a href="https://coupling.dev/" target="_blank">Vlad Khononov - Balancing Coupling in Software Design</a>
</li>
<li>

<a href="https://www.eventstorming.com/" target="_blank">EventStorming</a>
</li>
<li>

<a href="https://domainstorytelling.org/" target="_blank">Domain Storytelling</a>
</li>
<li>

<a href="https://vladikk.com/2025/04/05/f1-ddd/" target="_blank">F1 + DDD: All Models are Wrong, Some are Dangerous</a>
</li>
<li>

<a href="https://alistair.cockburn.us/hexagonal-architecture/" target="_blank">Hexagonal Architecture / Ports and Adapters</a>
</li>
<li>

<a href="https://learn.microsoft.com/en-us/azure/architecture/patterns/cqrs" target="_blank">CQRS</a>
</li>
<li>

<a href="https://teamtopologies.com/" target="_blank">Team Topologies</a>
</li>
</ul>
]]></content:encoded><pubDate>Wed, 27 Aug 2025 17:00:00 +0000</pubDate><author>Edd Mann</author><enclosure url="https://podsignal.eddmann.com/s/348109d7-a90b-4f00-bc6b-6223fcd79439/r?url=https%3A%2F%2Fpodcasts.compiledconversations.com%2F005-learning-domain-driven-design-part-2-with-vlad-khononov.mp3" length="47352489" type="audio/mpeg"/><itunes:author>Edd Mann</itunes:author><itunes:duration>2950</itunes:duration><itunes:image href="https://compiledconversations.com/album-art.jpg"/><itunes:summary>In Part 2, Vlad Khononov applies DDD in practice - covering context-mapping patterns, EventStorming, fit-for-purpose architecture, testing, team ownership, pragmatic adoption, plus AI&amp;#39;s impact on modeling.</itunes:summary><itunes:subtitle>DDD in practice: context mapping, modeling workshops, architecture, testing, team design, pragmatic adoption - plus AI's impact on modeling.</itunes:subtitle><itunes:keywords>software development, technology, programming, engineering, developers</itunes:keywords><itunes:explicit>false</itunes:explicit></item><item><title>Learning Domain-Driven Design, Part 1 with Vlad Khononov</title><itunes:episode>4</itunes:episode><podcast:episode>4</podcast:episode><itunes:title>Learning Domain-Driven Design, Part 1 with Vlad Khononov</itunes:title><itunes:episodeType>full</itunes:episodeType><guid isPermaLink="false">https://compiledconversations.com/4/</guid><link>https://compiledconversations.com/4/</link><description>Author and trainer Vlad Khononov joins us for Part 1 of a deep dive into Domain-Driven Design (DDD). We cover what DDD is really for, why strategic DDD matters more than patterns, how to identify subdomains, the relationship between subdomains and bounded contexts, and how to make pragmatic architecture choices that align with your business.</description><content:encoded><![CDATA[<p>Vlad Khononov, author of Learning Domain-Driven Design, joins us to demystify DDD - focusing on the business first, and the code second.</p>
<p>We unpack what DDD is really trying to help you achieve, why strategic DDD matters most, and how concepts like subdomains, ubiquitous language, and bounded contexts can guide both architecture and team design.
Along the way, Vlad shares pragmatic advice for avoiding common misconceptions and making choices that keep you flexible as both your product and understanding evolve.</p>
<p>Topics include:</p>
<ul>
<li>What DDD is - and the real problem it solves for teams</li>
<li>Strategic vs. tactical DDD (why strategy comes first)</li>
<li>The developer&rsquo;s role in uncovering business intent and future change</li>
<li>Subdomains: core vs. supporting vs. generic - and why granularity is hard</li>
<li>Ubiquitous language: speaking the business&rsquo;s language (and making it stick)</li>
<li>Bounded contexts: protecting model integrity and when to widen the scope</li>
<li>One-to-one myths: why subdomains ≠ bounded contexts</li>
<li>Monoliths, modular monoliths, and microservices - choosing for flexibility</li>
<li>Ownership boundaries and deploying multiple artifacts atomically</li>
<li>Integrations and the anti-corruption layer (keeping external models out)</li>
<li>Using the Cynefin framework to reason about core/complicated/supporting work</li>
</ul>
<p>Vlad also shares hard-won lessons on communicating with domain experts, dealing with uncertainty in core subdomains, and why wider bounded contexts can make early-stage change safer and cheaper.</p>
<p>This episode is packed with practical guidance for anyone trying to align architecture with real business needs - not just patterns.</p>
<p><em>This is Part 1 of 2. In 

<a href="https://compiledconversations.com/5/" target="_blank">Part 2</a>
 we cover: context mapping, modeling workshops, fit-for-purpose architecture and testing, team boundaries, pragmatic adoption, and AI&rsquo;s impact on modeling.</em></p>
<p><strong>Show Links</strong></p>
<ul>
<li>

<a href="https://vladikk.com/" target="_blank">Vlad Khononov&rsquo;s Website</a>
</li>
<li>

<a href="https://x.com/vladikk" target="_blank">Vlad Khononov on X/Twitter</a>
</li>
<li>

<a href="https://bsky.app/profile/vladikk.bsky.social" target="_blank">Vlad Khononov on Bluesky</a>
</li>
<li>

<a href="https://www.linkedin.com/in/vladikk/" target="_blank">Vlad Khononov on LinkedIn</a>
</li>
<li>

<a href="https://www.oreilly.com/library/view/learning-domain-driven-design/9781098100124/" target="_blank">Vlad Khononov - Learning Domain-Driven Design</a>
</li>
<li>

<a href="https://coupling.dev/" target="_blank">Vlad Khononov - Balancing Coupling in Software Design</a>
</li>
<li>

<a href="https://www.oreilly.com/library/view/domain-driven-design-tackling/0321125215/" target="_blank">Eric Evans - Domain-Driven Design (Blue Book)</a>
</li>
<li>

<a href="https://www.oreilly.com/library/view/implementing-domain-driven-design/9780133039900/" target="_blank">Vaughn Vernon - Implementing Domain-Driven Design (Red Book)</a>
</li>
<li>

<a href="https://pragprog.com/titles/swdddf/domain-modeling-made-functional/" target="_blank">Scott Wlaschin - Domain Modeling Made Functional (White Book)</a>
</li>
<li>

<a href="https://www.eventstorming.com/" target="_blank">EventStorming</a>
</li>
<li>

<a href="https://en.wikipedia.org/wiki/Cynefin_framework" target="_blank">Cynefin framework</a>
</li>
<li>

<a href="https://vladikk.com/2025/05/26/with-ai-everything-is-complicated/" target="_blank">With AI, everything is so complicated&hellip; and this is great news!</a>
</li>
</ul>
]]></content:encoded><pubDate>Wed, 20 Aug 2025 07:00:00 +0000</pubDate><author>Edd Mann</author><enclosure url="https://podsignal.eddmann.com/s/348109d7-a90b-4f00-bc6b-6223fcd79439/r?url=https%3A%2F%2Fpodcasts.compiledconversations.com%2F004-learning-domain-driven-design-part-1-with-vlad-khononov.mp3" length="59659573" type="audio/mpeg"/><itunes:author>Edd Mann</itunes:author><itunes:duration>3719</itunes:duration><itunes:image href="https://compiledconversations.com/album-art.jpg"/><itunes:summary>Author and trainer Vlad Khononov joins us for Part 1 of a deep dive into Domain-Driven Design (DDD). We cover what DDD is really for, why strategic DDD matters more than patterns, how to identify subdomains, the relationship between subdomains and bounded contexts, and how to make pragmatic architecture choices that align with your business.</itunes:summary><itunes:subtitle>Understanding domains, subdomains, ubiquitous language, and bounded contexts - plus how to apply strategic vs. tactical DDD in the real world.</itunes:subtitle><itunes:keywords>software development, technology, programming, engineering, developers</itunes:keywords><itunes:explicit>false</itunes:explicit></item><item><title>Serverless PHP with Matthieu Napoli</title><itunes:episode>3</itunes:episode><podcast:episode>3</podcast:episode><itunes:title>Serverless PHP with Matthieu Napoli</itunes:title><itunes:episodeType>full</itunes:episodeType><guid isPermaLink="false">https://compiledconversations.com/3/</guid><link>https://compiledconversations.com/3/</link><description>Matthieu Napoli, creator of Bref, shares how PHP found its place in serverless through AWS Lambda - and what it takes to run modern applications without managing infrastructure. We cover Bref&amp;#39;s architecture, Laravel/Symfony support, Bref Cloud, and trade-offs with containers and Kubernetes.</description><content:encoded><![CDATA[<p>Matthieu Napoli, creator of Bref, joins us to explore the journey of bringing PHP to AWS Lambda - and making serverless a reality for everyday PHP developers.
From hacking runtimes to building a mature ecosystem, Matthieu unpacks what &ldquo;serverless&rdquo; really means in practice - beyond the hype.</p>
<p>We dig into Bref&rsquo;s architecture, its integration with Laravel and Symfony, why PHP fits so naturally into Lambda&rsquo;s execution model, and what it takes to run scalable, queue-driven applications without managing infrastructure.
Matthieu also shares the story behind Bref Cloud - a new deployment and monitoring platform built to simplify the AWS experience for teams of all sizes, while staying open, secure, and extensible.</p>
<p>Along the way, we dive into the trade-offs between serverless and Kubernetes, the importance of developer experience in platform design, and how Bref stays flexible - whether you&rsquo;re shipping a side project or scaling production workloads.</p>
<p>This conversation is packed with practical insight into the past, present, and future of serverless PHP - from cold starts and containers to deployment patterns, open source sustainability, and what it takes to keep PHP evolving in the cloud era.</p>
<p><strong>Show Links</strong></p>
<ul>
<li>

<a href="https://bref.sh/" target="_blank">Bref (Official Site)</a>
</li>
<li>

<a href="https://bref.sh/cloud" target="_blank">Bref Cloud</a>
</li>
<li>

<a href="https://mnapoli.fr/" target="_blank">Matthieu Napoli&rsquo;s Website</a>
</li>
<li>

<a href="https://x.com/matthieunapoli" target="_blank">Matthieu Napoli on X/Twitter</a>
</li>
<li>

<a href="https://bsky.app/profile/mnapoli.bsky.social" target="_blank">Matthieu Napoli on Bluesky</a>
</li>
<li>

<a href="https://github.com/brefphp/bref" target="_blank">Bref GitHub Repo</a>
</li>
<li>

<a href="https://www.youtube.com/watch?v=r8fgR0lTV-k" target="_blank">Serverless PHP: how does it really work?</a>
</li>
<li>

<a href="https://bref.sh/docs/cloud-security" target="_blank">Bref Cloud Security &amp; IAM Docs</a>
</li>
<li>

<a href="https://vapor.laravel.com/" target="_blank">Laravel Vapor (for comparison)</a>
</li>
<li>

<a href="https://aws.amazon.com/lambda/" target="_blank">AWS Lambda</a>
</li>
<li>

<a href="https://symfony.com/" target="_blank">Symfony</a>
</li>
<li>

<a href="https://laravel.com/" target="_blank">Laravel</a>
</li>
<li>

<a href="https://www.serverless.com/" target="_blank">Serverless Framework</a>
</li>
<li>

<a href="https://github.com/getlift/lift" target="_blank">Lift Plugin for Serverless Framework</a>
</li>
</ul>
]]></content:encoded><pubDate>Wed, 06 Aug 2025 14:00:00 +0000</pubDate><author>Edd Mann</author><enclosure url="https://podsignal.eddmann.com/s/348109d7-a90b-4f00-bc6b-6223fcd79439/r?url=https%3A%2F%2Fpodcasts.compiledconversations.com%2F003-serverless-php-with-matthieu-napoli.mp3" length="63957719" type="audio/mpeg"/><itunes:author>Edd Mann</itunes:author><itunes:duration>3987</itunes:duration><itunes:image href="https://compiledconversations.com/album-art.jpg"/><itunes:summary>Matthieu Napoli, creator of Bref, shares how PHP found its place in serverless through AWS Lambda - and what it takes to run modern applications without managing infrastructure. We cover Bref&amp;#39;s architecture, Laravel/Symfony support, Bref Cloud, and trade-offs with containers and Kubernetes.</itunes:summary><itunes:subtitle>Running PHP on AWS Lambda with Bref, simplifying deployments with Bref Cloud, and rethinking infrastructure for modern applications.</itunes:subtitle><itunes:keywords>software development, technology, programming, engineering, developers</itunes:keywords><itunes:explicit>false</itunes:explicit></item><item><title>Thinking in Events: Principles of Event-Driven Architecture, Part 2 with James Eastham</title><itunes:episode>2</itunes:episode><podcast:episode>2</podcast:episode><itunes:title>Thinking in Events: Principles of Event-Driven Architecture, Part 2 with James Eastham</itunes:title><itunes:episodeType>full</itunes:episodeType><guid isPermaLink="false">https://compiledconversations.com/2/</guid><link>https://compiledconversations.com/2/</link><description>In Part 2, James Eastham returns to tackle the practical side of event-driven architecture - covering failure recovery, orchestration vs. choreography, testing strategies, handling sensitive data, and how to migrate from a monolith using real-world patterns.</description><content:encoded><![CDATA[<p>In Part 2 of our deep dive into event-driven architecture (EDA), James Eastham returns to explore the practical realities of building and maintaining event-driven systems.
We go beyond principles and into implementation - from failure handling and orchestration vs. choreography, to observability, testing, security, and real-world migration strategies.</p>
<p>Topics include:</p>
<ul>
<li>Choreography vs. orchestration: coordination strategies and trade-offs</li>
<li>Failure recovery and the saga pattern</li>
<li>Handling sensitive data in events (PII, encryption, audit)</li>
<li>Observability and distributed tracing with OpenTelemetry</li>
<li>Event versioning, schema evolution, and contract testing</li>
<li>Simple async frontend integration: polling vs. WebSockets</li>
<li>Migrating from a monolith using internal events and change data capture (CDC)</li>
<li>Testing flow vs. structure in EDA systems</li>
<li>The realities of documentation and schema visibility</li>
<li>How to get started with EDA - and why you don’t need microservices to do it</li>
</ul>
<p>We wrap up with a candid look at how James learns best - by doing and by teaching - and why that matters in the fast-evolving world of distributed systems.</p>
<p><em>This is Part 2 of a 2-part series. In 

<a href="https://compiledconversations.com/1/" target="_blank">Part 1</a>
, we discussed the foundational principles of event-driven architecture - including types of coupling, asynchronous communication, event design, and the role of events in decoupling and scaling distributed systems.</em></p>
<p><strong>Show Links</strong></p>
<ul>
<li>

<a href="https://jameseastham.co.uk/" target="_blank">James Eastham&rsquo;s Website</a>
</li>
<li>

<a href="https://www.youtube.com/@serverlessjames" target="_blank">James Eastham on YouTube</a>
</li>
<li>

<a href="https://bsky.app/profile/jameseastham.co.uk" target="_blank">James Eastham on Bluesky</a>
</li>
<li>

<a href="https://cloudevents.io" target="_blank">CloudEvents Spec</a>
</li>
<li>

<a href="https://opentelemetry.io" target="_blank">OpenTelemetry</a>
</li>
<li>

<a href="https://www.youtube.com/watch?v=Jfwriqqkwi4" target="_blank">Laila Bougria - Orchestration vs. Choreography</a>
</li>
<li>

<a href="https://www.youtube.com/watch?v=DgW1kAazN80" target="_blank">Martin Thwaites &amp; Ian Cooper - Modern Observability and Event Driven Architectures</a>
</li>
<li>

<a href="https://github.com/jeastham1993/PlantBasedPizza" target="_blank">James&rsquo; Pizza Restaurant Example App</a>
</li>
<li>

<a href="https://github.com/jeastham1993/event-test-harness" target="_blank">James&rsquo; Event Test Harness</a>
</li>
</ul>
]]></content:encoded><pubDate>Wed, 30 Jul 2025 07:00:00 +0000</pubDate><author>Edd Mann</author><enclosure url="https://podsignal.eddmann.com/s/348109d7-a90b-4f00-bc6b-6223fcd79439/r?url=https%3A%2F%2Fpodcasts.compiledconversations.com%2F002-thinking-in-events-principles-of-event-driven-architecture-part-2-with-james-eastham.mp3" length="44311584" type="audio/mpeg"/><itunes:author>Edd Mann</itunes:author><itunes:duration>2760</itunes:duration><itunes:image href="https://compiledconversations.com/album-art.jpg"/><itunes:summary>In Part 2, James Eastham returns to tackle the practical side of event-driven architecture - covering failure recovery, orchestration vs. choreography, testing strategies, handling sensitive data, and how to migrate from a monolith using real-world patterns.</itunes:summary><itunes:subtitle>Handling failure, choreography vs. orchestration, testing, observability, and practical migration strategies in event-driven systems.</itunes:subtitle><itunes:keywords>software development, technology, programming, engineering, developers</itunes:keywords><itunes:explicit>false</itunes:explicit></item><item><title>Thinking in Events: Principles of Event-Driven Architecture, Part 1 with James Eastham</title><itunes:episode>1</itunes:episode><podcast:episode>1</podcast:episode><itunes:title>Thinking in Events: Principles of Event-Driven Architecture, Part 1 with James Eastham</itunes:title><itunes:episodeType>full</itunes:episodeType><guid isPermaLink="false">https://compiledconversations.com/1/</guid><link>https://compiledconversations.com/1/</link><description>Developer advocate James Eastham joins us for Part 1 of a deep dive into the core principles of event-driven architecture (EDA), including types of coupling, asynchronous communication, event design, and real-world trade-offs in building distributed systems.</description><content:encoded><![CDATA[<p>We&rsquo;re joined by James Eastham, developer advocate at Datadog, to break down the fundamentals of event-driven architecture (EDA) - not just as a technical pattern, but as a communication-first mindset for building distributed systems.</p>
<p>We explore how communication lies at the heart of software design, why coupling and cohesion still matter in modern architectures, and what makes an event more than just a message. The discussion covers everything from monolith vs. microservices trade-offs to the practical realities of building asynchronous systems at scale.</p>
<p>Topics include:</p>
<ul>
<li>The difference between runtime, temporal, semantic, and data format coupling</li>
<li>What separates event-driven from event-based systems</li>
<li>Why the language of the business should shape your events</li>
<li>How to design and structure thin vs. thick events</li>
<li>Managing idempotency, delivery guarantees, and event versioning</li>
<li>Using CloudEvents, AsyncAPI, and standards to avoid chaos</li>
<li>The pros and cons of buses, streams, and queues - and when to use which</li>
</ul>
<p>James also shares insights from his time at AWS and Datadog, including a healthy dose of pizza metaphors to explain abstract concepts like consistency models and event flow.</p>
<p>Whether you&rsquo;re starting fresh or untangling an existing architecture, this episode offers clarity on how to think - and build - in events.</p>
<p><em>This is Part 1 of a 2-part series. In 

<a href="https://compiledconversations.com/2/" target="_blank">Part 2</a>
, we&rsquo;ll dive deeper into choreography vs. orchestration, failure handling, testing, observability, and real-world delivery patterns.</em></p>
<p><strong>Show Links</strong></p>
<ul>
<li>

<a href="https://jameseastham.co.uk/" target="_blank">James Eastham&rsquo;s Website</a>
</li>
<li>

<a href="https://www.youtube.com/@serverlessjames" target="_blank">James Eastham on YouTube</a>
</li>
<li>

<a href="https://bsky.app/profile/jameseastham.co.uk" target="_blank">James Eastham on Bluesky</a>
</li>
<li>

<a href="https://cloudevents.io" target="_blank">CloudEvents Spec</a>
</li>
<li>

<a href="https://www.asyncapi.com" target="_blank">AsyncAPI Specification</a>
</li>
<li>

<a href="https://www.eventcatalog.dev" target="_blank">Event Catalog by Dave Boyne</a>
</li>
<li>

<a href="https://samnewman.io/books/building_microservices/" target="_blank">Sam Newman - Building Microservices</a>
</li>
<li>

<a href="https://www.enterpriseintegrationpatterns.com" target="_blank">Enterprise Integration Patterns by Gregor Hohpe</a>
</li>
<li>

<a href="https://github.com/jeastham1993/PlantBasedPizza" target="_blank">James&rsquo; Pizza Restaurant Example App</a>
</li>
</ul>
]]></content:encoded><pubDate>Wed, 23 Jul 2025 08:00:00 +0000</pubDate><author>Edd Mann</author><enclosure url="https://podsignal.eddmann.com/s/348109d7-a90b-4f00-bc6b-6223fcd79439/r?url=https%3A%2F%2Fpodcasts.compiledconversations.com%2F001-thinking-in-events-principles-of-event-driven-architecture-part-1-with-james-eastham.mp3" length="54016596" type="audio/mpeg"/><itunes:author>Edd Mann</itunes:author><itunes:duration>3366</itunes:duration><itunes:image href="https://compiledconversations.com/album-art.jpg"/><itunes:summary>Developer advocate James Eastham joins us for Part 1 of a deep dive into the core principles of event-driven architecture (EDA), including types of coupling, asynchronous communication, event design, and real-world trade-offs in building distributed systems.</itunes:summary><itunes:subtitle>Exploring the core principles of event-driven architecture - communication, coupling, and async design.</itunes:subtitle><itunes:keywords>software development, technology, programming, engineering, developers</itunes:keywords><itunes:explicit>false</itunes:explicit></item></channel></rss>