<script data-pm-proxy="intercept"></script><?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" xmlns:googleplay="http://www.google.com/schemas/play-podcasts/1.0"><channel><title><![CDATA[The Data Engineering Insider]]></title><description><![CDATA[Learn Data Engineering or become a Data Engineering trainer]]></description><link>https://andreaskretz.substack.com</link><image><url>https://substackcdn.com/image/fetch/$s_!5-Kg!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8199a1d8-b616-4c2e-94d5-6c3a4c8ac48a_1080x1080.png</url><title>The Data Engineering Insider</title><link>https://andreaskretz.substack.com</link></image><generator>Substack</generator><lastBuildDate>Thu, 03 Sep 2026 16:09:36 GMT</lastBuildDate><atom:link href="/__u/andreaskretz.substack.com/feed" rel="self" type="application/rss+xml"/><copyright><![CDATA[Andreas Kretz]]></copyright><language><![CDATA[en]]></language><webMaster><![CDATA[andreaskretz@substack.com]]></webMaster><itunes:owner><itunes:email><![CDATA[andreaskretz@substack.com]]></itunes:email><itunes:name><![CDATA[Andreas Kretz]]></itunes:name></itunes:owner><itunes:author><![CDATA[Andreas Kretz]]></itunes:author><googleplay:owner><![CDATA[andreaskretz@substack.com]]></googleplay:owner><googleplay:email><![CDATA[andreaskretz@substack.com]]></googleplay:email><googleplay:author><![CDATA[Andreas Kretz]]></googleplay:author><itunes:block><![CDATA[Yes]]></itunes:block><item><title><![CDATA[Startups, Small Business, or Corporate: Where Should You Apply?]]></title><description><![CDATA[If you&#8217;re job hunting right now, you need to understand the differences between startups, small businesses, and larger corporations.]]></description><link>https://andreaskretz.substack.com/p/startups-small-business-or-corporate</link><guid isPermaLink="false">https://andreaskretz.substack.com/p/startups-small-business-or-corporate</guid><dc:creator><![CDATA[Andreas Kretz]]></dc:creator><pubDate>Thu, 03 Sep 2026 14:56:28 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!yryU!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5b1bdaaa-0680-4ade-a8a4-17f64b802fe5_1280x720.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!yryU!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5b1bdaaa-0680-4ade-a8a4-17f64b802fe5_1280x720.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!yryU!, /__u/andreaskretz.substack.com/w_424, /__u/andreaskretz.substack.com/c_limit, /__u/andreaskretz.substack.com/f_webp, /__u/andreaskretz.substack.com/q_auto:good, /__u/andreaskretz.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5b1bdaaa-0680-4ade-a8a4-17f64b802fe5_1280x720.png 424w, /__u/substackcdn.com/image/fetch/$s_!yryU!, /__u/andreaskretz.substack.com/w_848, /__u/andreaskretz.substack.com/c_limit, /__u/andreaskretz.substack.com/f_webp, /__u/andreaskretz.substack.com/q_auto:good, /__u/andreaskretz.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5b1bdaaa-0680-4ade-a8a4-17f64b802fe5_1280x720.png 848w, /__u/substackcdn.com/image/fetch/$s_!yryU!, /__u/andreaskretz.substack.com/w_1272, /__u/andreaskretz.substack.com/c_limit, /__u/andreaskretz.substack.com/f_webp, /__u/andreaskretz.substack.com/q_auto:good, /__u/andreaskretz.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5b1bdaaa-0680-4ade-a8a4-17f64b802fe5_1280x720.png 1272w, /__u/substackcdn.com/image/fetch/$s_!yryU!, /__u/andreaskretz.substack.com/w_1456, /__u/andreaskretz.substack.com/c_limit, /__u/andreaskretz.substack.com/f_webp, /__u/andreaskretz.substack.com/q_auto:good, /__u/andreaskretz.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5b1bdaaa-0680-4ade-a8a4-17f64b802fe5_1280x720.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!yryU!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5b1bdaaa-0680-4ade-a8a4-17f64b802fe5_1280x720.png" width="1280" height="720" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/5b1bdaaa-0680-4ade-a8a4-17f64b802fe5_1280x720.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:720,&quot;width&quot;:1280,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:799832,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://andreaskretz.substack.com/i/214020949?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5b1bdaaa-0680-4ade-a8a4-17f64b802fe5_1280x720.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!yryU!, /__u/andreaskretz.substack.com/w_424, /__u/andreaskretz.substack.com/c_limit, /__u/andreaskretz.substack.com/f_auto, /__u/andreaskretz.substack.com/q_auto:good, /__u/andreaskretz.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5b1bdaaa-0680-4ade-a8a4-17f64b802fe5_1280x720.png 424w, /__u/substackcdn.com/image/fetch/$s_!yryU!, /__u/andreaskretz.substack.com/w_848, /__u/andreaskretz.substack.com/c_limit, /__u/andreaskretz.substack.com/f_auto, /__u/andreaskretz.substack.com/q_auto:good, /__u/andreaskretz.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5b1bdaaa-0680-4ade-a8a4-17f64b802fe5_1280x720.png 848w, /__u/substackcdn.com/image/fetch/$s_!yryU!, /__u/andreaskretz.substack.com/w_1272, /__u/andreaskretz.substack.com/c_limit, /__u/andreaskretz.substack.com/f_auto, /__u/andreaskretz.substack.com/q_auto:good, /__u/andreaskretz.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5b1bdaaa-0680-4ade-a8a4-17f64b802fe5_1280x720.png 1272w, /__u/substackcdn.com/image/fetch/$s_!yryU!, /__u/andreaskretz.substack.com/w_1456, /__u/andreaskretz.substack.com/c_limit, /__u/andreaskretz.substack.com/f_auto, /__u/andreaskretz.substack.com/q_auto:good, /__u/andreaskretz.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5b1bdaaa-0680-4ade-a8a4-17f64b802fe5_1280x720.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>If you&#8217;re job hunting right now, you need to understand the differences between startups, small businesses, and larger corporations. They all have their plus and their negatives, and picking the wrong one can waste months of your search.</p><h3><strong>Startups: Versatile, But Risky Right Now</strong></h3><p>Startups are very versatile work-wise, and that is good. Small teams mean every day is different, and you actually get a chance to move something, which you rarely get in a bigger company. Salary can be good, can be bad, depending on the startup, and stock options are the same story: can be good, can be bad.</p><p>The negative: startups are looking for specialists, especially now. They are usually not for beginners, because people need to be ready for the job from day one, there&#8217;s no time to slowly ramp you up. That&#8217;s not good for job security, and smaller teams aren&#8217;t great for career development either, simply because there aren&#8217;t that many jobs available inside the company, so there&#8217;s nowhere internally to grow into.</p><p>My honest opinion: with startups, most likely you will be in trouble right now.</p><h3><strong>Small Business: Startup-Like, But Steadier</strong></h3><p>For data jobs especially, small businesses feel very startup-like. You get higher job security than at a startup, which is a real plus, but salary-wise these are usually not so good, so you&#8217;re trading money for stability.</p><p>The resources to grow usually go to the main business, and the small business doesn&#8217;t get much of that, so don&#8217;t expect a big training budget or fancy tools. But you still get the chance to move something, and the work is versatile, just like at a startup, so you get some of the startup upside without quite as much of the risk. That&#8217;s the trade-off.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://andreaskretz.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading The Data Engineering Insider! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><h3><strong>Larger Corporations: My Actual Tip</strong></h3><p>Everybody wants to work at FAANG, but there are plenty of other corporate jobs out there too.</p><p>The good: corporations usually have entry level jobs even now, because they can actually afford it. You get a lot of on-the-job training, because again, they can afford it, and there are lots of resources available for the job itself. Job security is better, although you know how it is right now. Even the larger companies are in trouble.</p><p>Career development is usually better too, with real on-the-job training, and you can move to another job pretty easily because the company is so big. There&#8217;s another opening somewhere else within a three hundred thousand people company, right? Salary is also very often very good, because they can afford it, and they want the best people, so they pay for it.</p><p>The negative here is really big, and you need to understand this: well-defined platforms with tools and pipelines, Facebook for instance. You can&#8217;t move a lot here. You are inside a platform that is already done, so your chance of moving around is limited. On top of that, corporate structure and processes, bureaucracy and politics, is super strong here.</p><h3><strong>So Where Should You Apply?</strong></h3><p>Keep all of that in mind, because it&#8217;s a difficult call. But my tip: corporations. That is the one thing I would apply for right now, and also medium businesses.</p><p>What&#8217;s your experience: startup, small business, or corporate? Leave a comment.</p><p>***</p><p>Ready to become a Data Engineer? Then join my <strong><a href="https://learndataengineering.com/p/academy">Learn Data Engineering Academy</a></strong> today!</p><p>Looking for free hands-on projects and tutorials? Then check out my <strong><a href="https://learndataengineering.com/p/free-labs">Free Labs</a></strong>.</p><p>More Data Engineering content on: <strong><a href="https://www.youtube.com/@andreaskayy">YouTube</a></strong> | <strong><a href="https://www.linkedin.com/in/andreas-kretz/">LinkedIn</a></strong> | <strong><a href="https://open.spotify.com/show/529Q58D0db7bI8p6NKaRjU?si=jZCozvp6QguTiooiMJpZMQ">Spotify</a></strong></p>]]></content:encoded></item><item><title><![CDATA[How to Build Data Engineering Skills That Actually Combine]]></title><description><![CDATA[Most courses teach you one tool and leave it there.]]></description><link>https://andreaskretz.substack.com/p/how-to-build-data-engineering-skills</link><guid isPermaLink="false">https://andreaskretz.substack.com/p/how-to-build-data-engineering-skills</guid><dc:creator><![CDATA[Andreas Kretz]]></dc:creator><pubDate>Tue, 25 Aug 2026 15:02:21 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!HY4p!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F385bffc9-b592-4cfc-b2f2-fed40ce55872_1280x720.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!HY4p!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F385bffc9-b592-4cfc-b2f2-fed40ce55872_1280x720.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!HY4p!, /__u/andreaskretz.substack.com/w_424, /__u/andreaskretz.substack.com/c_limit, /__u/andreaskretz.substack.com/f_webp, /__u/andreaskretz.substack.com/q_auto:good, /__u/andreaskretz.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F385bffc9-b592-4cfc-b2f2-fed40ce55872_1280x720.png 424w, /__u/substackcdn.com/image/fetch/$s_!HY4p!, /__u/andreaskretz.substack.com/w_848, /__u/andreaskretz.substack.com/c_limit, /__u/andreaskretz.substack.com/f_webp, /__u/andreaskretz.substack.com/q_auto:good, /__u/andreaskretz.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F385bffc9-b592-4cfc-b2f2-fed40ce55872_1280x720.png 848w, /__u/substackcdn.com/image/fetch/$s_!HY4p!, /__u/andreaskretz.substack.com/w_1272, /__u/andreaskretz.substack.com/c_limit, /__u/andreaskretz.substack.com/f_webp, /__u/andreaskretz.substack.com/q_auto:good, /__u/andreaskretz.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F385bffc9-b592-4cfc-b2f2-fed40ce55872_1280x720.png 1272w, /__u/substackcdn.com/image/fetch/$s_!HY4p!, /__u/andreaskretz.substack.com/w_1456, /__u/andreaskretz.substack.com/c_limit, /__u/andreaskretz.substack.com/f_webp, /__u/andreaskretz.substack.com/q_auto:good, /__u/andreaskretz.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F385bffc9-b592-4cfc-b2f2-fed40ce55872_1280x720.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!HY4p!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F385bffc9-b592-4cfc-b2f2-fed40ce55872_1280x720.png" width="1280" height="720" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/385bffc9-b592-4cfc-b2f2-fed40ce55872_1280x720.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:720,&quot;width&quot;:1280,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1268742,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://andreaskretz.substack.com/i/212713432?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F385bffc9-b592-4cfc-b2f2-fed40ce55872_1280x720.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!HY4p!, /__u/andreaskretz.substack.com/w_424, /__u/andreaskretz.substack.com/c_limit, /__u/andreaskretz.substack.com/f_auto, /__u/andreaskretz.substack.com/q_auto:good, /__u/andreaskretz.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F385bffc9-b592-4cfc-b2f2-fed40ce55872_1280x720.png 424w, /__u/substackcdn.com/image/fetch/$s_!HY4p!, /__u/andreaskretz.substack.com/w_848, /__u/andreaskretz.substack.com/c_limit, /__u/andreaskretz.substack.com/f_auto, /__u/andreaskretz.substack.com/q_auto:good, /__u/andreaskretz.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F385bffc9-b592-4cfc-b2f2-fed40ce55872_1280x720.png 848w, /__u/substackcdn.com/image/fetch/$s_!HY4p!, /__u/andreaskretz.substack.com/w_1272, /__u/andreaskretz.substack.com/c_limit, /__u/andreaskretz.substack.com/f_auto, /__u/andreaskretz.substack.com/q_auto:good, /__u/andreaskretz.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F385bffc9-b592-4cfc-b2f2-fed40ce55872_1280x720.png 1272w, /__u/substackcdn.com/image/fetch/$s_!HY4p!, /__u/andreaskretz.substack.com/w_1456, /__u/andreaskretz.substack.com/c_limit, /__u/andreaskretz.substack.com/f_auto, /__u/andreaskretz.substack.com/q_auto:good, /__u/andreaskretz.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F385bffc9-b592-4cfc-b2f2-fed40ce55872_1280x720.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><span>Most courses teach you one tool and leave it there. That&#8217;s not how real engineering work goes.</span></p><p>We put six free labs on <strong><a href="https://learndataengineering.com/p/free-labs">Learn Data Engineering</a></strong>, covering Docker, Python, Kestra, Exasol, DuckDB, and Databricks, and no single one teaches you everything you need. But go through all six, and the skills start connecting in ways that actually matter on a real project.</p><h3><strong>Docker: The One You Can&#8217;t Avoid</strong></h3><p>Docker is one of those skills every engineer needs sooner or later, even if it&#8217;s just for a quick job that has nothing to do with a big architecture.</p><p>In the lab you learn to deploy tools using pre-built images, but also how to build your own custom images that run Python code so you can process data anywhere, not just on your laptop. You even publish your own image to a registry so other people can pull and use it.</p><p>That last part is the moment it clicks: you&#8217;re not just using Docker, you&#8217;re distributing your own work with it.</p><p>&#128073; <strong><a href="https://learndataengineering.com/p/docker-fundamentals">Try the free Docker Lab</a></strong></p><h3><strong>Python: The Language That Shows Up Everywhere Else</strong></h3><p>Python is the connective tissue between almost every other lab. You work with data files, transform data, call APIs, talk to databases, and on top of that you implement logging, validation, and tests, the stuff that separates a script from something you can actually trust in production.</p><p>And here&#8217;s the thing: everything you build in Python can be packaged straight into the Docker images from the lab before. Whether it&#8217;s an AWS Lambda function, a Spark job on Databricks, or a quick exploration script, it&#8217;s Python underneath, and Kestra can schedule all of it.</p><p>&#128073; <strong><a href="https://learndataengineering.com/p/python-for-data-engineers">Try the free Python Lab</a></strong></p><h3><strong>Kestra: Making the Chaos Visible</strong></h3><p>Orchestration is needed everywhere, and without it engineers are basically lost. Kestra doesn&#8217;t process your data itself, it manages what happens and makes problems visible when something breaks, which is a distinction a lot of people miss.</p><p>In the lab you observe and maintain pipelines, connect to Google Cloud services like BigQuery to build a medallion architecture, and set up event-driven pipelines with message queues that react the moment something happens instead of running on a fixed schedule.</p><p>This lab is a good example of how orchestrator tools, no matter which one you pick, sit on top of the actual processing engines, and it shows you how to do that well.</p><p>&#128073; <strong><a href="https://learndataengineering.com/p/building-advanced-pipelines-with-kestra">Try the free Kestra Lab</a></strong></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://andreaskretz.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading The Data Engineering Insider! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><h3><strong>Exasol: What Scaling Actually Feels Like</strong></h3><p>Just focusing on platform-as-a-service tools is lazy. At some point you need to understand how a self-hosted database actually works, and Exasol forces that. You deploy a horizontally scalable analytics database on your own cloud, and you get hands-on with partition and distribution keys, the stuff that decides whether your cluster performs or falls over.</p><p>You also scale the cluster yourself and feel the difference, and you run Python processing directly inside the database, callable from plain SQL. Even ML and LLMs run inside it now, and the simplicity of that is what stands out: a database being more than just read and write operations is one of the more interesting things you can experience in this lab.</p><p>&#128073; <strong><a href="https://learndataengineering.com/p/high-performance-data-analysis-with-exasol">Try the free Exasol Lab</a></strong></p><h3><strong>DuckDB &amp; MotherDuck: Killing the Pandas Habit</strong></h3><p>DuckDB gives you a super simple OLAP store, and it&#8217;s great to learn precisely because it&#8217;s so lightweight, you set it up with a single Python import. More and more people are dropping files into a quick DuckDB instance and transforming them with SQL instead of writing pages of pandas code, and once you try it, it&#8217;s obvious why.</p><p>MotherDuck takes it further as a lighter alternative to platforms like Snowflake, and combined with DuckDB you can run one query that spans local and cloud data at the same time, with the workload split between the two. Best of both worlds, and it&#8217;s easier than it sounds.</p><p>&#128073; <strong><a href="https://learndataengineering.com/p/duckdb-for-data-engineers-from-local-to-cloud-with-motherduck">Try the free DuckDB &amp; MotherDuck Lab</a></strong></p><h3><strong>Databricks: Where It All Comes Together</strong></h3><p>Databricks is THE data platform right now, still growing fast, and the free tier makes it accessible to everyone. The lab shows you how to build ETL and streaming pipelines entirely in SQL through declarative pipelines, and how to use the Lakeflow designer to build pipelines with drag and drop and AI assistance instead of writing everything by hand.</p><p>You also implement streaming with AWS Kinesis so data gets processed the moment it lands, and you use Genie to just ask questions about your data in plain English.</p><p>It&#8217;s a great addition to normal PySpark work, not a replacement, and that&#8217;s an important distinction. A lot of people think Databricks is only for building a star schema or a medallion architecture, but most of the real use cases in this lab don&#8217;t even touch that.</p><p>&#128073; <strong><a href="https://learndataengineering.com/p/spark-declarative-pipelines-lakeflow-designer-on-databricks">Try the free Databricks Lab</a></strong></p><h3><strong>It&#8217;s Never Really About One Tool</strong></h3><p>That&#8217;s the actual point of building it this way. In a real job you rarely touch just one of these tools, you combine them depending on what the project needs.</p><p>A typical setup: you write your transformation logic in Python, package it into a Docker image so it runs the same way locally and in the cloud, and let Kestra schedule and monitor the whole thing so you actually know when something breaks.</p><p>Where that pipeline lands changes with the use case. If you need serious horizontal scale on infrastructure you control, Exasol is where the Python-in-database features and clustering skills from the lab pay off.</p><p>If you just need to explore a file quickly or hand a colleague a lightweight analytics layer, DuckDB and MotherDuck cover that without spinning up anything heavy.</p><p>And if the whole thing is a proper streaming pipeline into a lakehouse with Kinesis feeding it in real time, that&#8217;s Databricks territory, running on the same Python skills but now inside PySpark and declarative pipelines instead of a plain script.</p><p>None of these labs exist in isolation, and neither does real engineering work. All six are <strong><a href="https://learndataengineering.com/p/free-labs">available for free in our Free Labs section</a></strong>.</p><p>Which one would you start with first?</p><p>If you have any career questions let me know. I&#8217;m happy to help!</p><p>Andreas</p><p>***</p><p>Ready to become a Data Engineer? Then join my <strong><a href="https://learndataengineering.com/p/academy">Learn Data Engineering Academy</a></strong> today!</p><p>Looking for free hands-on projects and tutorials? Then check out my <strong><a href="https://learndataengineering.com/p/free-labs">Free Labs</a></strong>.</p><p>More Data Engineering content on: <strong><a href="https://www.youtube.com/@andreaskayy">YouTube</a></strong> | <strong><a href="https://www.linkedin.com/in/andreas-kretz/">LinkedIn</a></strong> | <strong><a href="https://open.spotify.com/show/529Q58D0db7bI8p6NKaRjU?si=jZCozvp6QguTiooiMJpZMQ">Spotify</a></strong></p>]]></content:encoded></item><item><title><![CDATA[How to turn your GitHub from a junk drawer into something recruiters actually stop on]]></title><description><![CDATA[I look at a lot of GitHub profiles through my coaching students, and most of them make the same mistake.]]></description><link>https://andreaskretz.substack.com/p/how-to-turn-your-github-from-a-junk</link><guid isPermaLink="false">https://andreaskretz.substack.com/p/how-to-turn-your-github-from-a-junk</guid><dc:creator><![CDATA[Andreas Kretz]]></dc:creator><pubDate>Wed, 19 Aug 2026 14:32:24 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!eAoK!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F913c4738-3363-4b01-adb8-4ee1d41074b6_1280x720.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!eAoK!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F913c4738-3363-4b01-adb8-4ee1d41074b6_1280x720.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!eAoK!, /__u/andreaskretz.substack.com/w_424, /__u/andreaskretz.substack.com/c_limit, /__u/andreaskretz.substack.com/f_webp, /__u/andreaskretz.substack.com/q_auto:good, /__u/andreaskretz.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F913c4738-3363-4b01-adb8-4ee1d41074b6_1280x720.png 424w, /__u/substackcdn.com/image/fetch/$s_!eAoK!, /__u/andreaskretz.substack.com/w_848, /__u/andreaskretz.substack.com/c_limit, /__u/andreaskretz.substack.com/f_webp, /__u/andreaskretz.substack.com/q_auto:good, /__u/andreaskretz.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F913c4738-3363-4b01-adb8-4ee1d41074b6_1280x720.png 848w, /__u/substackcdn.com/image/fetch/$s_!eAoK!, /__u/andreaskretz.substack.com/w_1272, /__u/andreaskretz.substack.com/c_limit, /__u/andreaskretz.substack.com/f_webp, /__u/andreaskretz.substack.com/q_auto:good, /__u/andreaskretz.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F913c4738-3363-4b01-adb8-4ee1d41074b6_1280x720.png 1272w, /__u/substackcdn.com/image/fetch/$s_!eAoK!, /__u/andreaskretz.substack.com/w_1456, /__u/andreaskretz.substack.com/c_limit, /__u/andreaskretz.substack.com/f_webp, /__u/andreaskretz.substack.com/q_auto:good, /__u/andreaskretz.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F913c4738-3363-4b01-adb8-4ee1d41074b6_1280x720.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!eAoK!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F913c4738-3363-4b01-adb8-4ee1d41074b6_1280x720.png" width="1280" height="720" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/913c4738-3363-4b01-adb8-4ee1d41074b6_1280x720.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:720,&quot;width&quot;:1280,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1264453,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://andreaskretz.substack.com/i/211865066?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F913c4738-3363-4b01-adb8-4ee1d41074b6_1280x720.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!eAoK!, /__u/andreaskretz.substack.com/w_424, /__u/andreaskretz.substack.com/c_limit, /__u/andreaskretz.substack.com/f_auto, /__u/andreaskretz.substack.com/q_auto:good, /__u/andreaskretz.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F913c4738-3363-4b01-adb8-4ee1d41074b6_1280x720.png 424w, /__u/substackcdn.com/image/fetch/$s_!eAoK!, /__u/andreaskretz.substack.com/w_848, /__u/andreaskretz.substack.com/c_limit, /__u/andreaskretz.substack.com/f_auto, /__u/andreaskretz.substack.com/q_auto:good, /__u/andreaskretz.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F913c4738-3363-4b01-adb8-4ee1d41074b6_1280x720.png 848w, /__u/substackcdn.com/image/fetch/$s_!eAoK!, /__u/andreaskretz.substack.com/w_1272, /__u/andreaskretz.substack.com/c_limit, /__u/andreaskretz.substack.com/f_auto, /__u/andreaskretz.substack.com/q_auto:good, /__u/andreaskretz.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F913c4738-3363-4b01-adb8-4ee1d41074b6_1280x720.png 1272w, /__u/substackcdn.com/image/fetch/$s_!eAoK!, /__u/andreaskretz.substack.com/w_1456, /__u/andreaskretz.substack.com/c_limit, /__u/andreaskretz.substack.com/f_auto, /__u/andreaskretz.substack.com/q_auto:good, /__u/andreaskretz.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F913c4738-3363-4b01-adb8-4ee1d41074b6_1280x720.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><span>I look at a lot of GitHub profiles through my coaching students, and most of them make the same mistake. A pile of repos, no descriptions, no context, and then that link gets attached to a CV and nobody&#8217;s impressed. Here&#8217;s how to actually fix it, step by step.</span></p><h3><strong>Step 1: Build your profile README</strong></h3><p>GitHub lets you create a special repo, the same name as your username, and whatever you put in its README.md shows up right at the top of your profile page.</p><p>Most people don&#8217;t even know this exists. Create it, add a README.md, and use it to introduce yourself, what you do, what you&#8217;re learning, and what you&#8217;re working on right now. You can use Claude or ChatGPT to help you write the first draft, but make it sound like you, not like a corporate bio.</p><p>A short intro, a few lines about your focus area, and maybe a small list of your current projects is enough. Don&#8217;t overthink this one, it just needs to exist and look intentional.</p><h3><strong>Step 2: Pick which projects actually deserve a spot</strong></h3><p>Before you touch a single README, look at your repo list and be honest. Not every project needs to be public, and not every project needs a portfolio treatment. Pick two or three that actually show real skills, a full pipeline, a project with some complexity, something that took real decisions to build. A tutorial you followed once doesn&#8217;t count. Quality beats quantity here every time.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://andreaskretz.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading The Data Engineering Insider! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><h3><strong>Step 3: Write a real README for each project</strong></h3><p>This is the step almost everyone skips, and it&#8217;s the one that matters most. If someone opens your project and can&#8217;t tell what it does in ten seconds, you&#8217;ve already lost them. I&#8217;ve used the same structure with coaching students for years, and it works.</p><p>Start with a title and a short intro, what the project is and what your goal was building it. Add a screenshot of the architecture, even a simple one drawn in <strong><a href="http://draw.io/">draw.io</a></strong> is fine. Then talk about the dataset, what it actually is, how much data you&#8217;re working with, and how much it could realistically be in production.</p><p>Mention any constraints you had, because you can&#8217;t just say you spent thousands of dollars on cloud infrastructure for a portfolio project, and being honest about your limits actually reads as more credible, not less.</p><p>List the tools you used, and then break the technical side into categories. I always use Connect for data integration and ingestion, Buffer for anything with message queues, Processing for the transformation logic, Storage, Visualization, and don&#8217;t forget Orchestration and Observability if you have them.</p><p>Show off your actual pipelines, stream processing, batch processing, whatever you built, and add screenshots or even a short demo GIF if you can.</p><h3><strong>Step 4: Add the part people never think to include</strong></h3><p>End with what you learned and what broke along the way. This is the part that actually builds trust, because it shows you understand your own project instead of just copying a tutorial. A short TLDR conclusion at the end helps too, some people will only read the top and the bottom.</p><h3><strong>Step 5: Use a template so you&#8217;re not starting from zero</strong></h3><p>I put a <strong><a href="https://github.com/andkret/Cookbook/blob/master/Code%20Examples/template-readme.md">full portfolio README template in my free data engineering cookbook</a></strong>, the exact one I use with my coaching students. You don&#8217;t need to build this structure from scratch every time, just drop the template into your project, fill it in, and you&#8217;re done.</p><p>Doing this for even two or three projects makes a real difference for anyone who lands on your GitHub. They understand what you built, how you think, and what you actually learned, instead of just scrolling past a list of repos that mean nothing to them.</p><p>Is your GitHub actually telling your story right now, or is it just sitting there?</p><p>***</p><p>Ready to become a Data Engineer? Then join my <strong><a href="https://learndataengineering.com/p/academy">Learn Data Engineering Academy</a></strong> today!</p><p>Looking for free hands-on projects and tutorials? Then check out my <strong><a href="https://learndataengineering.com/p/free-labs">Free Labs</a></strong>.</p><p>More Data Engineering content on: <strong><a href="https://www.youtube.com/@andreaskayy">YouTube</a></strong> | <strong><a href="https://www.linkedin.com/in/andreas-kretz/">LinkedIn</a></strong> | <strong><a href="https://open.spotify.com/show/529Q58D0db7bI8p6NKaRjU?si=jZCozvp6QguTiooiMJpZMQ">Spotify</a></strong></p>]]></content:encoded></item><item><title><![CDATA[7 Python Topics You Still Need To Understand (Even If AI Writes The Code)]]></title><description><![CDATA[AI writes most of the code now.]]></description><link>https://andreaskretz.substack.com/p/7-python-topics-you-still-need-to</link><guid isPermaLink="false">https://andreaskretz.substack.com/p/7-python-topics-you-still-need-to</guid><dc:creator><![CDATA[Andreas Kretz]]></dc:creator><pubDate>Thu, 13 Aug 2026 15:30:28 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!gB70!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa13c2815-b2d0-43a2-aed9-856c9527e5ae_1280x720.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!gB70!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa13c2815-b2d0-43a2-aed9-856c9527e5ae_1280x720.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!gB70!, /__u/andreaskretz.substack.com/w_424, /__u/andreaskretz.substack.com/c_limit, /__u/andreaskretz.substack.com/f_webp, /__u/andreaskretz.substack.com/q_auto:good, /__u/andreaskretz.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa13c2815-b2d0-43a2-aed9-856c9527e5ae_1280x720.png 424w, /__u/substackcdn.com/image/fetch/$s_!gB70!, /__u/andreaskretz.substack.com/w_848, /__u/andreaskretz.substack.com/c_limit, /__u/andreaskretz.substack.com/f_webp, /__u/andreaskretz.substack.com/q_auto:good, /__u/andreaskretz.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa13c2815-b2d0-43a2-aed9-856c9527e5ae_1280x720.png 848w, /__u/substackcdn.com/image/fetch/$s_!gB70!, /__u/andreaskretz.substack.com/w_1272, /__u/andreaskretz.substack.com/c_limit, /__u/andreaskretz.substack.com/f_webp, /__u/andreaskretz.substack.com/q_auto:good, /__u/andreaskretz.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa13c2815-b2d0-43a2-aed9-856c9527e5ae_1280x720.png 1272w, /__u/substackcdn.com/image/fetch/$s_!gB70!, /__u/andreaskretz.substack.com/w_1456, /__u/andreaskretz.substack.com/c_limit, /__u/andreaskretz.substack.com/f_webp, /__u/andreaskretz.substack.com/q_auto:good, /__u/andreaskretz.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa13c2815-b2d0-43a2-aed9-856c9527e5ae_1280x720.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!gB70!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa13c2815-b2d0-43a2-aed9-856c9527e5ae_1280x720.png" width="1280" height="720" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a13c2815-b2d0-43a2-aed9-856c9527e5ae_1280x720.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:720,&quot;width&quot;:1280,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:695302,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://andreaskretz.substack.com/i/211018323?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa13c2815-b2d0-43a2-aed9-856c9527e5ae_1280x720.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!gB70!, /__u/andreaskretz.substack.com/w_424, /__u/andreaskretz.substack.com/c_limit, /__u/andreaskretz.substack.com/f_auto, /__u/andreaskretz.substack.com/q_auto:good, /__u/andreaskretz.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa13c2815-b2d0-43a2-aed9-856c9527e5ae_1280x720.png 424w, /__u/substackcdn.com/image/fetch/$s_!gB70!, /__u/andreaskretz.substack.com/w_848, /__u/andreaskretz.substack.com/c_limit, /__u/andreaskretz.substack.com/f_auto, /__u/andreaskretz.substack.com/q_auto:good, /__u/andreaskretz.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa13c2815-b2d0-43a2-aed9-856c9527e5ae_1280x720.png 848w, /__u/substackcdn.com/image/fetch/$s_!gB70!, /__u/andreaskretz.substack.com/w_1272, /__u/andreaskretz.substack.com/c_limit, /__u/andreaskretz.substack.com/f_auto, /__u/andreaskretz.substack.com/q_auto:good, /__u/andreaskretz.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa13c2815-b2d0-43a2-aed9-856c9527e5ae_1280x720.png 1272w, /__u/substackcdn.com/image/fetch/$s_!gB70!, /__u/andreaskretz.substack.com/w_1456, /__u/andreaskretz.substack.com/c_limit, /__u/andreaskretz.substack.com/f_auto, /__u/andreaskretz.substack.com/q_auto:good, /__u/andreaskretz.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa13c2815-b2d0-43a2-aed9-856c9527e5ae_1280x720.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><span>AI writes most of the code now. I still think you need to understand what&#8217;s happening under it, and that comes down to seven Python topics. Not exotic ones. The boring stuff that shows up in every real pipeline.</span></p><h4><strong>Exception handling and logging</strong></h4><p>Things break. APIs time out, files are missing, a column that used to be an integer suddenly isn&#8217;t. You need to catch that, and you need to log it somewhere, a file, a database, CloudWatch, whatever you&#8217;re using.</p><p>Without this, a pipeline just fails silently at 3am and you find out from an angry Slack message the next morning.</p><p>And it&#8217;s not just about catching the error, it&#8217;s about catching the right error.</p><p>Wrapping an entire script in one giant try/except that swallows everything is a common shortcut, and it&#8217;s a bad one, because now the pipeline looks &#8220;fine&#8221; while it&#8217;s quietly skipping half the data. That&#8217;s worse than no error handling at all, because now you trust a number that&#8217;s wrong.</p><p>Catch specific exceptions, log what actually happened, and let the things you didn&#8217;t expect actually blow up so you notice them.</p><h4><strong>Datetime</strong></h4><p>Timestamps are everywhere, and they cause more bugs than people expect. Timezones, daylight saving, string formats that look identical but parse completely differently.</p><p>I&#8217;ve seen a pipeline break because one system logged UTC and another logged local time, and nobody noticed until a report was off by an hour.</p><p>Get comfortable with datetime early, it saves you a debugging session later.</p><p>The annoying part is that these bugs almost never show up in testing. Everything works fine for months, and then daylight saving flips or a partner system switches formats, and suddenly a join that used to match perfectly is off by an hour and nobody can figure out why.</p><p>Store everything in UTC internally and only convert to local time at the very last step, right before it&#8217;s shown to a human. That one habit alone prevents most of these headaches.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://andreaskretz.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading The Data Engineering Insider! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><h4><strong>JSON and JSON validation</strong></h4><p>Every API you touch speaks JSON. You send it, you receive it, and a lot of the data lying around in data lakes is JSON too.</p><p>The part people skip is validation. You get a payload, you assume the structure is what you expect, and then one day a field is missing and your whole job crashes downstream.</p><p>Tools like Pydantic will validate the shape of your JSON before it causes damage further down the pipeline.</p><p>Think about it this way, an upstream team changes an API without telling you, a field that used to always be there is suddenly optional, and your pipeline has no idea until it explodes three transformations later.</p><p>Validating at the point where data enters your system means you find out immediately, with a clear error, instead of hunting through five steps of transformations trying to figure out where a null crept in.</p><h4><strong>Unit testing</strong></h4><p>Whenever you write a transformation, you need to know if it actually does what you think it does. That&#8217;s unit testing.</p><p>The cool thing is, AI is genuinely good at writing these for you now, give it your function and it&#8217;ll spit out reasonable test cases in seconds. But you still need to understand what a good test actually checks, otherwise you&#8217;re just approving whatever the AI wrote without knowing if it&#8217;s testing the right thing.</p><p>I&#8217;ll be honest, this is the one that gets skipped the most, even by people who know better. It feels like it slows you down when you&#8217;re trying to ship something. But the one time a transformation silently drops rows on an edge case nobody thought of, a test would&#8217;ve caught it before it ever touched production.</p><p>It&#8217;s cheaper to write the test now than to explain to your manager why last week&#8217;s numbers were wrong.</p><h4><strong>Pandas</strong></h4><p>The big one. You need to work with dataframes, understand how to merge them, how to pivot them, how to group and aggregate.</p><p>I still see people trying to loop through rows manually instead of using vectorized operations, and it&#8217;s painfully slow on anything beyond a few thousand rows.</p><p>Pandas is one of those libraries where learning it properly once saves you from writing bad code for years.</p><p>Actually nowadays a lot of people also use DuckDB in python instead for quick transformations. Take the dataframe, write it into a duckdb database. DuckDB is basically just an imported library (If you don&#8217;t add a storage location then everything happens in memory.), do the transformation with SQL and then export the data again.</p><h4><strong>The requests library</strong></h4><p>Sending a request to an API sounds trivial until you&#8217;re doing it in production. Retries, timeouts, rate limits, handling a 429 response gracefully instead of just crashing.</p><p>The requests library is simple to start with, but there&#8217;s a real difference between a script that works once on your laptop and one that survives an API having a bad day.</p><p>That difference is basically invisible until the day it matters. Your script works perfectly in every test you run, and then it goes into production, the API has a rough afternoon, and your job either crashes completely or hammers the API with retries and gets you rate limited or blocked.</p><p>Adding exponential backoff and proper timeout handling takes maybe ten extra lines of code. It&#8217;s a small investment that separates a script from an actual production job.</p><h4><strong>Working with databases</strong></h4><p>Even a simple database setup, tables, SQL, and especially bulk loading. This is the one people underestimate the most.</p><p>Inserting rows one at a time works fine for a demo and falls apart completely once you&#8217;re loading real volumes of data. Bulk loading, whether that&#8217;s a COPY command in Postgres or a bulk insert method, is often the difference between a job that finishes in seconds and one that times out.</p><p>A pipeline that works great on a sample of a thousand rows can go live on the real dataset and just never finish, and by then it&#8217;s too late to fix it quietly. Nobody tells you this in school, but the way you load data matters just as much as the SQL you write to query it afterward.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://andreaskretz.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading The Data Engineering Insider! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><h4><strong>Why this still matters in the AI era</strong></h4><p>I know the argument, AI writes the code, so why learn the fundamentals.</p><p>Here&#8217;s the thing: when the AI-generated code breaks, and it will, you&#8217;re the one who has to read it, understand it, and fix it. You can&#8217;t debug what you don&#8217;t understand.</p><p>These seven topics are what let you actually own the code AI hands you, instead of just hoping it works.</p><p>In my Python for Data Engineers course, we&#8217;re covering all seven of these hands-on. It is available in my Free Labs Bundle until end of August.</p><p>In the bundle you&#8217;ll also find a Databricks course, Kestra for orchestration, DuckDB, Docker fundamentals, and more! <a href="https://learndataengineering.com/p/free-labs">Get the bundle here</a>.</p><p>Which of these seven do you think most people skip first?</p><p></p><p>***</p><p>Ready to become a Data Engineer? Then join my<span> </span><a href="https://learndataengineering.com/p/academy">Learn Data Engineering Academy</a><span> </span>today!</p><p>Looking for free hands-on projects and tutorials? Then check out my<span> </span><a href="https://learndataengineering.com/p/free-labs">Free Labs</a>.</p><p>More Data Engineering content on:<span> </span><a href="https://www.youtube.com/@andreaskayy">YouTube</a><span> </span>|<span> </span><a href="https://www.linkedin.com/in/andreas-kretz/">LinkedIn</a><span> </span>|<span> </span><a href="https://open.spotify.com/show/529Q58D0db7bI8p6NKaRjU?si=jZCozvp6QguTiooiMJpZMQ">Spotify</a></p>]]></content:encoded></item><item><title><![CDATA[AI Took Over the Doing Part in Engineering. Now What?]]></title><description><![CDATA[I&#8217;ve been thinking about how much engineering work has actually changed in the last few years.]]></description><link>https://andreaskretz.substack.com/p/ai-took-over-the-doing-part-in-engineering</link><guid isPermaLink="false">https://andreaskretz.substack.com/p/ai-took-over-the-doing-part-in-engineering</guid><dc:creator><![CDATA[Andreas Kretz]]></dc:creator><pubDate>Wed, 05 Aug 2026 14:58:26 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!eqZT!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F631e71ae-3fa1-42cf-a24c-77dffeb0418a_1280x720.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!eqZT!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F631e71ae-3fa1-42cf-a24c-77dffeb0418a_1280x720.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!eqZT!, /__u/andreaskretz.substack.com/w_424, /__u/andreaskretz.substack.com/c_limit, /__u/andreaskretz.substack.com/f_webp, /__u/andreaskretz.substack.com/q_auto:good, /__u/andreaskretz.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F631e71ae-3fa1-42cf-a24c-77dffeb0418a_1280x720.png 424w, /__u/substackcdn.com/image/fetch/$s_!eqZT!, /__u/andreaskretz.substack.com/w_848, /__u/andreaskretz.substack.com/c_limit, /__u/andreaskretz.substack.com/f_webp, /__u/andreaskretz.substack.com/q_auto:good, /__u/andreaskretz.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F631e71ae-3fa1-42cf-a24c-77dffeb0418a_1280x720.png 848w, /__u/substackcdn.com/image/fetch/$s_!eqZT!, /__u/andreaskretz.substack.com/w_1272, /__u/andreaskretz.substack.com/c_limit, /__u/andreaskretz.substack.com/f_webp, /__u/andreaskretz.substack.com/q_auto:good, /__u/andreaskretz.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F631e71ae-3fa1-42cf-a24c-77dffeb0418a_1280x720.png 1272w, /__u/substackcdn.com/image/fetch/$s_!eqZT!, /__u/andreaskretz.substack.com/w_1456, /__u/andreaskretz.substack.com/c_limit, /__u/andreaskretz.substack.com/f_webp, /__u/andreaskretz.substack.com/q_auto:good, /__u/andreaskretz.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F631e71ae-3fa1-42cf-a24c-77dffeb0418a_1280x720.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!eqZT!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F631e71ae-3fa1-42cf-a24c-77dffeb0418a_1280x720.png" width="1280" height="720" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/631e71ae-3fa1-42cf-a24c-77dffeb0418a_1280x720.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:720,&quot;width&quot;:1280,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:872267,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://andreaskretz.substack.com/i/209938261?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F631e71ae-3fa1-42cf-a24c-77dffeb0418a_1280x720.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!eqZT!, /__u/andreaskretz.substack.com/w_424, /__u/andreaskretz.substack.com/c_limit, /__u/andreaskretz.substack.com/f_auto, /__u/andreaskretz.substack.com/q_auto:good, /__u/andreaskretz.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F631e71ae-3fa1-42cf-a24c-77dffeb0418a_1280x720.png 424w, /__u/substackcdn.com/image/fetch/$s_!eqZT!, /__u/andreaskretz.substack.com/w_848, /__u/andreaskretz.substack.com/c_limit, /__u/andreaskretz.substack.com/f_auto, /__u/andreaskretz.substack.com/q_auto:good, /__u/andreaskretz.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F631e71ae-3fa1-42cf-a24c-77dffeb0418a_1280x720.png 848w, /__u/substackcdn.com/image/fetch/$s_!eqZT!, /__u/andreaskretz.substack.com/w_1272, /__u/andreaskretz.substack.com/c_limit, /__u/andreaskretz.substack.com/f_auto, /__u/andreaskretz.substack.com/q_auto:good, /__u/andreaskretz.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F631e71ae-3fa1-42cf-a24c-77dffeb0418a_1280x720.png 1272w, /__u/substackcdn.com/image/fetch/$s_!eqZT!, /__u/andreaskretz.substack.com/w_1456, /__u/andreaskretz.substack.com/c_limit, /__u/andreaskretz.substack.com/f_auto, /__u/andreaskretz.substack.com/q_auto:good, /__u/andreaskretz.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F631e71ae-3fa1-42cf-a24c-77dffeb0418a_1280x720.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>I&#8217;ve been thinking about how much engineering work has actually changed in the last few years. Development, debugging, optimization, all of it. So I sat down and went through it piece by piece, asking what we still do ourselves and what has quietly moved over to AI.</p><p>And honestly, the list got uncomfortable to write.</p><h3><strong>Development Is Mostly Gone Now</strong></h3><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!Kjeb!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F856c181d-775c-4217-a669-e77874a800a4_426x213.gif" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!Kjeb!, /__u/andreaskretz.substack.com/w_424, /__u/andreaskretz.substack.com/c_limit, /__u/andreaskretz.substack.com/f_webp, /__u/andreaskretz.substack.com/q_auto:good, /__u/andreaskretz.substack.com/fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F856c181d-775c-4217-a669-e77874a800a4_426x213.gif 424w, /__u/substackcdn.com/image/fetch/$s_!Kjeb!, /__u/andreaskretz.substack.com/w_848, /__u/andreaskretz.substack.com/c_limit, /__u/andreaskretz.substack.com/f_webp, /__u/andreaskretz.substack.com/q_auto:good, /__u/andreaskretz.substack.com/fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F856c181d-775c-4217-a669-e77874a800a4_426x213.gif 848w, /__u/substackcdn.com/image/fetch/$s_!Kjeb!, /__u/andreaskretz.substack.com/w_1272, /__u/andreaskretz.substack.com/c_limit, /__u/andreaskretz.substack.com/f_webp, /__u/andreaskretz.substack.com/q_auto:good, /__u/andreaskretz.substack.com/fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F856c181d-775c-4217-a669-e77874a800a4_426x213.gif 1272w, /__u/substackcdn.com/image/fetch/$s_!Kjeb!, /__u/andreaskretz.substack.com/w_1456, /__u/andreaskretz.substack.com/c_limit, /__u/andreaskretz.substack.com/f_webp, /__u/andreaskretz.substack.com/q_auto:good, /__u/andreaskretz.substack.com/fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F856c181d-775c-4217-a669-e77874a800a4_426x213.gif 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!Kjeb!,w_1456,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F856c181d-775c-4217-a669-e77874a800a4_426x213.gif" width="426" height="213" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/856c181d-775c-4217-a669-e77874a800a4_426x213.gif&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:213,&quot;width&quot;:426,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="/__u/substackcdn.com/image/fetch/$s_!Kjeb!, /__u/andreaskretz.substack.com/w_424, /__u/andreaskretz.substack.com/c_limit, /__u/andreaskretz.substack.com/f_auto, /__u/andreaskretz.substack.com/q_auto:good, /__u/andreaskretz.substack.com/fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F856c181d-775c-4217-a669-e77874a800a4_426x213.gif 424w, /__u/substackcdn.com/image/fetch/$s_!Kjeb!, /__u/andreaskretz.substack.com/w_848, /__u/andreaskretz.substack.com/c_limit, /__u/andreaskretz.substack.com/f_auto, /__u/andreaskretz.substack.com/q_auto:good, /__u/andreaskretz.substack.com/fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F856c181d-775c-4217-a669-e77874a800a4_426x213.gif 848w, /__u/substackcdn.com/image/fetch/$s_!Kjeb!, /__u/andreaskretz.substack.com/w_1272, /__u/andreaskretz.substack.com/c_limit, /__u/andreaskretz.substack.com/f_auto, /__u/andreaskretz.substack.com/q_auto:good, /__u/andreaskretz.substack.com/fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F856c181d-775c-4217-a669-e77874a800a4_426x213.gif 1272w, /__u/substackcdn.com/image/fetch/$s_!Kjeb!, /__u/andreaskretz.substack.com/w_1456, /__u/andreaskretz.substack.com/c_limit, /__u/andreaskretz.substack.com/f_auto, /__u/andreaskretz.substack.com/q_auto:good, /__u/andreaskretz.substack.com/fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F856c181d-775c-4217-a669-e77874a800a4_426x213.gif 1456w" sizes="100vw"></picture><div></div></div></a></figure></div><p>AI writes code for all of us now. Not tab completion, not autocomplete suggestions here and there, that&#8217;s not even worth mentioning anymore. Actual code, whole features, entire files.</p><p>You might call this AI slop, but it is what it is. People even use AI for code reviews now..</p><p>Copilot is the wrong name for what&#8217;s actually happening. A copilot helps you fly, but you&#8217;re still the one flying. With coding, the AI is flying and we&#8217;re just telling it where to go.</p><p>So Github Copilot should just be called Pilot, and Claude Code should probably be called Claude Codes For You.</p><p>And it&#8217;s not one tool you can opt out of. Every platform builds this in now. Databricks has their AI doing development. I built a course for Kestra, and they have it too. There&#8217;s no way around it, and writing code just isn&#8217;t the big thing it used to be.</p><h3><strong>The Annoying Parts Went First</strong></h3><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!TYw0!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F856b98f7-ca8a-48ba-9b10-b7194a6bcdd0_400x225.gif" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!TYw0!, /__u/andreaskretz.substack.com/w_424, /__u/andreaskretz.substack.com/c_limit, /__u/andreaskretz.substack.com/f_webp, /__u/andreaskretz.substack.com/q_auto:good, /__u/andreaskretz.substack.com/fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F856b98f7-ca8a-48ba-9b10-b7194a6bcdd0_400x225.gif 424w, /__u/substackcdn.com/image/fetch/$s_!TYw0!, /__u/andreaskretz.substack.com/w_848, /__u/andreaskretz.substack.com/c_limit, /__u/andreaskretz.substack.com/f_webp, /__u/andreaskretz.substack.com/q_auto:good, /__u/andreaskretz.substack.com/fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F856b98f7-ca8a-48ba-9b10-b7194a6bcdd0_400x225.gif 848w, /__u/substackcdn.com/image/fetch/$s_!TYw0!, /__u/andreaskretz.substack.com/w_1272, /__u/andreaskretz.substack.com/c_limit, /__u/andreaskretz.substack.com/f_webp, /__u/andreaskretz.substack.com/q_auto:good, /__u/andreaskretz.substack.com/fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F856b98f7-ca8a-48ba-9b10-b7194a6bcdd0_400x225.gif 1272w, /__u/substackcdn.com/image/fetch/$s_!TYw0!, /__u/andreaskretz.substack.com/w_1456, /__u/andreaskretz.substack.com/c_limit, /__u/andreaskretz.substack.com/f_webp, /__u/andreaskretz.substack.com/q_auto:good, /__u/andreaskretz.substack.com/fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F856b98f7-ca8a-48ba-9b10-b7194a6bcdd0_400x225.gif 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!TYw0!,w_1456,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F856b98f7-ca8a-48ba-9b10-b7194a6bcdd0_400x225.gif" width="400" height="225" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/856b98f7-ca8a-48ba-9b10-b7194a6bcdd0_400x225.gif&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:225,&quot;width&quot;:400,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="/__u/substackcdn.com/image/fetch/$s_!TYw0!, /__u/andreaskretz.substack.com/w_424, /__u/andreaskretz.substack.com/c_limit, /__u/andreaskretz.substack.com/f_auto, /__u/andreaskretz.substack.com/q_auto:good, /__u/andreaskretz.substack.com/fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F856b98f7-ca8a-48ba-9b10-b7194a6bcdd0_400x225.gif 424w, /__u/substackcdn.com/image/fetch/$s_!TYw0!, /__u/andreaskretz.substack.com/w_848, /__u/andreaskretz.substack.com/c_limit, /__u/andreaskretz.substack.com/f_auto, /__u/andreaskretz.substack.com/q_auto:good, /__u/andreaskretz.substack.com/fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F856b98f7-ca8a-48ba-9b10-b7194a6bcdd0_400x225.gif 848w, /__u/substackcdn.com/image/fetch/$s_!TYw0!, /__u/andreaskretz.substack.com/w_1272, /__u/andreaskretz.substack.com/c_limit, /__u/andreaskretz.substack.com/f_auto, /__u/andreaskretz.substack.com/q_auto:good, /__u/andreaskretz.substack.com/fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F856b98f7-ca8a-48ba-9b10-b7194a6bcdd0_400x225.gif 1272w, /__u/substackcdn.com/image/fetch/$s_!TYw0!, /__u/andreaskretz.substack.com/w_1456, /__u/andreaskretz.substack.com/c_limit, /__u/andreaskretz.substack.com/f_auto, /__u/andreaskretz.substack.com/q_auto:good, /__u/andreaskretz.substack.com/fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F856b98f7-ca8a-48ba-9b10-b7194a6bcdd0_400x225.gif 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><p>Documentation used to be the thing nobody had time for. We knew we should write it, we knew it mattered when someone new joined, but there was always something more urgent, so it never happened. Now it takes minutes and it&#8217;s actually decent.</p><p>Tests are the same story. AI writes them for us.</p><p>Code guidelines and style guides too, and this one is underrated. That used to be a real source of friction, people arguing about formatting and conventions, or a style guide sitting in a wiki that nobody followed. Now you just tell the AI to follow the guidelines, or create a skill and it follows them. All of that struggle is basically gone.</p><h3><strong>Data Modeling Too, and People Hate When I Say This</strong></h3><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!jPIe!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F71c297f6-a636-44a1-bed5-72172bb89a88_193x153.gif" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!jPIe!, /__u/andreaskretz.substack.com/w_424, /__u/andreaskretz.substack.com/c_limit, /__u/andreaskretz.substack.com/f_webp, /__u/andreaskretz.substack.com/q_auto:good, /__u/andreaskretz.substack.com/fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F71c297f6-a636-44a1-bed5-72172bb89a88_193x153.gif 424w, /__u/substackcdn.com/image/fetch/$s_!jPIe!, /__u/andreaskretz.substack.com/w_848, /__u/andreaskretz.substack.com/c_limit, /__u/andreaskretz.substack.com/f_webp, /__u/andreaskretz.substack.com/q_auto:good, /__u/andreaskretz.substack.com/fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F71c297f6-a636-44a1-bed5-72172bb89a88_193x153.gif 848w, /__u/substackcdn.com/image/fetch/$s_!jPIe!, /__u/andreaskretz.substack.com/w_1272, /__u/andreaskretz.substack.com/c_limit, /__u/andreaskretz.substack.com/f_webp, /__u/andreaskretz.substack.com/q_auto:good, /__u/andreaskretz.substack.com/fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F71c297f6-a636-44a1-bed5-72172bb89a88_193x153.gif 1272w, /__u/substackcdn.com/image/fetch/$s_!jPIe!, /__u/andreaskretz.substack.com/w_1456, /__u/andreaskretz.substack.com/c_limit, /__u/andreaskretz.substack.com/f_webp, /__u/andreaskretz.substack.com/q_auto:good, /__u/andreaskretz.substack.com/fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F71c297f6-a636-44a1-bed5-72172bb89a88_193x153.gif 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!jPIe!,w_1456,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F71c297f6-a636-44a1-bed5-72172bb89a88_193x153.gif" width="320" height="253.67875647668393" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/71c297f6-a636-44a1-bed5-72172bb89a88_193x153.gif&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:153,&quot;width&quot;:193,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="/__u/substackcdn.com/image/fetch/$s_!jPIe!, /__u/andreaskretz.substack.com/w_424, /__u/andreaskretz.substack.com/c_limit, /__u/andreaskretz.substack.com/f_auto, /__u/andreaskretz.substack.com/q_auto:good, /__u/andreaskretz.substack.com/fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F71c297f6-a636-44a1-bed5-72172bb89a88_193x153.gif 424w, /__u/substackcdn.com/image/fetch/$s_!jPIe!, /__u/andreaskretz.substack.com/w_848, /__u/andreaskretz.substack.com/c_limit, /__u/andreaskretz.substack.com/f_auto, /__u/andreaskretz.substack.com/q_auto:good, /__u/andreaskretz.substack.com/fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F71c297f6-a636-44a1-bed5-72172bb89a88_193x153.gif 848w, /__u/substackcdn.com/image/fetch/$s_!jPIe!, /__u/andreaskretz.substack.com/w_1272, /__u/andreaskretz.substack.com/c_limit, /__u/andreaskretz.substack.com/f_auto, /__u/andreaskretz.substack.com/q_auto:good, /__u/andreaskretz.substack.com/fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F71c297f6-a636-44a1-bed5-72172bb89a88_193x153.gif 1272w, /__u/substackcdn.com/image/fetch/$s_!jPIe!, /__u/andreaskretz.substack.com/w_1456, /__u/andreaskretz.substack.com/c_limit, /__u/andreaskretz.substack.com/f_auto, /__u/andreaskretz.substack.com/q_auto:good, /__u/andreaskretz.substack.com/fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F71c297f6-a636-44a1-bed5-72172bb89a88_193x153.gif 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><p>I&#8217;ve posted about this a bunch of times and people always read it wrong. So let me be very clear: I am not saying you don&#8217;t need data modeling. You still need data modeling. What I&#8217;m saying is that it&#8217;s not the big deal people make it out to be anymore.</p><p>AI is genuinely good at data modeling because it&#8217;s a structured problem and it&#8217;s seen a huge amount of it during training. Give it the context and it produces a solid model without much trouble.</p><p>What&#8217;s left for you is catching its mistakes. The AI is going to make mistakes, sometimes really silly ones. You need to understand what it creates well enough to catch when it makes a mistake. That&#8217;s a real skill and I&#8217;m not dismissing it. But it&#8217;s a very different thing from what people are still teaching across ten courses and a stack of books.</p><p>I mean, you can even have a conversation with the AI about the data model to see where there might be optimization potential.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://andreaskretz.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading The Data Engineering Insider! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><h3><strong>Debugging Is Copy, Paste, Hope</strong></h3><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!JvSr!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F29fa32b9-86a8-4fb8-b79c-ef6b006f6a0d_245x153.gif" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!JvSr!, /__u/andreaskretz.substack.com/w_424, /__u/andreaskretz.substack.com/c_limit, /__u/andreaskretz.substack.com/f_webp, /__u/andreaskretz.substack.com/q_auto:good, /__u/andreaskretz.substack.com/fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F29fa32b9-86a8-4fb8-b79c-ef6b006f6a0d_245x153.gif 424w, /__u/substackcdn.com/image/fetch/$s_!JvSr!, /__u/andreaskretz.substack.com/w_848, /__u/andreaskretz.substack.com/c_limit, /__u/andreaskretz.substack.com/f_webp, /__u/andreaskretz.substack.com/q_auto:good, /__u/andreaskretz.substack.com/fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F29fa32b9-86a8-4fb8-b79c-ef6b006f6a0d_245x153.gif 848w, /__u/substackcdn.com/image/fetch/$s_!JvSr!, /__u/andreaskretz.substack.com/w_1272, /__u/andreaskretz.substack.com/c_limit, /__u/andreaskretz.substack.com/f_webp, /__u/andreaskretz.substack.com/q_auto:good, /__u/andreaskretz.substack.com/fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F29fa32b9-86a8-4fb8-b79c-ef6b006f6a0d_245x153.gif 1272w, /__u/substackcdn.com/image/fetch/$s_!JvSr!, /__u/andreaskretz.substack.com/w_1456, /__u/andreaskretz.substack.com/c_limit, /__u/andreaskretz.substack.com/f_webp, /__u/andreaskretz.substack.com/q_auto:good, /__u/andreaskretz.substack.com/fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F29fa32b9-86a8-4fb8-b79c-ef6b006f6a0d_245x153.gif 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!JvSr!,w_1456,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F29fa32b9-86a8-4fb8-b79c-ef6b006f6a0d_245x153.gif" width="320" height="199.83673469387753" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/29fa32b9-86a8-4fb8-b79c-ef6b006f6a0d_245x153.gif&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:153,&quot;width&quot;:245,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="/__u/substackcdn.com/image/fetch/$s_!JvSr!, /__u/andreaskretz.substack.com/w_424, /__u/andreaskretz.substack.com/c_limit, /__u/andreaskretz.substack.com/f_auto, /__u/andreaskretz.substack.com/q_auto:good, /__u/andreaskretz.substack.com/fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F29fa32b9-86a8-4fb8-b79c-ef6b006f6a0d_245x153.gif 424w, /__u/substackcdn.com/image/fetch/$s_!JvSr!, /__u/andreaskretz.substack.com/w_848, /__u/andreaskretz.substack.com/c_limit, /__u/andreaskretz.substack.com/f_auto, /__u/andreaskretz.substack.com/q_auto:good, /__u/andreaskretz.substack.com/fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F29fa32b9-86a8-4fb8-b79c-ef6b006f6a0d_245x153.gif 848w, /__u/substackcdn.com/image/fetch/$s_!JvSr!, /__u/andreaskretz.substack.com/w_1272, /__u/andreaskretz.substack.com/c_limit, /__u/andreaskretz.substack.com/f_auto, /__u/andreaskretz.substack.com/q_auto:good, /__u/andreaskretz.substack.com/fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F29fa32b9-86a8-4fb8-b79c-ef6b006f6a0d_245x153.gif 1272w, /__u/substackcdn.com/image/fetch/$s_!JvSr!, /__u/andreaskretz.substack.com/w_1456, /__u/andreaskretz.substack.com/c_limit, /__u/andreaskretz.substack.com/f_auto, /__u/andreaskretz.substack.com/q_auto:good, /__u/andreaskretz.substack.com/fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F29fa32b9-86a8-4fb8-b79c-ef6b006f6a0d_245x153.gif 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><p>How do you actually debug today? You hit an error, you copy it into Claude Code with a bit of context, and you see what comes back. Then you hope the solution is right. You try it. If it works, great. If not, you go around again, tell it that wasn&#8217;t it, here&#8217;s the new error, and try to figure it out together.</p><p>There isn&#8217;t a lot of deep thinking in that loop, and that&#8217;s not really a complaint. It&#8217;s just how it works now.</p><p>Root cause analysis holds up better on its own. That used to genuinely require experience, knowing how to follow the trail back through a system to where the problem actually started. Now you do it properly once, write those steps down in a markdown or skill file, and hand that to the AI as context.</p><p>Hell, you can even have the AI write the markdown file for you. After that, junior or senior, anyone can follow the same path. The experience gap on that task mostly closes.</p><h3><strong>Optimization Barely Needs Experience Anymore</strong></h3><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!4mc3!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7d81a813-e7e8-4d12-8a7c-6516adc9df8f_500x280.gif" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!4mc3!, /__u/andreaskretz.substack.com/w_424, /__u/andreaskretz.substack.com/c_limit, /__u/andreaskretz.substack.com/f_webp, /__u/andreaskretz.substack.com/q_auto:good, /__u/andreaskretz.substack.com/fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7d81a813-e7e8-4d12-8a7c-6516adc9df8f_500x280.gif 424w, /__u/substackcdn.com/image/fetch/$s_!4mc3!, /__u/andreaskretz.substack.com/w_848, /__u/andreaskretz.substack.com/c_limit, /__u/andreaskretz.substack.com/f_webp, /__u/andreaskretz.substack.com/q_auto:good, /__u/andreaskretz.substack.com/fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7d81a813-e7e8-4d12-8a7c-6516adc9df8f_500x280.gif 848w, /__u/substackcdn.com/image/fetch/$s_!4mc3!, /__u/andreaskretz.substack.com/w_1272, /__u/andreaskretz.substack.com/c_limit, /__u/andreaskretz.substack.com/f_webp, /__u/andreaskretz.substack.com/q_auto:good, /__u/andreaskretz.substack.com/fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7d81a813-e7e8-4d12-8a7c-6516adc9df8f_500x280.gif 1272w, /__u/substackcdn.com/image/fetch/$s_!4mc3!, /__u/andreaskretz.substack.com/w_1456, /__u/andreaskretz.substack.com/c_limit, /__u/andreaskretz.substack.com/f_webp, /__u/andreaskretz.substack.com/q_auto:good, /__u/andreaskretz.substack.com/fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7d81a813-e7e8-4d12-8a7c-6516adc9df8f_500x280.gif 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!4mc3!,w_1456,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7d81a813-e7e8-4d12-8a7c-6516adc9df8f_500x280.gif" width="500" height="280" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/7d81a813-e7e8-4d12-8a7c-6516adc9df8f_500x280.gif&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:280,&quot;width&quot;:500,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="/__u/substackcdn.com/image/fetch/$s_!4mc3!, /__u/andreaskretz.substack.com/w_424, /__u/andreaskretz.substack.com/c_limit, /__u/andreaskretz.substack.com/f_auto, /__u/andreaskretz.substack.com/q_auto:good, /__u/andreaskretz.substack.com/fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7d81a813-e7e8-4d12-8a7c-6516adc9df8f_500x280.gif 424w, /__u/substackcdn.com/image/fetch/$s_!4mc3!, /__u/andreaskretz.substack.com/w_848, /__u/andreaskretz.substack.com/c_limit, /__u/andreaskretz.substack.com/f_auto, /__u/andreaskretz.substack.com/q_auto:good, /__u/andreaskretz.substack.com/fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7d81a813-e7e8-4d12-8a7c-6516adc9df8f_500x280.gif 848w, /__u/substackcdn.com/image/fetch/$s_!4mc3!, /__u/andreaskretz.substack.com/w_1272, /__u/andreaskretz.substack.com/c_limit, /__u/andreaskretz.substack.com/f_auto, /__u/andreaskretz.substack.com/q_auto:good, /__u/andreaskretz.substack.com/fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7d81a813-e7e8-4d12-8a7c-6516adc9df8f_500x280.gif 1272w, /__u/substackcdn.com/image/fetch/$s_!4mc3!, /__u/andreaskretz.substack.com/w_1456, /__u/andreaskretz.substack.com/c_limit, /__u/andreaskretz.substack.com/f_auto, /__u/andreaskretz.substack.com/q_auto:good, /__u/andreaskretz.substack.com/fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7d81a813-e7e8-4d12-8a7c-6516adc9df8f_500x280.gif 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>This one surprised me the most. It used to be the clearest dividing line between people who&#8217;d been doing this a while and people who hadn&#8217;t.</p><p>Reading a SQL query plan took real knowledge, knowing what the operators meant and where the cost was hiding. Now you copy the query plan into Claude and it tells you what it sees and where the problem is. You don&#8217;t need that special knowledge or that special experience anymore.</p><p>Spark is the same story. You used to sit there analyzing the execution plan, trying to find the bottleneck and figure out how to implement a fix. Now you hand the plan over, maybe answer a couple of questions about your setup, and you get a useful answer back quickly. A huge amount of optimization work can be done this way.</p><h3><strong>So What&#8217;s Actually Left for Engineers?</strong></h3><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!cGHT!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0b5bba91-d31b-420f-9723-bd6e495bd893_220x220.gif" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!cGHT!, /__u/andreaskretz.substack.com/w_424, /__u/andreaskretz.substack.com/c_limit, /__u/andreaskretz.substack.com/f_webp, /__u/andreaskretz.substack.com/q_auto:good, /__u/andreaskretz.substack.com/fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0b5bba91-d31b-420f-9723-bd6e495bd893_220x220.gif 424w, /__u/substackcdn.com/image/fetch/$s_!cGHT!, /__u/andreaskretz.substack.com/w_848, /__u/andreaskretz.substack.com/c_limit, /__u/andreaskretz.substack.com/f_webp, /__u/andreaskretz.substack.com/q_auto:good, /__u/andreaskretz.substack.com/fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0b5bba91-d31b-420f-9723-bd6e495bd893_220x220.gif 848w, /__u/substackcdn.com/image/fetch/$s_!cGHT!, /__u/andreaskretz.substack.com/w_1272, /__u/andreaskretz.substack.com/c_limit, /__u/andreaskretz.substack.com/f_webp, /__u/andreaskretz.substack.com/q_auto:good, /__u/andreaskretz.substack.com/fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0b5bba91-d31b-420f-9723-bd6e495bd893_220x220.gif 1272w, /__u/substackcdn.com/image/fetch/$s_!cGHT!, /__u/andreaskretz.substack.com/w_1456, /__u/andreaskretz.substack.com/c_limit, /__u/andreaskretz.substack.com/f_webp, /__u/andreaskretz.substack.com/q_auto:good, /__u/andreaskretz.substack.com/fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0b5bba91-d31b-420f-9723-bd6e495bd893_220x220.gif 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!cGHT!,w_1456,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0b5bba91-d31b-420f-9723-bd6e495bd893_220x220.gif" width="320" height="320" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/0b5bba91-d31b-420f-9723-bd6e495bd893_220x220.gif&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:220,&quot;width&quot;:220,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="/__u/substackcdn.com/image/fetch/$s_!cGHT!, /__u/andreaskretz.substack.com/w_424, /__u/andreaskretz.substack.com/c_limit, /__u/andreaskretz.substack.com/f_auto, /__u/andreaskretz.substack.com/q_auto:good, /__u/andreaskretz.substack.com/fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0b5bba91-d31b-420f-9723-bd6e495bd893_220x220.gif 424w, /__u/substackcdn.com/image/fetch/$s_!cGHT!, /__u/andreaskretz.substack.com/w_848, /__u/andreaskretz.substack.com/c_limit, /__u/andreaskretz.substack.com/f_auto, /__u/andreaskretz.substack.com/q_auto:good, /__u/andreaskretz.substack.com/fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0b5bba91-d31b-420f-9723-bd6e495bd893_220x220.gif 848w, /__u/substackcdn.com/image/fetch/$s_!cGHT!, /__u/andreaskretz.substack.com/w_1272, /__u/andreaskretz.substack.com/c_limit, /__u/andreaskretz.substack.com/f_auto, /__u/andreaskretz.substack.com/q_auto:good, /__u/andreaskretz.substack.com/fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0b5bba91-d31b-420f-9723-bd6e495bd893_220x220.gif 1272w, /__u/substackcdn.com/image/fetch/$s_!cGHT!, /__u/andreaskretz.substack.com/w_1456, /__u/andreaskretz.substack.com/c_limit, /__u/andreaskretz.substack.com/f_auto, /__u/andreaskretz.substack.com/q_auto:good, /__u/andreaskretz.substack.com/fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0b5bba91-d31b-420f-9723-bd6e495bd893_220x220.gif 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><p>I know I exaggerated a bit here and there in the article. Not everything works that perfectly... yet &#128556;</p><p>The important part now is knowing what needs to happen, not doing it yourself. Figuring out the context. Figuring out what people need, which is usually not what they think they do. Then giving the AI the important pieces and being able to understand and validate what it hands back.</p><p>The doing part is mostly AI&#8217;s job now. We keep telling it what to do, checking what comes back, and moving on to the next thing.</p><h3><strong>One More Thing About the AI Engineering Hype</strong></h3><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!Ws24!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F67caf1d2-c232-49c9-8d62-92843085861a_500x217.gif" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!Ws24!, /__u/andreaskretz.substack.com/w_424, /__u/andreaskretz.substack.com/c_limit, /__u/andreaskretz.substack.com/f_webp, /__u/andreaskretz.substack.com/q_auto:good, /__u/andreaskretz.substack.com/fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F67caf1d2-c232-49c9-8d62-92843085861a_500x217.gif 424w, /__u/substackcdn.com/image/fetch/$s_!Ws24!, /__u/andreaskretz.substack.com/w_848, /__u/andreaskretz.substack.com/c_limit, /__u/andreaskretz.substack.com/f_webp, /__u/andreaskretz.substack.com/q_auto:good, /__u/andreaskretz.substack.com/fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F67caf1d2-c232-49c9-8d62-92843085861a_500x217.gif 848w, /__u/substackcdn.com/image/fetch/$s_!Ws24!, /__u/andreaskretz.substack.com/w_1272, /__u/andreaskretz.substack.com/c_limit, /__u/andreaskretz.substack.com/f_webp, /__u/andreaskretz.substack.com/q_auto:good, /__u/andreaskretz.substack.com/fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F67caf1d2-c232-49c9-8d62-92843085861a_500x217.gif 1272w, /__u/substackcdn.com/image/fetch/$s_!Ws24!, /__u/andreaskretz.substack.com/w_1456, /__u/andreaskretz.substack.com/c_limit, /__u/andreaskretz.substack.com/f_webp, /__u/andreaskretz.substack.com/q_auto:good, /__u/andreaskretz.substack.com/fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F67caf1d2-c232-49c9-8d62-92843085861a_500x217.gif 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!Ws24!,w_1456,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F67caf1d2-c232-49c9-8d62-92843085861a_500x217.gif" width="500" height="217" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/67caf1d2-c232-49c9-8d62-92843085861a_500x217.gif&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:217,&quot;width&quot;:500,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="/__u/substackcdn.com/image/fetch/$s_!Ws24!, /__u/andreaskretz.substack.com/w_424, /__u/andreaskretz.substack.com/c_limit, /__u/andreaskretz.substack.com/f_auto, /__u/andreaskretz.substack.com/q_auto:good, /__u/andreaskretz.substack.com/fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F67caf1d2-c232-49c9-8d62-92843085861a_500x217.gif 424w, /__u/substackcdn.com/image/fetch/$s_!Ws24!, /__u/andreaskretz.substack.com/w_848, /__u/andreaskretz.substack.com/c_limit, /__u/andreaskretz.substack.com/f_auto, /__u/andreaskretz.substack.com/q_auto:good, /__u/andreaskretz.substack.com/fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F67caf1d2-c232-49c9-8d62-92843085861a_500x217.gif 848w, /__u/substackcdn.com/image/fetch/$s_!Ws24!, /__u/andreaskretz.substack.com/w_1272, /__u/andreaskretz.substack.com/c_limit, /__u/andreaskretz.substack.com/f_auto, /__u/andreaskretz.substack.com/q_auto:good, /__u/andreaskretz.substack.com/fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F67caf1d2-c232-49c9-8d62-92843085861a_500x217.gif 1272w, /__u/substackcdn.com/image/fetch/$s_!Ws24!, /__u/andreaskretz.substack.com/w_1456, /__u/andreaskretz.substack.com/c_limit, /__u/andreaskretz.substack.com/f_auto, /__u/andreaskretz.substack.com/q_auto:good, /__u/andreaskretz.substack.com/fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F67caf1d2-c232-49c9-8d62-92843085861a_500x217.gif 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><p>Everywhere you look it&#8217;s LLMs, RAG, MCP servers, agents. It&#8217;s presented as if everyone needs this knowledge right now or they&#8217;ll be left behind, like becoming an AI engineer is the only path forward.</p><p>But think about your actual job, and the jobs of people you know. How much of that do you genuinely need today? We&#8217;re still at the beginning of this. Yes, tools are implementing MCP servers. But do you actually have an agent calling that MCP server? Most likely not. A lot of companies don&#8217;t have that skill yet, they don&#8217;t have that knowledge internally, and they&#8217;re nowhere near it.</p><p>It might be very interesting in the future. For the next year though, I&#8217;m not sure. This is still new for companies, and I&#8217;d be careful about treating it as urgent just because it&#8217;s loud.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://andreaskretz.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading The Data Engineering Insider! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p>***</p><p>Ready to become a Data Engineer? Then join my <strong><a href="https://learndataengineering.com/p/academy">Learn Data Engineering Academy</a></strong> today!</p><p>Looking for free hands-on projects and tutorials? Then check out my <strong><a href="https://learndataengineering.com/p/free-labs">Free Labs</a></strong>.</p><p>More Data Engineering content on: <strong><a href="https://www.youtube.com/@andreaskayy">YouTube</a></strong> | <strong><a href="https://www.linkedin.com/in/andreas-kretz/">LinkedIn</a></strong> | <strong><a href="https://open.spotify.com/show/529Q58D0db7bI8p6NKaRjU?si=jZCozvp6QguTiooiMJpZMQ">Spotify</a></strong></p>]]></content:encoded></item><item><title><![CDATA[The Hidden AI Tax of Making Data Engineering Too Easy]]></title><description><![CDATA[Lately I keep noticing the same thing: every new feature is really about letting you do more while understanding less.]]></description><link>https://andreaskretz.substack.com/p/the-hidden-ai-tax-of-making-data</link><guid isPermaLink="false">https://andreaskretz.substack.com/p/the-hidden-ai-tax-of-making-data</guid><dc:creator><![CDATA[Andreas Kretz]]></dc:creator><pubDate>Mon, 20 Jul 2026 13:28:41 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!exHM!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F43d717a3-c52f-4003-a431-a49feded31b9_1280x720.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!exHM!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F43d717a3-c52f-4003-a431-a49feded31b9_1280x720.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!exHM!, /__u/andreaskretz.substack.com/w_424, /__u/andreaskretz.substack.com/c_limit, /__u/andreaskretz.substack.com/f_webp, /__u/andreaskretz.substack.com/q_auto:good, /__u/andreaskretz.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F43d717a3-c52f-4003-a431-a49feded31b9_1280x720.png 424w, /__u/substackcdn.com/image/fetch/$s_!exHM!, /__u/andreaskretz.substack.com/w_848, /__u/andreaskretz.substack.com/c_limit, /__u/andreaskretz.substack.com/f_webp, /__u/andreaskretz.substack.com/q_auto:good, /__u/andreaskretz.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F43d717a3-c52f-4003-a431-a49feded31b9_1280x720.png 848w, /__u/substackcdn.com/image/fetch/$s_!exHM!, /__u/andreaskretz.substack.com/w_1272, /__u/andreaskretz.substack.com/c_limit, /__u/andreaskretz.substack.com/f_webp, /__u/andreaskretz.substack.com/q_auto:good, /__u/andreaskretz.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F43d717a3-c52f-4003-a431-a49feded31b9_1280x720.png 1272w, /__u/substackcdn.com/image/fetch/$s_!exHM!, /__u/andreaskretz.substack.com/w_1456, /__u/andreaskretz.substack.com/c_limit, /__u/andreaskretz.substack.com/f_webp, /__u/andreaskretz.substack.com/q_auto:good, /__u/andreaskretz.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F43d717a3-c52f-4003-a431-a49feded31b9_1280x720.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!exHM!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F43d717a3-c52f-4003-a431-a49feded31b9_1280x720.png" width="1280" height="720" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/43d717a3-c52f-4003-a431-a49feded31b9_1280x720.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:720,&quot;width&quot;:1280,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:822776,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://andreaskretz.substack.com/i/207776806?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F43d717a3-c52f-4003-a431-a49feded31b9_1280x720.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!exHM!, /__u/andreaskretz.substack.com/w_424, /__u/andreaskretz.substack.com/c_limit, /__u/andreaskretz.substack.com/f_auto, /__u/andreaskretz.substack.com/q_auto:good, /__u/andreaskretz.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F43d717a3-c52f-4003-a431-a49feded31b9_1280x720.png 424w, /__u/substackcdn.com/image/fetch/$s_!exHM!, /__u/andreaskretz.substack.com/w_848, /__u/andreaskretz.substack.com/c_limit, /__u/andreaskretz.substack.com/f_auto, /__u/andreaskretz.substack.com/q_auto:good, /__u/andreaskretz.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F43d717a3-c52f-4003-a431-a49feded31b9_1280x720.png 848w, /__u/substackcdn.com/image/fetch/$s_!exHM!, /__u/andreaskretz.substack.com/w_1272, /__u/andreaskretz.substack.com/c_limit, /__u/andreaskretz.substack.com/f_auto, /__u/andreaskretz.substack.com/q_auto:good, /__u/andreaskretz.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F43d717a3-c52f-4003-a431-a49feded31b9_1280x720.png 1272w, /__u/substackcdn.com/image/fetch/$s_!exHM!, /__u/andreaskretz.substack.com/w_1456, /__u/andreaskretz.substack.com/c_limit, /__u/andreaskretz.substack.com/f_auto, /__u/andreaskretz.substack.com/q_auto:good, /__u/andreaskretz.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F43d717a3-c52f-4003-a431-a49feded31b9_1280x720.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Lately I keep noticing the same thing: every new feature is really about letting you do more while understanding less.</p><p>I&#8217;ve built courses on Spark, Databricks, on declarative pipelines, on Lake Flow Designer. I know these tools well, and I know plenty of people using them every day.</p><p>Now we have drag-and-drop pipelines. Declarative everything. A lot of it is stuff we used to configure by hand years ago, just wrapped in a nicer interface.</p><h3><strong>Why Everyone Does This</strong></h3><p>I don&#8217;t think it&#8217;s malicious. Databricks, Snowflake, all of them want as many users as possible, and the way you get there is by removing the parts that require thinking. Bring Spark to the masses. So let&#8217;s put 15 layers of abstraction on top so nobody has to understand what&#8217;s underneath.</p><p>And honestly, there&#8217;s a good side to it. You can bring in people who don&#8217;t have deep Spark skills yet and they can still get work done. That&#8217;s real. But there&#8217;s a cost to making everything easy that nobody puts on the slide.</p><h3><strong>Easy Makes People Sloppy</strong></h3><p>When everything is one click, you stop caring. You stop asking whether you should clean up this data or whether you even need this much compute. You just throw a couple more nodes at it because you don&#8217;t care.</p><p>A data scientist needs an all-purpose cluster to train a model, so they get a terabyte of RAM, and two weeks later they&#8217;re still using that same cluster to run select top 10 on a table. Notebooks running production code.</p><p>Thousands of dollars a day burning quietly in the background. How did we get here? One easy decision at a time.</p><h3><strong>The Bill Is an Engineering Culture Problem</strong></h3><p>People love to complain that Databricks and Snowflake are expensive, and they are. But a lot of that cost isn&#8217;t the vendor. It&#8217;s the culture that the abstraction encourages.</p><p>When you can&#8217;t see what&#8217;s happening underneath, you stop watching your compute, you stop asking if DuckDB would do the job, you stop treating spend like it&#8217;s your own money. Staying on top of that stuff is real engineering work, and the easier the platform makes it to ignore, the more it costs you to ignore it.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://andreaskretz.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading The Data Engineering Insider! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><h3><strong>The Other Direction Still Exists and I love it</strong></h3><p>This is why I found a recent project interesting. We&#8217;re soon releasing a free course around Exasol, which is much more traditional OLAP store. You set up the infrastructure yourself, on AWS or on premises, you decide how many machines you want, and it&#8217;s fast because it uses in-memory with disk underneath and handles indexing for you.</p><p>It took me back to when not everything was a black box. You actually have to make decisions and understand why.</p><p>Why this distribution key. Why this layout.</p><p>On top of that, plenty of companies literally cannot use the big cloud platforms because of regulation, so they need to own their infrastructure and see their own ACLs, their inbound and outbound rules, the whole thing. That world isn&#8217;t going away, no matter how many people tell you it&#8217;s the old way.</p><h3><strong>Are you making it too easy for yourself?</strong></h3><p>Are you actually watching what your data platform costs and why, or are you trusting the abstraction to handle it for you?</p><p>And the bigger question behind that: are you starting to trust the drag-and-drop features so much that you&#8217;ve stopped thinking for yourself?</p><p>Because that&#8217;s what actually matters. Almost anyone can click things together.</p><p>Understanding why it&#8217;s built that way, what it costs, and what happens when it breaks, that&#8217;s the part you&#8217;re getting paid for.</p><p>***</p><p>Ready to become a Data Engineer? Then join my <strong><a href="https://learndataengineering.com/p/academy">Learn Data Engineering Academy</a></strong> today!</p><p>Looking for free hands-on projects and tutorials? Then check out my <strong><a href="https://learndataengineering.com/p/free-labs">Free Labs</a></strong>.</p><p>More Data Engineering content: <strong><a href="https://www.youtube.com/@andreaskayy">YouTube</a></strong> | <strong><a href="https://www.linkedin.com/in/andreas-kretz/">LinkedIn</a></strong> | <strong><a href="https://open.spotify.com/show/529Q58D0db7bI8p6NKaRjU?si=jZCozvp6QguTiooiMJpZMQ">Spotify</a></strong></p>]]></content:encoded></item><item><title><![CDATA[Data Platform Overhaul: Before vs. After Architecture]]></title><description><![CDATA[I found a real before-and-after data platform architecture on the dbt Labs website, and instead of just describing it, I want to walk you through how I actually figured out what happened.]]></description><link>https://andreaskretz.substack.com/p/data-platform-overhaul-before-vs</link><guid isPermaLink="false">https://andreaskretz.substack.com/p/data-platform-overhaul-before-vs</guid><dc:creator><![CDATA[Andreas Kretz]]></dc:creator><pubDate>Thu, 16 Jul 2026 15:22:47 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!Uqiq!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F72b53ae5-0063-48fe-973d-3892d59a74b7_1672x941.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!Uqiq!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F72b53ae5-0063-48fe-973d-3892d59a74b7_1672x941.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!Uqiq!, /__u/andreaskretz.substack.com/w_424, /__u/andreaskretz.substack.com/c_limit, /__u/andreaskretz.substack.com/f_webp, /__u/andreaskretz.substack.com/q_auto:good, /__u/andreaskretz.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F72b53ae5-0063-48fe-973d-3892d59a74b7_1672x941.png 424w, /__u/substackcdn.com/image/fetch/$s_!Uqiq!, /__u/andreaskretz.substack.com/w_848, /__u/andreaskretz.substack.com/c_limit, /__u/andreaskretz.substack.com/f_webp, /__u/andreaskretz.substack.com/q_auto:good, /__u/andreaskretz.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F72b53ae5-0063-48fe-973d-3892d59a74b7_1672x941.png 848w, /__u/substackcdn.com/image/fetch/$s_!Uqiq!, /__u/andreaskretz.substack.com/w_1272, /__u/andreaskretz.substack.com/c_limit, /__u/andreaskretz.substack.com/f_webp, /__u/andreaskretz.substack.com/q_auto:good, /__u/andreaskretz.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F72b53ae5-0063-48fe-973d-3892d59a74b7_1672x941.png 1272w, /__u/substackcdn.com/image/fetch/$s_!Uqiq!, /__u/andreaskretz.substack.com/w_1456, /__u/andreaskretz.substack.com/c_limit, /__u/andreaskretz.substack.com/f_webp, /__u/andreaskretz.substack.com/q_auto:good, /__u/andreaskretz.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F72b53ae5-0063-48fe-973d-3892d59a74b7_1672x941.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!Uqiq!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F72b53ae5-0063-48fe-973d-3892d59a74b7_1672x941.png" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/72b53ae5-0063-48fe-973d-3892d59a74b7_1672x941.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1618489,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://andreaskretz.substack.com/i/207301917?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F72b53ae5-0063-48fe-973d-3892d59a74b7_1672x941.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!Uqiq!, /__u/andreaskretz.substack.com/w_424, /__u/andreaskretz.substack.com/c_limit, /__u/andreaskretz.substack.com/f_auto, /__u/andreaskretz.substack.com/q_auto:good, /__u/andreaskretz.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F72b53ae5-0063-48fe-973d-3892d59a74b7_1672x941.png 424w, /__u/substackcdn.com/image/fetch/$s_!Uqiq!, /__u/andreaskretz.substack.com/w_848, /__u/andreaskretz.substack.com/c_limit, /__u/andreaskretz.substack.com/f_auto, /__u/andreaskretz.substack.com/q_auto:good, /__u/andreaskretz.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F72b53ae5-0063-48fe-973d-3892d59a74b7_1672x941.png 848w, /__u/substackcdn.com/image/fetch/$s_!Uqiq!, /__u/andreaskretz.substack.com/w_1272, /__u/andreaskretz.substack.com/c_limit, /__u/andreaskretz.substack.com/f_auto, /__u/andreaskretz.substack.com/q_auto:good, /__u/andreaskretz.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F72b53ae5-0063-48fe-973d-3892d59a74b7_1672x941.png 1272w, /__u/substackcdn.com/image/fetch/$s_!Uqiq!, /__u/andreaskretz.substack.com/w_1456, /__u/andreaskretz.substack.com/c_limit, /__u/andreaskretz.substack.com/f_auto, /__u/andreaskretz.substack.com/q_auto:good, /__u/andreaskretz.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F72b53ae5-0063-48fe-973d-3892d59a74b7_1672x941.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>I found a real before-and-after data platform architecture on the dbt Labs website, and instead of just describing it, I want to walk you through how I actually figured out what happened. This is NOT sponsored ;) I just find this kind of stuff interesting.</p><h3><strong>The Case I Picked</strong></h3><p>dbt Labs publishes customer stories on their site, and one of them caught my eye. A company had databases scattered across five different teams, transformations happening in more than one place at once, and queries slow enough that people actually complained about it, and they rebuilt everything into a setup that cut costs by 70% and ran queries 30 times faster.</p><p>The problem is, these pages never show you the actual architecture. The decisions that actually mattered, why one tool got replaced and not another, how the pieces actually connect to each other, are left out on purpose. You only get that picture back if you already know the tools well enough to fill in the gaps yourself, which is exactly what I did here, going through it piece by piece like a detective looking at a case file.</p><p>If you prefer watching such architecture breakdowns, check out my YouTube video on this use case: </p><div id="youtube2-m-e55IRstkM" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;m-e55IRstkM&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/m-e55IRstkM?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><h3><strong>Reading the &#8220;Before&#8221; Picture</strong></h3><p>This company sells and installs solar panels and heat pumps, so their data platform pulls together sales data from a CRM, acquisition data from a second CRM, and operational numbers from energy and supply chain systems, all feeding into one shared reporting layer. That&#8217;s the context worth keeping in mind before looking at how messy the setup underneath it actually was.</p><p>The first thing I did was look at where all of that data actually landed once it left those source systems, and that&#8217;s where the mess started. Five separate databases, each one owned by a different team, each one doing its own transformations. On top of that, someone had added Azure Data Factory to pull data from the cloud side, which added another layer of ETL that duplicated a lot of the work already happening elsewhere.</p><p>This is a pattern I&#8217;ve seen a hundred times. Every team solves their own problem well, but nobody owns the whole picture.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://andreaskretz.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading The Data Engineering Insider! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><h3><strong>Working Out What Actually Broke</strong></h3><p>The dbt Labs page listed four symptoms: scattered transformations, slow performance, low data velocity, and data quality issues. On their own, these are just buzzwords, so I went through each one and asked what would actually cause it.</p><p>Slow performance and low data velocity both come down to the same root cause. You can&#8217;t cleanly join five databases without a shared key, and here there wasn&#8217;t one. Every team built their own schema for their own purpose, so pulling one report that needed both sales and supply chain data meant somebody had to manually reconcile IDs across systems that were never designed to talk to each other.</p><p>The permissions issue makes sense too, once you think about who actually owns what. Five teams, five databases, and each team only has access to their own slice. That&#8217;s fine until someone outside that team needs the data for a report, and then they&#8217;re stuck waiting on a request instead of just querying it themselves. That&#8217;s not a technology problem, that&#8217;s an ownership problem that shows up three teams downstream as a slow dashboard.</p><p>The data quality issues follow from the same setup. When raw source data changes and five independent transformation layers are all reading from it separately, a single upstream change can quietly break more than one pipeline, and there&#8217;s no single place that catches it before it reaches a report.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!PaWp!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4121723b-d29d-4e17-bf9d-f14a075050c3_1360x1440.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!PaWp!, /__u/andreaskretz.substack.com/w_424, /__u/andreaskretz.substack.com/c_limit, /__u/andreaskretz.substack.com/f_webp, /__u/andreaskretz.substack.com/q_auto:good, /__u/andreaskretz.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4121723b-d29d-4e17-bf9d-f14a075050c3_1360x1440.png 424w, /__u/substackcdn.com/image/fetch/$s_!PaWp!, /__u/andreaskretz.substack.com/w_848, /__u/andreaskretz.substack.com/c_limit, /__u/andreaskretz.substack.com/f_webp, /__u/andreaskretz.substack.com/q_auto:good, /__u/andreaskretz.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4121723b-d29d-4e17-bf9d-f14a075050c3_1360x1440.png 848w, /__u/substackcdn.com/image/fetch/$s_!PaWp!, /__u/andreaskretz.substack.com/w_1272, /__u/andreaskretz.substack.com/c_limit, /__u/andreaskretz.substack.com/f_webp, /__u/andreaskretz.substack.com/q_auto:good, /__u/andreaskretz.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4121723b-d29d-4e17-bf9d-f14a075050c3_1360x1440.png 1272w, /__u/substackcdn.com/image/fetch/$s_!PaWp!, /__u/andreaskretz.substack.com/w_1456, /__u/andreaskretz.substack.com/c_limit, /__u/andreaskretz.substack.com/f_webp, /__u/andreaskretz.substack.com/q_auto:good, /__u/andreaskretz.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4121723b-d29d-4e17-bf9d-f14a075050c3_1360x1440.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!PaWp!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4121723b-d29d-4e17-bf9d-f14a075050c3_1360x1440.png" width="1360" height="1440" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/4121723b-d29d-4e17-bf9d-f14a075050c3_1360x1440.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1440,&quot;width&quot;:1360,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:137120,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://andreaskretz.substack.com/i/207301917?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4121723b-d29d-4e17-bf9d-f14a075050c3_1360x1440.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!PaWp!, /__u/andreaskretz.substack.com/w_424, /__u/andreaskretz.substack.com/c_limit, /__u/andreaskretz.substack.com/f_auto, /__u/andreaskretz.substack.com/q_auto:good, /__u/andreaskretz.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4121723b-d29d-4e17-bf9d-f14a075050c3_1360x1440.png 424w, /__u/substackcdn.com/image/fetch/$s_!PaWp!, /__u/andreaskretz.substack.com/w_848, /__u/andreaskretz.substack.com/c_limit, /__u/andreaskretz.substack.com/f_auto, /__u/andreaskretz.substack.com/q_auto:good, /__u/andreaskretz.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4121723b-d29d-4e17-bf9d-f14a075050c3_1360x1440.png 848w, /__u/substackcdn.com/image/fetch/$s_!PaWp!, /__u/andreaskretz.substack.com/w_1272, /__u/andreaskretz.substack.com/c_limit, /__u/andreaskretz.substack.com/f_auto, /__u/andreaskretz.substack.com/q_auto:good, /__u/andreaskretz.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4121723b-d29d-4e17-bf9d-f14a075050c3_1360x1440.png 1272w, /__u/substackcdn.com/image/fetch/$s_!PaWp!, /__u/andreaskretz.substack.com/w_1456, /__u/andreaskretz.substack.com/c_limit, /__u/andreaskretz.substack.com/f_auto, /__u/andreaskretz.substack.com/q_auto:good, /__u/andreaskretz.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4121723b-d29d-4e17-bf9d-f14a075050c3_1360x1440.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h3><strong>Reconstructing the Fix</strong></h3><p>The after architecture was much easier to read, because it&#8217;s actually simple. Fivetran for ingestion, Airflow for scheduling, and everything landing in Snowflake as a single source of truth. From there, dbt runs the transformations, 1,400 models split into raw, cleaned, and core reporting layers. That&#8217;s a medallion architecture, even if they didn&#8217;t call it that on the page.</p><p>The interesting part is Stitch. It shows up as a legacy tool still running in parallel, and my best guess is Fivetran didn&#8217;t have a connector for one of their older systems, so Stitch is patching that gap. I could be wrong here, dbt Labs didn&#8217;t spell it out, but that&#8217;s the kind of detail you only catch if you know what these tools can and can&#8217;t do.</p><p>The other piece worth calling out is what happens once the pipeline is actually running. They layered a governance and data catalog tool on top of Snowflake for observability, which is only realistic because everything sits in one place now, on five separate databases you&#8217;d need five separate integrations just to see what&#8217;s going on. And because both Fivetran and dbt Cloud support CI/CD, changes to the pipeline get tested and deployed the same way you&#8217;d deploy any other piece of software, instead of someone manually running SQL scripts and hoping nothing broke downstream. Tableau ends up with a single clean connection instead of five, which on its own probably explains a good chunk of that 30x query speed.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!WUfx!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb5af784f-3ea5-48dc-8aaf-a9f8038c54f5_1360x1440.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!WUfx!, /__u/andreaskretz.substack.com/w_424, /__u/andreaskretz.substack.com/c_limit, /__u/andreaskretz.substack.com/f_webp, /__u/andreaskretz.substack.com/q_auto:good, /__u/andreaskretz.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb5af784f-3ea5-48dc-8aaf-a9f8038c54f5_1360x1440.png 424w, /__u/substackcdn.com/image/fetch/$s_!WUfx!, /__u/andreaskretz.substack.com/w_848, /__u/andreaskretz.substack.com/c_limit, /__u/andreaskretz.substack.com/f_webp, /__u/andreaskretz.substack.com/q_auto:good, /__u/andreaskretz.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb5af784f-3ea5-48dc-8aaf-a9f8038c54f5_1360x1440.png 848w, /__u/substackcdn.com/image/fetch/$s_!WUfx!, /__u/andreaskretz.substack.com/w_1272, /__u/andreaskretz.substack.com/c_limit, /__u/andreaskretz.substack.com/f_webp, /__u/andreaskretz.substack.com/q_auto:good, /__u/andreaskretz.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb5af784f-3ea5-48dc-8aaf-a9f8038c54f5_1360x1440.png 1272w, /__u/substackcdn.com/image/fetch/$s_!WUfx!, /__u/andreaskretz.substack.com/w_1456, /__u/andreaskretz.substack.com/c_limit, /__u/andreaskretz.substack.com/f_webp, /__u/andreaskretz.substack.com/q_auto:good, /__u/andreaskretz.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb5af784f-3ea5-48dc-8aaf-a9f8038c54f5_1360x1440.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!WUfx!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb5af784f-3ea5-48dc-8aaf-a9f8038c54f5_1360x1440.png" width="1360" height="1440" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/b5af784f-3ea5-48dc-8aaf-a9f8038c54f5_1360x1440.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1440,&quot;width&quot;:1360,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:143724,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://andreaskretz.substack.com/i/207301917?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb5af784f-3ea5-48dc-8aaf-a9f8038c54f5_1360x1440.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!WUfx!, /__u/andreaskretz.substack.com/w_424, /__u/andreaskretz.substack.com/c_limit, /__u/andreaskretz.substack.com/f_auto, /__u/andreaskretz.substack.com/q_auto:good, /__u/andreaskretz.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb5af784f-3ea5-48dc-8aaf-a9f8038c54f5_1360x1440.png 424w, /__u/substackcdn.com/image/fetch/$s_!WUfx!, /__u/andreaskretz.substack.com/w_848, /__u/andreaskretz.substack.com/c_limit, /__u/andreaskretz.substack.com/f_auto, /__u/andreaskretz.substack.com/q_auto:good, /__u/andreaskretz.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb5af784f-3ea5-48dc-8aaf-a9f8038c54f5_1360x1440.png 848w, /__u/substackcdn.com/image/fetch/$s_!WUfx!, /__u/andreaskretz.substack.com/w_1272, /__u/andreaskretz.substack.com/c_limit, /__u/andreaskretz.substack.com/f_auto, /__u/andreaskretz.substack.com/q_auto:good, /__u/andreaskretz.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb5af784f-3ea5-48dc-8aaf-a9f8038c54f5_1360x1440.png 1272w, /__u/substackcdn.com/image/fetch/$s_!WUfx!, /__u/andreaskretz.substack.com/w_1456, /__u/andreaskretz.substack.com/c_limit, /__u/andreaskretz.substack.com/f_auto, /__u/andreaskretz.substack.com/q_auto:good, /__u/andreaskretz.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb5af784f-3ea5-48dc-8aaf-a9f8038c54f5_1360x1440.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h3><strong>The Numbers That Actually Matter</strong></h3><p>70% cost cut and 30x faster queries get all the attention, but the number I think is more important is 3 months. That&#8217;s how long the migration took, and the reason it was possible is that they built the new system in parallel instead of trying to migrate the old one piece by piece. You run both, you validate the new one, and then you switch off the old infrastructure in one move. It&#8217;s not a technical trick, it&#8217;s a project management decision, and it&#8217;s the difference between a migration that drags on for a year and one that actually ships.</p><h3><strong>Why I Do This</strong></h3><p>This isn&#8217;t a dbt article, and dbt Labs didn&#8217;t ask me to make it. I do this because reverse engineering real architecture decisions teaches you more than reading a generic best practices article ever will. The company left gaps on purpose, and filling those gaps with reasoning is the actual skill of being a data engineer.</p><p>If you&#8217;re sitting on a version of this five-database mess right now, I&#8217;d genuinely like to know what&#8217;s keeping you from consolidating it. Team politics, tooling, or just nobody owning the decision?</p><p>***</p><p>Ready to become a Data Engineer? Then join my <a href="https://learndataengineering.com/p/academy">Learn Data Engineering Academy</a> today!</p><p>Looking for free hands-on projects and tutorials? Then check out my <a href="https://learndataengineering.com/p/free-labs">Free Labs</a>.</p><p>More Data Engineering content: <a href="https://www.youtube.com/@andreaskayy">YouTube</a> | <a href="https://www.linkedin.com/in/andreas-kretz/">LinkedIn</a> | <a href="https://open.spotify.com/show/529Q58D0db7bI8p6NKaRjU?si=jZCozvp6QguTiooiMJpZMQ">Spotify</a></p>]]></content:encoded></item><item><title><![CDATA["AI Made Me Faster and Killed the Part of the Job I Loved"]]></title><description><![CDATA[I was talking to Dan Beach from Data Engineering Central recently who uses Cursor every single day.]]></description><link>https://andreaskretz.substack.com/p/ai-made-me-faster-and-killed-the</link><guid isPermaLink="false">https://andreaskretz.substack.com/p/ai-made-me-faster-and-killed-the</guid><dc:creator><![CDATA[Andreas Kretz]]></dc:creator><pubDate>Tue, 14 Jul 2026 13:17:12 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!g0mT!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F78419461-d753-4773-9ff2-75a0f0164bc4_1280x720.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!g0mT!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F78419461-d753-4773-9ff2-75a0f0164bc4_1280x720.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!g0mT!, /__u/andreaskretz.substack.com/w_424, /__u/andreaskretz.substack.com/c_limit, /__u/andreaskretz.substack.com/f_webp, /__u/andreaskretz.substack.com/q_auto:good, /__u/andreaskretz.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F78419461-d753-4773-9ff2-75a0f0164bc4_1280x720.png 424w, /__u/substackcdn.com/image/fetch/$s_!g0mT!, /__u/andreaskretz.substack.com/w_848, /__u/andreaskretz.substack.com/c_limit, /__u/andreaskretz.substack.com/f_webp, /__u/andreaskretz.substack.com/q_auto:good, /__u/andreaskretz.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F78419461-d753-4773-9ff2-75a0f0164bc4_1280x720.png 848w, /__u/substackcdn.com/image/fetch/$s_!g0mT!, /__u/andreaskretz.substack.com/w_1272, /__u/andreaskretz.substack.com/c_limit, /__u/andreaskretz.substack.com/f_webp, /__u/andreaskretz.substack.com/q_auto:good, /__u/andreaskretz.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F78419461-d753-4773-9ff2-75a0f0164bc4_1280x720.png 1272w, /__u/substackcdn.com/image/fetch/$s_!g0mT!, /__u/andreaskretz.substack.com/w_1456, /__u/andreaskretz.substack.com/c_limit, /__u/andreaskretz.substack.com/f_webp, /__u/andreaskretz.substack.com/q_auto:good, /__u/andreaskretz.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F78419461-d753-4773-9ff2-75a0f0164bc4_1280x720.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!g0mT!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F78419461-d753-4773-9ff2-75a0f0164bc4_1280x720.png" width="1280" height="720" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/78419461-d753-4773-9ff2-75a0f0164bc4_1280x720.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:720,&quot;width&quot;:1280,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1193798,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://andreaskretz.substack.com/i/207014337?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F78419461-d753-4773-9ff2-75a0f0164bc4_1280x720.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!g0mT!, /__u/andreaskretz.substack.com/w_424, /__u/andreaskretz.substack.com/c_limit, /__u/andreaskretz.substack.com/f_auto, /__u/andreaskretz.substack.com/q_auto:good, /__u/andreaskretz.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F78419461-d753-4773-9ff2-75a0f0164bc4_1280x720.png 424w, /__u/substackcdn.com/image/fetch/$s_!g0mT!, /__u/andreaskretz.substack.com/w_848, /__u/andreaskretz.substack.com/c_limit, /__u/andreaskretz.substack.com/f_auto, /__u/andreaskretz.substack.com/q_auto:good, /__u/andreaskretz.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F78419461-d753-4773-9ff2-75a0f0164bc4_1280x720.png 848w, /__u/substackcdn.com/image/fetch/$s_!g0mT!, /__u/andreaskretz.substack.com/w_1272, /__u/andreaskretz.substack.com/c_limit, /__u/andreaskretz.substack.com/f_auto, /__u/andreaskretz.substack.com/q_auto:good, /__u/andreaskretz.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F78419461-d753-4773-9ff2-75a0f0164bc4_1280x720.png 1272w, /__u/substackcdn.com/image/fetch/$s_!g0mT!, /__u/andreaskretz.substack.com/w_1456, /__u/andreaskretz.substack.com/c_limit, /__u/andreaskretz.substack.com/f_auto, /__u/andreaskretz.substack.com/q_auto:good, /__u/andreaskretz.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F78419461-d753-4773-9ff2-75a0f0164bc4_1280x720.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>I was talking to Dan Beach from Data Engineering Central recently who uses Cursor every single day. Years of experience, ships real stuff to production, fully bought into AI. And he told me that on a Saturday he sometimes sits on his couch feeling a little depressed, wishing he could just write some Rust by himself again.</p><p>That stuck with me, because I think a lot of us feel it and don&#8217;t say it out loud.</p><h3><strong>The Whiplash Nobody Admits To</strong></h3><p>There&#8217;s this constant back and forth right now. One day AI is incredible and you can&#8217;t imagine working without it. The next day you&#8217;re wondering if your skills are quietly fading away because the model wrote everything and you just clicked accept.</p><p>The honest version is that both things are true at once. You need to be technical to be good at your job, because you&#8217;re still the one responsible for what ships. But you also start to miss the part where you actually built the thing yourself, in the flow, music on, hours disappearing. That feeling doesn&#8217;t go away just because a tool got faster.</p><h3><strong>What Actually Gets Lost</strong></h3><p>For me, the love was never really about typing the code. It was about creating the solution, understanding the problem, making the right decisions. That part is still here, and AI hasn&#8217;t taken it.</p><p>But Dan put it so well. He said something has been lost inside him, like a piece of him. And I think what he&#8217;s pointing at is the creativity of doing something yourself, struggling with it, breaking it, and figuring it out. When the AI does all of that for you, you stay productive, but you stop growing in the way that used to make this fun.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://andreaskretz.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading The Data Engineering Insider! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><h3><strong>The Cure Is Smaller Than You Think</strong></h3><p>Here&#8217;s what Dan did about it, and I love this. One Sunday he went and found a brand-new tool he&#8217;d never used, an Apache DataFusion based Spark accelerator, and he just ripped it apart by hand. Barely any blogs about it, AI couldn&#8217;t help much because it was too new, and he couldn&#8217;t even get it working. His wife asked why he was mad and he didn&#8217;t want to talk about it.</p><p>And he had the best time he&#8217;d had in ages. Because it took him right back to ten years earlier, breaking things, struggling, figuring it out alone. There is almost no better feeling than fighting a problem for an hour, walking away, and solving it in five minutes when you come back. For a moment you feel like a god.</p><h3><strong>Stay the Expert, Not the Prompt Machine</strong></h3><p>I&#8217;m not telling you to stop using AI. I use it every day too. The point is to use it as a tool and keep yourself as a person, as the engineer you are, in the loop, so you stay well-rounded instead of becoming someone who only knows how to talk to a prompt.</p><p>Remember where you came from. Keep the business context in your head. Understand the architecture. And every once in a while, go find something brand new and break it yourself, just because you love it.</p><p>When was the last time you sat down and struggled with something by hand, no AI, just because it was fun?</p><p>I discussed this and other topics in my latest podcast with guest Dan Beach from <strong><a href="/__u/dataengineeringcentral.substack.com/">Data Engineering Central</a></strong>.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!3NGM!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F44a9e444-d600-4b7b-9729-14cfdf27d7fd_1280x720.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!3NGM!, /__u/andreaskretz.substack.com/w_424, /__u/andreaskretz.substack.com/c_limit, /__u/andreaskretz.substack.com/f_webp, /__u/andreaskretz.substack.com/q_auto:good, /__u/andreaskretz.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F44a9e444-d600-4b7b-9729-14cfdf27d7fd_1280x720.png 424w, /__u/substackcdn.com/image/fetch/$s_!3NGM!, /__u/andreaskretz.substack.com/w_848, /__u/andreaskretz.substack.com/c_limit, /__u/andreaskretz.substack.com/f_webp, /__u/andreaskretz.substack.com/q_auto:good, /__u/andreaskretz.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F44a9e444-d600-4b7b-9729-14cfdf27d7fd_1280x720.png 848w, /__u/substackcdn.com/image/fetch/$s_!3NGM!, /__u/andreaskretz.substack.com/w_1272, /__u/andreaskretz.substack.com/c_limit, /__u/andreaskretz.substack.com/f_webp, /__u/andreaskretz.substack.com/q_auto:good, /__u/andreaskretz.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F44a9e444-d600-4b7b-9729-14cfdf27d7fd_1280x720.png 1272w, /__u/substackcdn.com/image/fetch/$s_!3NGM!, /__u/andreaskretz.substack.com/w_1456, /__u/andreaskretz.substack.com/c_limit, /__u/andreaskretz.substack.com/f_webp, /__u/andreaskretz.substack.com/q_auto:good, /__u/andreaskretz.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F44a9e444-d600-4b7b-9729-14cfdf27d7fd_1280x720.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!3NGM!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F44a9e444-d600-4b7b-9729-14cfdf27d7fd_1280x720.png" width="1280" height="720" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/44a9e444-d600-4b7b-9729-14cfdf27d7fd_1280x720.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:720,&quot;width&quot;:1280,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="/__u/substackcdn.com/image/fetch/$s_!3NGM!, /__u/andreaskretz.substack.com/w_424, /__u/andreaskretz.substack.com/c_limit, /__u/andreaskretz.substack.com/f_auto, /__u/andreaskretz.substack.com/q_auto:good, /__u/andreaskretz.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F44a9e444-d600-4b7b-9729-14cfdf27d7fd_1280x720.png 424w, /__u/substackcdn.com/image/fetch/$s_!3NGM!, /__u/andreaskretz.substack.com/w_848, /__u/andreaskretz.substack.com/c_limit, /__u/andreaskretz.substack.com/f_auto, /__u/andreaskretz.substack.com/q_auto:good, /__u/andreaskretz.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F44a9e444-d600-4b7b-9729-14cfdf27d7fd_1280x720.png 848w, /__u/substackcdn.com/image/fetch/$s_!3NGM!, /__u/andreaskretz.substack.com/w_1272, /__u/andreaskretz.substack.com/c_limit, /__u/andreaskretz.substack.com/f_auto, /__u/andreaskretz.substack.com/q_auto:good, /__u/andreaskretz.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F44a9e444-d600-4b7b-9729-14cfdf27d7fd_1280x720.png 1272w, /__u/substackcdn.com/image/fetch/$s_!3NGM!, /__u/andreaskretz.substack.com/w_1456, /__u/andreaskretz.substack.com/c_limit, /__u/andreaskretz.substack.com/f_auto, /__u/andreaskretz.substack.com/q_auto:good, /__u/andreaskretz.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F44a9e444-d600-4b7b-9729-14cfdf27d7fd_1280x720.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Watch it on <strong><a href="https://youtu.be/nNp1jul4QFs">YouTube</a></strong>. Or listen to it on <strong><a href="https://open.spotify.com/episode/2GDvFrvZJGuZF0OpmgMZs2?si=v5lDrXTIT1C90B_kzZnRRQ">your favorite platform</a></strong>.</p><p>***</p><p>Ready to become a Data Engineer? Then join my <strong><a href="https://learndataengineering.com/p/academy">Learn Data Engineering Academy</a></strong> today!</p><p>Looking for free hands-on projects and tutorials? Then check out my <strong><a href="https://learndataengineering.com/p/free-labs">Free Labs</a></strong>.</p><p>More Data Engineering content: <strong><a href="https://www.youtube.com/@andreaskayy">YouTube</a></strong> | <strong><a href="https://www.linkedin.com/in/andreas-kretz/">LinkedIn</a></strong> | <strong><a href="https://open.spotify.com/show/529Q58D0db7bI8p6NKaRjU?si=jZCozvp6QguTiooiMJpZMQ">Spotify</a></strong></p>]]></content:encoded></item><item><title><![CDATA[Data Modeling Is Overrated. Come Fight Me in the Comments.]]></title><description><![CDATA[I posted on LinkedIn asking what the most overrated topic in data engineering is, and I said data modeling.]]></description><link>https://andreaskretz.substack.com/p/data-modeling-is-overrated-come-fight</link><guid isPermaLink="false">https://andreaskretz.substack.com/p/data-modeling-is-overrated-come-fight</guid><dc:creator><![CDATA[Andreas Kretz]]></dc:creator><pubDate>Thu, 09 Jul 2026 15:54:45 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!8Bgy!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6d1c8033-a87f-481f-8b24-10a9b0606975_1280x720.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!8Bgy!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6d1c8033-a87f-481f-8b24-10a9b0606975_1280x720.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!8Bgy!, /__u/andreaskretz.substack.com/w_424, /__u/andreaskretz.substack.com/c_limit, /__u/andreaskretz.substack.com/f_webp, /__u/andreaskretz.substack.com/q_auto:good, /__u/andreaskretz.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6d1c8033-a87f-481f-8b24-10a9b0606975_1280x720.png 424w, /__u/substackcdn.com/image/fetch/$s_!8Bgy!, /__u/andreaskretz.substack.com/w_848, /__u/andreaskretz.substack.com/c_limit, /__u/andreaskretz.substack.com/f_webp, /__u/andreaskretz.substack.com/q_auto:good, /__u/andreaskretz.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6d1c8033-a87f-481f-8b24-10a9b0606975_1280x720.png 848w, /__u/substackcdn.com/image/fetch/$s_!8Bgy!, /__u/andreaskretz.substack.com/w_1272, /__u/andreaskretz.substack.com/c_limit, /__u/andreaskretz.substack.com/f_webp, /__u/andreaskretz.substack.com/q_auto:good, /__u/andreaskretz.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6d1c8033-a87f-481f-8b24-10a9b0606975_1280x720.png 1272w, /__u/substackcdn.com/image/fetch/$s_!8Bgy!, /__u/andreaskretz.substack.com/w_1456, /__u/andreaskretz.substack.com/c_limit, /__u/andreaskretz.substack.com/f_webp, /__u/andreaskretz.substack.com/q_auto:good, /__u/andreaskretz.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6d1c8033-a87f-481f-8b24-10a9b0606975_1280x720.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!8Bgy!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6d1c8033-a87f-481f-8b24-10a9b0606975_1280x720.png" width="1280" height="720" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/6d1c8033-a87f-481f-8b24-10a9b0606975_1280x720.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:720,&quot;width&quot;:1280,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1149432,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://andreaskretz.substack.com/i/206312640?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6d1c8033-a87f-481f-8b24-10a9b0606975_1280x720.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!8Bgy!, /__u/andreaskretz.substack.com/w_424, /__u/andreaskretz.substack.com/c_limit, /__u/andreaskretz.substack.com/f_auto, /__u/andreaskretz.substack.com/q_auto:good, /__u/andreaskretz.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6d1c8033-a87f-481f-8b24-10a9b0606975_1280x720.png 424w, /__u/substackcdn.com/image/fetch/$s_!8Bgy!, /__u/andreaskretz.substack.com/w_848, /__u/andreaskretz.substack.com/c_limit, /__u/andreaskretz.substack.com/f_auto, /__u/andreaskretz.substack.com/q_auto:good, /__u/andreaskretz.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6d1c8033-a87f-481f-8b24-10a9b0606975_1280x720.png 848w, /__u/substackcdn.com/image/fetch/$s_!8Bgy!, /__u/andreaskretz.substack.com/w_1272, /__u/andreaskretz.substack.com/c_limit, /__u/andreaskretz.substack.com/f_auto, /__u/andreaskretz.substack.com/q_auto:good, /__u/andreaskretz.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6d1c8033-a87f-481f-8b24-10a9b0606975_1280x720.png 1272w, /__u/substackcdn.com/image/fetch/$s_!8Bgy!, /__u/andreaskretz.substack.com/w_1456, /__u/andreaskretz.substack.com/c_limit, /__u/andreaskretz.substack.com/f_auto, /__u/andreaskretz.substack.com/q_auto:good, /__u/andreaskretz.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6d1c8033-a87f-481f-8b24-10a9b0606975_1280x720.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><span>I posted on LinkedIn asking what the most overrated topic in data engineering is, and I said data modeling. A bunch of people came in to tell me this was a big L take, the worst thing I&#8217;d ever posted.</span></p><p>Honestly, those are my favorite posts. If everyone agrees with you, what&#8217;s the point of saying anything?</p><h3><strong>What I&#8217;m Not Saying</strong></h3><p>Let me be clear, because this is where people get mad. I&#8217;m not saying data modeling doesn&#8217;t matter. I&#8217;m not saying it can&#8217;t make things better. Lots of things make things better.</p><p>What I&#8217;m saying is that the way it&#8217;s usually taught is ignoring the reality of the last ten years. We&#8217;re not in the SQL Server world anymore, spending all day writing queries and building indexes.</p><p>Most people on a lakehouse today are not going into Databricks and creating indexes for anything. The ground shifted, and a lot of the old emphasis didn&#8217;t shift with it.</p><h3><strong>Medallion Kind of Proves the Point</strong></h3><p>Think about medallion architecture. Everybody uses it, everybody talks about it, and what is it really? It&#8217;s &#8220;drop your data in three different spots and clean it up on the way through&#8221;. That&#8217;s it.</p><p>That&#8217;s not data modeling in the old sense. If running Kimball-style dimensional modeling on top of your lakehouse feels right to you, that&#8217;s mostly preference, a way of thinking you&#8217;re comfortable with.</p><p>The fact that the whole industry adopted a simple bronze-silver-gold pattern instead tells you something about how much heavy modeling people actually need day to day.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://andreaskretz.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading The Data Engineering Insider! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><h3><strong>AI Is Genuinely Good at This Part</strong></h3><p>Here&#8217;s the other reason it&#8217;s overrated. AI is very good at data modeling, as long as you know what you&#8217;re doing and give it good context.</p><p>It&#8217;s a structured, well-defined problem, and the models were trained on an enormous amount of Postgres schemas and SQL. You don&#8217;t need ten courses and a stack of books to spit out a reasonable schema anymore.</p><p>If you have the free time and you want to learn it deeply, go for it, I&#8217;ll never tell anyone not to learn something. But it&#8217;s not the make-or-break skill people pretend it is.</p><h3><strong>Where It Still Matters</strong></h3><p>I&#8217;m not throwing it out completely. A data model still shows up in real ways. You&#8217;ve got a streaming application, data is coming in, and it has to land somewhere.</p><p>People immediately jump to dimensional modeling, but plenty of the time that&#8217;s wrong. Sometimes it goes into a document store because a UI needs to read it, and that still needs a thoughtful model of how you store the data.</p><p>So it&#8217;s not dead. It&#8217;s just nowhere near the most important thing, and at scale in a lakehouse, beyond clustering and partitioning, it simply doesn&#8217;t carry the weight it used to.</p><p>Old habits die hard. So tell me honestly, is data modeling still as important as people say, or are we just teaching it out of habit?</p><p></p><p>I discussed this and other topics in my latest podcast with guest Dan Beach from <a href="/__u/dataengineeringcentral.substack.com/">Data Engineering Central</a>.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!LSVI!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdb2fa5d2-ec5f-47f1-88ba-8a98e40e0056_1280x720.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!LSVI!, /__u/andreaskretz.substack.com/w_424, /__u/andreaskretz.substack.com/c_limit, /__u/andreaskretz.substack.com/f_webp, /__u/andreaskretz.substack.com/q_auto:good, /__u/andreaskretz.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdb2fa5d2-ec5f-47f1-88ba-8a98e40e0056_1280x720.png 424w, /__u/substackcdn.com/image/fetch/$s_!LSVI!, /__u/andreaskretz.substack.com/w_848, /__u/andreaskretz.substack.com/c_limit, /__u/andreaskretz.substack.com/f_webp, /__u/andreaskretz.substack.com/q_auto:good, /__u/andreaskretz.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdb2fa5d2-ec5f-47f1-88ba-8a98e40e0056_1280x720.png 848w, /__u/substackcdn.com/image/fetch/$s_!LSVI!, /__u/andreaskretz.substack.com/w_1272, /__u/andreaskretz.substack.com/c_limit, /__u/andreaskretz.substack.com/f_webp, /__u/andreaskretz.substack.com/q_auto:good, /__u/andreaskretz.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdb2fa5d2-ec5f-47f1-88ba-8a98e40e0056_1280x720.png 1272w, /__u/substackcdn.com/image/fetch/$s_!LSVI!, /__u/andreaskretz.substack.com/w_1456, /__u/andreaskretz.substack.com/c_limit, /__u/andreaskretz.substack.com/f_webp, /__u/andreaskretz.substack.com/q_auto:good, /__u/andreaskretz.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdb2fa5d2-ec5f-47f1-88ba-8a98e40e0056_1280x720.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!LSVI!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdb2fa5d2-ec5f-47f1-88ba-8a98e40e0056_1280x720.png" width="1280" height="720" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/db2fa5d2-ec5f-47f1-88ba-8a98e40e0056_1280x720.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:720,&quot;width&quot;:1280,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:734090,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://andreaskretz.substack.com/i/206312640?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdb2fa5d2-ec5f-47f1-88ba-8a98e40e0056_1280x720.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!LSVI!, /__u/andreaskretz.substack.com/w_424, /__u/andreaskretz.substack.com/c_limit, /__u/andreaskretz.substack.com/f_auto, /__u/andreaskretz.substack.com/q_auto:good, /__u/andreaskretz.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdb2fa5d2-ec5f-47f1-88ba-8a98e40e0056_1280x720.png 424w, /__u/substackcdn.com/image/fetch/$s_!LSVI!, /__u/andreaskretz.substack.com/w_848, /__u/andreaskretz.substack.com/c_limit, /__u/andreaskretz.substack.com/f_auto, /__u/andreaskretz.substack.com/q_auto:good, /__u/andreaskretz.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdb2fa5d2-ec5f-47f1-88ba-8a98e40e0056_1280x720.png 848w, /__u/substackcdn.com/image/fetch/$s_!LSVI!, /__u/andreaskretz.substack.com/w_1272, /__u/andreaskretz.substack.com/c_limit, /__u/andreaskretz.substack.com/f_auto, /__u/andreaskretz.substack.com/q_auto:good, /__u/andreaskretz.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdb2fa5d2-ec5f-47f1-88ba-8a98e40e0056_1280x720.png 1272w, /__u/substackcdn.com/image/fetch/$s_!LSVI!, /__u/andreaskretz.substack.com/w_1456, /__u/andreaskretz.substack.com/c_limit, /__u/andreaskretz.substack.com/f_auto, /__u/andreaskretz.substack.com/q_auto:good, /__u/andreaskretz.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdb2fa5d2-ec5f-47f1-88ba-8a98e40e0056_1280x720.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">caption...</figcaption></figure></div><p>Watch it on <a href="https://youtu.be/nNp1jul4QFs">YouTube</a>. Or listen to it on <a href="https://open.spotify.com/episode/2GDvFrvZJGuZF0OpmgMZs2?si=v5lDrXTIT1C90B_kzZnRRQ">your favorite platform</a>.</p><p>***</p><p>Ready to become a Data Engineer? Then join my <strong><a href="https://learndataengineering.com/p/academy">Learn Data Engineering Academy</a></strong> today!</p><p>Looking for free hands-on projects and tutorials? Then check out my <strong><a href="https://learndataengineering.com/p/free-labs">Free Labs.</a></strong></p><p>More Data Engineering content: <strong><a href="https://www.youtube.com/@andreaskayy">YouTube</a></strong> | <strong><a href="https://www.linkedin.com/in/andreas-kretz/">LinkedIn</a></strong> | <strong><a href="https://open.spotify.com/show/529Q58D0db7bI8p6NKaRjU?si=jZCozvp6QguTiooiMJpZMQ">Spotify</a></strong></p>]]></content:encoded></item><item><title><![CDATA[The Basic Spark Concept Beginners Don't Know]]></title><description><![CDATA[Most people hit the same wall when they start learning Spark.]]></description><link>https://andreaskretz.substack.com/p/the-basic-spark-concept-beginners</link><guid isPermaLink="false">https://andreaskretz.substack.com/p/the-basic-spark-concept-beginners</guid><dc:creator><![CDATA[Andreas Kretz]]></dc:creator><pubDate>Wed, 03 Jun 2026 13:44:29 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!m_Gh!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F403e2479-1422-44d4-b9b3-9385e6a20d01_1280x720.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!m_Gh!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F403e2479-1422-44d4-b9b3-9385e6a20d01_1280x720.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!m_Gh!, /__u/andreaskretz.substack.com/w_424, /__u/andreaskretz.substack.com/c_limit, /__u/andreaskretz.substack.com/f_webp, /__u/andreaskretz.substack.com/q_auto:good, /__u/andreaskretz.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F403e2479-1422-44d4-b9b3-9385e6a20d01_1280x720.png 424w, /__u/substackcdn.com/image/fetch/$s_!m_Gh!, /__u/andreaskretz.substack.com/w_848, /__u/andreaskretz.substack.com/c_limit, /__u/andreaskretz.substack.com/f_webp, /__u/andreaskretz.substack.com/q_auto:good, /__u/andreaskretz.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F403e2479-1422-44d4-b9b3-9385e6a20d01_1280x720.png 848w, /__u/substackcdn.com/image/fetch/$s_!m_Gh!, /__u/andreaskretz.substack.com/w_1272, /__u/andreaskretz.substack.com/c_limit, /__u/andreaskretz.substack.com/f_webp, /__u/andreaskretz.substack.com/q_auto:good, /__u/andreaskretz.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F403e2479-1422-44d4-b9b3-9385e6a20d01_1280x720.png 1272w, /__u/substackcdn.com/image/fetch/$s_!m_Gh!, /__u/andreaskretz.substack.com/w_1456, /__u/andreaskretz.substack.com/c_limit, /__u/andreaskretz.substack.com/f_webp, /__u/andreaskretz.substack.com/q_auto:good, /__u/andreaskretz.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F403e2479-1422-44d4-b9b3-9385e6a20d01_1280x720.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!m_Gh!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F403e2479-1422-44d4-b9b3-9385e6a20d01_1280x720.png" width="1280" height="720" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/403e2479-1422-44d4-b9b3-9385e6a20d01_1280x720.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:720,&quot;width&quot;:1280,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:592006,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://andreaskretz.substack.com/i/200453264?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F403e2479-1422-44d4-b9b3-9385e6a20d01_1280x720.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!m_Gh!, /__u/andreaskretz.substack.com/w_424, /__u/andreaskretz.substack.com/c_limit, /__u/andreaskretz.substack.com/f_auto, /__u/andreaskretz.substack.com/q_auto:good, /__u/andreaskretz.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F403e2479-1422-44d4-b9b3-9385e6a20d01_1280x720.png 424w, /__u/substackcdn.com/image/fetch/$s_!m_Gh!, /__u/andreaskretz.substack.com/w_848, /__u/andreaskretz.substack.com/c_limit, /__u/andreaskretz.substack.com/f_auto, /__u/andreaskretz.substack.com/q_auto:good, /__u/andreaskretz.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F403e2479-1422-44d4-b9b3-9385e6a20d01_1280x720.png 848w, /__u/substackcdn.com/image/fetch/$s_!m_Gh!, /__u/andreaskretz.substack.com/w_1272, /__u/andreaskretz.substack.com/c_limit, /__u/andreaskretz.substack.com/f_auto, /__u/andreaskretz.substack.com/q_auto:good, /__u/andreaskretz.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F403e2479-1422-44d4-b9b3-9385e6a20d01_1280x720.png 1272w, /__u/substackcdn.com/image/fetch/$s_!m_Gh!, /__u/andreaskretz.substack.com/w_1456, /__u/andreaskretz.substack.com/c_limit, /__u/andreaskretz.substack.com/f_auto, /__u/andreaskretz.substack.com/q_auto:good, /__u/andreaskretz.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F403e2479-1422-44d4-b9b3-9385e6a20d01_1280x720.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Most people hit the same wall when they start learning Spark.</p><p>They write code, filter some data, join a table, select some columns, and nothing happens.</p><p>Then they run one more line and suddenly the whole thing executes at once.</p><p>It feels broken, but it&#8217;s not.</p><h3>Two Types of Operations, That&#8217;s It</h3><p>Everything you do in Spark is either a transformation or an action. That&#8217;s the whole model.</p><p>Transformations describe what should happen to the data, and actions tell Spark to actually do it.</p><p>Once you get this, Spark stops feeling random.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://andreaskretz.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading The Data Engineering Insider! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><h3>What Transformations Actually Do</h3><p>Selecting columns, filtering rows, joining datasets, grouping data. All of that is a transformation. Every time you do one, Spark creates a new DataFrame.</p><p>And here&#8217;s the thing: DataFrames are immutable, so you never modify one. You always create a new one.</p><p>The super important part is that transformations are lazy. Spark doesn&#8217;t process the data when you write the code. It builds a plan. You can chain ten transformations in a row and Spark just waits, because that lets it optimize the whole thing at once: combining steps, pushing filters down, deciding how to split the work across the cluster.</p><p>This is why Spark scales. It&#8217;s planning before acting, and the data stays distributed the whole time. Nothing gets sent back to your driver machine.</p><h3>What Actions Actually Do</h3><p>Actions are the trigger. When you call an action, Spark executes everything it&#8217;s been quietly planning up to that point. Now the cluster actually starts working, right?</p><p>So there are two kinds of actions. Some don&#8217;t send data back to the driver at all. Things like write, saveAsTextFile, or foreach. They push results directly to storage or process data on the executors. These kind of actions are fine, whatever the data size.</p><p>But then you have the ones that do send data back to the driver, and this is where people get into trouble. collect, count, show, first, take, head. These all pull data back to one machine. The driver. And the driver is just one machine.</p><p>So if you have 16GB or 32GB of driver memory and you suddenly dump a massive result set back to it, you either create a serious bottleneck or your job just crashes.</p><p>That&#8217;s not a Spark problem. That&#8217;s an architecture misunderstanding. And it happens a lot.</p><h3>The Mental Model That Makes It Click</h3><p>The sequence is straightforward: you write transformations, Spark builds a logical plan called a DAG, an action appears, the driver sends tasks out to the executors, the executors process data in parallel, and results are either written out or returned to the driver.</p><p>Transformations are planning. Actions are execution. That&#8217;s the whole system.</p><h3>Mistakes I See All the Time</h3><p>Using collect() on large datasets. Counting massive tables in production. Overusing show() while debugging. Forgetting that nothing runs until an action appears.</p><p>Yes, these things work on a demo spark notebook, but not in production. These mistakes don&#8217;t happen because Spark is complicated, they happen because the execution model wasn&#8217;t understood first.</p><p>Once you understand it, you start designing better jobs almost automatically.</p><h3>Spark Is Deliberate</h3><p>People complain that Spark is unpredictable when really they&#8217;re just fighting the execution model instead of working with it. Spark builds a plan, optimizes it, and executes when told to. Transformations build the plan. Actions execute it.</p><p>If you keep that in your head, you&#8217;ll avoid a lot of frustration and a lot of production incidents.</p><p>This is honestly the moment where people stop &#8220;trying Spark&#8221; and start thinking like distributed systems engineers. The lazy evaluation isn&#8217;t a quirk. It&#8217;s the whole point.</p><p>What was your biggest Spark mistake before you understood this? Leave a comment.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://andreaskretz.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading The Data Engineering Insider! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p>***</p><p>Ready to become a Data Engineer? Then join my <strong><a href="https://learndataengineering.com/">Learn Data Engineering Academy</a></strong> today!</p><p>If you want to build real platforms, master the full stack, and close your skill gaps, check out my <strong><a href="https://learndataengineering.com/p/data-engineering-coaching">Data Engineer Coaching program</a></strong>.</p><p>If you are interested, but still have a few burning questions on your mind: feel free to contact me via <strong><a href="mailto:hello@learndataengineering.com">hello@learndataengineering.com</a></strong>.</p><p>For more information and content on Data Engineering, also check out my other blog posts, videos and more on <strong><a href="https://medium.com/plumbersofdatascience">Medium</a></strong>, <strong><a href="https://www.youtube.com/channel/UCY8mzqqGwl5_bTpBY9qLMAA">YouTube</a></strong> and <strong><a href="https://www.linkedin.com/company/learn-data-engineering?originalSubdomain=de">LinkedIn</a></strong>!</p><p></p>]]></content:encoded></item><item><title><![CDATA[5 Claude Tips Every Developer Should Know]]></title><description><![CDATA[Recently I ran a test.]]></description><link>https://andreaskretz.substack.com/p/5-things-every-developer-should-do</link><guid isPermaLink="false">https://andreaskretz.substack.com/p/5-things-every-developer-should-do</guid><dc:creator><![CDATA[Andreas Kretz]]></dc:creator><pubDate>Tue, 19 May 2026 15:40:55 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!vrV2!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd14634be-aff8-4024-92d0-3ef5246adaa7_1280x720.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!vrV2!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd14634be-aff8-4024-92d0-3ef5246adaa7_1280x720.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!vrV2!, /__u/andreaskretz.substack.com/w_424, /__u/andreaskretz.substack.com/c_limit, /__u/andreaskretz.substack.com/f_webp, /__u/andreaskretz.substack.com/q_auto:good, /__u/andreaskretz.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd14634be-aff8-4024-92d0-3ef5246adaa7_1280x720.png 424w, /__u/substackcdn.com/image/fetch/$s_!vrV2!, /__u/andreaskretz.substack.com/w_848, /__u/andreaskretz.substack.com/c_limit, /__u/andreaskretz.substack.com/f_webp, /__u/andreaskretz.substack.com/q_auto:good, /__u/andreaskretz.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd14634be-aff8-4024-92d0-3ef5246adaa7_1280x720.png 848w, /__u/substackcdn.com/image/fetch/$s_!vrV2!, /__u/andreaskretz.substack.com/w_1272, /__u/andreaskretz.substack.com/c_limit, /__u/andreaskretz.substack.com/f_webp, /__u/andreaskretz.substack.com/q_auto:good, /__u/andreaskretz.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd14634be-aff8-4024-92d0-3ef5246adaa7_1280x720.png 1272w, /__u/substackcdn.com/image/fetch/$s_!vrV2!, /__u/andreaskretz.substack.com/w_1456, /__u/andreaskretz.substack.com/c_limit, /__u/andreaskretz.substack.com/f_webp, /__u/andreaskretz.substack.com/q_auto:good, /__u/andreaskretz.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd14634be-aff8-4024-92d0-3ef5246adaa7_1280x720.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!vrV2!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd14634be-aff8-4024-92d0-3ef5246adaa7_1280x720.png" width="1280" height="720" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d14634be-aff8-4024-92d0-3ef5246adaa7_1280x720.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:720,&quot;width&quot;:1280,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:745636,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://andreaskretz.substack.com/i/198426308?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd14634be-aff8-4024-92d0-3ef5246adaa7_1280x720.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!vrV2!, /__u/andreaskretz.substack.com/w_424, /__u/andreaskretz.substack.com/c_limit, /__u/andreaskretz.substack.com/f_auto, /__u/andreaskretz.substack.com/q_auto:good, /__u/andreaskretz.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd14634be-aff8-4024-92d0-3ef5246adaa7_1280x720.png 424w, /__u/substackcdn.com/image/fetch/$s_!vrV2!, /__u/andreaskretz.substack.com/w_848, /__u/andreaskretz.substack.com/c_limit, /__u/andreaskretz.substack.com/f_auto, /__u/andreaskretz.substack.com/q_auto:good, /__u/andreaskretz.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd14634be-aff8-4024-92d0-3ef5246adaa7_1280x720.png 848w, /__u/substackcdn.com/image/fetch/$s_!vrV2!, /__u/andreaskretz.substack.com/w_1272, /__u/andreaskretz.substack.com/c_limit, /__u/andreaskretz.substack.com/f_auto, /__u/andreaskretz.substack.com/q_auto:good, /__u/andreaskretz.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd14634be-aff8-4024-92d0-3ef5246adaa7_1280x720.png 1272w, /__u/substackcdn.com/image/fetch/$s_!vrV2!, /__u/andreaskretz.substack.com/w_1456, /__u/andreaskretz.substack.com/c_limit, /__u/andreaskretz.substack.com/f_auto, /__u/andreaskretz.substack.com/q_auto:good, /__u/andreaskretz.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd14634be-aff8-4024-92d0-3ef5246adaa7_1280x720.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Recently I ran a test. I wanted to know how fast I could hit the Claude Pro usage limit if I just used Claude the way most developers use it &#8212; opening sessions, asking questions, pasting code, &#64257;xing bugs, with no real strategy behind any of it.</p><p>It took me 2.5 hours.</p><p>That was a wake-up call. Not because the limit is too low, but because I clearly wasn&#8217;t getting the most out of the tool. And I see this same problem with developers everywhere. They use Claude like a fancy version of Stack Over&#64258;ow &#8212; type a question, get an answer, paste it in, repeat. It works, but it leaves most of the value on the table.</p><p>The developers who actually get 2&#8211;3x more done with Claude aren&#8217;t writing better prompts. They&#8217;re not paying for a more expensive model. They&#8217;re architecting the session.</p><p>These are the 5 habits that make the di&#64256;erence. None of them are complicated. But nobody tells you about them, and you only &#64257;gure them out after burning through your usage limit a few times.</p><p>Real gains don&#8217;t come from better models &#8212; they come from architecting the session.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://andreaskretz.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading The Data Engineering Insider! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><h3><strong>1. Plan Before You Code. Always.</strong></h3><p>The single biggest lever in AI coding isn&#8217;t a better prompt or a smarter model. It&#8217;s planning before you write a line of code.</p><p>The most expensive failure mode is Claude con&#64257;dently writing 400 lines in the wrong direction.</p><p>Five minutes of planning prevents an hour of cleanup &#8212; and a lot of wasted tokens.</p><p>Plan inside Claude Code for small to medium tasks For anything non-trivial inside your coding session, press Shift+Tab to enter plan mode. Claude explores the codebase, proposes an approach, you review and approve it, and then implementation starts.</p><p>Use the opusplan model for this work&#64258;ow. Opus reasons through the plan, Sonnet writes the code.</p><p>You get the expensive thinking only where it actually pays back.</p><h4><strong>Plan in the Claude app &#64257;rst for bigger work</strong></h4><p>This is the step most developers skip &#8212; and it&#8217;s a game-changer.</p><p>For new projects, major features, or signi&#64257;cant refactors, don&#8217;t start in VS Code.</p><p>Open the Claude app in your browser and start a fresh chat.</p><p>Talk through what you&#8217;re building. Push back on Claude&#8217;s &#64257;rst answer. Change your mind. Throw out an entire approach and start over. In a chat, iteration is cheap. In a coding session, every pivot costs you context and tokens.</p><p>When the plan feels right, ask Claude to turn it into a project brief:</p><p>goals, constraints, &#64257;le structure, key decisions, tech choices, and de&#64257;nition of done.</p><h4><strong>Bring the plan into your coding session Now you have two options:</strong></h4><ul><li><p>Paste the brief as the opening prompt in your Claude Code session</p></li><li><p>Drop it into your <strong><a href="http://claude.md/">CLAUDE.md</a></strong> &#64257;le if it&#8217;s project-wide context that should persist across sessions</p></li></ul><p>The principle underneath this: plan in the medium where iteration is cheap. Two-step planning gives Claude the why behind your code, not just the what. That&#8217;s what stops it from making bad decisions on your behalf later.</p><p></p><h3><strong>2. Write Speci&#64257;c Prompts With Veri&#64257;cation Targets</strong></h3><p>&#8220;Improve this code&#8221; is the worst prompt you can write. It&#8217;s vague, it triggers broad scanning across &#64257;les, and it almost guarantees Claude does something you didn&#8217;t actually want.</p><p>Compare these two prompts:</p><p>&#8220;Improve the auth module&#8221;</p><p>vs.</p><p>&#8220;Add input validation to the login function in auth.ts. Reject empty email, validate format with the existing isEmail util, return 400 with {error: &#8216;invalid_email&#8217;}. Test case: login(&#8217;&#8216;) &#8594; 400.&#8221;</p><p>The second one takes 30 seconds longer to write and saves you 20 minutes of &#64257;x-up rounds.</p><h4><strong>Rule 1: Name the &#64257;le, name the function</strong></h4><p>Don&#8217;t make Claude guess where the work happens. If you can point to the exact location, do it.</p><p>Every time you save Claude from having to search the codebase, you save tokens and time.</p><h4><strong>Rule 2: Give a veri&#64257;cation target</strong></h4><p>Paste the failing test, the expected output, or a screenshot of the broken UI.</p><p>When Claude can verify its own work before handing it back to you, it catches issues before you have to ask for &#64257;xes.</p><h4><strong>Why this compounds</strong></h4><p>Every prompt either saves you a turn or costs you one. Across a session, that&#8217;s the di&#64256;erence between shipping a feature and still debugging it at 6pm. The 30 seconds you spend writing a clear prompt pay back ten times over by the end of the day.</p><p></p><h3><strong>3. Manage Context Like It&#8217;s a Budget &#8212; Because It Is</strong></h3><p>Your context window isn&#8217;t in&#64257;nite. Every &#64257;le you load, every command you run, every piece of tool output Claude sees &#8212; it all stacks up. When the window &#64257;lls, performance degrades and Claude starts losing the thread of your work.</p><p>Three habits handle 90% of context problems.</p><h4><strong>Use /clear between unrelated tasks</strong></h4><p>Stale context taxes every subsequent message. If you spent the morning debugging auth and now you&#8217;re writing tests for the payments module, hit /clear. Before you do, run /rename so you can &#64257;nd the session later, then /resume to come back to it if you need to.</p><h4><strong>Use /compact at natural breakpoints</strong></h4><p>/compact summarizes your conversation history and replaces it with a compressed version.</p><p>Use it proactively &#8212; at the end of a subtask, before switching focus &#8212; not when you&#8217;re already at 95% full.</p><p>Tell it what to keep:</p><p>/compact keep the auth refactor decisions and the schema changes</p><p>That single line preserves what matters and lets the rest go.</p><h4><strong>Run /context to see what&#8217;s actually loaded</strong></h4><p>Most developers are shocked the &#64257;rst time they run this. Their <strong><a href="http://claude.md/">CLAUDE.md</a></strong>, MCP servers, and skills are eating 20% of the window before they&#8217;ve typed a single character.</p><p>If that&#8217;s you, &#64257;x the base load &#64257;rst:</p><ul><li><p>Trim <strong><a href="http://claude.md/">CLAUDE.md</a></strong> to under 200 lines</p></li><li><p>Disable MCP servers you don&#8217;t actively use (/mcp to list them)</p></li><li><p>Move detailed work&#64258;ow instructions out of <strong><a href="http://claude.md/">CLAUDE.md</a></strong> and into skills, which only load when invoked</p></li></ul><h4><strong>Watch out for &#64257;les that are too big for the context window</strong></h4><p>Here&#8217;s a real problem I ran into. I was developing a notebook that grew so large Claude couldn&#8217;t load it directly into context anymore. To read or edit it, Claude had to use a Python function &#8212; which meant every read and edit dumped huge output into context. On top of that, I lost visibility into what Claude was actually changing.</p><p>The &#64257;x: split big &#64257;les into smaller, single-purpose ones before you start AI work. The same principle applies to huge log &#64257;les, data dumps, and generated code. Preprocess or chunk them before Claude ever touches them. If a &#64257;le is too big to load cleanly, it&#8217;s already costing you.</p><p></p><h3><strong>4. Match the Model and the E&#64256;ort to the Task</strong></h3><p>Two independent dials. Most developers only know about one.</p><h4><strong>Model choice &#8212; how smart the engine is</strong></h4><ul><li><p>Sonnet is your default. It handles 80% of coding work at a fraction of Opus cost.</p></li><li><p>Opus is for genuine architectural decisions and multi-&#64257;le reasoning. Don&#8217;t sit on it for everything.</p></li><li><p>Haiku is for cheap, fast, mechanical work.</p></li></ul><p>Switch mid-session with /model. The right answer is almost never &#8220;use this one model for everything&#8221; &#8212; it&#8217;s &#8220;switch based on what you&#8217;re doing right now.&#8221;</p><h4><strong>E&#64256;ort &#8212; how long Claude thinks before answering</strong></h4><p>This is the dial most developers don&#8217;t even know exists. Set it with /effort.</p><p>Extended thinking tokens are billed as output tokens, and the default budget can be tens of thousands of tokens per request. That adds up fast.</p><p>The levels, roughly:</p><ul><li><p>Low &#8212; renames, typo &#64257;xes, obvious feature work</p></li><li><p>Medium &#8212; default for most coding</p></li><li><p>High &#8212; gnarly debugging, architectural decisions, multi-&#64257;le refactors</p></li></ul><p>You can also set MAX_THINKING_TOKENS=8000 for an entire session focused on simpler work, then crank it back up when you hit something hard.</p><h4><strong>The key insight</strong></h4><p>Sonnet on high e&#64256;ort often beats Opus on low e&#64256;ort, at lower cost.</p><p>The thinking budget is doing the heavy lifting, not the model tier.</p><h4><strong>The common mistake</strong></h4><p>Cranking everything to max for the entire session. You&#8217;ll burn through tokens on trivial requests where Claude is &#8220;thinking&#8221; about whether to use let or const. Dial it down for the boring 80% of work, and dial it up for the 20% that actually needs reasoning.</p><p></p><h3><strong>5. Debugging: Paste Errors Properly and Let Claude Diagnose Before It Fixes</strong></h3><p>Debugging is the most common AI coding task &#8212; and most developers do it wrong.</p><p>They paraphrase errors, skip context, and let Claude jump straight to &#64257;xing without diagnosing.</p><h4><strong>Paste the full error verbatim</strong></h4><p>Stack trace, line numbers, error code, everything. Don&#8217;t paraphrase, don&#8217;t summarize.</p><p>Claude needs the raw signal &#8212; the exact error message often contains the clue that solves the bug.</p><h4><strong>Include what you already tried</strong></h4><p>A quick note like &#8220;I checked X, ruled out Y, the issue persists when Z&#8221; stops Claude from suggesting things you&#8217;ve already eliminated. Saves a full back-and-forth round.</p><h4><strong>Point to the &#64257;le and function</strong></h4><p>Same rule as Tip 2 &#8212; name the location. Don&#8217;t make Claude guess where the bug lives.</p><h4><strong>For non-obvious bugs, use plan mode</strong></h4><p>Force Claude to diagnose before touching the code. This is especially important for intermittent bugs, race conditions, and issues that span multiple &#64257;les. The worst thing Claude can do is &#8220;&#64257;x&#8221; the symptom without understanding the cause.</p><h4><strong>Match e&#64256;ort to bug complexity</strong></h4><ul><li><p>Missing import, typo, null check &#8594; low e&#64256;ort, Sonnet</p></li><li><p>Distributed system failing under load, weird state issue, intermittent failure &#8594; high e&#64256;ort, possibly Opus</p></li></ul><h4><strong>Cut losses early with /rewind</strong></h4><p>If Claude starts heading the wrong direction, double-tap Escape or use /rewind to restore your conversation and code to a previous checkpoint. Cutting losses early saves more tokens than any optimization technique. Don&#8217;t let a bad path eat your session.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://andreaskretz.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading The Data Engineering Insider! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><h3><strong>The Bigger Picture</strong></h3><p>The thread running through all 5 habits is the same:</p><p>your job isn&#8217;t to type prompts. Your job is to architect the session.</p><ul><li><p>Plan &#64257;rst</p></li><li><p>Scope tight</p></li><li><p>Model-match</p></li><li><p>Keep context lean</p></li><li><p>Debug methodically</p></li></ul><p>The gap between developers who do this and developers who don&#8217;t widens with every project.</p><p>On a small task it&#8217;s 10% faster. On a real codebase, it&#8217;s the di&#64256;erence between shipping and not shipping.</p><p>Remember the 2.5 hours I burned through Pro at the start of this article? That was me with zero of these habits.</p><p>Imagine what&#8217;s possible with all &#64257;ve.</p><p></p><p>***</p><p>Ready to become a Data Engineer? Then join my <strong><a href="https://learndataengineering.com/">Learn Data Engineering Academy</a></strong> today!</p><p>If you want to build real platforms, master the full stack, and close your skill gaps, check out my <strong><a href="https://learndataengineering.com/p/data-engineering-coaching">Data Engineer Coaching program</a></strong>.</p><p>If you are interested, but still have a few burning questions on your mind: feel free to contact me via <strong><a href="mailto:hello@learndataengineering.com">hello@learndataengineering.com</a></strong>.</p><p>For more information and content on Data Engineering, also check out my other blog posts, videos and more on <strong><a href="https://medium.com/plumbersofdatascience">Medium</a></strong>, <strong><a href="https://www.youtube.com/channel/UCY8mzqqGwl5_bTpBY9qLMAA">YouTube</a></strong> and <strong><a href="https://www.linkedin.com/company/learn-data-engineering?originalSubdomain=de">LinkedIn</a></strong>!</p>]]></content:encoded></item><item><title><![CDATA[👑 One database to rule them all | 🤖 AI you can't trust | 🎛️ The harness matters more than the model]]></title><description><![CDATA[Why harness engineering is the real unlock. How do you verify what an AI agent actually returns? Plus a hands-on Oracle pipeline agent build!]]></description><link>https://andreaskretz.substack.com/p/one-database-to-rule-them-all-ai</link><guid isPermaLink="false">https://andreaskretz.substack.com/p/one-database-to-rule-them-all-ai</guid><dc:creator><![CDATA[Andreas Kretz]]></dc:creator><pubDate>Fri, 15 May 2026 15:30:58 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!FVLb!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F11f605f8-fc79-47ea-8597-05e7152a1bba_1920x1080.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!FVLb!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F11f605f8-fc79-47ea-8597-05e7152a1bba_1920x1080.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!FVLb!, /__u/andreaskretz.substack.com/w_424, /__u/andreaskretz.substack.com/c_limit, /__u/andreaskretz.substack.com/f_webp, /__u/andreaskretz.substack.com/q_auto:good, /__u/andreaskretz.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F11f605f8-fc79-47ea-8597-05e7152a1bba_1920x1080.png 424w, /__u/substackcdn.com/image/fetch/$s_!FVLb!, /__u/andreaskretz.substack.com/w_848, /__u/andreaskretz.substack.com/c_limit, /__u/andreaskretz.substack.com/f_webp, /__u/andreaskretz.substack.com/q_auto:good, /__u/andreaskretz.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F11f605f8-fc79-47ea-8597-05e7152a1bba_1920x1080.png 848w, /__u/substackcdn.com/image/fetch/$s_!FVLb!, /__u/andreaskretz.substack.com/w_1272, /__u/andreaskretz.substack.com/c_limit, /__u/andreaskretz.substack.com/f_webp, /__u/andreaskretz.substack.com/q_auto:good, /__u/andreaskretz.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F11f605f8-fc79-47ea-8597-05e7152a1bba_1920x1080.png 1272w, /__u/substackcdn.com/image/fetch/$s_!FVLb!, /__u/andreaskretz.substack.com/w_1456, /__u/andreaskretz.substack.com/c_limit, /__u/andreaskretz.substack.com/f_webp, /__u/andreaskretz.substack.com/q_auto:good, /__u/andreaskretz.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F11f605f8-fc79-47ea-8597-05e7152a1bba_1920x1080.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!FVLb!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F11f605f8-fc79-47ea-8597-05e7152a1bba_1920x1080.png" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/11f605f8-fc79-47ea-8597-05e7152a1bba_1920x1080.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1722254,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://andreaskretz.substack.com/i/197874285?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F11f605f8-fc79-47ea-8597-05e7152a1bba_1920x1080.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!FVLb!, /__u/andreaskretz.substack.com/w_424, /__u/andreaskretz.substack.com/c_limit, /__u/andreaskretz.substack.com/f_auto, /__u/andreaskretz.substack.com/q_auto:good, /__u/andreaskretz.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F11f605f8-fc79-47ea-8597-05e7152a1bba_1920x1080.png 424w, /__u/substackcdn.com/image/fetch/$s_!FVLb!, /__u/andreaskretz.substack.com/w_848, /__u/andreaskretz.substack.com/c_limit, /__u/andreaskretz.substack.com/f_auto, /__u/andreaskretz.substack.com/q_auto:good, /__u/andreaskretz.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F11f605f8-fc79-47ea-8597-05e7152a1bba_1920x1080.png 848w, /__u/substackcdn.com/image/fetch/$s_!FVLb!, /__u/andreaskretz.substack.com/w_1272, /__u/andreaskretz.substack.com/c_limit, /__u/andreaskretz.substack.com/f_auto, /__u/andreaskretz.substack.com/q_auto:good, /__u/andreaskretz.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F11f605f8-fc79-47ea-8597-05e7152a1bba_1920x1080.png 1272w, /__u/substackcdn.com/image/fetch/$s_!FVLb!, /__u/andreaskretz.substack.com/w_1456, /__u/andreaskretz.substack.com/c_limit, /__u/andreaskretz.substack.com/f_auto, /__u/andreaskretz.substack.com/q_auto:good, /__u/andreaskretz.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F11f605f8-fc79-47ea-8597-05e7152a1bba_1920x1080.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Hey folks,</p><p>I shared a few things this past week that I think are flying under the radar right now. A hands-on build, and two topics that I believe matter a lot more than the industry is admitting.</p><p>Here&#8217;s what you might have missed:</p><h3><strong>The biggest problem with AI that nobody talks about</strong></h3><p>I ran a quick poll this week: do you trust AI-generated reports? 10% said yes. 59% said only if they can verify it.</p><p>That&#8217;s exactly the problem I&#8217;ve been running into while building an AI-powered pipeline monitoring system. And it raised a question the AI hype cycle doesn&#8217;t want to answer: how do you actually trust the output?</p><p>Not ChatGPT answers. I&#8217;m talking about production BI reports and reliability dashboards that executives base decisions on. With SQL you can verify the query. With vector search and an LLM on top? The logic is invisible. That&#8217;s a real problem.</p><p><strong><a href="https://www.linkedin.com/pulse/biggest-problem-ai-nobody-talks-andreas-kretz-hspqf">Read the full article</a></strong></p><h3><strong>I Built an AI Agent You Can Ask Why Your Pipeline Is Failing - With Oracle AI Database 26ai</strong></h3><p>Most pipeline observability setups need 3 separate systems: a metadata store, a log store, and a vector database. That means 3 connections, 3 things to break, 3 places to debug.</p><p>In my latest video I show you how to consolidate all of that into one using Oracle&#8217;s AI Database 26ai, and build a LangGraph ReAct agent on top that answers natural language questions about your pipeline failures.</p><p>Ask why a DAG keeps failing on Mondays. It figures out whether to run SQL, do a semantic log search, or both. Runs completely locally via Docker, for free.</p><p><strong><a href="https://youtu.be/uxdo2TlGooU">Watch the video</a></strong></p><h3><strong>I learned about AI harnesses and you should too</strong></h3><p>When an AI system fails, the first reaction is always: we need a better model. But very often, especially in data work, that&#8217;s not the issue.</p><p>The real issue is that the system has no proper structure around it. That&#8217;s what a harness is. It controls which tools the model uses, what it can do, where guardrails are enforced.</p><p>I think it&#8217;s way more important than most people realize right now.</p><p><strong><a href="https://www.linkedin.com/pulse/i-learned-ai-harnesses-you-should-too-andreas-kretz-v2okf">Read the full article</a></strong></p><h3><strong>Now on YouTube and Udemy: Spark Declarative Pipelines on Databricks</strong></h3><p>My free 2-hour Databricks lab is now available as a full course on both platforms.</p><p>It covers Spark Declarative Pipelines and Lakeflow Designer: how to define Bronze &#8594; Silver &#8594; Gold pipelines with SQL, let Databricks handle dependencies and orchestration, and build visual pipelines almost no-code.</p><p>If you&#8217;re still managing pipeline logic in notebooks, this is worth two hours of your time.</p><p><strong><a href="https://www.udemy.com/course/databricks-spark-declarative-pipelines-lakeflow-designer">Start course on Udemy</a></strong></p><p><strong><a href="https://youtu.be/nrfP2_frM5k">Start course on YouTube</a></strong></p><p>&#8203;</p><p>That&#8217;s it for this time &#128588; If any of this hit home, especially the trust question around AI outputs, I&#8217;d love to hear how you&#8217;re thinking about it in the comments.</p><p>Talk soon,<br>Andreas</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://andreaskretz.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading The Data Engineering Insider! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p></p><p>***</p><p></p><p>Ready to become a Data Engineer? Then join my <strong><a href="https://learndataengineering.com/">Learn Data Engineering Academy</a></strong> today!</p><p>If you want to build real platforms, master the full stack, and close your skill gaps, check out my <strong><a href="https://learndataengineering.com/p/data-engineering-coaching">Data Engineer Coaching program</a></strong>.</p><p>If you are interested, but still have a few burning questions on your mind: feel free to contact me via <strong><a href="mailto:hello@learndataengineering.com">hello@learndataengineering.com</a></strong>.</p><p>For more information and content on Data Engineering, also check out my other blog posts, videos and more on <strong><a href="https://medium.com/plumbersofdatascience">Medium</a></strong>, <strong><a href="https://www.youtube.com/channel/UCY8mzqqGwl5_bTpBY9qLMAA">YouTube</a></strong> and <strong><a href="https://www.linkedin.com/company/learn-data-engineering?originalSubdomain=de">LinkedIn</a></strong>!</p>]]></content:encoded></item><item><title><![CDATA[The Biggest Problem With AI Nobody Talks About]]></title><description><![CDATA[I&#8216;ve been building an AI-powered pipeline monitoring system.]]></description><link>https://andreaskretz.substack.com/p/the-biggest-problem-with-ai-nobody</link><guid isPermaLink="false">https://andreaskretz.substack.com/p/the-biggest-problem-with-ai-nobody</guid><dc:creator><![CDATA[Andreas Kretz]]></dc:creator><pubDate>Wed, 13 May 2026 13:18:47 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!udLF!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F19c63137-0a48-4f80-8b2b-62e9aacf3273_1672x941.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!udLF!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F19c63137-0a48-4f80-8b2b-62e9aacf3273_1672x941.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!udLF!, /__u/andreaskretz.substack.com/w_424, /__u/andreaskretz.substack.com/c_limit, /__u/andreaskretz.substack.com/f_webp, /__u/andreaskretz.substack.com/q_auto:good, /__u/andreaskretz.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F19c63137-0a48-4f80-8b2b-62e9aacf3273_1672x941.png 424w, /__u/substackcdn.com/image/fetch/$s_!udLF!, /__u/andreaskretz.substack.com/w_848, /__u/andreaskretz.substack.com/c_limit, /__u/andreaskretz.substack.com/f_webp, /__u/andreaskretz.substack.com/q_auto:good, /__u/andreaskretz.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F19c63137-0a48-4f80-8b2b-62e9aacf3273_1672x941.png 848w, /__u/substackcdn.com/image/fetch/$s_!udLF!, /__u/andreaskretz.substack.com/w_1272, /__u/andreaskretz.substack.com/c_limit, /__u/andreaskretz.substack.com/f_webp, /__u/andreaskretz.substack.com/q_auto:good, /__u/andreaskretz.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F19c63137-0a48-4f80-8b2b-62e9aacf3273_1672x941.png 1272w, /__u/substackcdn.com/image/fetch/$s_!udLF!, /__u/andreaskretz.substack.com/w_1456, /__u/andreaskretz.substack.com/c_limit, /__u/andreaskretz.substack.com/f_webp, /__u/andreaskretz.substack.com/q_auto:good, /__u/andreaskretz.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F19c63137-0a48-4f80-8b2b-62e9aacf3273_1672x941.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!udLF!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F19c63137-0a48-4f80-8b2b-62e9aacf3273_1672x941.png" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/19c63137-0a48-4f80-8b2b-62e9aacf3273_1672x941.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1413170,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://andreaskretz.substack.com/i/197508369?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F19c63137-0a48-4f80-8b2b-62e9aacf3273_1672x941.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!udLF!, /__u/andreaskretz.substack.com/w_424, /__u/andreaskretz.substack.com/c_limit, /__u/andreaskretz.substack.com/f_auto, /__u/andreaskretz.substack.com/q_auto:good, /__u/andreaskretz.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F19c63137-0a48-4f80-8b2b-62e9aacf3273_1672x941.png 424w, /__u/substackcdn.com/image/fetch/$s_!udLF!, /__u/andreaskretz.substack.com/w_848, /__u/andreaskretz.substack.com/c_limit, /__u/andreaskretz.substack.com/f_auto, /__u/andreaskretz.substack.com/q_auto:good, /__u/andreaskretz.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F19c63137-0a48-4f80-8b2b-62e9aacf3273_1672x941.png 848w, /__u/substackcdn.com/image/fetch/$s_!udLF!, /__u/andreaskretz.substack.com/w_1272, /__u/andreaskretz.substack.com/c_limit, /__u/andreaskretz.substack.com/f_auto, /__u/andreaskretz.substack.com/q_auto:good, /__u/andreaskretz.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F19c63137-0a48-4f80-8b2b-62e9aacf3273_1672x941.png 1272w, /__u/substackcdn.com/image/fetch/$s_!udLF!, /__u/andreaskretz.substack.com/w_1456, /__u/andreaskretz.substack.com/c_limit, /__u/andreaskretz.substack.com/f_auto, /__u/andreaskretz.substack.com/q_auto:good, /__u/andreaskretz.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F19c63137-0a48-4f80-8b2b-62e9aacf3273_1672x941.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>I&#8216;ve been building an AI-powered pipeline monitoring system. Ask it a question, get a report. Cool concept, right?</p><p>But here&#8217;s the thing nobody in the AI hype cycle wants to admit: how do you actually trust the output?</p><p>Prefer to watch instead of read? I covered this hands-on in my latest YouTube video: </p><div id="youtube2-Xpx_FeTjFmE" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;Xpx_FeTjFmE&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/Xpx_FeTjFmE?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><h3>This Is Not a ChatGPT Problem</h3><p>I&#8217;m not talking about asking ChatGPT a question and wondering if the answer is correct. That&#8217;s a different thing.</p><p>I&#8217;m talking about production systems. You have a BI report, a sales report, a reliability dashboard, and an AI agent is generating it. Your business makes decisions based on that report. Can you trust it?</p><p>That is the real problem.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://andreaskretz.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading The Data Engineering Insider! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><h3>Here&#8217;s What I&#8217;m Actually Building</h3><p>I&#8217;m working on a system that analyzes pipeline failures. I have DAGs, ingestion jobs, aggregation, partitioning, and so on. I create metadata around runs and failures, I store logs, and I use embeddings and vector search to make everything queryable.</p><p>The idea: instead of digging through logs manually, you just ask a question. &#8220;How many pipeline failures in the last 30 days?&#8221; And you get an answer.</p><p>When it&#8217;s a SQL query under the hood, I can verify it. I can look at the generated SELECT statement and check if the logic is right. That part I trust.</p><p>But when it&#8217;s a vector search against log embeddings? That&#8217;s where it gets uncomfortable.</p><h3>The Trust Problem With Vector Search</h3><p>The system found schema drift issues on specific dates. It found quality check failures with exit code one. It generated a full reliability report based on all of this.</p><p>But how do I know that&#8217;s the complete picture? Maybe my semantic search didn&#8217;t match everything relevant. Maybe the embedding didn&#8217;t surface the right logs. The system doesn&#8217;t tell me what it missed. It just tells me what it found.</p><p>That&#8217;s the problem. With SQL, you can read the query. With vector search and LLM reasoning on top of it, the logic is invisible.</p><h3>You Can Test It in a Controlled Environment</h3><p>If you set up a controlled environment where you know exactly which errors exist, you can write tests. Does the system return the right results for this specific scenario? Yes or no.</p><p>That works in development. But in production? With real, messy data? With errors you didn&#8217;t anticipate? You can&#8217;t write tests for every possible failure mode.</p><p>And if this is generating a monthly sales report that executives act on, &#8220;it worked in dev&#8221; is not good enough.</p><h3>The Old Way Was Predictable</h3><p>Before all this, you had SQL tables. You ran queries. You got exact results. Before that, Excel with formulas. You could trace every number back to its source. It was deterministic. Predictable. Auditable.</p><p>Now you ask a question in natural language and get an answer that might be different the next time you run it. The same question, a different day, slightly different results depending on what the vector search surfaces. That&#8217;s not a bug, that&#8217;s how it works. But it makes trust really hard.</p><h3>One Tool I Know That&#8217;s Working on This</h3><p>One company I&#8217;ve worked with that&#8217;s actually tackling this is arato.ai. They basically compare what you gave the LLM against what it returned and measure how well the output fits the input. They also flag things like hallucinations and off-topic responses at scale.</p><p>But honestly, I don&#8217;t know of a solid, widespread solution for this yet. And I find it suspicious that most people selling AI-powered analytics tools aren&#8217;t talking about it at all.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://andreaskretz.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading The Data Engineering Insider! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><h3>This Needs a Real Answer</h3><p>If you&#8217;re building AI systems that people rely on for real decisions, this isn&#8217;t a nice-to-have. Trust and verifiability are core requirements. Not features. Requirements.</p><p>I don&#8217;t have a clean answer here. I don&#8217;t think many people do.</p><p>If you know of libraries, frameworks, or approaches for testing and validating AI-generated reports at scale, drop them in the comments. I&#8217;ll be looking into this more and I want to know what&#8217;s actually working out there.</p><p>***</p><p>Ready to become a Data Engineer? Then join my <strong><a href="https://learndataengineering.com/">Learn Data Engineering Academy</a></strong> today!</p><p>If you want to build real platforms, master the full stack, and close your skill gaps, check out my <strong><a href="https://learndataengineering.com/p/data-engineering-coaching">Data Engineer Coaching program</a></strong>.</p><p>If you are interested, but still have a few burning questions on your mind: feel free to contact me via <strong><a href="mailto:hello@learndataengineering.com">hello@learndataengineering.com</a></strong>.</p><p>For more information and content on Data Engineering, also check out my other blog posts, videos and more on <strong><a href="https://medium.com/plumbersofdatascience">Medium</a></strong>, <strong><a href="https://www.youtube.com/channel/UCY8mzqqGwl5_bTpBY9qLMAA">YouTube</a></strong> and <strong><a href="https://www.linkedin.com/company/learn-data-engineering?originalSubdomain=de">LinkedIn</a></strong>!</p>]]></content:encoded></item><item><title><![CDATA[I learned about AI harnesses and you should too]]></title><description><![CDATA[In a live stream with the guys from Altimate AI, we talked about something that was new to me:]]></description><link>https://andreaskretz.substack.com/p/i-learned-about-ai-harnesses-and</link><guid isPermaLink="false">https://andreaskretz.substack.com/p/i-learned-about-ai-harnesses-and</guid><dc:creator><![CDATA[Andreas Kretz]]></dc:creator><pubDate>Wed, 06 May 2026 13:00:13 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!q8NB!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdcc0c6fb-70ac-4667-8237-1dc2ffaa5810_950x562.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!q8NB!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdcc0c6fb-70ac-4667-8237-1dc2ffaa5810_950x562.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!q8NB!, /__u/andreaskretz.substack.com/w_424, /__u/andreaskretz.substack.com/c_limit, /__u/andreaskretz.substack.com/f_webp, /__u/andreaskretz.substack.com/q_auto:good, /__u/andreaskretz.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdcc0c6fb-70ac-4667-8237-1dc2ffaa5810_950x562.png 424w, /__u/substackcdn.com/image/fetch/$s_!q8NB!, /__u/andreaskretz.substack.com/w_848, /__u/andreaskretz.substack.com/c_limit, /__u/andreaskretz.substack.com/f_webp, /__u/andreaskretz.substack.com/q_auto:good, /__u/andreaskretz.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdcc0c6fb-70ac-4667-8237-1dc2ffaa5810_950x562.png 848w, /__u/substackcdn.com/image/fetch/$s_!q8NB!, /__u/andreaskretz.substack.com/w_1272, /__u/andreaskretz.substack.com/c_limit, /__u/andreaskretz.substack.com/f_webp, /__u/andreaskretz.substack.com/q_auto:good, /__u/andreaskretz.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdcc0c6fb-70ac-4667-8237-1dc2ffaa5810_950x562.png 1272w, /__u/substackcdn.com/image/fetch/$s_!q8NB!, /__u/andreaskretz.substack.com/w_1456, /__u/andreaskretz.substack.com/c_limit, /__u/andreaskretz.substack.com/f_webp, /__u/andreaskretz.substack.com/q_auto:good, /__u/andreaskretz.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdcc0c6fb-70ac-4667-8237-1dc2ffaa5810_950x562.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!q8NB!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdcc0c6fb-70ac-4667-8237-1dc2ffaa5810_950x562.png" width="950" height="562" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/dcc0c6fb-70ac-4667-8237-1dc2ffaa5810_950x562.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:562,&quot;width&quot;:950,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:242643,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://andreaskretz.substack.com/i/196654137?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdcc0c6fb-70ac-4667-8237-1dc2ffaa5810_950x562.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!q8NB!, /__u/andreaskretz.substack.com/w_424, /__u/andreaskretz.substack.com/c_limit, /__u/andreaskretz.substack.com/f_auto, /__u/andreaskretz.substack.com/q_auto:good, /__u/andreaskretz.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdcc0c6fb-70ac-4667-8237-1dc2ffaa5810_950x562.png 424w, /__u/substackcdn.com/image/fetch/$s_!q8NB!, /__u/andreaskretz.substack.com/w_848, /__u/andreaskretz.substack.com/c_limit, /__u/andreaskretz.substack.com/f_auto, /__u/andreaskretz.substack.com/q_auto:good, /__u/andreaskretz.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdcc0c6fb-70ac-4667-8237-1dc2ffaa5810_950x562.png 848w, /__u/substackcdn.com/image/fetch/$s_!q8NB!, /__u/andreaskretz.substack.com/w_1272, /__u/andreaskretz.substack.com/c_limit, /__u/andreaskretz.substack.com/f_auto, /__u/andreaskretz.substack.com/q_auto:good, /__u/andreaskretz.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdcc0c6fb-70ac-4667-8237-1dc2ffaa5810_950x562.png 1272w, /__u/substackcdn.com/image/fetch/$s_!q8NB!, /__u/andreaskretz.substack.com/w_1456, /__u/andreaskretz.substack.com/c_limit, /__u/andreaskretz.substack.com/f_auto, /__u/andreaskretz.substack.com/q_auto:good, /__u/andreaskretz.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdcc0c6fb-70ac-4667-8237-1dc2ffaa5810_950x562.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>In a live stream with the guys from <strong><a href="https://www.linkedin.com/company/altimate-ai/">Altimate AI</a></strong>, we talked about something that was new to me:</p><p>AI harnesses.</p><p>And the more I think about it, the more I find it a really interesting topic.</p><div><hr></div><p>Watch the live stream with Altimate here: </p><div id="youtube2-Hf805wpxonY" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;Hf805wpxonY&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/Hf805wpxonY?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><div><hr></div><p>You might have actually seen this already without calling it that.</p><p>For example with OpenClaw. A lot of people looked at it and thought, okay, this is a cool setup around an LLM. But that is basically what a harness is. A structured way to control how the model operates, which tools it uses, and what it is allowed to do.</p><p>People are talking a lot about models, prompt engineering, context windows and all that. And yes, these things matter. But I think there is another topic that is much more important than most people realize right now, especially for data engineering.</p><p>That topic is AI harnesses.</p><p>And I think this is where a lot of people are still looking at the problem the wrong way.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://andreaskretz.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading The Data Engineering Insider! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><h3><strong>It is not always the model</strong></h3><p>When an AI system fails, the first reaction is often: the model is not good enough. We need a better model. We need the newest model. We need more reasoning power.</p><p>Sometimes that is true.</p><p>But very often, especially in data work, that is not the real issue.</p><p>The real issue is that the system has no good way to operate inside the environment. It has no proper structure around the model. It does not know how to move through the task in a controlled way. And that is exactly where the harness comes in.</p><h3><strong>What a harness actually is</strong></h3><p>So what is a harness?</p><p>For me, the easiest way to think about it is this: the harness is the layer around the model that defines how the model actually works in practice.</p><ul><li><p>It decides which tools are available.</p></li><li><p>It decides which workflows should be followed.</p></li><li><p>It decides what the system is allowed to do and what it must never do.</p></li><li><p>It decides where guardrails exist and how they are enforced.</p></li><li><p>It decides what information gets pulled in and how that information is used.</p></li></ul><p>That is a big deal.</p><h3><strong>This is not just coding</strong></h3><p>Engineering work is not just writing code.</p><p>A lot of the work is understanding what is going on, figuring out what is broken, and working through messy situations where the answer is not obvious.</p><p>That is exactly where AI systems struggle today.</p><p>They can generate something that looks correct. But they often miss the deeper context, hallucinate details that are not actually there, or take shortcuts that would never be acceptable in a real environment.</p><p>Without a proper harness, the agent is basically improvising in a complex system.</p><h3><strong>The real problem in data work</strong></h3><p>Because data work is not happening in one place.</p><p>The repo is only one part of the story. The real truth is spread all over the place.</p><ul><li><p>It is in the warehouse, the schemas, and the actual data values.</p></li><li><p>It is in lineage, orchestration, and dashboards.</p></li><li><p>It is in business definitions and naming conventions.</p></li><li><p>It is in all the weird exceptions that companies have built up over time.</p></li></ul><p>That means an agent can look very smart on the surface and still fail badly.</p><p>It can generate a report that looks polished, produce SQL that seems reasonable, and sound confident.</p><p>And then you look closer and notice it missed models, invented columns, misunderstood risk, or gave you something that would never pass in a real team.</p><p>That is why I think the conversation has to move beyond &#8220;which model is best?&#8221;</p><p>A better question is: what kind of harness is this model operating inside?</p><p>Because the harness is what turns raw model capability into usable engineering behavior.</p><h3><strong>Context alone is not enough</strong></h3><p>A good harness brings in the right context, but it does more than that. It also provides tools and skills.</p><p>For example, if the system needs lineage information, schema metadata or warehouse inspection, the harness should give it exact ways to get that information. If the system needs to create or review something, the harness should help it follow a known process instead of improvising.</p><p>That is also where guardrails become real.</p><p>And this part is super important.</p><p>A lot of people still think guardrails mean putting a sentence in the prompt like &#8220;do not expose PII&#8221; or &#8220;do not touch production.&#8221; But that is weak. That is a suggestion. It might work for a while, until the conversation gets longer, the context shifts, or the system goes off track.</p><p>Real guardrails should live outside the model. For example:</p><ul><li><p>a system should be technically unable to write in analysis mode</p></li><li><p>a PII check should be enforced before data leaves a boundary</p></li><li><p>unsafe actions should require a different mode or a review step</p></li></ul><p>That is what gives teams trust.</p><h3><strong>Trust is the real bottleneck</strong></h3><p>And trust is the real bottleneck right now.</p><p>Most engineers are not rejecting AI because they hate automation. They reject it because they do not trust a system that can improvise freely inside a sensitive environment.</p><p>Honestly, I think that is fair.</p><h3><strong>The problem with vendor-shaped agents</strong></h3><p>The other thing that matters is independence.</p><p>A lot of vendor-built agents will naturally push you deeper into their own ecosystem. Again, that makes sense from their side. But from the user side, it can become a problem. Because now the harness is no longer only about helping you solve engineering tasks. It is also nudging you toward one stack, one platform, one way of doing things.</p><p>That may not be the best solution for your setup.</p><p>And since most companies have mixed environments anyway, this gets limiting very fast.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://andreaskretz.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading The Data Engineering Insider! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><h3><strong>Why this will matter more</strong></h3><p>That is why I think this topic will become much more important.</p><p>Not because it sounds fancy, but because this is where the real control is.</p><p>Models will keep improving. That part is obvious.</p><p>But if you want AI to work like a serious engineering assistant, then the model alone is not enough.</p><p>You need the environment around it to be right.</p><p>That is the harness.</p><p>***</p><p>Ready to become a Data Engineer? Then join my <strong><a href="https://learndataengineering.com/">Learn Data Engineering Academy</a></strong> today!</p><p>If you want to build real platforms, master the full stack, and close your skill gaps, check out my <strong><a href="https://learndataengineering.com/p/data-engineering-coaching">Data Engineer Coaching program</a></strong>.</p><p>If you are interested, but still have a few burning questions on your mind: feel free to contact me via <strong><a href="mailto:hello@learndataengineering.com">hello@learndataengineering.com</a></strong>.</p><p>For more information and content on Data Engineering, also check out my other blog posts, videos and more on <strong><a href="https://medium.com/plumbersofdatascience">Medium</a></strong>, <strong><a href="https://www.youtube.com/channel/UCY8mzqqGwl5_bTpBY9qLMAA">YouTube</a></strong> and <strong><a href="https://www.linkedin.com/company/learn-data-engineering?originalSubdomain=de">LinkedIn</a></strong>!</p>]]></content:encoded></item><item><title><![CDATA[Free 2 Hour Databricks Lab | Build Your Own ChatGPT (Locally) | Stop Broken Pipelines]]></title><description><![CDATA[Hey folks,]]></description><link>https://andreaskretz.substack.com/p/free-2-hour-databricks-lab-build</link><guid isPermaLink="false">https://andreaskretz.substack.com/p/free-2-hour-databricks-lab-build</guid><dc:creator><![CDATA[Andreas Kretz]]></dc:creator><pubDate>Mon, 04 May 2026 20:15:24 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!YNOh!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F48deaf08-0226-4032-9bb2-a971df434892_1920x1080.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!YNOh!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F48deaf08-0226-4032-9bb2-a971df434892_1920x1080.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!YNOh!, /__u/andreaskretz.substack.com/w_424, /__u/andreaskretz.substack.com/c_limit, /__u/andreaskretz.substack.com/f_webp, /__u/andreaskretz.substack.com/q_auto:good, /__u/andreaskretz.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F48deaf08-0226-4032-9bb2-a971df434892_1920x1080.png 424w, /__u/substackcdn.com/image/fetch/$s_!YNOh!, /__u/andreaskretz.substack.com/w_848, /__u/andreaskretz.substack.com/c_limit, /__u/andreaskretz.substack.com/f_webp, /__u/andreaskretz.substack.com/q_auto:good, /__u/andreaskretz.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F48deaf08-0226-4032-9bb2-a971df434892_1920x1080.png 848w, /__u/substackcdn.com/image/fetch/$s_!YNOh!, /__u/andreaskretz.substack.com/w_1272, /__u/andreaskretz.substack.com/c_limit, /__u/andreaskretz.substack.com/f_webp, /__u/andreaskretz.substack.com/q_auto:good, /__u/andreaskretz.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F48deaf08-0226-4032-9bb2-a971df434892_1920x1080.png 1272w, /__u/substackcdn.com/image/fetch/$s_!YNOh!, /__u/andreaskretz.substack.com/w_1456, /__u/andreaskretz.substack.com/c_limit, /__u/andreaskretz.substack.com/f_webp, /__u/andreaskretz.substack.com/q_auto:good, /__u/andreaskretz.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F48deaf08-0226-4032-9bb2-a971df434892_1920x1080.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!YNOh!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F48deaf08-0226-4032-9bb2-a971df434892_1920x1080.png" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/48deaf08-0226-4032-9bb2-a971df434892_1920x1080.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1678622,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://andreaskretz.substack.com/i/196417432?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F48deaf08-0226-4032-9bb2-a971df434892_1920x1080.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!YNOh!, /__u/andreaskretz.substack.com/w_424, /__u/andreaskretz.substack.com/c_limit, /__u/andreaskretz.substack.com/f_auto, /__u/andreaskretz.substack.com/q_auto:good, /__u/andreaskretz.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F48deaf08-0226-4032-9bb2-a971df434892_1920x1080.png 424w, /__u/substackcdn.com/image/fetch/$s_!YNOh!, /__u/andreaskretz.substack.com/w_848, /__u/andreaskretz.substack.com/c_limit, /__u/andreaskretz.substack.com/f_auto, /__u/andreaskretz.substack.com/q_auto:good, /__u/andreaskretz.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F48deaf08-0226-4032-9bb2-a971df434892_1920x1080.png 848w, /__u/substackcdn.com/image/fetch/$s_!YNOh!, /__u/andreaskretz.substack.com/w_1272, /__u/andreaskretz.substack.com/c_limit, /__u/andreaskretz.substack.com/f_auto, /__u/andreaskretz.substack.com/q_auto:good, /__u/andreaskretz.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F48deaf08-0226-4032-9bb2-a971df434892_1920x1080.png 1272w, /__u/substackcdn.com/image/fetch/$s_!YNOh!, /__u/andreaskretz.substack.com/w_1456, /__u/andreaskretz.substack.com/c_limit, /__u/andreaskretz.substack.com/f_auto, /__u/andreaskretz.substack.com/q_auto:good, /__u/andreaskretz.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F48deaf08-0226-4032-9bb2-a971df434892_1920x1080.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Hey folks,</p><p>I shared a few things this past week that I think are pretty useful if you&#8217;re working with data pipelines, AI setups, or just trying to build better systems overall.</p><p>Here&#8217;s what you might have missed:</p><h3><strong>New FREE Databricks Lab + Walkthrough Recording</strong></h3><p>We just released a new free lab where you build full pipelines in Databricks using Spark Declarative Pipelines, SQL, and Lakeflow Designer.</p><p>Here, you learn how to actually build pipelines that are structured, reliable, and easier to manage.</p><p>You&#8217;ll work with Bronze &#8594; Silver &#8594; Gold pipelines, orchestration, Delta Lake, Unity Catalog, and also the visual side with Lakeflow Designer.</p><p>&#128073; Work through the Free Lab on YouTube: </p><div id="youtube2-nrfP2_frM5k" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;nrfP2_frM5k&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/nrfP2_frM5k?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><p>I also did a full livestream where I walked through the lab and explained how everything fits together.</p><p>If you want a guided start, that recording is probably the easiest way to get into it.</p><p>&#128073; Watch the recording: </p><div id="youtube2-7lwKcLICy5g" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;7lwKcLICy5g&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/7lwKcLICy5g?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><h3><strong>I Built My Own &#8220;ChatGPT&#8221; Locally (Open WebUI + Ollama)</strong></h3><p>In my latest YouTube video I show you how to run your own ChatGPT-like setup locally.</p><p>No API calls. No data leaving your machine.</p><p>It&#8217;s based on Open WebUI and Ollama, and it&#8217;s actually a really practical setup if you want more control or care about privacy.</p><p>This is an awesome project if you want something for your portfolio or if you&#8217;re thinking about internal AI systems.</p><p>&#128073; Watch the video here: </p><div id="youtube2-zf5oo_jCAvA" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;zf5oo_jCAvA&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/zf5oo_jCAvA?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><h3><strong>How to Stop Getting Surprised by Broken Pipelines</strong></h3><p>This is something I&#8217;ve run into a lot.</p><p>Pipelines &#8220;running fine&#8221;&#8230; but something is clearly off.</p><p>No alerts, no errors, but data is missing or delayed.</p><p>In my latest LinkedIn article, I break down why this happens and go into simple ways to fix this without needing a full observability stack.</p><p>&#128073; Read the full article here: <strong><a href="https://www.linkedin.com/pulse/how-stop-getting-surprised-broken-pipelines-andreas-kretz-wkqjf">https://www.linkedin.com/pulse/how-stop-getting-surprised-broken-pipelines-andreas-kretz-wkqjf</a></strong></p><p></p><p>That&#8217;s it for this time &#128578;</p><p>If you check any of these out, I&#8217;d be curious what you think. So let me know in the comment sections!</p><p>Especially if you try the lab or the local AI setup.</p><p>Talk soon,<br>Andreas</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://andreaskretz.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading The Data Engineering Insider! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p></p><p>***</p><p>Ready to become a Data Engineer? Then join my <strong><a href="https://learndataengineering.com/">Learn Data Engineering Academy</a></strong> today!</p><p>If you want to build real platforms, master the full stack, and close your skill gaps, check out my <strong><a href="https://learndataengineering.com/p/data-engineering-coaching">Data Engineer Coaching program</a></strong>.</p><p>If you are interested, but still have a few burning questions on your mind: feel free to contact me via <strong><a href="mailto:hello@learndataengineering.com">hello@learndataengineering.com</a></strong>.</p><p>For more information and content on Data Engineering, also check out my other blog posts, videos and more on <strong><a href="https://medium.com/plumbersofdatascience">Medium</a></strong>, <strong><a href="https://www.youtube.com/channel/UCY8mzqqGwl5_bTpBY9qLMAA">YouTube</a></strong> and <strong><a href="https://www.linkedin.com/company/learn-data-engineering?originalSubdomain=de">LinkedIn</a></strong>!</p>]]></content:encoded></item><item><title><![CDATA[How to Stop Getting Surprised by Broken Pipelines]]></title><description><![CDATA[One of the most frustrating situations I&#8217;ve run into as a data engineer is this weird moment where everything looks fine&#8230; but you just know it isn&#8217;t.]]></description><link>https://andreaskretz.substack.com/p/how-to-stop-getting-surprised-by</link><guid isPermaLink="false">https://andreaskretz.substack.com/p/how-to-stop-getting-surprised-by</guid><dc:creator><![CDATA[Andreas Kretz]]></dc:creator><pubDate>Thu, 30 Apr 2026 14:33:27 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!hk2b!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F89102ea3-1e66-4615-9f21-2917e4e93abe_1693x929.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!hk2b!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F89102ea3-1e66-4615-9f21-2917e4e93abe_1693x929.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!hk2b!, /__u/andreaskretz.substack.com/w_424, /__u/andreaskretz.substack.com/c_limit, /__u/andreaskretz.substack.com/f_webp, /__u/andreaskretz.substack.com/q_auto:good, /__u/andreaskretz.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F89102ea3-1e66-4615-9f21-2917e4e93abe_1693x929.png 424w, /__u/substackcdn.com/image/fetch/$s_!hk2b!, /__u/andreaskretz.substack.com/w_848, /__u/andreaskretz.substack.com/c_limit, /__u/andreaskretz.substack.com/f_webp, /__u/andreaskretz.substack.com/q_auto:good, /__u/andreaskretz.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F89102ea3-1e66-4615-9f21-2917e4e93abe_1693x929.png 848w, /__u/substackcdn.com/image/fetch/$s_!hk2b!, /__u/andreaskretz.substack.com/w_1272, /__u/andreaskretz.substack.com/c_limit, /__u/andreaskretz.substack.com/f_webp, /__u/andreaskretz.substack.com/q_auto:good, /__u/andreaskretz.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F89102ea3-1e66-4615-9f21-2917e4e93abe_1693x929.png 1272w, /__u/substackcdn.com/image/fetch/$s_!hk2b!, /__u/andreaskretz.substack.com/w_1456, /__u/andreaskretz.substack.com/c_limit, /__u/andreaskretz.substack.com/f_webp, /__u/andreaskretz.substack.com/q_auto:good, /__u/andreaskretz.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F89102ea3-1e66-4615-9f21-2917e4e93abe_1693x929.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!hk2b!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F89102ea3-1e66-4615-9f21-2917e4e93abe_1693x929.png" width="1456" height="799" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/89102ea3-1e66-4615-9f21-2917e4e93abe_1693x929.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:799,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1296816,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://andreaskretz.substack.com/i/196006195?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F89102ea3-1e66-4615-9f21-2917e4e93abe_1693x929.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!hk2b!, /__u/andreaskretz.substack.com/w_424, /__u/andreaskretz.substack.com/c_limit, /__u/andreaskretz.substack.com/f_auto, /__u/andreaskretz.substack.com/q_auto:good, /__u/andreaskretz.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F89102ea3-1e66-4615-9f21-2917e4e93abe_1693x929.png 424w, /__u/substackcdn.com/image/fetch/$s_!hk2b!, /__u/andreaskretz.substack.com/w_848, /__u/andreaskretz.substack.com/c_limit, /__u/andreaskretz.substack.com/f_auto, /__u/andreaskretz.substack.com/q_auto:good, /__u/andreaskretz.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F89102ea3-1e66-4615-9f21-2917e4e93abe_1693x929.png 848w, /__u/substackcdn.com/image/fetch/$s_!hk2b!, /__u/andreaskretz.substack.com/w_1272, /__u/andreaskretz.substack.com/c_limit, /__u/andreaskretz.substack.com/f_auto, /__u/andreaskretz.substack.com/q_auto:good, /__u/andreaskretz.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F89102ea3-1e66-4615-9f21-2917e4e93abe_1693x929.png 1272w, /__u/substackcdn.com/image/fetch/$s_!hk2b!, /__u/andreaskretz.substack.com/w_1456, /__u/andreaskretz.substack.com/c_limit, /__u/andreaskretz.substack.com/f_auto, /__u/andreaskretz.substack.com/q_auto:good, /__u/andreaskretz.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F89102ea3-1e66-4615-9f21-2917e4e93abe_1693x929.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>One of the most frustrating situations I&#8217;ve run into as a data engineer is this weird moment where everything <em>looks</em> fine&#8230; but you just know it isn&#8217;t.</p><p>No warnings.</p><p>No alerts.</p><p>Everything is quiet.</p><p>But then someone pings you or you notice it yourself. Data is missing. A dashboard is off. Something is delayed and doesn&#8217;t make sense.</p><p>And now you&#8217;re sitting there, trying to figure out what actually happened, with zero clues. Going through logs for an hour.</p><p>In this article, I want to show you why this happens, what&#8217;s actually missing in many setups. And of course how you can avoid ending up in that situation in the first place.</p><p>Because most of the time, it&#8217;s not the pipeline that failed. It&#8217;s the lack of observability around it.</p><h3><strong>The system didn&#8217;t break. Your visibility did</strong></h3><p>When something goes wrong in a data pipeline, the first thing you ask is:</p><ul><li><p><strong>What changed?</strong></p></li><li><p><strong>Where did it happen?</strong></p></li><li><p><strong>What exactly did we process before things went weird?</strong></p></li></ul><p>If you can&#8217;t answer that within a few minutes, you don&#8217;t have a reliability problem.</p><p>You have an observability gap.</p><p>And that&#8217;s not something you can fix in the middle of a fire.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://andreaskretz.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading The Data Engineering Insider! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><h3><strong>Add metadata, even if it feels like overkill</strong></h3><p>In one of my coaching sessions, the student had mapped out a great pipeline design.</p><p>Streaming inputs, processing, two layers of storage.</p><p>But one thing was missing: <strong>Metadata about the data itself.</strong></p><p>It sounds redundant. But it isn&#8217;t.</p><p>Simple additions like:</p><ul><li><p>When did the data arrive?</p></li><li><p>What did the payload look like?</p></li><li><p>How many records came through?</p></li><li><p>Was the schema consistent?</p></li></ul><p>These small things become huge when something fails silently.</p><p>Especially in high-frequency environments, where you can&#8217;t scroll through logs or manually replay messages.</p><p>You need a trace of what flowed through the system, even if the system &#8220;ran fine.&#8221;</p><h3><strong>Metadata gives you levers for debugging, monitoring, and trust</strong></h3><p>Here&#8217;s what good observability unlocks:</p><ul><li><p>&#9989; You can spot volume anomalies before someone complains</p></li><li><p>&#9989; You can track the exact moment latency started creeping up</p></li><li><p>&#9989; You can alert on silence&#8212;because no data can be worse than bad data</p></li><li><p>&#9989; You can verify that transformation jobs aren&#8217;t skipping edge cases</p></li><li><p>&#9989; You can answer the question: &#8220;what <em>exactly</em> did we process?&#8221;</p></li></ul><p>Without that, all you&#8217;ve got are charts of CPU usage and lag.</p><p>Which is great, until a payload goes missing, and you&#8217;re stuck guessing.</p><h3><strong>&#8220;We&#8217;ll add that later&#8221; almost always means &#8220;we won&#8217;t&#8221;</strong></h3><p>I&#8217;ve seen this one play out a dozen times.</p><p>The team is under pressure to ship. Metadata is a &#8220;nice-to-have.&#8221;</p><p>So they build the pipeline, it works&#8230; and they move on.</p><p>Then one day, someone asks: &#8220;Hey, did we process that update last Tuesday?&#8221;</p><p>&#8220;Did the job run? What offset was it on? Why did this record disappear?&#8221;</p><p>And no one knows. Because no one logged it. Because they were too busy to add the visibility that now seems essential.</p><p>If you&#8217;ve ever tried to debug a broken pipeline without metadata, you know the feeling.</p><h3><strong>You don&#8217;t need full-blown observability tools to start</strong></h3><p>You don&#8217;t need a full observability tool stack on day one.</p><p>Sometimes it&#8217;s enough to:</p><ul><li><p>Write simple audit records to a separate table</p></li><li><p>Log timestamps and payload shapes per message batch</p></li><li><p>Store summary stats: event count, schema version, volume</p></li></ul><p>If you <em>do</em> have streaming infrastructure, you can even wire up metadata capture as part of your processing step. Just remember that every tool you integrate needs to feed your understanding, not just your dashboards.</p><h3><strong>Build It While It&#8217;s Still Quiet</strong></h3><p>A clean pipeline feels good.</p><p>A fast one feels even better.</p><p>But honestly, neither of those help you when something silently goes wrong at 2am and you have no idea where to start.</p><p>That&#8217;s where observability becomes real.</p><p>For me, this is not about tools or fancy dashboards. It&#8217;s more about how you think when you build something. You&#8217;re not just building a pipeline that works today. You&#8217;re building something that your future self needs to understand when things stop making sense.</p><p>And trust me, they will.</p><p>If you take one thing away from this, it&#8217;s this: Add the visibility while everything is still working.</p><p>Because once it breaks, it&#8217;s already too late to wish you had it.</p><p>Observability is not something you bolt on later. It&#8217;s something you build in from the start, even if it feels a bit unnecessary in the moment.</p><p>That &#8220;overkill&#8221; you&#8217;re thinking about right now is usually exactly what saves you later.</p><p>Hope this helps you at some point in the future :)</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://andreaskretz.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading The Data Engineering Insider! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p>***</p><p></p><p>Ready to become a Data Engineer? Then join my <strong><a href="https://learndataengineering.com/">Learn Data Engineering Academy</a></strong> today!</p><p>If you want to build real platforms, master the full stack, and close your skill gaps, check out my <strong><a href="https://learndataengineering.com/p/data-engineering-coaching">Data Engineer Coaching program</a></strong>.</p><p>If you are interested, but still have a few burning questions on your mind: feel free to contact me via <strong><a href="mailto:hello@learndataengineering.com">hello@learndataengineering.com</a></strong>.</p><p>For more information and content on Data Engineering, also check out my other blog posts, videos and more on <strong><a href="https://medium.com/plumbersofdatascience">Medium</a></strong>, <strong><a href="https://www.youtube.com/channel/UCY8mzqqGwl5_bTpBY9qLMAA">YouTube</a></strong> and <strong><a href="https://www.linkedin.com/company/learn-data-engineering?originalSubdomain=de">LinkedIn</a></strong>!</p>]]></content:encoded></item><item><title><![CDATA[New YouTube Channel 🚨 Engineering Unscripted - Data & AI Content!]]></title><description><![CDATA[Hey everyone,]]></description><link>https://andreaskretz.substack.com/p/new-youtube-channel-engineering-unscripted</link><guid isPermaLink="false">https://andreaskretz.substack.com/p/new-youtube-channel-engineering-unscripted</guid><dc:creator><![CDATA[Andreas Kretz]]></dc:creator><pubDate>Thu, 23 Apr 2026 10:10:55 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!jeZy!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F487b683b-4917-42ea-8594-ba67e949c87d_1920x1080.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!jeZy!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F487b683b-4917-42ea-8594-ba67e949c87d_1920x1080.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!jeZy!, /__u/andreaskretz.substack.com/w_424, /__u/andreaskretz.substack.com/c_limit, /__u/andreaskretz.substack.com/f_webp, /__u/andreaskretz.substack.com/q_auto:good, /__u/andreaskretz.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F487b683b-4917-42ea-8594-ba67e949c87d_1920x1080.png 424w, /__u/substackcdn.com/image/fetch/$s_!jeZy!, /__u/andreaskretz.substack.com/w_848, /__u/andreaskretz.substack.com/c_limit, /__u/andreaskretz.substack.com/f_webp, /__u/andreaskretz.substack.com/q_auto:good, /__u/andreaskretz.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F487b683b-4917-42ea-8594-ba67e949c87d_1920x1080.png 848w, /__u/substackcdn.com/image/fetch/$s_!jeZy!, /__u/andreaskretz.substack.com/w_1272, /__u/andreaskretz.substack.com/c_limit, /__u/andreaskretz.substack.com/f_webp, /__u/andreaskretz.substack.com/q_auto:good, /__u/andreaskretz.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F487b683b-4917-42ea-8594-ba67e949c87d_1920x1080.png 1272w, /__u/substackcdn.com/image/fetch/$s_!jeZy!, /__u/andreaskretz.substack.com/w_1456, /__u/andreaskretz.substack.com/c_limit, /__u/andreaskretz.substack.com/f_webp, /__u/andreaskretz.substack.com/q_auto:good, /__u/andreaskretz.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F487b683b-4917-42ea-8594-ba67e949c87d_1920x1080.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!jeZy!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F487b683b-4917-42ea-8594-ba67e949c87d_1920x1080.png" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/487b683b-4917-42ea-8594-ba67e949c87d_1920x1080.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2045548,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://andreaskretz.substack.com/i/195221710?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F487b683b-4917-42ea-8594-ba67e949c87d_1920x1080.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!jeZy!, /__u/andreaskretz.substack.com/w_424, /__u/andreaskretz.substack.com/c_limit, /__u/andreaskretz.substack.com/f_auto, /__u/andreaskretz.substack.com/q_auto:good, /__u/andreaskretz.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F487b683b-4917-42ea-8594-ba67e949c87d_1920x1080.png 424w, /__u/substackcdn.com/image/fetch/$s_!jeZy!, /__u/andreaskretz.substack.com/w_848, /__u/andreaskretz.substack.com/c_limit, /__u/andreaskretz.substack.com/f_auto, /__u/andreaskretz.substack.com/q_auto:good, /__u/andreaskretz.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F487b683b-4917-42ea-8594-ba67e949c87d_1920x1080.png 848w, /__u/substackcdn.com/image/fetch/$s_!jeZy!, /__u/andreaskretz.substack.com/w_1272, /__u/andreaskretz.substack.com/c_limit, /__u/andreaskretz.substack.com/f_auto, /__u/andreaskretz.substack.com/q_auto:good, /__u/andreaskretz.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F487b683b-4917-42ea-8594-ba67e949c87d_1920x1080.png 1272w, /__u/substackcdn.com/image/fetch/$s_!jeZy!, /__u/andreaskretz.substack.com/w_1456, /__u/andreaskretz.substack.com/c_limit, /__u/andreaskretz.substack.com/f_auto, /__u/andreaskretz.substack.com/q_auto:good, /__u/andreaskretz.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F487b683b-4917-42ea-8594-ba67e949c87d_1920x1080.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Hey everyone,</p><p>You know, I&#8217;m fed up with having to create polished videos for my main channel all the time.</p><p>It&#8217;s a lot of pressure when videos have to perform because otherwise it looks bad.</p><p>That&#8217;s why I&#8217;m starting new again, sharing interesting topics with you. Without worrying how many people see it. Just like it was 10 years ago.</p><p>No script, no big setup. Just me talking, showing you interesting builds, ideas and nuggets that I find on the internet.</p><p>That&#8217;s why I created <strong>Engineering Unscripted.</strong></p><p>&#128073; <strong>Check out the channel here: <a href="https://youtube.com/@engineeringunscripted?si=SFZkc4hfYB_Huv_7">https://youtube.com/@engineeringunscripted?si=SFZkc4hfYB_Huv_7</a></strong></p><p>(Do me a favor: only subscribe if you&#8217;re into more hands-on, unscripted stuff like this.)</p><h3><strong>First video is already out: I built an MCP server for AI agents</strong></h3><p>MCP servers actually sound like a super interesting topic and so I built one.</p><p>I&#8217;ll show you around what I have built, how it works and we are going to try it out.</p><p>I think you are going to like it.</p><p>&#128073; <strong>Watch video now:</strong> </p><div id="youtube2-sfnq8-Y_rRc" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;sfnq8-Y_rRc&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/sfnq8-Y_rRc?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><h3><strong>What&#8217;s Next</strong></h3><p>On Friday we&#8217;ll dive into the AWS Well-Architected Framework, which is actually something completely different from what I thought.</p><p>And I&#8217;m also going to upload a video about OpenWebUI soon where you can basically build your own private ChatGPT.</p><p>Super fun topic.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://andreaskretz.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading The Data Engineering Insider! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><h3><strong>The original 240k subscriber channel</strong></h3><p>I already have free courses lined up for the main channel <strong><a href="https://youtube.com/@andreaskayy?si=mdTOSvd0mEeM5mBZ">Andreas Kretz</a></strong> (next will be Databricks).</p><p>And I&#8217;ll keep making interesting scripted videos there.</p><p>But now I am excited to fully start with the new one.</p><p>Leave me a comment how you like it so far and what I should cover next.</p><p>That would be awesome!</p><p>Andreas</p><p></p><p>***</p><p>Ready to become a Data Engineer? Then join my <strong><a href="https://learndataengineering.com/">Learn Data Engineering Academy</a></strong> today!</p><p>If you want to build real platforms, master the full stack, and close your skill gaps, check out my <strong><a href="https://learndataengineering.com/p/data-engineering-coaching">Data Engineer Coaching program</a></strong>.</p><p>If you are interested, but still have a few burning questions on your mind: feel free to contact me via <strong><a href="mailto:hello@learndataengineering.com">hello@learndataengineering.com</a></strong>.</p><p>For more information and content on Data Engineering, also check out my other blog posts, videos and more on <strong><a href="https://medium.com/plumbersofdatascience">Medium</a></strong>, <strong><a href="https://www.youtube.com/channel/UCY8mzqqGwl5_bTpBY9qLMAA">YouTube</a></strong> and <strong><a href="https://www.linkedin.com/company/learn-data-engineering?originalSubdomain=de">LinkedIn</a></strong>!</p>]]></content:encoded></item><item><title><![CDATA[Stop Letting Tools Lead Your Platform Decisions]]></title><description><![CDATA[You can usually spot it pretty quickly.]]></description><link>https://andreaskretz.substack.com/p/stop-letting-tools-lead-your-platform</link><guid isPermaLink="false">https://andreaskretz.substack.com/p/stop-letting-tools-lead-your-platform</guid><dc:creator><![CDATA[Andreas Kretz]]></dc:creator><pubDate>Wed, 22 Apr 2026 12:41:41 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!jp22!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F77f8b5fa-34cf-42f2-9112-25bd8ceaefaf_1536x1024.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!jp22!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F77f8b5fa-34cf-42f2-9112-25bd8ceaefaf_1536x1024.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!jp22!, /__u/andreaskretz.substack.com/w_424, /__u/andreaskretz.substack.com/c_limit, /__u/andreaskretz.substack.com/f_webp, /__u/andreaskretz.substack.com/q_auto:good, /__u/andreaskretz.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F77f8b5fa-34cf-42f2-9112-25bd8ceaefaf_1536x1024.png 424w, /__u/substackcdn.com/image/fetch/$s_!jp22!, /__u/andreaskretz.substack.com/w_848, /__u/andreaskretz.substack.com/c_limit, /__u/andreaskretz.substack.com/f_webp, /__u/andreaskretz.substack.com/q_auto:good, /__u/andreaskretz.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F77f8b5fa-34cf-42f2-9112-25bd8ceaefaf_1536x1024.png 848w, /__u/substackcdn.com/image/fetch/$s_!jp22!, /__u/andreaskretz.substack.com/w_1272, /__u/andreaskretz.substack.com/c_limit, /__u/andreaskretz.substack.com/f_webp, /__u/andreaskretz.substack.com/q_auto:good, /__u/andreaskretz.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F77f8b5fa-34cf-42f2-9112-25bd8ceaefaf_1536x1024.png 1272w, /__u/substackcdn.com/image/fetch/$s_!jp22!, /__u/andreaskretz.substack.com/w_1456, /__u/andreaskretz.substack.com/c_limit, /__u/andreaskretz.substack.com/f_webp, /__u/andreaskretz.substack.com/q_auto:good, /__u/andreaskretz.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F77f8b5fa-34cf-42f2-9112-25bd8ceaefaf_1536x1024.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!jp22!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F77f8b5fa-34cf-42f2-9112-25bd8ceaefaf_1536x1024.png" width="1456" height="971" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/77f8b5fa-34cf-42f2-9112-25bd8ceaefaf_1536x1024.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:971,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1449118,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://andreaskretz.substack.com/i/195028178?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F77f8b5fa-34cf-42f2-9112-25bd8ceaefaf_1536x1024.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!jp22!, /__u/andreaskretz.substack.com/w_424, /__u/andreaskretz.substack.com/c_limit, /__u/andreaskretz.substack.com/f_auto, /__u/andreaskretz.substack.com/q_auto:good, /__u/andreaskretz.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F77f8b5fa-34cf-42f2-9112-25bd8ceaefaf_1536x1024.png 424w, /__u/substackcdn.com/image/fetch/$s_!jp22!, /__u/andreaskretz.substack.com/w_848, /__u/andreaskretz.substack.com/c_limit, /__u/andreaskretz.substack.com/f_auto, /__u/andreaskretz.substack.com/q_auto:good, /__u/andreaskretz.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F77f8b5fa-34cf-42f2-9112-25bd8ceaefaf_1536x1024.png 848w, /__u/substackcdn.com/image/fetch/$s_!jp22!, /__u/andreaskretz.substack.com/w_1272, /__u/andreaskretz.substack.com/c_limit, /__u/andreaskretz.substack.com/f_auto, /__u/andreaskretz.substack.com/q_auto:good, /__u/andreaskretz.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F77f8b5fa-34cf-42f2-9112-25bd8ceaefaf_1536x1024.png 1272w, /__u/substackcdn.com/image/fetch/$s_!jp22!, /__u/andreaskretz.substack.com/w_1456, /__u/andreaskretz.substack.com/c_limit, /__u/andreaskretz.substack.com/f_auto, /__u/andreaskretz.substack.com/q_auto:good, /__u/andreaskretz.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F77f8b5fa-34cf-42f2-9112-25bd8ceaefaf_1536x1024.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>You can usually spot it pretty quickly.</p><p>A project kicks off with something like: &#8220;We&#8217;ll use Kafka, Spark, Snowflake, and Airflow.&#8221;</p><p>And only after that comes the actual question: &#8220;So&#8230; what are we building?&#8221;</p><p>If you&#8217;ve seen this before, you&#8217;re not the only one. This happens all the time, and it&#8217;s one of the easiest ways to make things more complicated than they need to be.</p><p>At the core, it&#8217;s this mistake: choosing tools before understanding the problem.</p><h3><strong>The stack-first trap</strong></h3><p>Look, I get it. Tools are fun.</p><p>Sometimes you just want to try something new, learn a specific technology, and build something around it. That&#8217;s completely fine when you&#8217;re experimenting or doing a side project.</p><p>But once this turns into something that people rely on, the mindset has to change.</p><p>It&#8217;s not about &#8220;what can I build with this tool?&#8221;</p><p>It&#8217;s more about:</p><ul><li><p>What are the actual use cases?</p></li><li><p>Who is going to use this, and how?</p></li><li><p>How fast does it need to be?</p></li><li><p>How much can we spend?</p></li><li><p>What happens if something breaks?</p></li></ul><p>You won&#8217;t get those answers from a benchmark chart or from looking at GitHub stars.</p><h3><strong>Use case first, architecture second, tooling last</strong></h3><p>The projects that go well usually start in a very different way.</p><p>You define what you actually want to achieve. Then you look at the constraints. Then you think through how people are going to use the system.</p><p>Only after that does the architecture start to make sense.</p><p>And once you have that, a lot of decisions become almost obvious.</p><ul><li><p>Do you actually need streaming, or is batch enough?</p></li><li><p>Do you need low latency, or is a delay acceptable?</p></li><li><p>What kind of storage fits your access patterns?</p></li><li><p>Do you really need strong consistency everywhere?</p></li></ul><p>These are the questions that shape the system.</p><p>Tools come later. And when they do, you often realize that your first idea for the stack was not the best fit.</p><h3><strong>Real example: streaming doesn&#8217;t automatically mean real-time</strong></h3><p>I had a coaching session where the initial idea was to run everything in real-time with Spark.</p><p>Sounds powerful, right?</p><p>But when we broke it down, the actual needs were very different:</p><ul><li><p>Most data was coming in weekly from APIs</p></li><li><p>Analysts were working mainly on historical data</p></li><li><p>There was a small part with live data, but only for a few specific cases</p></li></ul><p>So instead of building a complex real-time system, we simplified it.</p><p>A small streaming setup where it actually mattered, and batch processing for everything else.</p><p>Spark was not needed at all in the end.</p><p>And that&#8217;s the point. Once you understand the use case, a lot of complexity just disappears.</p><h3><strong>Tools are not your strategy</strong></h3><p>This is something I keep repeating because it&#8217;s easy to forget.</p><p>Tools should follow your strategy, not define it.</p><p>&#10060; Don&#8217;t pick Kafka because it&#8217;s &#8220;the standard&#8221;.</p><p>&#10060; Don&#8217;t pick Snowflake because everyone talks about it.</p><p>&#10060; Don&#8217;t pick Spark just because it sounds like the enterprise choice.</p><p>Pick something because it solves your problem in your situation.</p><p>That includes your team, your budget, your timelines, and how complex your system actually needs to be.</p><p>Very often, the better solution is the simpler one.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://andreaskretz.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading The Data Engineering Insider! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><h3><strong>What I&#8217;d keep in mind</strong></h3><p>There&#8217;s no reward for having the most complex stack.</p><p>The engineers who do this well usually slow down at the beginning and ask the right questions.</p><p>&#9989; What really needs to happen here?</p><p>&#9989; Where does speed actually matter?</p><p>&#9989; What can we keep simple without breaking things?</p><p>Once you have clear answers to that, the rest becomes much easier. And then you can still use great tools. Just for the right reasons.</p><p>***</p><p>Ready to become a Data Engineer? Then join my <strong><a href="https://learndataengineering.com/">Learn Data Engineering Academy</a></strong> today!</p><p>If you want to build real platforms, master the full stack, and close your skill gaps, check out my <strong><a href="https://learndataengineering.com/p/data-engineering-coaching">Data Engineer Coaching program</a></strong>.</p><p>If you are interested, but still have a few burning questions on your mind: feel free to contact me via <strong><a href="mailto:hello@learndataengineering.com">hello@learndataengineering.com</a></strong>.</p><p>For more information and content on Data Engineering, also check out my other blog posts, videos and more on <strong><a href="https://medium.com/plumbersofdatascience">Medium</a></strong>, <strong><a href="https://www.youtube.com/channel/UCY8mzqqGwl5_bTpBY9qLMAA">YouTube</a></strong> and <strong><a href="https://www.linkedin.com/company/learn-data-engineering?originalSubdomain=de">LinkedIn</a></strong>!</p>]]></content:encoded></item><item><title><![CDATA[How You Stay Relevant As a Data Engineer 2026+ (Despite AI)]]></title><description><![CDATA[AI is changing how we work as engineers.]]></description><link>https://andreaskretz.substack.com/p/how-you-stay-relevant-as-a-data-engineer</link><guid isPermaLink="false">https://andreaskretz.substack.com/p/how-you-stay-relevant-as-a-data-engineer</guid><dc:creator><![CDATA[Andreas Kretz]]></dc:creator><pubDate>Thu, 16 Apr 2026 20:15:45 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!or37!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0e208c59-1f99-4fa7-9284-c79490c3f35f_1280x720.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!or37!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0e208c59-1f99-4fa7-9284-c79490c3f35f_1280x720.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!or37!, /__u/andreaskretz.substack.com/w_424, /__u/andreaskretz.substack.com/c_limit, /__u/andreaskretz.substack.com/f_webp, /__u/andreaskretz.substack.com/q_auto:good, /__u/andreaskretz.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0e208c59-1f99-4fa7-9284-c79490c3f35f_1280x720.png 424w, /__u/substackcdn.com/image/fetch/$s_!or37!, /__u/andreaskretz.substack.com/w_848, /__u/andreaskretz.substack.com/c_limit, /__u/andreaskretz.substack.com/f_webp, /__u/andreaskretz.substack.com/q_auto:good, /__u/andreaskretz.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0e208c59-1f99-4fa7-9284-c79490c3f35f_1280x720.png 848w, /__u/substackcdn.com/image/fetch/$s_!or37!, /__u/andreaskretz.substack.com/w_1272, /__u/andreaskretz.substack.com/c_limit, /__u/andreaskretz.substack.com/f_webp, /__u/andreaskretz.substack.com/q_auto:good, /__u/andreaskretz.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0e208c59-1f99-4fa7-9284-c79490c3f35f_1280x720.png 1272w, /__u/substackcdn.com/image/fetch/$s_!or37!, /__u/andreaskretz.substack.com/w_1456, /__u/andreaskretz.substack.com/c_limit, /__u/andreaskretz.substack.com/f_webp, /__u/andreaskretz.substack.com/q_auto:good, /__u/andreaskretz.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0e208c59-1f99-4fa7-9284-c79490c3f35f_1280x720.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!or37!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0e208c59-1f99-4fa7-9284-c79490c3f35f_1280x720.png" width="1280" height="720" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/0e208c59-1f99-4fa7-9284-c79490c3f35f_1280x720.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:720,&quot;width&quot;:1280,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:667686,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://andreaskretz.substack.com/i/194404515?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0e208c59-1f99-4fa7-9284-c79490c3f35f_1280x720.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!or37!, /__u/andreaskretz.substack.com/w_424, /__u/andreaskretz.substack.com/c_limit, /__u/andreaskretz.substack.com/f_auto, /__u/andreaskretz.substack.com/q_auto:good, /__u/andreaskretz.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0e208c59-1f99-4fa7-9284-c79490c3f35f_1280x720.png 424w, /__u/substackcdn.com/image/fetch/$s_!or37!, /__u/andreaskretz.substack.com/w_848, /__u/andreaskretz.substack.com/c_limit, /__u/andreaskretz.substack.com/f_auto, /__u/andreaskretz.substack.com/q_auto:good, /__u/andreaskretz.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0e208c59-1f99-4fa7-9284-c79490c3f35f_1280x720.png 848w, /__u/substackcdn.com/image/fetch/$s_!or37!, /__u/andreaskretz.substack.com/w_1272, /__u/andreaskretz.substack.com/c_limit, /__u/andreaskretz.substack.com/f_auto, /__u/andreaskretz.substack.com/q_auto:good, /__u/andreaskretz.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0e208c59-1f99-4fa7-9284-c79490c3f35f_1280x720.png 1272w, /__u/substackcdn.com/image/fetch/$s_!or37!, /__u/andreaskretz.substack.com/w_1456, /__u/andreaskretz.substack.com/c_limit, /__u/andreaskretz.substack.com/f_auto, /__u/andreaskretz.substack.com/q_auto:good, /__u/andreaskretz.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0e208c59-1f99-4fa7-9284-c79490c3f35f_1280x720.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>AI is changing how we work as engineers.</p><p>But not in the way most people think.</p><p>Let&#8217;s break down what&#8217;s actually happening and what you need to focus on if you want to stay relevant going into 2026 and beyond.</p><p>&#127909; If you prefer watching a video on this topic instead of reading, check out my latest YouTube video: </p><div id="youtube2-CiiPs8aMjYE" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;CiiPs8aMjYE&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/CiiPs8aMjYE?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><h2>The Shift You Need to Understand</h2><p>Think about this:</p><p>On one axis, you have <strong>work complexity.<br></strong>On the other, <strong>efficiency gain from AI.</strong></p><p>Now here&#8217;s the key insight:</p><ul><li><p>Junior work &#8594; high efficiency gains</p></li><li><p>Mid-level work &#8594; moderate gains</p></li><li><p>Senior work &#8594; lower gains (for now)</p></li></ul><p>Why?</p><p>Because junior work is usually:</p><ul><li><p>well-defined</p></li><li><p>limited in scope</p></li><li><p>easier to automate</p></li></ul><p>And that&#8217;s exactly where AI performs best.</p><h3>What this means for you:</h3><p>AI is not replacing engineers.</p><p>But it <strong>is replacing parts of the work</strong> that engineers used to do, especially at the junior level.</p><p>That&#8217;s why:</p><ul><li><p>it&#8217;s getting harder to break into the field</p></li><li><p>expectations are increasing</p></li><li><p>and &#8220;just coding&#8221; is no longer enough</p></li></ul><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://andreaskretz.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading The Data Engineering Insider! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><h2>The 3 AI Waves You Need to Be Aware Of</h2><p>To understand where things are going, it helps to look at AI in waves.</p><h3>Wave 1 &#8212; Coding with AI (Already here)</h3><p>This one is done.</p><p>Everyone is using AI to code:</p><ul><li><p>Copilot</p></li><li><p>Cursor</p></li><li><p>Claude</p></li></ul><p>Nobody works the same way anymore.</p><p>This is where we see the biggest efficiency gains, especially for junior-level tasks.</p><h3>Wave 2 &#8212; Agents and Automation (We are here)</h3><p>This is the current wave.</p><p>AI is no longer just helping you write code.<br>It&#8217;s helping you <strong>do the work around it</strong>:</p><ul><li><p>analyzing logs across systems</p></li><li><p>debugging faster</p></li><li><p>automating workflows</p></li><li><p>pulling insights from multiple sources</p></li></ul><p>This starts to impact <strong>mid-level engineers</strong> more.</p><p>Because now it&#8217;s not just about writing code.<br>It&#8217;s about <strong>operating and understanding systems</strong>.</p><h3>Wave 3 &#8212; Autonomous Management and Optimization (Coming next)</h3><p>This is where things are heading.</p><p>The idea:</p><ul><li><p>systems that optimize themselves</p></li><li><p>systems that manage infrastructure</p></li><li><p>systems that make decisions</p></li></ul><p>We&#8217;re not there yet.</p><p>Even if it feels like it sometimes, we&#8217;re still very much in the <strong>agent phase</strong>.</p><p>Humans are still in the loop.<br>But when this wave matures, it will start affecting <strong>senior-level work</strong>.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!M9I3!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5a85a1a8-4e25-48b6-9872-f164533acb88_1280x720.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!M9I3!, /__u/andreaskretz.substack.com/w_424, /__u/andreaskretz.substack.com/c_limit, /__u/andreaskretz.substack.com/f_webp, /__u/andreaskretz.substack.com/q_auto:good, /__u/andreaskretz.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5a85a1a8-4e25-48b6-9872-f164533acb88_1280x720.png 424w, /__u/substackcdn.com/image/fetch/$s_!M9I3!, /__u/andreaskretz.substack.com/w_848, /__u/andreaskretz.substack.com/c_limit, /__u/andreaskretz.substack.com/f_webp, /__u/andreaskretz.substack.com/q_auto:good, /__u/andreaskretz.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5a85a1a8-4e25-48b6-9872-f164533acb88_1280x720.png 848w, /__u/substackcdn.com/image/fetch/$s_!M9I3!, /__u/andreaskretz.substack.com/w_1272, /__u/andreaskretz.substack.com/c_limit, /__u/andreaskretz.substack.com/f_webp, /__u/andreaskretz.substack.com/q_auto:good, /__u/andreaskretz.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5a85a1a8-4e25-48b6-9872-f164533acb88_1280x720.png 1272w, /__u/substackcdn.com/image/fetch/$s_!M9I3!, /__u/andreaskretz.substack.com/w_1456, /__u/andreaskretz.substack.com/c_limit, /__u/andreaskretz.substack.com/f_webp, /__u/andreaskretz.substack.com/q_auto:good, /__u/andreaskretz.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5a85a1a8-4e25-48b6-9872-f164533acb88_1280x720.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!M9I3!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5a85a1a8-4e25-48b6-9872-f164533acb88_1280x720.png" width="1280" height="720" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/5a85a1a8-4e25-48b6-9872-f164533acb88_1280x720.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:720,&quot;width&quot;:1280,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:268294,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://andreaskretz.substack.com/i/194404515?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5a85a1a8-4e25-48b6-9872-f164533acb88_1280x720.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!M9I3!, /__u/andreaskretz.substack.com/w_424, /__u/andreaskretz.substack.com/c_limit, /__u/andreaskretz.substack.com/f_auto, /__u/andreaskretz.substack.com/q_auto:good, /__u/andreaskretz.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5a85a1a8-4e25-48b6-9872-f164533acb88_1280x720.png 424w, /__u/substackcdn.com/image/fetch/$s_!M9I3!, /__u/andreaskretz.substack.com/w_848, /__u/andreaskretz.substack.com/c_limit, /__u/andreaskretz.substack.com/f_auto, /__u/andreaskretz.substack.com/q_auto:good, /__u/andreaskretz.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5a85a1a8-4e25-48b6-9872-f164533acb88_1280x720.png 848w, /__u/substackcdn.com/image/fetch/$s_!M9I3!, /__u/andreaskretz.substack.com/w_1272, /__u/andreaskretz.substack.com/c_limit, /__u/andreaskretz.substack.com/f_auto, /__u/andreaskretz.substack.com/q_auto:good, /__u/andreaskretz.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5a85a1a8-4e25-48b6-9872-f164533acb88_1280x720.png 1272w, /__u/substackcdn.com/image/fetch/$s_!M9I3!, /__u/andreaskretz.substack.com/w_1456, /__u/andreaskretz.substack.com/c_limit, /__u/andreaskretz.substack.com/f_auto, /__u/andreaskretz.substack.com/q_auto:good, /__u/andreaskretz.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5a85a1a8-4e25-48b6-9872-f164533acb88_1280x720.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h2>What You Need to Focus On (Based on Your Level)</h2><p>This is where it becomes practical.</p><h3>If You&#8217;re a Junior</h3><p>The bar is higher now.</p><p>You can&#8217;t rely on small, isolated tasks anymore.</p><p><strong>1. Learn how to code with AI properly</strong></p><p>Not vibe coding.</p><p>You need to:</p><ul><li><p>understand what the AI is doing</p></li><li><p>guide it</p></li><li><p>correct it</p></li><li><p>move quickly with it</p></li></ul><p><strong>2. Build full pipelines</strong></p><p>Show that you can:</p><ul><li><p>ingest data</p></li><li><p>transform it</p></li><li><p>store it</p></li><li><p>orchestrate it</p></li></ul><p>End-to-end.</p><p><strong>3. Understand RAG basics</strong></p><p>You don&#8217;t need to be an expert. But you should understand:</p><ul><li><p>how retrieval works</p></li><li><p>how AI systems use external data</p></li><li><p>how simple RAG pipelines are built</p></li></ul><p><strong>4. Build real projects</strong></p><p>Not isolated tools.</p><p>Complete systems.</p><p>That&#8217;s what differentiates you now.</p><h3>If You&#8217;re Mid-Level</h3><p>Everything from junior still applies. But your focus shifts.</p><p><strong>1. Performance and cost optimization</strong></p><p>AI can help.<br>But you need to make the decisions.</p><p><strong>2. Reliability and observability</strong></p><p>Think beyond pipelines:</p><ul><li><p>monitoring</p></li><li><p>logging</p></li><li><p>debugging</p></li><li><p>system behavior</p></li></ul><p><strong>3. Architecture thinking</strong></p><p>You should be able to:</p><ul><li><p>understand requirements</p></li><li><p>design systems from scratch</p></li><li><p>evaluate trade-offs</p></li></ul><p><strong>4. Integrate AI into your workflow</strong></p><p>Not just coding.</p><p>Use AI for:</p><ul><li><p>debugging</p></li><li><p>monitoring</p></li><li><p>analysis</p></li></ul><p>This is where you become significantly more valuable.</p><h3>If You&#8217;re a Senior</h3><p>Your role becomes more strategic.</p><p><strong>AI-assisted platform design</strong></p><p>That means:</p><ul><li><p>understanding business requirements</p></li><li><p>evaluating existing systems</p></li><li><p>designing architectures</p></li><li><p>using AI as a tool in that process</p></li></ul><p>You&#8217;re not just building systems.</p><p>You&#8217;re deciding:</p><ul><li><p>what should be built</p></li><li><p>how it should be built</p></li><li><p>and why</p></li></ul><p>AI helps you move faster.<br>But the responsibility stays with you.</p><h2>What Actually Changes (And What Doesn&#8217;t)</h2><p>AI is hitting:</p><ul><li><p>low-complexity work first</p></li><li><p>then system-level tasks</p></li><li><p>and eventually decision layers</p></li></ul><p>But we&#8217;re not at full automation.</p><p>Right now, the best results still come from: <strong>humans working with AI</strong></p><h2>How You Stay Relevant</h2><p>If you strip everything down, this is what matters:</p><p>Don&#8217;t optimize for tools. Optimize for <strong>ownership</strong>.</p><p>That means:</p><ul><li><p>building things end-to-end</p></li><li><p>understanding how systems behave in production</p></li><li><p>being able to explain why they&#8217;re built that way</p></li></ul><p>Tools will keep changing.</p><p>We&#8217;ve already seen:</p><ul><li><p>new AI tools every few months</p></li><li><p>new workflows constantly</p></li><li><p>new abstractions on top of old ones</p></li></ul><p>If you anchor yourself to tools, you&#8217;ll always be catching up.</p><p>If you anchor yourself to:</p><ul><li><p>systems</p></li><li><p>decisions</p></li><li><p>trade-offs</p></li></ul><p>you stay relevant regardless of what changes.</p><p>And that&#8217;s really the shift.</p><p>AI is not removing engineers.<br>But it is raising the bar for what makes you valuable.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://andreaskretz.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading The Data Engineering Insider! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><div><hr></div><p>Ready to become a Data Engineer? Then join my <strong><a href="https://learndataengineering.com/">Learn Data Engineering Academy</a></strong> today!</p><p>If you want to build real platforms, master the full stack, and close your skill gaps, check out my <strong><a href="https://learndataengineering.com/p/data-engineering-coaching">Data Engineer Coaching program</a></strong>.</p><p>If you are interested, but still have a few burning questions on your mind: feel free to contact me via <strong><a href="mailto:hello@learndataengineering.com">hello@learndataengineering.com</a></strong>.</p><p>For more information and content on Data Engineering, also check out my other blog posts, videos and more on <strong><a href="https://medium.com/plumbersofdatascience">Medium</a></strong>, <strong><a href="https://www.youtube.com/channel/UCY8mzqqGwl5_bTpBY9qLMAA">YouTube</a></strong> and <strong><a href="https://www.linkedin.com/company/learn-data-engineering?originalSubdomain=de">LinkedIn</a></strong>!</p>]]></content:encoded></item><item><title><![CDATA[IP Subnetting Explained: You’ll Need It Sooner or Later!!]]></title><description><![CDATA[How IP addresses, CIDR blocks, and network ranges work in practice. Also on AWS!]]></description><link>https://andreaskretz.substack.com/p/ip-subnetting-explained-youll-need</link><guid isPermaLink="false">https://andreaskretz.substack.com/p/ip-subnetting-explained-youll-need</guid><dc:creator><![CDATA[Andreas Kretz]]></dc:creator><pubDate>Wed, 15 Apr 2026 16:03:30 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!u9Mm!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F824b93a7-a1ec-412a-b7e2-e40ca9de6517_1280x720.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!u9Mm!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F824b93a7-a1ec-412a-b7e2-e40ca9de6517_1280x720.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!u9Mm!, /__u/andreaskretz.substack.com/w_424, /__u/andreaskretz.substack.com/c_limit, /__u/andreaskretz.substack.com/f_webp, /__u/andreaskretz.substack.com/q_auto:good, /__u/andreaskretz.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F824b93a7-a1ec-412a-b7e2-e40ca9de6517_1280x720.png 424w, /__u/substackcdn.com/image/fetch/$s_!u9Mm!, /__u/andreaskretz.substack.com/w_848, /__u/andreaskretz.substack.com/c_limit, /__u/andreaskretz.substack.com/f_webp, /__u/andreaskretz.substack.com/q_auto:good, /__u/andreaskretz.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F824b93a7-a1ec-412a-b7e2-e40ca9de6517_1280x720.png 848w, /__u/substackcdn.com/image/fetch/$s_!u9Mm!, /__u/andreaskretz.substack.com/w_1272, /__u/andreaskretz.substack.com/c_limit, /__u/andreaskretz.substack.com/f_webp, /__u/andreaskretz.substack.com/q_auto:good, /__u/andreaskretz.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F824b93a7-a1ec-412a-b7e2-e40ca9de6517_1280x720.png 1272w, /__u/substackcdn.com/image/fetch/$s_!u9Mm!, /__u/andreaskretz.substack.com/w_1456, /__u/andreaskretz.substack.com/c_limit, /__u/andreaskretz.substack.com/f_webp, /__u/andreaskretz.substack.com/q_auto:good, /__u/andreaskretz.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F824b93a7-a1ec-412a-b7e2-e40ca9de6517_1280x720.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!u9Mm!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F824b93a7-a1ec-412a-b7e2-e40ca9de6517_1280x720.png" width="1280" height="720" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/824b93a7-a1ec-412a-b7e2-e40ca9de6517_1280x720.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:720,&quot;width&quot;:1280,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1164504,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://andreaskretz.substack.com/i/194307477?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F824b93a7-a1ec-412a-b7e2-e40ca9de6517_1280x720.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!u9Mm!, /__u/andreaskretz.substack.com/w_424, /__u/andreaskretz.substack.com/c_limit, /__u/andreaskretz.substack.com/f_auto, /__u/andreaskretz.substack.com/q_auto:good, /__u/andreaskretz.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F824b93a7-a1ec-412a-b7e2-e40ca9de6517_1280x720.png 424w, /__u/substackcdn.com/image/fetch/$s_!u9Mm!, /__u/andreaskretz.substack.com/w_848, /__u/andreaskretz.substack.com/c_limit, /__u/andreaskretz.substack.com/f_auto, /__u/andreaskretz.substack.com/q_auto:good, /__u/andreaskretz.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F824b93a7-a1ec-412a-b7e2-e40ca9de6517_1280x720.png 848w, /__u/substackcdn.com/image/fetch/$s_!u9Mm!, /__u/andreaskretz.substack.com/w_1272, /__u/andreaskretz.substack.com/c_limit, /__u/andreaskretz.substack.com/f_auto, /__u/andreaskretz.substack.com/q_auto:good, /__u/andreaskretz.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F824b93a7-a1ec-412a-b7e2-e40ca9de6517_1280x720.png 1272w, /__u/substackcdn.com/image/fetch/$s_!u9Mm!, /__u/andreaskretz.substack.com/w_1456, /__u/andreaskretz.substack.com/c_limit, /__u/andreaskretz.substack.com/f_auto, /__u/andreaskretz.substack.com/q_auto:good, /__u/andreaskretz.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F824b93a7-a1ec-412a-b7e2-e40ca9de6517_1280x720.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Subnetting is one of those fundamental computer science topics, that I have seen so many people struggle with in my years of coaching.</p><p>At some point, you&#8217;re going to build something in the cloud.<br>AWS, Azure, GCP. It doesn&#8217;t matter. And then you run into things like:</p><ul><li><p>IP addresses</p></li><li><p>Subnet masks</p></li><li><p>CIDR blocks</p></li><li><p>Ports</p></li><li><p>Routing between networks</p></li></ul><p>And if you don&#8217;t understand subnetting, things get confusing very quickly.</p><p>So let&#8217;s break it down in a simple way.</p><p>&#127909; If you prefer watching a video on this topic instead of reading, check out my latest YouTube video: </p><div id="youtube2-5ftjDpXaHvI" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;5ftjDpXaHvI&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/5ftjDpXaHvI?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><div><hr></div><h2>IP Addresses Are Just Numbers Built from Bits</h2><p>You&#8217;ve probably seen an IP address like this:</p><pre><code>192.168.10.45

