PageSourceSearch

https://www.dataengineeringpodcast.com/episodepage/holding-kafka-r…-product-friendly-streaming-with-typestream

html dataengineeringpodcast.com collected 2026-10-02 04:25:13 UTC 80,417 bytes, 850 lines download raw bytes

1
2
3<!doctype html>
4<html lang="en">
5<head>
6    <title>Holding Kafka Right: Product-Friendly Streaming with TypeStream</title>
7    <meta charset="utf-8" />
8    <meta http-equiv="Cache-Control" content="public, max-age=3600" />
9    <meta name="description" content="Summary&#xA0;&#xA;In this episode Jevin Maltais talks about the practical realities of building reliable, product-focused streaming systems with Kafka. Jevin shares&#x2026;">
10    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
11
12    <!-- Twitter -->
13    <meta name="twitter:site" content="@PodhomeFM">
14    <meta name="twitter:title" content="Holding Kafka Right: Product-Friendly Streaming with TypeStream">
15    <meta name="twitter:description" content="Summary&#xA0;&#xA;In this episode Jevin Maltais talks about the practical realities of building reliable, product-focused streaming systems with Kafka. Jevin shares&#x2026;">
16    <meta name="twitter:card" content="summary">
17    <meta name="twitter:image" content="https://assets.podhome.fm/f6ff0caa-931b-4c08-bfdd-08dc7f5cd336/638557928872209534cover.jpg">
18
19    <!-- Facebook -->
20    <meta property="og:url" content="https://www.dataengineeringpodcast.com/episodepage/holding-kafka-right-product-friendly-streaming-with-typestream">
21    <meta property="og:image" content="https://assets.podhome.fm/f6ff0caa-931b-4c08-bfdd-08dc7f5cd336/638557928872209534cover.jpg?2019591086">
22    <meta property="og:type" content="website">
23    <meta property="og:site_name" content="Data Engineering Podcast">
24    <meta property="og:description" content="Summary&#xA0;&#xA;In this episode Jevin Maltais talks about the practical realities of building reliable, product-focused streaming systems with Kafka. Jevin shares&#x2026;">
25    <meta property="og:title" content="Holding Kafka Right: Product-Friendly Streaming with TypeStream">
26
27    <meta content="Summary&#xA0;&#xA;In this episode Jevin Maltais talks about the practical realities of building reliable, product-focused streaming systems with Kafka. Jevin shares&#x2026;" name="description">
28
29
30        <!-- iTunes Banner -->
31        <meta content="app-id=1193040557" name="apple-itunes-app">
32
33    <link type="application/rss+xml" rel="alternate" title="Data Engineering Podcast" href="https://serve.podhome.fm/rss/1c0357c0-6aba-5766-a2d5-2090d8dab6bc">
34
35    <link href="https://cdn.podhome.fm/bulma.min.css" rel="stylesheet" defer async />
36    <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@mdi/[email protected]/css/materialdesignicons.min.css" />
37    <link href="https://cdn.podhome.fm/servesite3.min.css" rel="stylesheet" defer async />
38    
38<script src="https://cdn.podhome.fm/servesite3.min.js"></script>
38
39
40
41
42
43    <link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png">
44    <link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png">
45    <link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png">
46    <link rel="manifest" href="/site.webmanifest">
47
48        <meta name="theme-color" content="#f5f5f5" />
49
50
51</head>
52<body id="websiteBody">
53
54    <section class="container is-max-widescreen is-centered section" style="padding: 1rem;">
55
56        <div class="is-mobile is-tablet is-hidden-desktop">
57            
58
59<nav class="navbar navMobile " style="font-size: larger;" role="navigation" aria-label="main navigation">
60
61    <div class="navbar-brand">
62        <a role="button" class="navbar-burger" aria-label="menu" id="navbar-burger" aria-expanded="false" data-target="navbarBasicExample" onclick="ToggleActive()">
63            <span aria-hidden="true"></span>
64            <span aria-hidden="true"></span>
65            <span aria-hidden="true"></span>
66        </a>
67    </div>
68
69
70    <div id="navbarBasicExample" class="navbar-menu">
71        <div class="navbar-start" style="align-items: end!important;">
72            <a class="navbar-item " href="/">
73                <strong>Home</strong>
74            </a>
75                                <a class="navbar-item " href="/custompage/guest-info">
76                                    <strong>Be Our Guest</strong>
77                                </a>
78                                <a class="navbar-item " href="/custompage/sponsorship">
79                                    <strong>Advertise With Us</strong>
80                                </a>
81        </div>
82    </div>
83
84</nav>
85        </div>
86        <div class="columns ">
87            <div class="column is-narrow imageColumn">
88                <figure class="image showArtwork">
89                    <img src="https://assets.podhome.fm/f6ff0caa-931b-4c08-bfdd-08dc7f5cd336/638557928872209534cover.jpg" alt="Data Engineering Podcast" />
90                </figure>
91            </div>
92            <div class="column titleColumn">
93                <h1 class="title">Data Engineering Podcast</h1>
94                <div class="is-hidden-touch">
95                    
96
97<nav class="navbar navMobile " style="font-size: larger;" role="navigation" aria-label="main navigation">
98
99    <div class="navbar-brand">
100        <a role="button" class="navbar-burger" aria-label="menu" id="navbar-burger" aria-expanded="false" data-target="navbarBasicExample" onclick="ToggleActive()">
101            <span aria-hidden="true"></span>
102            <span aria-hidden="true"></span>
103            <span aria-hidden="true"></span>
104        </a>
105    </div>
106
107
108    <div id="navbarBasicExample" class="navbar-menu">
109        <div class="navbar-start" style="align-items: end!important;">
110            <a class="navbar-item " href="/">
111                <strong>Home</strong>
112            </a>
113                                <a class="navbar-item " href="/custompage/guest-info">
114                                    <strong>Be Our Guest</strong>
115                                </a>
116                                <a class="navbar-item " href="/custompage/sponsorship">
117                                    <strong>Advertise With Us</strong>
118                                </a>
119        </div>
120    </div>
121
122</nav>
123                </div>
124            </div>
125        </div>
126
127        <div>
128            <div class="columns">
129                <div class="box column">
130                    <br />
131
132                    <div class="mt-2">
133
134
135
136
137
138                            <a class="mr-2" style="vertical-align:top" href="https://linkedin.com/in/tmacey" target="_blank" title="Connect with me on LinkedIn">
139                                <svg xmlns="http://www.w3.org/2000/svg" style="width: 24px;height: 24px;" viewBox="0 0 24 24">
140                                    <path fill="#000000" d="M19 3A2 2 0 0 1 21 5V19A2 2 0 0 1 19 21H5A2 2 0 0 1 3 19V5A2 2 0 0 1 5 3H19M18.5 18.5V13.2A3.26 3.26 0 0 0 15.24 9.94C14.39 9.94 13.4 
14010.46 12.92 11.24V10.13H10.13V18.5H12.92V13.57C12.92 12.8 13.54 12.17 14.31 12.17A1.4 1.4 0 0 1 15.71 13.57V18.5H18.5M6.88 8.56A1.68 1.68 0 0 0 8.56 6.88C8.56 5.95 7.81 5.19 6.88 5.19A1.69 1.69 0 0 0 5.19 6.88C5.19 7.81 5.95 8.56 6.88 8.56M8.27 18.5V10.13H5.5V18.5H8.27Z" />
141                                </svg>
142                            </a>
143
144
145
146
147
148                    </div>
149                    <br />
150                    
151
152
153
154<p class="subtitle">This show goes behind the scenes for the tools, techniques, and difficulties associated with the discipline of data engineering. Databases, workflows, automation, and data manipulation are just some of the topics that you will find here.</p>
155
156        <a href="https://dataengineering.supercast.com/" target="_blank">
157Support the show!            <span class="icon is-medium">
158                <i class="mdi mdi-18px mdi-open-in-new"></i>
159            </span>
160        </a>
161        <br />
162
163<hr />
164    <div id="mainPlayer">
165        <div class="columns ">
166                <div class="column is-narrow">
167                    <div class="playButtonMain" id="play-buttonMain" title="Play" aria-label="Play" onclick='episodeAudioPlayPause(["8ecda746-bff7-4c7e-b384-3fc00c01f44a"], {"ProcessedAudioURL":"f6ff0caa-931b-4c08-bfdd-08dc7f5cd336/6391733588741892878ecda746-bff7-4c7e-b384-3fc00c01f44av1.mp3","ImageURL":null,"EpisodeId":"8ecda746-bff7-4c7e-b384-3fc00c01f44a","Title":"Holding Kafka Right: Product-Friendly Streaming with TypeStream","EpisodeNr":512,"SeasonNr":null,"Duration":"00:49:51"}, "Data Engineering Podcast", "https://assets.podhome.fm/f6ff0caa-931b-4c08-bfdd-08dc7f5cd336/638557928872209534cover.jpg", "https://op3.dev/e/dts.podtrac.com/redirect.mp3/")'>
168                           
169                        <svg xmlns="http://www.w3.org/2000/svg" id="playIconMain" class="podhomesvgEpisode" viewBox="0 0 24 24" style="">
170                            <path d="M10,16.5V7.5L16,12M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2Z" />
171                        </svg>
172                        <svg xmlns="http://www.w3.org/2000/svg" class="rotationEpisode podhomesvgEpisode" style="display:none" id="pauseIconMain" viewBox="0 0 24 24">
173                            <path d="M15,16H13V8H15M11,16H9V8H11M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2Z" />
174                        </svg>
175                    </div>
176                </div>
177                <div class="column" id="controlContainerMain">
178                    <p class="has-text-grey">
179                        18 June 2026
180                    </p>
181                    <p class="subtitle" id="episodeTitleMain">Holding Kafka Right: Product-Friendly Streaming with TypeStream - E512</p>
182
183
184                    <input type="range" class="podhomeRange" id="seek-sliderMain" max="100" value="0" style="margin-bottom: 7px;">
185                    <div class="flexRow">
186                        <div class="flexRow" style="width:100%;">
187                            <svg fill="#000000" id="rewindMain" class="controlButton" xmlns="http://www.w3.org/2000/svg"
188                                 viewBox="0 0 24 24">
189                                <path d="M12.5,3C17.15,3 21.08,6.03 22.47,10.22L20.1,11C19.05,7.81 16.04,5.5 12.5,5.5C10.54,5.5 8.77,6.22 7.38,7.38L10,10H3V3L5.6,5.6C7.45,4 9.85,3 12.5,3M10,12V22H8V14H6V12H10M18,14V20C18,21.11 17.11,22 16,22H14A2,2 0 0,1 12,20V14A2,2 0 0,1 14,12H16C17.11,12 18,12.9 18,14M14,14V20H16V14H14Z" />
190                                <title>Rewind 10 seconds</title>
191                            </svg>
192                            <div class="speedButton" id="change-speedMain"
193                                 alt="Change playback speed button" title="Change playback speed">
194                                1X
195                            </div>
196
197                            <svg fill="#000000" id="skipMain" class="controlButton" xmlns="http://www.w3.org/2000/svg"
198                                 viewBox="0 0 24 24">
199                                <path d="M11.5,3C6.85,3 2.92,6.03 1.53,10.22L3.9,11C4.95,7.81 7.96,5.5 11.5,5.5C13.46,5.5 15.23,6.22 16.62,7.38L14,10H21V3L18.4,5.6C16.55,4 14.15,3 11.5,3M19,14V20C19,21.11 18.11,22 17,22H15A2,2 0 0,1 13,20V14A2,2 0 0,1 15,12H17C18.11,12 19,12.9 19,14M15,14V20H17V14H15M11,20C11,21.11 10.1,22 9,22H5V20H9V18H7V16H9V14H5V12H9A2,2 0 0,1 11,14V15.5A1.5,1.5 0 0,1 9.5,17A1.5,1.5 0 0,1 11,18.5V20Z" />
200                                <title>Skip 30 seconds ahead</title>
201                            </svg>
202
203
204                            <a style="margin-left:10px;width:22px;height:22px;" title="Download episode file" id="downloadButton" href="https://op3.dev/e/dts.podtrac.com/redirect.mp3/https://serve.podhome.fm/episode/Podhomefromf6ff0caa-931b-4c08-bfdd-08dc7f5cd336/6391733588741892878ecda746-bff7-4c7e-b384-3fc00c01f44av1.mp3" target="_blank"
205                                   download>
206
207                                <svg style="cursor:pointer;opacity:.6" fill="#000000" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
208                                    <path d="M8 17V15H16V17H8M16 10L12 14L8 10H10.5V6H13.5V10H16M12 2C17.5 2 22 6.5 22 12C22 17.5 17.5 22 12 22C6.5 22 2 17.5 2 12C2 6.5 6.5 2 12 2M12 4C7.58 4 4 7.58 4 12C4 16.42 7.58 20 12 20C16.42 20 20 16.42 20 12C20 7.58 16.42 4 12 4Z" />
209                                </svg>
210                            </a>
211
212                        </div>
213
214                        <div class="time margin">
215                            <span id="current-timeMain">0:00</span>/<span id="durationMain">0:00</span>
216                        </div>
217
218                    </div>
219
220                </div>
221
222        </div>
223<div>
224    <p class="content">Share on social media:</p>
225
226    <div class="columns is-mobile">
227        <div class="column is-narrow">
228            <a href="https://twitter.com/intent/tweet?text=Holding Kafka Right: Product-Friendly Streaming with TypeStream Hosted on @Podhomefm&url=https://www.dataengineeringpodcast.com/typestream-kafka-as-code-for-product-teams-episode-512" target="_blank">
229                <svg xmlns="http://www.w3.org/2000/svg" width="34" height="34" viewBox="0 0 1200 1227" style="cursor:pointer; background-color: whitesmoke; color:black; border-radius: 50%;padding:2px">
230                    <path fill="currentColor" d="M714.163 519.284L1160.89 0H1055.03L667.137 450.887L357.328 0H0L468.492 681.821L0 1226.37H105.866L515.491 750.218L842.672 1226.37H1200L714.137 519.284H714.163ZM569.165 687.828L521.697 619.934L144.011 79.6944H306.615L611.412 515.685L658.88 583.579L1055.08 1150.3H892.476L569.165 687.854V687.828Z" />
231                </svg>
232            </a>
233        </div>
234        <div class="column is-narrow">
235            <a href="https://linkedin.com/shareArticle?url=https://www.dataengineeringpodcast.com/typestream-kafka-as-code-for-product-teams-episode-512" target="_blank">
236                <svg xmlns="http://www.w3.org/2000/svg" style="cursor:pointer;width: 34px;height: 34px; background-color: whitesmoke; color:black; border-radius: 50%;padding:2px" viewBox="0 0 24 24">
237                    <path fill="currentColor" d="M19 3A2 2 0 0 1 21 5V19A2 2 0 0 1 19 21H5A2 2 
2370 0 1 3 19V5A2 2 0 0 1 5 3H19M18.5 18.5V13.2A3.26 3.26 0 0 0 15.24 9.94C14.39 9.94 13.4 10.46 12.92 11.24V10.13H10.13V18.5H12.92V13.57C12.92 12.8 13.54 12.17 14.31 12.17A1.4 1.4 0 0 1 15.71 13.57V18.5H18.5M6.88 8.56A1.68 1.68 0 0 0 8.56 6.88C8.56 5.95 7.81 5.19 6.88 5.19A1.69 1.69 0 0 0 5.19 6.88C5.19 7.81 5.95 8.56 6.88 8.56M8.27 18.5V10.13H5.5V18.5H8.27Z" />
238                </svg>
239            </a>
240        </div>
241        <div class="column is-narrow">
242            <a href="https://www.instagram.com/" target="_blank">
243                <svg style="cursor:pointer;width: 34px;height: 34px;background-color: whitesmoke; color:black; border-radius: 50%;padding:2px" viewBox="0 0 24 24">
244                    <path fill="currentColor" d="M7.8,2H16.2C19.4,2 22,4.6 22,7.8V16.2A5.8,5.8 0 0,1 16.2,22H7.8C4.6,22 2,19.4 2,16.2V7.8A5.8,5.8 0 0,1 7.8,2M7.6,4A3.6,3.6 0 0,0 4,7.6V16.4C4,18.39 5.61,20 7.6,20H16.4A3.6,3.6 0 0,0 20,16.4V7.6C20,5.61 18.39,4 16.4,4H7.6M17.25,5.5A1.25,1.25 0 0,1 18.5,6.75A1.25,1.25 0 0,1 17.25,8A1.25,1.25 0 0,1 16,6.75A1.25,1.25 0 0,1 17.25,5.5M12,7A5,5 0 0,1 17,12A5,5 0 0,1 12,17A5,5 0 0,1 7,12A5,5 0 0,1 12,7M12,9A3,3 0 0,0 9,12A3,3 0 0,0 12,15A3,3 0 0,0 15,12A3,3 0 0,0 12,9Z"></path>
245                </svg>
246            </a>
247        </div>
248        <div class="column is-narrow">
249            <a href="https://www.facebook.com/sharer/sharer.php?u=https://www.dataengineeringpodcast.com/typestream-kafka-as-code-for-product-teams-episode-512?411179951" target="_blank">
250                <svg xmlns="http://www.w3.org/2000/svg" style="cursor:pointer;width: 34px;height: 34px;background-color: whitesmoke; color:black; border-radius: 50%;padding:2px" viewBox="0 0 24 24">
251                    <path fill="currentColor" d="M12 2.04C6.5 2.04 2 6.53 2 12.06C2 17.06 5.66 21.21 10.44 21.96V14.96H7.9V12.06H10.44V9.85C10.44 7.34 11.93 5.96 14.22 5.96C15.31 5.96 16.45 6.15 16.45 6.15V8.62H15.19C13.95 8.62 13.56 9.39 13.56 10.18V12.06H16.34L15.89 14.96H13.56V21.96A10 10 0 0 0 22 12.06C22 6.53 17.5 2.04 12 2.04Z" />
252                </svg>
253            </a>
254        </div>
255    </div>
256
257</div>
258
259
260        <hr />
261
262
263        <div class="tabs is-boxed ">
264            <ul>
265                <li class="is-active" onclick="selectTab('description')" id="descriptionTabPanel">
266                    <a>
267                        <span class="icon is-small "><i class="mdi mdi-text" aria-hidden="true"></i></span>
268                        <span>Description</span>
269                    </a>
270                </li>
271                    <li class="" onclick="selectTab('transcript')" id="transcriptTabPanel">
272                        <a>
273                            <span class="icon is-small "><i class="mdi mdi-text-box" aria-hidden="true"></i></span>
274                            <span>Transcript</span>
275                        </a>
276                    </li>
277
278                    <li class="" onclick="selectTab('chapter')" id="chapterTabPanel">
279                        <a>
280                            <span class="icon is-small "><i class="mdi mdi-view-list" aria-hidden="true"></i></span>
281                            <span>Chapters</span>
282                        </a>
283                    </li>
284            </ul>
285        </div>
286
287
288
289        <div id="descriptionTab" style="">
290
291            Summary&nbsp;<br />In this episode Jevin Maltais talks about the practical realities of building reliable, product-focused streaming systems with Kafka. Jevin shares lessons from roles at Zapier, Humi, and Clio, where real-time synchronization, customer data unification, and document sync at scale highlighted both the strengths and common misuses of Kafka. He digs into using events as the source of truth, materialized views with KTables, and how schema registries and type safety prevent downstream breakage. Jevin explains why teams often reach for heavyweight Kafka clusters without leveraging Streams, Connect, or interactive queries—and how his project, TypeStream, aims to make those capabilities accessible via config-as-code while keeping a thin abstraction and clear escape hatches. He also explore trade-offs across Kafka-compatible alternatives, CDC with Debezium in the real world, and where abstractions should stop so teams can scale responsibility as complexity grows.&nbsp;<br /><br /><br />Announcements&nbsp;<br /><ul><li>Hello and welcome to the Data Engineering Podcast, the show about modern data management</li><li>This episode is sponsored by DataDriven.io, the free data engineering interview prep platform built by data engineers for data engineers. Ever walked into a data engineering interview and gotten a question that has nothing to do with real data engineering work? Interviewing is its own skill, separate from the job. Watch your code execute live, inspect Spark internals, and whiteboard your data models and pipelines and defend your decisions. Unlike SQL-only or Python-only practice, DataDriven.io covers the full interview loop: star schemas, slowly changing dimensions, grain and fact table design, idempotency, watermarks, dead letter queues, change data capture, and backpressure. Every question comes from real Data Engineer interview loops at Google, Amazon, Meta, Stripe, Databricks, Netflix, and Airbnb. Go to <a href="https://datadriven.io/?utm_source=dataengineeringpodcast&amp;utm_medium=podcast&amp;utm_campaign=macey_sponsorship&amp;utm_content=ep_512" target="_blank">dataengineeringpodcast.com/datadriven</a> today to start practicing.</li><li>Your host is Tobias Macey and today I'm interviewing Jevin Maltais about the challenges of building a reliable streaming&nbsp;</li></ul><br />Interview<br />&nbsp;<br /><ul><li>Introduction</li><li>How did you get involved in the area of data management?</li><li>
291Can you describe what Typestream is and the story behind it?</li><li>What are the common challenges that teams encounter when trying to build on top of Kafka?</li><li>How do those challenges/misconfigurations impact the team's ability to deliver on product goals?</li><li>What are the fundamental design aspects of Kafka that contribute to the difficulties that teams encounter when using it as an element of their architecture?</li><li>There have been numerous projects taking aim at Kafka, with varying approaches and degrees of effectiveness (e.g. RedPanda, AutoMQ, Pulsar, etc.). What are the tradeoffs that each of those approaches requires?</li><li>What makes the original Kafka project so resilient in the face of all of that competition?</li><li>Can you describe the architecture of Typestream and how each of the core elements contribute to a better user experience?</li><li>For teams who want to take advantage of streaming capabilities, but don't want to invest in becoming Kafka experts, what does the Typestream workflow look like?</li><li>If they don't want to manage the operational overhead of a Kafka cluster, how tightly coupled is Typestream to the original Kafka? (can someone use RedPanda or AutoMQ instead?)</li><li>
291What are the most interesting, innovative, or unexpected ways that you have seen Typestream used?</li><li>What are the most interesting, unexpected, or challenging lessons that you have learned while working on Typestream?</li><li>When is Typestream the wrong choice?</li><li>What do you have planned for the future of Typestream?</li></ul><br />Contact Info<br />&nbsp;<br /><ul><li><a href="https://www.jevy.org/" target="_blank">Website</a></li></ul><br />Parting Question<br />&nbsp;<br /><ul><li>From your perspective, what is the biggest gap in the tooling or technology for data management today?</li></ul><br />Closing Announcements<br />&nbsp;<br /><ul><li>Thank you for listening! Don't forget to check out our other shows. <a href="https://www.pythonpodcast.com" target="_blank">Podcast.__init__</a> covers the Python language, its community, and the innovative ways it is being used. The <a href="https://www.aiengineeringpodcast.com" target="_blank">AI Engineering Podcast</a> is your guide to the fast-moving world of building AI systems.</li><li>Visit the <a href="https://www.dataengineeringpodcast.com" target="_blank">site</a> to subscribe to the show, sign up for the mailing list, and read the show notes.</li><li>If you've learned something or tried out a project from the show then tell us about it! Email [email protected] with your story.</li></ul><br />Links<br />&nbsp;<br /><ul><li><a href="https://typestream.io/" target="_blank">Typestream</a></li><li><a href="https://zapier.com/" target="_blank">Zapier</a></li><li><a href="http://airflow.apache.org/" target="_blank">Airflow</a></li><li><a href="https://kafka.apache.org/" target="_blank">Kafka</a></li><li><a href="https://developer.confluent.io/courses/kafka-streams/ktable/" target="_blank">KTables</a></li><li><a href="https://github.com/confluentinc/ksql" target="_blank">KSQL</a></li><li><a href="https://www.redpanda.com/" target="_blank">RedPanda</a></li><li><a href="https://pulsar.apache.org/" target="_blank">Pulsar</a></li><li><a href="https://www.automq.com/" target="_blank">AutoMQ</a></li><li><a href="https://github.com/confluentinc/schema-registry" target="_blank">Kafka Schema Registry</a></li><li><a href="https://debezium.io/" target="_blank">Debezium</a></li><li><a href="https://en.wikipedia.org/wiki/Change_data_capture" target="_blank">Change Data Capture</a></li><li><a href="https://kafka.apache.org/43/kafka-connect/overview/" target="_blank">Kafka Connect</a></li><li><a href="https://developer.hashicorp.com/terraform" target="_blank">Terraform</a></li><li><a href="https://developer.confluent.io/courses/architecture/compaction/" target="_blank">Kafka Compacted Topic</a></li></ul><br />The intro and outro music is from <a href="http://freemusicarchive.org/music/The_Freak_Fandango_Orchestra/Love_death_and_a_drunken_monkey/04_-_The_Hug" target="_blank">The Hug</a> by <a href="http://freemusicarchive.org/music/The_Freak_Fandango_Orchestra/" target="_blank">The Freak Fandango Orchestra</a> / <a href="http://creativecommons.org/licenses/by-sa/3.0/" target="_blank">CC BY-SA</a>
292
293        </div>
294            <div id="transcriptTab" style="display:none">
295                <div id="transcriptLoading" class="has-text-centered p-4">
296                    <span class="icon is-large">
297                        <i class="mdi mdi-36px mdi-loading mdi-spin"></i>
298                    </span>
299                    <p>Loading transcript...</p>
300                </div>
301                <div id="transcriptContent"></div>
302            </div>
303
304            <div id="chapterTab" style="display:none">
305                    <div class="columns is-mobile" style="align-items:center">
306                        <div class="column">
307                                <p data-t="11" data-chapter="true">Welcome and episode setup</p>
308                        </div>
309                        <div class="column is-narrow">
310                            <a onclick="moveAudio('11')"> 00:00:11</a>
311                        </div>
312                    </div>
313                    <div class="columns is-mobile" style="align-items:center">
314                        <div class="column">
315                                <p data-t="69" data-chapter="true">Guest intro and background across Zapier, Humi, and Clio</p>
316                        </div>
317                        <div class="column is-narrow">
318                            <a onclick="moveAudio('69')"> 00:01:09</a>
319                        </div>
320                    </div>
321                    <div class="columns is-mobile" style="align-items:center">
322                        <div class="column">
323                                <p data-t="264" data-chapter="true">From product needs to data pipelines and streaming</p>
324                        </div>
325                        <div class="column is-narrow">
326                            <a onclick="moveAudio('264')"> 00:04:24</a>
327                        </div>
328                    </div>
329                    <div class="columns is-mobile" style="align-items:center">
330                        <div class="column">
331                                <p data-t="292" data-chapter="true">Why TypeStream: making Kafkas power approachable</p>
332                        </div>
333                        <div class="column is-narrow">
334                            <a onclick="moveAudio('292')"> 00:04:52</a>
335                        </div>
336                    </div>
337                    <div class="columns is-mobile" style="align-items:center">
338                        <div class="column">
339                                <p data-t="439" data-chapter="true">Real examples: user sync and document sync at Clio</p>
340                        </div>
341                        <div class="column is-narrow">
342                            <a onclick="moveAudio('439')"> 00:07:19</a>
343                        </div>
344                    </div>
345                    <div class="columns is-mobile" style="align-items:center">
346                        <div class="column">
347                                <p data-t="614" data-chapter="true">Operational tradeoffs: Kafka vs managed and compatibles</p>
348                        </div>
349                        <div class="column is-narrow">
350                            <a onclick="moveAudio('614')"> 00:10:14</a>
351                        </div>
352                    </div>
353                    <div class="columns is-mobile" style="align-items:center">
354                        <div class="column">
355                                <p data-t="807" data-chapter="true">Adoption hurdles: governance and the need for a schema registry</p>
356                        </div>
357                        <div class="column is-narrow">
358                            <a onclick="moveAudio('807')"> 00:13:27</a>
359                        </div>
360                    </div>
361                    <div class="columns is-mobile" style="align-items:center">
362                        <div class="column">
363                                <p data-t="979" data-chapter="true">Designing safer abstractions and partitions 101</p>
364                        </div>
365                        <div class="column is-narrow">
366                            <a onclick="moveAudio('979')"> 00:16:19</a>
367                        </div>
368                    </div>
369                    <div class="columns is-mobile" style="align-items:center">
370                        <div class="column">
371                                <p data-t="1132" data-chapter="true">TypeStream approach: config as code, Streams, KTables, gRPC</p>
372                        </div>
373                        <div class="column is-narrow">
374                            <a onclick="moveAudio('1132')"> 00:18:52</a>
375                        </div>
376                    </div>
377                    <div class="columns is-mobile" style="align-items:center">
378                        <div class="column">
379                                <p data-t="1238" data-chapter="true">Thin abstractions and observability escape hatches</p>
380                        </div>
381                        <div class="column is-narrow">
382                            <a onclick="moveAudio('1238')"> 00:20:38</a>
383                        </div>
384                    </div>
385                    <div class="columns is-mobile" style="align-items:center">
386                        <div class="column">
387                                <p data-t="1342" data-chapter="true">Common pipelines: CDC to transform to search/analytics</p>
388                        </div>
389                        <div class="column is-narrow">
390                            <a onclick="moveAudio('1342')"> 00:22:22</a>
391                        </div>
392                    </div>
393                    <div class="columns is-mobile" style="align-items:center">
394                        <div class="column">
395                                <p data-t="1542" data-chapter="true">CDC realities: Debezium edge cases and limits</p>
396                        </div>
397                        <div class="column is-narrow">
398                            <a onclick="moveAudio('1542')"> 00:25:42</a>
399                        </div>
400                    </div>
401                    <div class="columns is-mobile" style="align-items:center">
402                        <div class="column">
403                                <p data-t="1680" data-chapter="true">Expectation setting: easy on ramp, deeper complexity later</p>
404                        </div>
405                        <div class="column is-narrow">
406                            <a onclick="moveAudio('1680')"> 00:28:00</a>
407                        </div>
408                    </div>
409                    <div class="columns is-mobile" style="align-items:center">
410                        <div class="column">
411                                <p data-t="1904" data-chapter="true">Event modeling, schema evolution, and compatibility</p>
412                        </div>
413                        <div class="column is-narrow">
414                            <a onclick="moveAudio('1904')"> 00:31:44</a>
415                        </div>
416                    </div>
417                    <div class="columns is-mobile" style="align-items:center">
418                        <div class="column">
419                                <p data-t="2097" data-chapter="true">Who uses TypeStream and how to deploy it</p>
420                        </div>
421                        <div class="column is-narrow">
422                            <a onclick="moveAudio('2097')"> 00:34:57</a>
423                        </div>
424                    </div>
425                    <div class="columns is-mobile" style="align-items:center">
426                        <div class="column">
427                                <p data-t="2228" data-chapter="true">Unexpected uses: trying new data stores quickly</p>
428                        </div>
429                        <div class="column is-narrow">
430                            <a onclick="moveAudio('2228')"> 00:37:08</a>
431                        </div>
432                    </div>
433                    <div class="columns is-mobile" style="align-items:center">
434                        <div class="column">
435                                <p data-t="2299" data-chapter="true">Lessons learned: deployment pain and underused features</p>
436                        </div>
437                        <div class="column is-narrow">
438                            <a onclick="moveAudio('2299')"> 00:38:19</a>
439                        </div>
440                    </div>
441                    <div class="columns is-mobile" style="align-items:center">
442                        <div class="column">
443                                <p data-t="2431" data-chapter="true">Platform risk and portability across Kafka compatibles</p>
444                        </div>
445                        <div class="column is-narrow">
446                            <a onclick="moveAudio('2431')"> 00:40:31</a>
447                        </div>
448                    </div>
449                    <div class="columns is-mobile" style="align-items:center">
450                        <div class="column">
451                                <p data-t="2596" data-chapter="true">When not to use TypeStream and custom Streams needs</p>
452                        </div>
453                        <div class="column is-narrow">
454                            <a onclick="moveAudio('2596')"> 00:43:16</a>
455                        </div>
456                    </div>
457                    <div class="columns is-mobile" style="align-items:center">
458                        <div class="column">
459                                <p data-t="2683" data-chapter="true">Roadmap: portability, users, and licensing</p>
460                        </div>
461                        <div class="column is-narrow">
462                            <a onclick="moveAudio('2683')"> 00:44:43</a>
463                        </div>
464                    </div>
465                    <div class="columns is-mobile" style="align-items:center">
466                        <div class="column">
467                                <p data-t="2784" data-chapter="true">Closing thoughts and biggest gaps in data and AI</p>
468                        </div>
469                        <div class="column is-narrow">
470                            <a onclick="moveAudio('2784')"> 00:46:24</a>
471                        </div>
472                    </div>
473                    <div class="columns is-mobile" style="align-items:center">
474                        <div class="column">
475                                <p data-t="2920" data-chapter="true">Wrap up and credits</p>
476                        </div>
477                        <div class="column is-narrow">
478                            <a onclick="moveAudio('2920')"> 00:48:40</a>
479                        </div>
480                    </div>
481            </div>
482
483    </div>
484    <br />
485<div>
486    <p class="content">Share on social media:</p>
487
488    <div class="columns is-mobile">
489        <div class="column is-narrow">
490            <a href="https://twitter.com/intent/tweet?text=Holding Kafka Right: Product-Friendly Streaming with TypeStream Hosted on @Podhomefm&url=https://www.dataengineeringpodcast.com/typestream-kafka-as-code-for-product-teams-episode-512" target="_blank">
491                <svg xmlns="http://www.w3.org/2000/svg" width="34" height="34" viewBox="0 0 1200 1227" style="cursor:pointer; background-color: whitesmoke; color:black; border-radius: 50%;padding:2px">
492                    <path fill="currentColor" d="M714.163 519.284L1160.89 0H1055.03L667.137 450.887L357.328 0H0L468.492 681.821L0 1226.37H105.866L515.491 750.218L842.672 1226.37H1200L714.137 519.284H714.163ZM569.165 687.828L521.697 619.934L144.011 79.6944H306.615L611.412 515.685L658.88 583.579L1055.08 1150.3H892.476L569.165 687.854V687.828Z" />
493                </svg>
494            </a>
495        </div>
496        <div class="column is-narrow">
497            <a href="https://linkedin.com/shareArticle?url=https://www.dataengineeringpodcast.com/typestream-kafka-as-code-for-product-teams-episode-512" target="_blank">
498                <svg xmlns="http://www.w3.org/2000/svg" style="cursor:pointer;width: 34px;height: 34px; background-color: whitesmoke; color:black; border-radius: 50%;padding:2px" viewBox="0 0 24 24">
499                    <path fill="currentColor" d="M19 3A2 2 0 0 1 21 5V19A2 2 0 0 1 19 21H5A2 2 0 0 1 3 19V5A2 2 0 0 1 5 3H19M18.5 18.5V13.2A3.26 3.26 0 0 0 15.24 9.94C14.39 9.94 13.4 10.46 12.92 11.24V10.13H10.13V18.5H12.92V13.57C12.92 12.8 13.54 12.17 14.31 12.17A1.4 1.4 0 0 1 15.71 13.57V18.5H18.5M6.88 8.56A1.68 1.68 0 0 0 8.56 6.88C8.56 5.95 7.81 5.19 6.88 5.19A1.69 1.69 0 0 0 5.19 6.88C5.19 7.81 5.95 8.56 6.88 8.56M8.27 18.5V10.13H5.5V18.5H8.27Z" />
500                </svg>
501            </a>
502        </div>
503        <div class="column is-narrow">
504            <a href="https://www.instagram.com/" target="_blank">
505                <svg style="cursor:pointer;width: 34px;height: 34px;background-color: whitesmoke; color:black; border-radius: 50%;padding:2px" viewBox="0 0 24 24">
506                    <path fill="currentColor" d="M7.8,2H16.2C19.4,2 22,4.6 22,7.8V16.2A5.8,5.8 0 0,1 16.2,22H7.8C4.6,22 2,19.4 2,16.2V7.8A5.8,5.8 0 0,1 7.8,2M7.6,4A3.6,3.6 0 0,0 4,7.6V16.4C4,18.39 5.61,20 7.6,20H16.4A3.6,3.6 0 0,0 20,16.4V7.6C20,5.61 18.39,4 16.4,4H7.6M17.25,5.5A1.25,1.25 0 0,1 18.5,6.75A1.25,1.25 0 0,1 17.25,8A1.25,1.25 0 0,1 16,6.75A1.25,1.25 0 0,1 17.25,5.5M12,7A5,5 0 0,1 17,12A5,5 0 0,1 12,17A5,5 0 0,1 7,12A5,5 0 0,1 12,7M12,9A3,3 0 0,0 9,12A3,3 0 0,0 12,15A3,3 0 0,0 15,12A3,3 0 0,0 12,9Z"></path>
507                </svg>
508            </a>
509        </div>
510        <div class="column is-narrow">
511            <a href="https://www.facebook.com/sharer/sharer.php?u=https://www.dataengineeringpodcast.com/typestream-kafka-as-code-for-product-teams-episode-512?211225161" target="_blank">
512                <svg xmlns="http://www.w3.org/2000/svg" style="cursor:pointer;width: 34px;height: 34px;background-color: whitesmoke; color:black; border-radius: 50%;padding:2px" viewBox="0 0 24 24">
513                    <path fill="currentColor" d="M12 2.04C6.5 2.04 2 6.53 2 12.06C2 17.06 5.66 21.21 10.44 21.96V14.96H7.9V12.06H10.44V9.85C10.44 7.34 11.93 5.96 14.22 5.96C15.31 5.96 16.45 6.15 16.45 6.15V8.62H15.19C13.95 8.62 13.56 9.39 13.56 10.18V12.06H16.34L15.89 14.96H13.56V21.96A10 10 0 0 0 22 12.06C22 6.53 17.5 2.04 12 2.04Z" />
514                </svg>
515            </a>
516        </div>
517    </div>
518
519</div>
520    <hr />
521
522
523<p class="subtitle">Listen in your favorite app:</p>
524
525
526	<a class="button subscribeButton" href="https://api.podverse.fm/api/v1/podcast/podcastindex/403671" title="Listen on Podverse" target="_blank">
527		<span class="icon">
528			<img src="https://cdn.podhome.fm/podverse.jpg" alt="Podverse logo" height="24" width="24">
529		</span>
530		<span>Podverse</span>
531	</a>
532
533
534	<a class="button subscribeButton" href="https://app.podcastguru.io/podcast/1193040557" title="Listen on Podcast Guru" target="_blank">
535		<span class="icon">
536			<img src="https://cdn.podhome.fm/podcastguru.jpg" alt="Podcast Guru logo" height="24" width="24">
537
538		</span>
539		<span>Podcast Guru</span>
540	</a>
541
542	<a class="button subscribeButton" href="https://podcasts.apple.com/us/podcast/data-engineering-podcast/id1193040557?uo=4" title="Listen on Apple Podcasts" target="_blank">
543		<span class="icon">
544			<img src="https://cdn.podhome.fm/apple.png" alt="Apple Podcasts logo" height="24" width="24">
545		</span>
546		<span>Apple Podcasts</span>
547	</a>
548
549	<a class="button subscribeButton" href="https://pca.st/itunes/1193040557" title="Listen on Pocket Casts" target="_blank">
550		<span class="icon">
551			<img src="https://cdn.podhome.fm/pocket-casts.png" alt="Pocket Casts logo" height="24" width="24">
552		</span>
553		<span>Pocket Casts</span>
554	</a>
555
556	<a class="button subscribeButton" href="https://overcast.fm/itunes1193040557" title="Listen on Overcast" target="_blank">
557		<span class="icon">
558			<img src="https://cdn.podhome.fm/overcast.svg" alt="Overcast logo" height="24" width="24">
559
560		</span>
561		<span>Overcast</span>
562	</a>
563
564	<a class="button subscribeButton" href="https://open.spotify.com/show/2iLvljRGVVIGlJshT5vNDS?si=97hjsjm4QYG-r6bFi3UkxA" title="Listen on Spotify" target="_blank">
565		<span class="icon">
566			<img src="https://cdn.podhome.fm/spotify.png" alt="Spotify for Podcasters logo" height="24" width="24">
567		</span>
568		<span>Spotify</span>
569	</a>
570
571
572
573	<a class="button subscribeButton" href="https://pod.link/1193040557" title="Pick your app with Podlink" target="_blank">
574		<span class="icon">
575			<img src="https://cdn.podhome.fm/podlink.png" alt="Podlink logo" height="24" width="24">
576		</span>
577		<span>Podlink</span>
578	</a>
579
580<br />
581<br />
582
583<details>
584	<summary>More options</summary>
585	<br />
586	<div>
587
588			<a class="button subscribeButton" href="https://podcastindex.org/podcast/403671" title="Listen on Podcast Index" target="_blank">
589				<span class="icon">
590					<img src="https://cdn.podhome.fm/podcast-index.svg" alt="Podcast Index logo" height="24" width="24">
591				</span>
592				<span>Podcast Index</span>
593			</a>
594
595			<a class="button subscribeButton" href="https://truefans.fm/1c0357c0-6aba-5766-a2d5-2090d8dab6bc" title="Listen on TrueFans" target="_blank">
596				<span class="icon">
597					<img src="https://cdn.podhome.fm/podfans.png" alt="TrueFans logo" height="24" width="24">
598				</span>
599				<span>TrueFans</span>
600			</a>
601
602			<a class="button subscribeButton" href="https://castbox.fm/vic/1193040557" title="Listen on Castbox" target="_blank">
603				<span class="icon">
604					<img src="https://cdn.podhome.fm/castbox.png" alt="Castbox logo" height="24" width="24">
605				</span>
606				<span>CastBox</span>
607			</a>
608
609
610
611			<a class="button subscribeButton" href="https://castro.fm/itunes/1193040557" title="Listen on Castro" target="_blank">
612				<span class="icon">
613					<img src="https://cdn.podhome.fm/castro.png" alt="Castro logo" height="24" width="24">
614				</span>
615				<span>Castro</span>
616			</a>
617
618			<a class="button subscribeButton" href="https://music.amazon.com/podcasts/4c60afdb-050c-49de-9053-ffcaeaa9fcb7/data-engineering-podcast" title="Listen on Amazon Music" target="_blank">
619				<span class="icon">
620					<img src="https://cdn.podhome.fm/amazon.png" alt="Amazon Music logo" height="24" width="24">
621				</span>
622				<span>Amazon Music</span>
623			</a>
624
625
626
627
628
629
630
631
632
633
634		<div class="field mt-3" style="width:100%">
635			<label class="label">
636				<span class="icon is-medium has-text-primary is-right">
637					<i class="mdi mdi-24px mdi-rss"></i>
638				</span>
639				Show RSS Feed
640			</label>
641			<div class="control has-icons-right">
642				<input autocomplete="off" readonly id="rssFeedUrl" class="input is-primary" value="https://serve.podhome.fm/rss/1c0357c0-6aba-5766-a2d5-2090d8dab6bc" title="Copy the Show RSS feed" style="cursor:pointer" onclick="copyText('https://serve.podhome.fm/rss/1c0357c0-6aba-5766-a2d5-2090d8dab6bc')">
643				<span class="icon is-medium has-text-primary is-right">
644					<i class="mdi mdi-18px mdi-content-copy"></i>
645				</span>
646				<span class="is-size-7 has-text-grey" id="copyTextMessage">Click to copy to clipboard</span>
647			</div>
648		</div>
649	</div>
650</details>
651        <hr />
652
653<p class="subtitle">Here are shows you might like</p>
654
655<details>
656    <summary>See show recommendations</summary>
657    <br />
658    <div>
659
660            <div class="columns">
661                    <div class="column " style="text-align:center">
662                        <div class="container" style="position: relative;width:160px">
663                                <a href="https://www.aiengineeringpodcast.com" target="_blank" title="Go to https://www.aiengineeringpodcast.com">
664                                    <img src="https://assets.podhome.fm/f6ff0caa-931b-4c08-bfdd-08dc7f5cd336/638557211890591941ai_engineering_podcast_logo.jpg" alt="AI Engineering Podcast artwork" title="AI Engineering Podcast artwork" onerror="this.onerror=null; this.src='https://cdn.podhome.fm/artworknotfound.png';" height="150" width="150">
665                                </a>
666                        </div>
667
668                        <strong>AI Engineering Podcast</strong>
669                        <br />
670                        <span>Tobias Macey</span>
671
672                    </div>
673                    <div class="column " style="text-align:center">
674                        <div class="container" style="position: relative;width:160px">
675                                <a href="https://www.pythonpodcast.com" target="_blank" title="Go to https://www.pythonpodcast.com">
676                                    <img src="https://assets.podhome.fm/f6ff0caa-931b-4c08-bfdd-08dc7f5cd336/6385252964948
67603510cover.jpg" alt="The Python Podcast.__init__ artwork" title="The Python Podcast.__init__ artwork" onerror="this.onerror=null; this.src='https://cdn.podhome.fm/artworknotfound.png';" height="150" width="150">
677                                </a>
678                        </div>
679
680                        <strong>The Python Podcast.__init__</strong>
681                        <br />
682                        <span>Tobias Macey</span>
683
684                    </div>
685            </div>
686
687    </div>
688</details>
689
690
691
692
693    <audio id="episodeAudio">
694    </audio>
695
696<script type="text/javascript">
697
698    let transcriptLoaded = false;
699
700    function loadTranscript() {
701    if (transcriptLoaded) return;
702
703    fetch('/api/transcript/8ecda746-bff7-4c7e-b384-3fc00c01f44a')
704    .then(response => {
705    if (!response.ok) throw new Error('Failed to load transcript');
706    return response.text();
707    })
708    .then(html => {
709    document.getElementById('transcriptContent').innerHTML = html;
710    document.getElementById('transcriptLoading').style.display = 'none';
711    transcriptLoaded = true;
712    })
713    .catch(error => {
714    document.getElementById('transcriptLoading').innerHTML =
715    '<p class="has-text-danger">Failed to load transcript. Please try again.</p>';
716    console.error('Transcript load error:', error);
717    });
718    }
719
720    // Override selectTab to lazy-load transcript
721    const originalSelectTab = typeof selectTab === 'function' ? selectTab : null;
722
723    function selectTab(tabName) {
724    // Hide all tabs
725    document.getElementById('descriptionTab').style.display = 'none';
726    const transcriptTab = document.getElementById('transcriptTab');
727    if (transcriptTab) transcriptTab.style.display = 'none';
728    const chapterTab = document.getElementById('chapterTab');
729    if (chapterTab) chapterTab.style.display = 'none';
730
731    // Remove active class from all tab panels
732    document.getElementById('descriptionTabPanel').classList.remove('is-active');
733    const transcriptPanel = document.getElementById('transcriptTabPanel');
734    if (transcriptPanel) transcriptPanel.classList.remove('is-active');
735    const chapterPanel = document.getElementById('chapterTabPanel');
736    if (chapterPanel) chapterPanel.classList.remove('is-active');
737
738    // Show selected tab and add active class
739    if (tabName === 'description') {
740    document.getElementById('descriptionTab').style.display = '';
741    document.getElementById('descriptionTabPanel').classList.add('is-active');
742    } else if (tabName === 'transcript') {
743    if (transcriptTab) transcriptTab.style.display = '';
744    if (transcriptPanel) transcriptPanel.classList.add('is-active');
745    loadTranscript(); // Lazy load!
746    } else if (tabName === 'chapter') {
747    if (chapterTab) chapterTab.style.display = '';
748    if (chapterPanel) chapterPanel.classList.add('is-active');
749    }
750    }
751
752    document.addEventListener('DOMContentLoaded', () => {
753    displayLivePendingLocalTime('');
754    });
755</script>
755
756
757
758
759                    <footer>
760                        <hr />
761
762                        <div class="mb-2">
763
764
765
766
767
768                                <a class="mr-2" style="vertical-align:top" href="https://linkedin.com/in/tmacey" target="_blank" title="Connect with me on LinkedIn">
769                                    <svg xmlns="http://www.w3.org/2000/svg" style="width: 24px;height: 24px;" viewBox="0 0 24 24">
770                                        <path fill="#000000" d="M19 3A2 2 0 0 1 21 5V19A2 2 0 0 1 19 21H5A2 2 0 0 1 3 19V5A2 2 0 0 1 5 3H19M18.5 18.5V13.2A3.26 3.26 0 0 0 15.24 9.94C14.39 9.94 13.4 10.46 12.92 11.24V10.13H10.13V18.5H12.92V13.57C12.92 12.8 13.54 12.17 14.31 12.17A1.4 1.4 0 0 1 15.71 13.57V18.5H18.5M6.88 8.56A1.68 1.68 0 0 0 8.56 6.88C8.56 5.95 7.81 5.19 6.88 5.19A1.69 1.69 0 0 0 5.19 6.88C5.19 7.81 5.95 8.56 6.88 8.56M8.27 18.5V10.13H5.5V18.5H8.27Z" />
771                                    </svg>
772                                </a>
773
774
775
776
777
778                        </div>
779
780                        <span class="has-text-grey is-size-7 ">&#xA9; 2025 Boundless Notions, LLC.</span>
781                    </footer>
782
783                </div>
784
785                    <div class="column is-narrow ml-3" style="padding-top: 0px;">
786
787                            <div class="box" style="max-width: 300px;position:relative">
788
789                                <strong style="position: absolute;top: -12px;">EPISODE SPONSORS</strong>
790
791                                    <strong class="subtitle">Data Driven</strong>
792                                        <figure class="image mt-2 mb-2">
793                                            <img src="https://assets.podhome.fm/f6ff0caa-931b-4c08-bfdd-08dc7f5cd336/639158741255171190datadriven-logo.png" alt="Data Driven" />
794                                        </figure>
795                                        <p>DataDriven.io is the free data engineering interview prep platform built for data engineers. Practice real data engineering interview questions asked in interviews by top companies across SQL, Python, data modeling, and pipeline architecture, with live code execution and interactive whiteboarding. Unlike SQL-only or Python-only practice, DataDriven.io covers the full data engineering interview loop: star schema and data modeling, slowly changing dimensions, grain and fact table design, idempotency, watermarks, dead letter queues, CDC, and backpressure. Questions are sourced from actual interview loops asked in real interviews, at companies including Google, Amazon, Meta, Stripe, Databricks, Netflix, and Airbnb. Free forever, no paywall, no credit card. Prepare for your data engineering interview today at dataengineeringpodcast.com/datadriven.</p>
796                                        <a href="https://datadriven.io/?utm_source=dataengineeringpodcast&amp;utm_medium=podcast&amp;utm_campaign=macey_sponsorship&amp;utm_content=ep_all" target="_blank">https://datadriven.io/?utm_source=dataengineeringpodcast&amp;utm_medium=podcast&amp;utm_campaign=macey_sponsorship&amp;utm_content=ep_all</a>
797                            </div>
798
799
800
801                    </div>
802            </div>
803        </div>
804    </section>
805
806    <div style="text-align: center;">
807
808        <a href="https://www.podhome.fm" title="Host your Podcast on Podhome.fm" target="_blank">
809
810                <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" zoomAndPan="magnify" viewBox="0 0 150 33.749998" height="45" preserveAspectRatio="xMidYMid meet" version="1.0">
811                    <defs><g /><clipPath id="98cad2cb55"><path d="M 0.550781 11.914062 L 25.121094 11.914062 L 25.121094 30.527344 L 0.550781 30.527344 Z M 0.550781 11.914062 " clip-rule="nonzero" /></clipPath></defs>
812                    <g clip-path="url(#98cad2cb55)"><path fill="#ffffff" d="M 16.296875 19.359375 L 16.296875 23.703125 C 16.296875 24.386719 15.734375 24.945312 15.039062 24.945312 C 14.34375 24.945312 13.78125 24.386719 13.78125 23.703125 L 13.78125 19.359375 C 13.78125 18.675781 14.34375 18.121094 15.039062 18.121094 C 15.734375 18.121094 16.296875 18.675781 16.296875 19.359375 Z M 19.445312 13.777344 C 18.75 13.777344 18.183594 14.332031 18.183594 15.015625 L 18.183594 27.425781 C 18.183594 28.109375 18.75 28.667969 19.445312 28.667969 C 20.140625 28.667969 20.703125 28.109375 20.703125 27.425781 L 20.703125 15.015625 C 20.703125 14.332031 20.136719 13.777344 19.445312 13.777344 Z M 1.824219 18.738281 L 1.820312 18.738281 C 1.128906 18.738281 0.5625 19.296875 0.5625 19.980469 L 0.5625 22.460938 C 0.5625 23.148438 1.128906 23.703125 1.820312 23.703125 L 1.824219 23.703125 C 2.519531 23.703125 3.082031 23.148438 3.082031 22.460938 L 3.082031 19.980469 C 3.082031 19.296875 2.519531 18.738281 1.824219 18.738281 Z M 6.226562 15.015625 C 5.53125 15.015625 4.96875 15.574219 4.96875 16.257812 L 4.96875 26.804688 C 4.96875 27.488281 5.53125 28.046875 6.226562 28.046875 C 6.921875 28.046875 7.488281 27.488281 7.488281 26.804688 L 7.488281 16.257812 C 7.488281 15.574219 6.921875 15.015625 6.226562 15.015625 Z M 10.632812 11.914062 C 9.9375 11.914062 9.375 12.46875 9.375 13.15625 L 9.375 29.285156 C 9.375 29.972656 9.9375 30.527344 10.632812 30.527344 C 11.328125 30.527344 11.890625 29.972656 11.890625 29.285156 L 11.890625 13.15625 C 11.890625 12.46875 11.328125 11.914062 10.632812 11.914062 Z M 23.847656 19.359375 C 23.152344 19.359375 22.589844 19.914062 22.589844 20.601562 L 22.589844 22.460938 C 22.589844 23.148438 23.152344 23.703125 23.847656 23.703125 C 24.542969 23.703125 25.105469 23.148438 25.105469 22.460938 L 25.105469 20.601562 C 25.105469 19.914062 24.542969 19.359375 23.847656 19.359375 Z M 23.847656 19.359375 " fill-opacity="1" fill-rule="nonzero" /></g>
813                    <g fill="#ffffff" fill-opacity="1"><g transform="translate(26.623669, 27.754971)"><g><path d="M 2.921875 0.125 C 2.515625 0.125 2.191406 0.00390625 1.953125 -0.234375 C 1.710938 -0.484375 1.59375 
813-0.816406 1.59375 -1.234375 L 1.59375 -13.453125 C 1.59375 -13.859375 1.707031 -14.171875 1.9375 -14.390625 C 2.164062 -14.617188 2.484375 -14.734375 2.890625 -14.734375 L 8.015625 -14.734375 C 9.585938 -14.734375 10.8125 -14.335938 11.6875 -13.546875 C 12.570312 -12.765625 13.015625 -11.660156 13.015625 -10.234375 C 13.015625 -8.816406 12.570312 -7.707031 11.6875 -6.90625 C 10.8125 -6.113281 9.585938 -5.71875 8.015625 -5.71875 L 4.28125 -5.71875 L 4.28125 -1.234375 C 4.28125 -0.816406 4.15625 -0.484375 3.90625 -0.234375 C 3.664062 0.00390625 3.335938 0.125 2.921875 0.125 Z M 7.6875 -7.796875 C 9.539062 -7.796875 10.46875 -8.601562 10.46875 -10.21875 C 10.46875 -11.832031 9.539062 -12.640625 7.6875 -12.640625 L 4.28125 -12.640625 L 4.28125 -7.796875 Z M 7.6875 -7.796875 " /></g></g></g>
814                    <g fill="#ffffff" fill-opacity="1"><g transform="translate(40.412817, 27.754971)"><g><path d="M 6.015625 0.171875 C 4.972656 0.171875 4.054688 -0.0390625 3.265625 -0.46875 C 2.484375 -0.90625 1.875 -1.523438 1.4375 -2.328125 C 1.007812 -3.140625 0.796875 -4.082031 0.796875 -5.15625 C 0.796875 -6.226562 1.007812 -7.164062 1.4375 -7.96875 C 1.875 -8.769531 2.484375 -9.382812 3.265625 -9.8125 C 4.054688 -10.25 4.972656 -10.46875 6.015625 -10.46875 C 7.054688 -10.46875 7.96875 -10.25 8.75 -9.8125 C 9.539062 -9.382812 10.148438 -8.769531 10.578125 -7.96875 C 11.003906 -7.164062 11.21875 -6.226562 11.21875 -5.15625 C 11.21875 -4.082031 11.003906 -3.140625 10.578125 -2.328125 C 10.148438 -1.523438 9.539062 -0.90625 8.75 -0.46875 C 7.96875 -0.0390625 7.054688 0.171875 6.015625 0.171875 Z M 6 -1.859375 C 6.84375 -1.859375 7.488281 -2.132812 7.9375 -2.6875 C 8.382812 -3.25 8.609375 -4.070312 8.609375 -5.15625 C 8.609375 -6.226562 8.382812 -7.046875 7.9375 -7.609375 C 7.488281 -8.171875 6.847656 -8.453125 6.015625 -8.453125 C 5.179688 -8.453125 4.535156 -8.171875 4.078125 -7.609375 C 3.628906 -7.046875 3.40625 -6.226562 3.40625 -5.15625 C 3.40625 -4.070312 3.628906 -3.25 4.078125 -2.6875 C 4.523438 -2.132812 5.164062 -1.859375 6 -1.859375 Z M 6 -1.859375 " /></g></g></g>
815                    <g fill="#ffffff" fill-opacity="1"><g transform="translate(52.426091, 27.754971)"><g><path d="M 9.875 -14.828125 C 10.269531 -14.828125 10.59375 -14.710938 10.84375 -14.484375 C 11.09375 -14.265625 11.21875 -13.976562 11.21875 -13.625 L 11.21875 -1.125 C 11.21875 -0.75 11.097656 -0.445312 10.859375 -0.21875 C 10.628906 0 10.316406 0.109375 9.921875 0.109375 C 9.535156 0.109375 9.222656 0 8.984375 -0.21875 C 8.742188 -0.445312 8.625 -0.75 8.625 -1.125 L 8.625 -1.65625 C 8.320312 -1.082031 7.878906 -0.632812 7.296875 -0.3125 C 6.722656 0.0078125 6.066406 0.171875 5.328125 0.171875 C 4.453125 0.171875 3.664062 -0.0507812 2.96875 -0.5 C 2.28125 -0.945312 1.742188 -1.578125 1.359375 -2.390625 C 0.984375 -3.203125 0.796875 -4.140625 0.796875 -5.203125 C 0.796875 -6.265625 0.984375 -7.191406 1.359375 -7.984375 C 1.742188 -8.773438 2.273438 -9.382812 2.953125 -9.8125 C 3.640625 -10.25 4.429688 -10.46875 5.328125 -10.46875 C 6.066406 -10.46875 6.71875 -10.3125 7.28125 -10 C 7.851562 -9.695312 8.296875 -9.269531 8.609375 -8.71875 L 8.609375 -13.65625 C 8.609375 -14.007812 8.722656 -14.289062 8.953125 -14.5 C 9.179688 -14.71875 9.488281 -14.828125 9.875 -14.828125 Z M 6.015625 -1.859375 C 6.847656 -1.859375 7.488281 -2.144531 7.9375 -2.71875 C 8.394531 -3.289062 8.625 -4.101562 8.625 -5.15625 C 8.625 -6.21875 8.394531 -7.03125 7.9375 -7.59375 C 7.488281 -8.15625 6.851562 -8.4375 6.03125 -8.4375 C 5.195312 -8.4375 4.550781 -8.15625 4.09375 -7.59375 C 3.632812 -7.039062 3.40625 -6.242188 3.40625 -5.203125 C 3.40625 -4.140625 3.632812 -3.316406 4.09375 -2.734375 C 4.550781 -2.148438 5.191406 -1.859375 6.015625 -1.859375 Z M 6.015625 -1.859375 " /></g></g></g>
816                    <g fill="#ffffff" fill-opacity="1"><g transform="translate(64.982575, 27.754971)"><g><path d="M 7.328125 -10.46875 C 9.722656 -10.46875 10.921875 -9.066406 10.921875 -6.265625 L 10.921875 -1.125 C 10.921875 -0.738281 10.804688 -0.429688 10.578125 -0.203125 C 10.347656 0.015625 10.03125 0.125 9.625 0.125 C 9.226562 0.125 8.910156 0.015625 8.671875 -0.203125 C 8.429688 -0.429688 8.3125 -0.738281 8.3125 -1.125 L 8.3125 -6.265625 C 8.3125 -7.003906 8.160156 -7.539062 7.859375 
816-7.875 C 7.566406 -8.21875 7.097656 -8.390625 6.453125 -8.390625 C 5.703125 -8.390625 5.097656 -8.15625 4.640625 -7.6875 C 4.191406 -7.21875 3.96875 -6.582031 3.96875 -5.78125 L 3.96875 -1.125 C 3.96875 -0.738281 3.847656 -0.429688 3.609375 -0.203125 C 3.378906 0.015625 3.0625 0.125 2.65625 0.125 C 2.25 0.125 1.929688 0.015625 1.703125 -0.203125 C 1.472656 -0.429688 1.359375 -0.738281 1.359375 -1.125 L 1.359375 -13.625 C 1.359375 -13.976562 1.476562 -14.265625 1.71875 -14.484375 C 1.96875 -14.710938 2.285156 -14.828125 2.671875 -14.828125 C 3.066406 -14.828125 3.378906 -14.722656 3.609375 -14.515625 C 3.847656 -14.304688 3.96875 -14.019531 3.96875 -13.65625 L 3.96875 -8.796875 C 4.3125 -9.335938 4.769531 -9.75 5.34375 -10.03125 C 5.925781 -10.320312 6.585938 -10.46875 7.328125 -10.46875 Z M 7.328125 -10.46875 " /></g></g></g>
817                    <g fill="#ffffff" fill-opacity="1"><g transform="translate(77.20478, 27.754971)"><g><path d="M 6.015625 0.171875 C 4.972656 0.171875 4.054688 -0.0390625 3.265625 -0.46875 C 2.484375 -0.90625 1.875 -1.523438 1.4375 -2.328125 C 1.007812 -3.140625 0.796875 -4.082031 0.796875 -5.15625 C 0.796875 -6.226562 1.007812 -7.164062 1.4375 -7.96875 C 1.875 -8.769531 2.484375 -9.382812 3.265625 -9.8125 C 4.054688 -10.25 4.972656 -10.46875 6.015625 -10.46875 C 7.054688 -10.46875 7.96875 -10.25 8.75 -9.8125 C 9.539062 -9.382812 10.148438 -8.769531 10.578125 -7.96875 C 11.003906 -7.164062 11.21875 -6.226562 11.21875 -5.15625 C 11.21875 -4.082031 11.003906 -3.140625 10.578125 -2.328125 C 10.148438 -1.523438 9.539062 -0.90625 8.75 -0.46875 C 7.96875 -0.0390625 7.054688 0.171875 6.015625 0.171875 Z M 6 -1.859375 C 6.84375 -1.859375 7.488281 -2.132812 7.9375 -2.6875 C 8.382812 -3.25 8.609375 -4.070312 8.609375 -5.15625 C 8.609375 -6.226562 8.382812 -7.046875 7.9375 -7.609375 C 7.488281 -8.171875 6.847656 -8.453125 6.015625 -8.453125 C 5.179688 -8.453125 4.535156 -8.171875 4.078125 -7.609375 C 3.628906 -7.046875 3.40625 -6.226562 3.40625 -5.15625 C 3.40625 -4.070312 3.628906 -3.25 4.078125 -2.6875 C 4.523438 -2.132812 5.164062 -1.859375 6 -1.859375 Z M 6 -1.859375 " /></g></g></g>
818                    <g fill="#ffffff" fill-opacity="1"><g transform="translate(89.218054, 27.754971)"><g><path d="M 13.5 -10.46875 C 14.613281 -10.46875 15.460938 -10.132812 16.046875 -9.46875 C 16.640625 -8.8125 16.9375 -7.742188 16.9375 -6.265625 L 16.9375 -1.125 C 16.9375 -0.71875 16.816406 -0.40625 16.578125 -0.1875 C 16.335938 0.0195312 16.019531 0.125 15.625 0.125 C 15.25 0.125 14.9375 0.0195312 14.6875 -0.187
8185 C 14.445312 -0.40625 14.328125 -0.71875 14.328125 -1.125 L 14.328125 -6.265625 C 14.328125 -7.035156 14.191406 -7.582031 13.921875 -7.90625 C 13.648438 -8.226562 13.238281 -8.390625 12.6875 -8.390625 C 12 -8.390625 11.453125 -8.15625 11.046875 -7.6875 C 10.648438 -7.226562 10.453125 -6.59375 10.453125 -5.78125 L 10.453125 -1.125 C 10.453125 -0.71875 10.328125 -0.40625 10.078125 -0.1875 C 9.835938 0.0195312 9.53125 0.125 9.15625 0.125 C 8.78125 0.125 8.460938 0.0195312 8.203125 -0.1875 C 7.953125 -0.40625 7.828125 -0.71875 7.828125 -1.125 L 7.828125 -6.265625 C 7.828125 -7.035156 7.691406 -7.582031 7.421875 -7.90625 C 7.148438 -8.226562 6.738281 -8.390625 6.1875 -8.390625 C 5.5 -8.390625 4.957031 -8.15625 4.5625 -7.6875 C 4.164062 -7.226562 3.96875 -6.59375 3.96875 -5.78125 L 3.96875 -1.125 C 3.96875 -0.71875 3.84375 -0.40625 3.59375 -0.1875 C 3.34375 0.0195312 3.03125 0.125 2.65625 0.125 C 2.28125 0.125 1.96875 0.0195312 1.71875 -0.1875 C 1.476562 -0.40625 1.359375 -0.71875 1.359375 -1.125 L 1.359375 -9.21875 C 1.359375 -9.601562 1.484375 -9.898438 1.734375 -10.109375 C 1.984375 -10.316406 2.296875 -10.421875 2.671875 -10.421875 C 3.035156 -10.421875 3.332031 -10.316406 3.5625 -10.109375 C 3.789062 -9.910156 3.90625 -9.625 3.90625 -9.25 L 3.90625 -8.75 C 4.226562 -9.3125 4.65625 -9.738281 5.1875 -10.03125 C 5.726562 -10.320312 6.347656 -10.46875 7.046875 -10.46875 C 8.578125 -10.46875 9.597656 -9.828125 10.109375 -8.546875 C 10.421875 -9.128906 10.875 -9.59375 11.46875 -9.9375 C 12.070312 -10.289062 12.75 -10.46875 13.5 -10.46875 Z M 13.5 -10.46875 " /></g></g></g>
819                    <g fill="#ffffff" fill-opacity="1"><g transform="translate(107.457336, 27.754971)"><g><path d="M 9.4375 -2.796875 C 9.675781 -2.796875 9.867188 -2.703125 10.015625 -2.515625 C 10.160156 -2.335938 10.234375 -2.097656 10.234375 -1.796875 C 10.234375 -1.367188 9.976562 -1.003906 9.46875 -0.703125 C 8.988281 -0.441406 8.445312 -0.226562 7.84375 -0.0625 C 7.25 0.09375 6.679688 0.171875 6.140625 0.171875 C 4.492188 0.171875 3.191406 -0.300781 2.234375 -1.25 C 1.273438 -2.195312 0.796875 -3.492188 0.796875 -5.140625 C 0.796875 -6.179688 1.003906 -7.101562 1.421875 -7.90625 C 1.835938 -8.71875 2.425781 -9.347656 3.1875 -9.796875 C 3.945312 -10.242188 4.804688 -10.46875 5.765625 -10.46875 C 6.679688 -10.46875 7.476562 -10.265625 8.15625 -9.859375 C 8.84375 -9.453125 9.375 -8.878906 9.75 -8.140625 C 10.125 -7.410156 10.3125 -6.539062 10.3125 -5.53125 C 10.3125 -4.9375 10.050781 -4.640625 9.53125 -4.640625 L 3.359375 -4.640625 C 3.441406 -3.679688 3.710938 -2.972656 4.171875 -2.515625 C 4.640625 -2.066406 5.3125 -1.84375 6.1875 -1.84375 C 6.632812 -1.84375 7.023438 -1.894531 7.359375 -2 C 7.703125 -2.113281 8.085938 -2.269531 8.515625 -2.46875 C 8.941406 -2.6875 9.25 -2.796875 9.4375 -2.796875 Z M 5.828125 -8.625 C 5.117188 -8.625 4.550781 -8.398438 4.125 -7.953125 C 3.695312 -7.515625 3.441406 -6.875 3.359375 -6.03125 L 8.078125 -6.03125 C 8.054688 -6.882812 7.847656 -7.53125 7.453125 -7.96875 C 7.066406 -8.40625 6.523438 -8.625 5.828125 -8.625 Z M 5.828125 -8.625 " /></g></g></g>
820                    <g fill="#ffffff" fill-opacity="1"><g transform="translate(118.551343, 27.754971)"><g><path d="M 2.59375 0.125 C 2.144531 0.125 1.773438 -0.0195312 1.484375 -0.3125 C 1.191406 -0.613281 1.046875 -0.988281 1.046875 -1.4375 C 1.046875 -1.882812 1.191406 -2.257812 1.484375 -2.5625 C 1.773438 -2.863281 2.144531 -3.015625 2.59375 -3.015625 C 3.039062 -3.015625 3.410156 -2.863281 3.703125 -2.5625 C 3.992188 -2.257812 4.140625 -1.882812 4.140625 -1.4375 C 4.140625 -0.988281 3.992188 -0.613281 3.703125 -0.3125 C 3.410156 -0.0195312 3.039062 0.125 2.59375 0.125 Z M 2.59375 0.125 " /></g></g></g>
821                    <g fill="#ffffff" fill-opacity="1"><g transform="translate(123.732724, 27.754971)"><g><path d="M 6.515625 -12.78125 C 5.878906 -12.738281 5.410156 -12.539062 5.109375 -12.1875 C 4.816406 -11.84375 4.671875 -11.347656 4.671875 -10.703125 L 4.671875 -10.21875 L 6.453125 -10.21875 C 7.234375 -10.21875 7.625 -9.890625 7.625 -9.234375 C 7.625 -8.578125 7.234375 -8.25 6.453125 -8.25 L 4.671875 -8.25 L 4.671875 -1.125 C 4.671875 -0.71875 4.550781 -0.410156 4.3125 -0.203125 C 4.070312 0.00390625 3.765625 0.109375 3.390625 0.109375 C 3.003906 0.109375 2.6875 0.00390625 2.4375 -0.203125 C 2.1875 -0.410156 2.0625 -0.71875 2.0625 -1.125 L 2.0625 -8.25 L 1.03125 -8.25 C 0.25 -8.25 -0.140625 -8.578125 -0.140625 -9.234375 C -0.140625 -9.890625 0.25 -10.21875 1.03125 -10.21875 L 2.0625 -10.21875 L 2.0625 -10.359375 C 2.0625 -11.671875 2.40625 -12.695312 3.09375 -13.4375 C 3.789062 -14.1875 4.765625 -14.609375 6.015625 -14.703125 L 6.5625 -14.75 C 7.113281 -14.789062 7.503906 -14.726562 7.734375 -14.5625 C 7.960938 -14.40625 8.078125 -14.160156 8.078125 -13.828125 C 8.078125 -13.234375 7.738281 -12.898438 7.0625 -12.828125 Z M 6.515625 -12.78125 " /></g></g></g>
822                    <g fill="#ffffff" fill-opacity="1"><g transform="translate(131.212293, 27.754971)"><g><path d="M 13.5 -10.46875 C 14.613281 -10.46875 15.460938 -10.132812 16.046875 -9.46875 C 16.640625 -8.8125 16.9375 -7.742188 16.9375 -6.265625 L 16.9375 -1.125 C 16.9375 -0.71875 16.816406 -0.40625 16.578125 -0.1875 C 16.335938 0.0195312 16.019531 0.125 15.625 0.125 C 15.25 0.125 14.9375 0.0195312 14.6875 -0.187
8225 C 14.445312 -0.40625 14.328125 -0.71875 14.328125 -1.125 L 14.328125 -6.265625 C 14.328125 -7.035156 14.191406 -7.582031 13.921875 -7.90625 C 13.648438 -8.226562 13.238281 -8.390625 12.6875 -8.390625 C 12 -8.390625 11.453125 -8.15625 11.046875 -7.6875 C 10.648438 -7.226562 10.453125 -6.59375 10.453125 -5.78125 L 10.453125 -1.125 C 10.453125 -0.71875 10.328125 -0.40625 10.078125 -0.1875 C 9.835938 0.0195312 9.53125 0.125 9.15625 0.125 C 8.78125 0.125 8.460938 0.0195312 8.203125 -0.1875 C 7.953125 -0.40625 7.828125 -0.71875 7.828125 -1.125 L 7.828125 -6.265625 C 7.828125 -7.035156 7.691406 -7.582031 7.421875 -7.90625 C 7.148438 -8.226562 6.738281 -8.390625 6.1875 -8.390625 C 5.5 -8.390625 4.957031 -8.15625 4.5625 -7.6875 C 4.164062 -7.226562 3.96875 -6.59375 3.96875 -5.78125 L 3.96875 -1.125 C 3.96875 -0.71875 3.84375 -0.40625 3.59375 -0.1875 C 3.34375 0.0195312 3.03125 0.125 2.65625 0.125 C 2.28125 0.125 1.96875 0.0195312 1.71875 -0.1875 C 1.476562 -0.40625 1.359375 -0.71875 1.359375 -1.125 L 1.359375 -9.21875 C 1.359375 -9.601562 1.484375 -9.898438 1.734375 -10.109375 C 1.984375 -10.316406 2.296875 -10.421875 2.671875 -10.421875 C 3.035156 -10.421875 3.332031 -10.316406 3.5625 -10.109375 C 3.789062 -9.910156 3.90625 -9.625 3.90625 -9.25 L 3.90625 -8.75 C 4.226562 -9.3125 4.65625 -9.738281 5.1875 -10.03125 C 5.726562 -10.320312 6.347656 -10.46875 7.046875 -10.46875 C 8.578125 -10.46875 9.597656 -9.828125 10.109375 -8.546875 C 10.421875 -9.128906 10.875 -9.59375 11.46875 -9.9375 C 12.070312 -10.289062 12.75 -10.46875 13.5 -10.46875 Z M 13.5 -10.46875 " /></g></g></g>
823                    <g fill="#ffffff" fill-opacity="1"><g transform="translate(53.636804, 9.31336)"><g><path d="M 5.921875 -6.71875 C 6.109375 -6.71875 6.253906 -6.660156 6.359375 -6.546875 C 6.460938 -6.429688 6.515625 -6.285156 6.515625 -6.109375 L 6.515625 -0.5625 C 6.515625 -0.375 6.457031 -0.222656 6.34375 -0.109375 C 6.238281 0.00390625 6.097656 0.0625 5.921875 0.0625 C 5.742188 0.0625 5.597656 0.00390625 5.484375 -0.109375 C 5.378906 -0.222656 5.328125 -0.375 5.328125 -0.5625 L 5.328125 -2.890625 L 1.921875 -2.890625 L 1.921875 -0.5625 C 1.921875 -0.375 1.863281 -0.222656 1.75 -0.109375 C 1.644531 0.00390625 1.5 0.0625 1.3125 0.0625 C 1.132812 0.0625 0.988281 0.00390625 0.875 -0.109375 C 0.769531 -0.222656 0.71875 -0.375 0.71875 -0.5625 L 0.71875 -6.109375 C 0.71875 -6.285156 0.769531 -6.429688 0.875 -6.546875 C 0.988281 -6.660156 1.132812 -6.71875 1.3125 -6.71875 C 1.5 -6.71875 1.644531 -6.660156 1.75 -6.546875 C 1.863281 -6.429688 1.921875 -6.285156 1.921875 -6.109375 L 1.921875 -3.875 L 5.328125 -3.875 L 5.328125 -6.109375 C 5.328125 -6.285156 5.378906 -6.429688 5.484375 -6.546875 C 5.597656 -6.660156 5.742188 -6.71875 5.921875 -6.71875 Z M 5.921875 -6.71875 " /></g></g></g>
824                    <g fill="#ffffff" fill-opacity="1"><g transform="translate(60.881941, 9.31336)"><g><path d="M 2.71875 0.078125 C 2.25 0.078125 1.832031 -0.0195312 1.46875 -0.21875 C 1.113281 -0.414062 0.835938 -0.695312 0.640625 -1.0625 C 0.453125 -1.425781 0.359375 -1.847656 0.359375 -2.328125 C 0.359375 -2.816406 0.453125 -3.242188 0.640625 -3.609375 C 0.835938 -3.972656 1.113281 -4.25 1.46875 -4.4375 C 1.832031 -4.632812 2.25 -4.734375 2.71875 -4.734375 C 3.195312 -4.734375 3.613281 -4.632812 3.96875 -4.4375 C 4.320312 -4.25 4.59375 -3.972656 4.78125 -3.609375 C 4.976562 -3.242188 5.078125 -2.816406 5.078125 -2.328125 C 5.078125 -1.847656 4.976562 -1.425781 4.78125 -1.0625 C 4.59375 -0.695312 4.320312 -0.414062 3.96875 -0.21875 C 3.613281 -0.0195312 3.195312 0.078125 2.71875 0.078125 Z M 2.71875 -0.84375 C 3.101562 -0.84375 3.394531 -0.96875 3.59375 -1.21875 C 3.789062 -1.46875 3.890625 -1.835938 3.890625 -2.328125 C 3.890625 -2.816406 3.789062 -3.1875 3.59375 -3.4375 C 3.394531 -3.695312 3.101562 -3.828125 2.71875 -3.828125 C 2.34375 -3.828125 2.050781 -3.695312 1.84375 -3.4375 C 1.644531 -3.1875 1.546875 -2.816406 1.546875 -2.328125 C 1.546875 -1.835938 1.644531 -1.46875 1.84375 -1.21875 C 2.039062 -0.96875 2.332031 -0.84375 2.71875 -0.84375 Z M 2.71875 -0.84375 " /></g></g></g>
825                    <g fill="#ffffff" fill-opacity="1"><g transform="translate(66.320523, 9.31336)"><g><path d="M 2.28125 0.078125 C 1.59375 0.078125 1.039062 -0.0546875 0.625 -0.328125 C 0.425781 -0.453125 0.328125 -0.625 0.328125 -0.84375 C 0.328125 -0.96875 0.359375 
825-1.066406 0.421875 -1.140625 C 0.492188 -1.222656 0.582031 -1.265625 0.6875 -1.265625 C 0.789062 -1.265625 0.9375 -1.210938 1.125 -1.109375 C 1.320312 -1.015625 1.503906 -0.941406 1.671875 -0.890625 C 1.835938 -0.847656 2.050781 -0.828125 2.3125 -0.828125 C 2.582031 -0.828125 2.789062 -0.867188 2.9375 -0.953125 C 3.082031 -1.046875 3.15625 -1.171875 3.15625 -1.328125 C 3.15625 -1.429688 3.125 -1.515625 3.0625 -1.578125 C 3.007812 -1.640625 2.90625 -1.695312 2.75 -1.75 C 2.59375 -1.800781 2.359375 -1.863281 2.046875 -1.9375 C 1.484375 -2.050781 1.078125 -2.210938 0.828125 -2.421875 C 0.585938 -2.628906 0.46875 -2.914062 0.46875 -3.28125 C 0.46875 -3.5625 0.550781 -3.8125 0.71875 -4.03125 C 0.882812 -4.257812 1.109375 -4.429688 1.390625 -4.546875 C 1.679688 -4.671875 2.007812 -4.734375 2.375 -4.734375 C 2.632812 -4.734375 2.882812 -4.695312 3.125 -4.625 C 3.375 -4.5625 3.597656 -4.46875 3.796875 -4.34375 C 4.003906 -4.21875 4.109375 -4.050781 4.109375 -3.84375 C 4.109375 -3.71875 4.070312 -3.613281 4 -3.53125 C 3.925781 -3.445312 3.84375 -3.40625 3.75 -3.40625 C 3.675781 -3.40625 3.601562 -3.414062 3.53125 -3.4375 C 3.46875 -3.46875 3.390625 -3.515625 3.296875 -3.578125 C 3.109375 -3.671875 2.945312 -3.738281 2.8125 -3.78125 C 2.6875 -3.832031 2.523438 -3.859375 2.328125 -3.859375 C 2.085938 -3.859375 1.898438 -3.8125 1.765625 -3.71875 C 1.628906 -3.625 1.5625 -3.492188 1.5625 -3.328125 C 1.5625 -3.171875 1.628906 -3.050781 1.765625 -2.96875 C 1.910156 -2.882812 2.179688 -2.800781 2.578125 -2.71875 C 3.003906 -2.632812 3.335938 -2.535156 3.578125 -2.421875 C 3.816406 -2.304688 3.988281 -2.160156 4.09375 -1.984375 C 4.195312 -1.816406 4.25 -1.601562 4.25 -1.34375 C 4.25 -0.914062 4.066406 -0.570312 3.703125 -0.3125 C 3.347656 -0.0507812 2.875 0.078125 2.28125 0.078125 Z M 2.28125 0.078125 " /></g></g></g>
826                    <g fill="#ffffff" fill-opacity="1"><g transform="translate(70.907848, 9.31336)"><g><path d="M 3.015625 -0.828125 C 3.328125 -0.804688 3.484375 -0.660156 3.484375 -0.390625 C 3.484375 -0.242188 3.421875 -0.128906 3.296875 -0.046875 C 3.179688 0.0234375 3.007812 0.0546875 2.78125 0.046875 L 2.53125 0.03125 C 1.46875 -0.0390625 0.9375 -0.609375 0.9375 -1.671875 L 0.9375 -3.734375 L 0.46875 -3.734375 C 0.289062 -3.734375 0.15625 -3.769531 0.0625 -3.84375 C -0.0195312 -3.914062 -0.0625 -4.023438 -0.0625 -4.171875 C -0.0625 -4.316406 -0.0195312 -4.425781 0.0625 -4.5 C 0.15625 -4.582031 0.289062 -4.625 0.46875 -4.625 L 0.9375 -4.625 L 0.9375 -5.5 C 0.9375 -5.664062 0.988281 -5.796875 1.09375 -5.890625 C 1.195312 -5.992188 1.34375 -6.046875 1.53125 -6.046875 C 1.707031 -6.046875 1.847656 -5.992188 1.953125 -5.890625 C 2.066406 -5.796875 2.125 -5.664062 2.125 -5.5 L 2.125 -4.625 L 2.921875 -4.625 C 3.085938 -4.625 3.21875 -4.582031 3.3125 -4.5 C 3.40625 -4.425781 3.453125 -4.316406 3.453125 -4.171875 C 3.453125 -4.023438 3.40625 -3.914062 3.3125 -3.84375 C 3.21875 -3.769531 3.085938 -3.734375 2.921875 -3.734375 L 2.125 -3.734375 L 2.125 -1.59375 C 2.125 -1.125 2.335938 -0.875 2.765625 -0.84375 Z M 3.015625 -0.828125 " /></g></g></g>
827                    <g fill="#ffffff" fill-opacity="1"><g transform="translate(74.398004, 9.31336)"><g><path d="M 4.265625 -1.265625 C 4.378906 -1.265625 4.46875 -1.222656 4.53125 -1.140625 C 4.59375 -1.054688 4.625 -0.945312 4.625 -0.8125 C 4.625 -0.613281 4.507812 -0.453125 4.28125 -0.328125 C 4.0625 -0.203125 3.816406 -0.101562 3.546875 -0.03125 C 3.273438 0.0390625 3.019531 0.078125 2.78125 0.078125 C 2.03125 0.078125 1.4375 -0.132812 1 -0.5625 C 0.570312 -0.988281 0.359375 -1.578125 0.359375 -2.328125 C 0.359375 -2.796875 0.453125 -3.210938 0.640625 -3.578125 C 0.828125 -3.941406 1.09375 -4.222656 1.4375 -4.421875 C 1.78125 -4.628906 2.171875 -4.734375 2.609375 -4.734375 C 3.023438 -4.734375 3.382812 -4.640625 3.6875 -4.453125 C 4 -4.273438 4.238281 -4.019531 4.40625 -3.6875 C 4.582031 -3.351562 4.671875 -2.957031 4.671875 -2.5 C 4.671875 -2.226562 4.550781 -2.09375 4.3125 -2.09375 L 1.515625 -2.09375 C 1.554688 -1.664062 1.679688 -1.347656 1.890625 -1.140625 C 2.097656 -0.929688 2.398438 -0.828125 2.796875 -0.828125 C 2.992188 -0.828125 3.171875 -0.851562 3.328125 -0.90625 C 3.484375 -0.957031 3.660156 -1.
827023438 3.859375 -1.109375 C 4.046875 -1.210938 4.179688 -1.265625 4.265625 -1.265625 Z M 2.640625 -3.90625 C 2.316406 -3.90625 2.054688 -3.800781 1.859375 -3.59375 C 1.671875 -3.394531 1.554688 -3.109375 1.515625 -2.734375 L 3.65625 -2.734375 C 3.644531 -3.117188 3.550781 -3.410156 3.375 -3.609375 C 3.195312 -3.804688 2.953125 -3.90625 2.640625 -3.90625 Z M 2.640625 -3.90625 " /></g></g></g>
828                    <g fill="#ffffff" fill-opacity="1"><g transform="translate(79.420421, 9.31336)"><g><path d="M 4.46875 -6.71875 C 4.644531 -6.71875 4.789062 -6.664062 4.90625 -6.5625 C 5.019531 -6.457031 5.078125 -6.320312 5.078125 -6.15625 L 5.078125 -0.515625 C 5.078125 -0.335938 5.019531 -0.195312 4.90625 -0.09375 C 4.800781 0 4.660156 0.046875 4.484375 0.046875 C 4.304688 0.046875 4.164062 0 4.0625 -0.09375 C 3.957031 -0.195312 3.90625 -0.335938 3.90625 -0.515625 L 3.90625 -0.75 C 3.769531 -0.488281 3.566406 -0.285156 3.296875 -0.140625 C 3.035156 0.00390625 2.738281 0.078125 2.40625 0.078125 C 2.007812 0.078125 1.65625 -0.0195312 1.34375 -0.21875 C 1.03125 -0.425781 0.785156 -0.710938 0.609375 -1.078125 C 0.441406 -1.453125 0.359375 -1.878906 0.359375 -2.359375 C 0.359375 -2.835938 0.441406 -3.253906 0.609375 -3.609375 C 0.785156 -3.972656 1.03125 -4.25 1.34375 -4.4375 C 1.65625 -4.632812 2.007812 -4.734375 2.40625 -4.734375 C 2.738281 -4.734375 3.035156 -4.660156 3.296875 -4.515625 C 3.554688 -4.378906 3.753906 -4.1875 3.890625 -3.9375 L 3.890625 -6.1875 C 3.890625 -6.34375 3.941406 -6.46875 4.046875 -6.5625 C 4.148438 -6.664062 4.289062 -6.71875 4.46875 -6.71875 Z M 2.71875 -0.84375 C 3.101562 -0.84375 3.394531 -0.96875 3.59375 -1.21875 C 3.800781 -1.476562 3.90625 -1.847656 3.90625 -2.328125 C 3.90625 -2.804688 3.800781 -3.171875 3.59375 -3.421875 C 3.394531 -3.679688 3.109375 -3.8125 2.734375 -3.8125 C 2.359375 -3.8125 2.066406 -3.6875 1.859375 -3.4375 C 1.648438 -3.1875 1.546875 -2.828125 1.546875 -2.359375 C 1.546875 -1.878906 1.648438 -1.503906 1.859375 -1.234375 C 2.066406 -0.972656 2.351562 -0.84375 2.71875 -0.84375 Z M 2.71875 -0.84375 " /></g></g></g>
829                    <g fill="#ffffff" fill-opacity="1"><g transform="translate(85.104922, 9.31336)"><g /></g></g>
830                    <g fill="#ffffff" fill-opacity="1"><g transform="translate(87.668147, 9.31336)"><g><path d="M 3.265625 -4.734375 C 3.671875 -4.734375 4.023438 -4.632812 4.328125 -4.4375 C 4.640625 -4.25 4.882812 -3.972656 5.0625 -3.609375 C 5.238281 -3.253906 5.328125 -2.835938 5.328125 -2.359375 C 5.328125 -1.878906 5.238281 -1.453125 5.0625 -1.078125 C 4.882812 -0.710938 4.640625 -0.425781 4.328125 -0.21875 C 4.015625 -0.0195312 3.660156 0.078125 3.265625 0.078125 C 2.929688 0.078125 2.632812 0.00390625 2.375 -0.140625 C 2.113281 -0.285156 1.914062 -0.488281 1.78125 -0.75 L 1.78125 -0.515625 C 1.78125 -0.335938 1.722656 -0.195312 1.609375 -0.09375 C 1.503906 0 1.363281 0.046875 1.1875 0.046875 C 1.007812 0.046875 0.867188 0 0.765625 -0.09375 C 0.660156 -0.195312 0.609375 -0.335938 0.609375 -0.515625 L 0.609375 -6.15625 C 0.609375 -6.320312 0.660156 -6.457031 0.76
8305625 -6.5625 C 0.878906 -6.664062 1.023438 -6.71875 1.203125 -6.71875 C 1.378906 -6.71875 1.519531 -6.664062 1.625 -6.5625 C 1.738281 -6.46875 1.796875 -6.34375 1.796875 -6.1875 L 1.796875 -3.953125 C 1.929688 -4.203125 2.128906 -4.394531 2.390625 -4.53125 C 2.648438 -4.664062 2.941406 -4.734375 3.265625 -4.734375 Z M 2.953125 -0.84375 C 3.328125 -0.84375 3.617188 -0.972656 3.828125 -1.234375 C 4.035156 -1.503906 4.140625 -1.878906 4.140625 -2.359375 C 4.140625 -2.828125 4.035156 -3.1875 3.828125 -3.4375 C 3.628906 -3.6875 3.335938 -3.8125 2.953125 -3.8125 C 2.578125 -3.8125 2.285156 -3.679688 2.078125 -3.421875 C 1.878906 -3.171875 1.78125 -2.804688 1.78125 -2.328125 C 1.78125 -1.847656 1.878906 -1.476562 2.078125 -1.21875 C 2.285156 -0.96875 2.578125 -0.84375 2.953125 -0.84375 Z M 2.953125 -0.84375 " /></g></g></g>
831                    <g fill="#ffffff" fill-opacity="1"><g transform="translate(93.352649, 9.31336)"><g><path d="M 3.84375 -4.375 C 3.882812 -4.488281 3.945312 -4.570312 4.03125 -4.625 C 4.125 -4.675781 4.21875 -4.703125 4.3125 -4.703125 C 4.457031 -4.703125 4.585938 -4.65625 4.703125 -4.5625 C 4.828125 -4.46875 4.890625 -4.347656 4.890625 -4.203125 C 4.890625 -4.128906 4.867188 -4.054688 4.828125 -3.984375 L 2.25 1.421875 C 2.144531 1.640625 1.976562 1.75 1.75 1.75 C 1.601562 1.75 1.472656 1.703125 1.359375 1.609375 C 1.253906 1.515625 1.203125 1.398438 1.203125 1.265625 C 1.203125 1.191406 1.21875 1.113281 1.25 1.03125 L 1.90625 -0.328125 L 0.140625 -3.984375 C 0.109375 -4.046875 0.09375 -4.117188 0.09375 -4.203125 C 0.09375 -4.347656 0.15625 -4.46875 0.28125 -4.5625 C 0.40625 -4.664062 0.546875 -4.71875 0.703125 -4.71875 C 0.804688 -4.71875 0.898438 -4.691406 0.984375 -4.640625 C 1.078125 -4.585938 1.148438 -4.503906 1.203125 -4.390625 L 2.53125 -1.46875 Z M 3.84375 -4.375 " /></g></g></g>
832                </svg>
833        </a>
834    </div>
835
836</body>
837</html>
838<script type="text/javascript">
839    function ToggleActive() {
840        var elementBurger = document.getElementById("navbar-burger");
841        var elementMenu = document.getElementById("navbarBasicExample");
842
843        elementBurger.classList.toggle("is-active");
844        elementMenu.classList.toggle("is-active");
845    }
846
847    document.addEventListener('DOMContentLoaded', () => {
848        setColor('#2a385b', '#D4D7DE');
849    });
850</script>

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.