</code></pre><p>Each of these four numbers is built from <strong>8 bits</strong>.</p><p>Each bit has a value:</p><pre><code>128 64 32 16 8 4 2 1

</code></pre><p>So if we take the last part of the IP:</p><pre><code>45

</code></pre><p>This is just a combination of those values.</p><p>For example:</p><pre><code>32 + 8 + 4 + 1 = 45

</code></pre><p>That&#8217;s it. That&#8217;s how the number is built.</p><p>Same idea applies to every part of the IP address.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!Gjqa!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5ac3f8ea-74c8-47e2-8cb1-98ed51465f3e_480x720.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!Gjqa!, /__u/andreaskretz.substack.com/w_424, /__u/andreaskretz.substack.com/c_limit, /__u/andreaskretz.substack.com/f_webp, /__u/andreaskretz.substack.com/q_auto:good, /__u/andreaskretz.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5ac3f8ea-74c8-47e2-8cb1-98ed51465f3e_480x720.png 424w, /__u/substackcdn.com/image/fetch/$s_!Gjqa!, /__u/andreaskretz.substack.com/w_848, /__u/andreaskretz.substack.com/c_limit, /__u/andreaskretz.substack.com/f_webp, /__u/andreaskretz.substack.com/q_auto:good, /__u/andreaskretz.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5ac3f8ea-74c8-47e2-8cb1-98ed51465f3e_480x720.png 848w, /__u/substackcdn.com/image/fetch/$s_!Gjqa!, /__u/andreaskretz.substack.com/w_1272, /__u/andreaskretz.substack.com/c_limit, /__u/andreaskretz.substack.com/f_webp, /__u/andreaskretz.substack.com/q_auto:good, /__u/andreaskretz.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5ac3f8ea-74c8-47e2-8cb1-98ed51465f3e_480x720.png 1272w, /__u/substackcdn.com/image/fetch/$s_!Gjqa!, /__u/andreaskretz.substack.com/w_1456, /__u/andreaskretz.substack.com/c_limit, /__u/andreaskretz.substack.com/f_webp, /__u/andreaskretz.substack.com/q_auto:good, /__u/andreaskretz.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5ac3f8ea-74c8-47e2-8cb1-98ed51465f3e_480x720.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!Gjqa!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5ac3f8ea-74c8-47e2-8cb1-98ed51465f3e_480x720.png" width="480" height="720" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/5ac3f8ea-74c8-47e2-8cb1-98ed51465f3e_480x720.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:720,&quot;width&quot;:480,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:652918,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://andreaskretz.substack.com/i/194307477?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5ac3f8ea-74c8-47e2-8cb1-98ed51465f3e_480x720.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!Gjqa!, /__u/andreaskretz.substack.com/w_424, /__u/andreaskretz.substack.com/c_limit, /__u/andreaskretz.substack.com/f_auto, /__u/andreaskretz.substack.com/q_auto:good, /__u/andreaskretz.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5ac3f8ea-74c8-47e2-8cb1-98ed51465f3e_480x720.png 424w, /__u/substackcdn.com/image/fetch/$s_!Gjqa!, /__u/andreaskretz.substack.com/w_848, /__u/andreaskretz.substack.com/c_limit, /__u/andreaskretz.substack.com/f_auto, /__u/andreaskretz.substack.com/q_auto:good, /__u/andreaskretz.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5ac3f8ea-74c8-47e2-8cb1-98ed51465f3e_480x720.png 848w, /__u/substackcdn.com/image/fetch/$s_!Gjqa!, /__u/andreaskretz.substack.com/w_1272, /__u/andreaskretz.substack.com/c_limit, /__u/andreaskretz.substack.com/f_auto, /__u/andreaskretz.substack.com/q_auto:good, /__u/andreaskretz.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5ac3f8ea-74c8-47e2-8cb1-98ed51465f3e_480x720.png 1272w, /__u/substackcdn.com/image/fetch/$s_!Gjqa!, /__u/andreaskretz.substack.com/w_1456, /__u/andreaskretz.substack.com/c_limit, /__u/andreaskretz.substack.com/f_auto, /__u/andreaskretz.substack.com/q_auto:good, /__u/andreaskretz.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5ac3f8ea-74c8-47e2-8cb1-98ed51465f3e_480x720.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div><hr></div><h2>What Does <code>/27</code> Actually Mean?</h2><p>You&#8217;ll often see something like:</p><pre><code>192.168.10.45/27

</code></pre><p>That <code>/27</code> is the <strong>CIDR notation</strong>, and it tells you how many bits belong to the <strong>network</strong>.</p><p>A subnet mask for <code>/27</code> looks like this:</p><pre><code>255.255.255.224

</code></pre><p>Why?</p><p>Because:</p><ul><li><p>255.255.255 = 3 octets (8+8+8) <code>24</code></p></li><li><p>224 = first 3 bits are <code>1</code> &#8594; <code>11100000</code></p></li></ul><p>So in total:</p><pre><code>8 + 8 + 8 + 3 = 27 bits

</code></pre><p>That&#8217;s where the <code>/27</code> comes from.</p><p></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://andreaskretz.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading The Data Engineering Insider! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><div><hr></div><h2>Finding the Network Range</h2><p>Now the important part: how do we know which network an IP belongs to? Because If two IP&#8217;s are not in the same network you need a Router to &#8220;connect&#8221; them. Otherwise these two hosts are not able to talk with each other.</p><p>With <code>/27</code>, the remaining bits define the <strong>host space</strong>.</p><p>The key insight:</p><p>&#128073; The block size is <strong>32</strong></p><p>Why?</p><p>Because:</p><pre><code>256 - 224 = 32

</code></pre><p>So networks increase in steps of 32:</p><pre><code>0 &#8211; 31
32 &#8211; 63
64 &#8211; 95
96 &#8211; 127
...

</code></pre><div><hr></div><h2>Example: Where Does 192.168.10.45 Belong?</h2><p>Look at the last number:</p><pre><code>45

</code></pre><p>Which range does it fall into?</p><pre><code>32 &#8211; 63

</code></pre><p>So:</p><ul><li><p><strong>Network address:</strong> 192.168.10.32</p></li><li><p><strong>Broadcast address:</strong> 192.168.10.63</p></li><li><p><strong>Usable hosts:</strong> 192.168.10.33 &#8594; 192.168.10.62</p></li></ul><p>And yes&#8212;our <code>.45</code> sits right inside that range.</p><div><hr></div><h2>What About the Other Ranges?</h2><p>For example:</p><ul><li><p><code>192.168.10.70</code> &#8594; next network (<code>64&#8211;95</code>)</p></li><li><p><code>192.168.10.20</code> &#8594; previous network (<code>0&#8211;31</code>)</p></li></ul><p>So subnetting is really about <strong>grouping IPs into blocks</strong>.</p><div><hr></div><h2>Network vs Host vs Broadcast</h2><p>Each subnet always has:</p><ul><li><p><strong>Network address</strong> &#8594; first IP (not usable)</p></li><li><p><strong>Broadcast address</strong> &#8594; last IP (not usable)</p></li><li><p><strong>Host addresses</strong> &#8594; everything in between</p></li></ul><div><hr></div><h2>Why This Matters (Especially in AWS)</h2><p>This isn&#8217;t just theory.</p><p>You&#8217;ll need this when:</p><ul><li><p>Creating VPCs</p></li><li><p>Designing subnets</p></li><li><p>Setting up routing tables</p></li><li><p>Connecting multiple networks</p></li><li><p>Managing security groups and ports</p></li></ul><p>A simple way to think about it:</p><ul><li><p><strong>IP address</strong> = the house</p></li><li><p><strong>Port</strong> = the door</p></li><li><p><strong>Network</strong> = the neighborhood</p></li></ul><p>If you don&#8217;t understand how the neighborhoods are structured, nothing connects properly.</p><div><hr></div><h2>Use a Subnet Calculator (Seriously)</h2><p>You don&#8217;t have to calculate everything manually every time.</p><p>There are great subnet calculators where you can input:</p><ul><li><p>IP address</p></li><li><p>CIDR block</p></li></ul><p>And they&#8217;ll give you:</p><ul><li><p>Network address</p></li><li><p>Broadcast address</p></li><li><p>Host range</p></li></ul><p>Super useful when you&#8217;re working in real projects.</p><p>&#128073; Here you can find the subnet calculator I used so you can practice on your own: <a href="https://jodies.de/ipcalc?host=192.168.10.45&amp;mask1=27&amp;mask2=">https://jodies.de/ipcalc?host=192.168.10.45&amp;mask1=27&amp;mask2=</a></p><div><hr></div><h2>The point where it makes sense</h2><p>Subnetting is one of those topics that feels confusing at first.</p><p>But once you understand</p><ul><li><p>how bits build numbers</p></li><li><p>how CIDR defines networks</p></li><li><p>how ranges are calculated</p></li></ul><p>&#8230;it just starts to make sense.</p><p>At that point, you&#8217;re not guessing anymore. You actually see how everything fits together.</p><p>If you&#8217;ve struggled with this before, you&#8217;re definitely not alone.</p><p>I&#8217;m curious: was subnetting something that confused you early on? Let me know in the comments!</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://andreaskretz.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading The Data Engineering Insider! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><div><hr></div><p></p><p>Ready to become a Data Engineer? Then join my <strong><a href="https://learndataengineering.com/">Learn Data Engineering Academy</a></strong> today!</p><p>If you want to build real platforms, master the full stack, and close your skill gaps, check out my <strong><a href="https://learndataengineering.com/p/data-engineering-coaching">Data Engineer Coaching program</a></strong>.</p><p>If you are interested, but still have a few burning questions on your mind: feel free to contact me via <strong><a href="mailto:hello@learndataengineering.com">hello@learndataengineering.com</a></strong>.</p><p>For more information and content on Data Engineering, also check out my other blog posts, videos and more on <strong><a href="https://medium.com/plumbersofdatascience">Medium</a></strong>, <strong><a href="https://www.youtube.com/channel/UCY8mzqqGwl5_bTpBY9qLMAA">YouTube</a></strong> and <strong><a href="https://www.linkedin.com/company/learn-data-engineering?originalSubdomain=de">LinkedIn</a></strong>!</p>]]></content:encoded></item></channel></rss>