<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[Learn Analytics Engineering ]]></title><description><![CDATA[for the novice or veteran data enthusiast who wants to learn practical analytics engineering skills to apply to their every day work]]></description><link>https://learnanalyticsengineering.substack.com</link><image><url>https://substackcdn.com/image/fetch/$s_!CuB0!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5496ce49-b278-41aa-b24e-e678e134b07a_500x500.png</url><title>Learn Analytics Engineering </title><link>https://learnanalyticsengineering.substack.com</link></image><generator>Substack</generator><lastBuildDate>Fri, 04 Sep 2026 12:13:48 GMT</lastBuildDate><atom:link href="/__u/learnanalyticsengineering.substack.com/feed" rel="self" type="application/rss+xml"/><copyright><![CDATA[Madison Mae]]></copyright><language><![CDATA[en]]></language><webMaster><![CDATA[learnanalyticsengineering@substack.com]]></webMaster><itunes:owner><itunes:email><![CDATA[learnanalyticsengineering@substack.com]]></itunes:email><itunes:name><![CDATA[Madison Mae]]></itunes:name></itunes:owner><itunes:author><![CDATA[Madison Mae]]></itunes:author><googleplay:owner><![CDATA[learnanalyticsengineering@substack.com]]></googleplay:owner><googleplay:email><![CDATA[learnanalyticsengineering@substack.com]]></googleplay:email><googleplay:author><![CDATA[Madison Mae]]></googleplay:author><itunes:block><![CDATA[Yes]]></itunes:block><item><title><![CDATA[Claude, Can You My Orchestrate Data Model?]]></title><description><![CDATA[#4: Data Pipeline Summer: Schedule your data models to run daily using Claude Code]]></description><link>https://learnanalyticsengineering.substack.com/p/claude-can-you-my-orchestrate-data</link><guid isPermaLink="false">https://learnanalyticsengineering.substack.com/p/claude-can-you-my-orchestrate-data</guid><dc:creator><![CDATA[Madison Mae]]></dc:creator><pubDate>Thu, 03 Sep 2026 14:20:42 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/c673235b-2319-43bd-8d32-d0cf37cabd6b_1400x1000.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><span data-color="#8394dc" style="color: rgb(131, 148, 220);">Today&#8217;s newsletter is sponsored by </span><a href="https://www.astronomer.io/events/orchestrate-everything/workshop/?utm_campaign=20260916-virtual-conference-orchestrate-everything&amp;utm_medium=paidmedia&amp;utm_source=madison-schott"><span data-color="#8394dc" style="color: rgb(131, 148, 220);">Astronomer</span></a><span data-color="#8394dc" style="color: rgb(131, 148, 220);">. Thank you for making this orchestration tutorial free for all readers! </span></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!MD_C!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8c478beb-32f8-4592-843d-1bc7a6c9f7d2_1714x842.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!MD_C!, /__u/learnanalyticsengineering.substack.com/w_424, /__u/learnanalyticsengineering.substack.com/c_limit, /__u/learnanalyticsengineering.substack.com/f_webp, /__u/learnanalyticsengineering.substack.com/q_auto:good, /__u/learnanalyticsengineering.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8c478beb-32f8-4592-843d-1bc7a6c9f7d2_1714x842.png 424w, /__u/substackcdn.com/image/fetch/$s_!MD_C!, /__u/learnanalyticsengineering.substack.com/w_848, /__u/learnanalyticsengineering.substack.com/c_limit, /__u/learnanalyticsengineering.substack.com/f_webp, /__u/learnanalyticsengineering.substack.com/q_auto:good, /__u/learnanalyticsengineering.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8c478beb-32f8-4592-843d-1bc7a6c9f7d2_1714x842.png 848w, /__u/substackcdn.com/image/fetch/$s_!MD_C!, /__u/learnanalyticsengineering.substack.com/w_1272, /__u/learnanalyticsengineering.substack.com/c_limit, /__u/learnanalyticsengineering.substack.com/f_webp, /__u/learnanalyticsengineering.substack.com/q_auto:good, /__u/learnanalyticsengineering.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8c478beb-32f8-4592-843d-1bc7a6c9f7d2_1714x842.png 1272w, /__u/substackcdn.com/image/fetch/$s_!MD_C!, /__u/learnanalyticsengineering.substack.com/w_1456, /__u/learnanalyticsengineering.substack.com/c_limit, /__u/learnanalyticsengineering.substack.com/f_webp, /__u/learnanalyticsengineering.substack.com/q_auto:good, /__u/learnanalyticsengineering.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8c478beb-32f8-4592-843d-1bc7a6c9f7d2_1714x842.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!MD_C!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8c478beb-32f8-4592-843d-1bc7a6c9f7d2_1714x842.png" width="1456" height="715" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/8c478beb-32f8-4592-843d-1bc7a6c9f7d2_1714x842.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:715,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:183851,&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://learnanalyticsengineering.substack.com/i/212438405?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8c478beb-32f8-4592-843d-1bc7a6c9f7d2_1714x842.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_!MD_C!, /__u/learnanalyticsengineering.substack.com/w_424, /__u/learnanalyticsengineering.substack.com/c_limit, /__u/learnanalyticsengineering.substack.com/f_auto, /__u/learnanalyticsengineering.substack.com/q_auto:good, /__u/learnanalyticsengineering.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8c478beb-32f8-4592-843d-1bc7a6c9f7d2_1714x842.png 424w, /__u/substackcdn.com/image/fetch/$s_!MD_C!, /__u/learnanalyticsengineering.substack.com/w_848, /__u/learnanalyticsengineering.substack.com/c_limit, /__u/learnanalyticsengineering.substack.com/f_auto, /__u/learnanalyticsengineering.substack.com/q_auto:good, /__u/learnanalyticsengineering.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8c478beb-32f8-4592-843d-1bc7a6c9f7d2_1714x842.png 848w, /__u/substackcdn.com/image/fetch/$s_!MD_C!, /__u/learnanalyticsengineering.substack.com/w_1272, /__u/learnanalyticsengineering.substack.com/c_limit, /__u/learnanalyticsengineering.substack.com/f_auto, /__u/learnanalyticsengineering.substack.com/q_auto:good, /__u/learnanalyticsengineering.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8c478beb-32f8-4592-843d-1bc7a6c9f7d2_1714x842.png 1272w, /__u/substackcdn.com/image/fetch/$s_!MD_C!, /__u/learnanalyticsengineering.substack.com/w_1456, /__u/learnanalyticsengineering.substack.com/c_limit, /__u/learnanalyticsengineering.substack.com/f_auto, /__u/learnanalyticsengineering.substack.com/q_auto:good, /__u/learnanalyticsengineering.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8c478beb-32f8-4592-843d-1bc7a6c9f7d2_1714x842.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>On September 16th, </span><a href="https://www.astronomer.io/events/orchestrate-everything/workshop/?utm_campaign=20260916-virtual-conference-orchestrate-everything&amp;utm_medium=paidmedia&amp;utm_source=madison-schott"><span>Astronomer</span></a><span> is bringing together industry experts to explore what&#8217;s next in data engineering at their </span><strong><span>Orchestrate Everything online data engineering conference</span></strong><span>.</span></p><p><span>You&#8217;ll hear REAL orchestration stories from data teams at Lyft, Wix, and Ramp, and on the patterns they&#8217;re using for AI inference, context engineering, MLOps, and AI-native data engineering.</span></p><p><span>Marc Lamberti, fellow data content creator and Astronomer expert, will help you prep for the official </span><strong><span>AI Orchestration Airflow certification exam</span></strong><span>, which you will take with a </span><strong><span>free certification code ($150 value)</span></strong><span>.</span></p><p><span>This is a learning opportunity you don&#8217;t want to miss. </span><strong><span>You&#8217;ll walk away with knowledge of real-life orchestration experiences, learn how to use AI and Astronomer to orchestrate a data pipeline, and have a chance to add a new certification to your resume! </span></strong></p><p><strong><span data-color="#8394dc" style="color: rgb(131, 148, 220);">Sign up for this awesome opportunity to learn from the best data engineers </span><a href="https://www.astronomer.io/events/orchestrate-everything/workshop/?utm_campaign=20260916-virtual-conference-orchestrate-everything&amp;utm_medium=paidmedia&amp;utm_source=madison-schott"><span data-color="#8394dc" style="color: rgb(131, 148, 220);">here</span></a><span data-color="#8394dc" style="color: rgb(131, 148, 220);">. </span></strong></p><div><hr></div><p>&#8230;and back to the Data Pipeline Summer challenge!</p><p><strong>If you haven&#8217;t been following along, you can find the introduction to the challenge <a href="/__u/learnanalyticsengineering.substack.com/p/how-to-build-an-ai-powered-data-pipeline">here</a> and last week&#8217;s newsletter on data modeling <a href="/__u/learnanalyticsengineering.substack.com/p/master-dimensional-data-modeling">here</a>. </strong></p><p>Now that we&#8217;ve built our data models to get the business the metrics it needs to see customers&#8217; AOV and most popular recipes, how do we ensure our stakeholders get the latest data every morning? The only way to do this is to ensure our models run automatically each morning. This can be done through scheduled jobs, aka orchestration. </p><p>Orchestration is the piece of the data pipeline where the magic really happens. Data ingestion and data modeling all happen without you having to worry about running anything. </p><p>While you would typically use a tool like dbt Cloud, Prefect, Dagster, or <a href="https://www.astronomer.io/events/orchestrate-everything/workshop/?utm_campaign=20260916-virtual-conference-orchestrate-everything&amp;utm_medium=paidmedia&amp;utm_source=madison-schott">Astronomer</a> to orchestrate your data pipeline, we are going to write a local Python script with the help of Claude Code that allows us to run what we&#8217;ve been working on locally, with no extra tools needed. </p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://learnanalyticsengineering.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">Learn Analytics Engineering is a reader-supported publication. To receive new posts and support my work, consider becoming a free or paid subscriber.</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>How to prompt Claude Code to write you a Python orchestration script</h2><p><em>&#10095; Hey Claude, I now have these dbt data models. I want them to refresh and run daily at 6am EST. How can I schedule/orchestrate them to run locally using the dbt build command?</em></p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!TFcE!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2a305d82-dfe1-4802-b837-a37d55576e8b_2664x510.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!TFcE!, /__u/learnanalyticsengineering.substack.com/w_424, /__u/learnanalyticsengineering.substack.com/c_limit, /__u/learnanalyticsengineering.substack.com/f_webp, /__u/learnanalyticsengineering.substack.com/q_auto:good, /__u/learnanalyticsengineering.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2a305d82-dfe1-4802-b837-a37d55576e8b_2664x510.png 424w, /__u/substackcdn.com/image/fetch/$s_!TFcE!, /__u/learnanalyticsengineering.substack.com/w_848, /__u/learnanalyticsengineering.substack.com/c_limit, /__u/learnanalyticsengineering.substack.com/f_webp, /__u/learnanalyticsengineering.substack.com/q_auto:good, /__u/learnanalyticsengineering.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2a305d82-dfe1-4802-b837-a37d55576e8b_2664x510.png 848w, /__u/substackcdn.com/image/fetch/$s_!TFcE!, /__u/learnanalyticsengineering.substack.com/w_1272, /__u/learnanalyticsengineering.substack.com/c_limit, /__u/learnanalyticsengineering.substack.com/f_webp, /__u/learnanalyticsengineering.substack.com/q_auto:good, /__u/learnanalyticsengineering.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2a305d82-dfe1-4802-b837-a37d55576e8b_2664x510.png 1272w, /__u/substackcdn.com/image/fetch/$s_!TFcE!, /__u/learnanalyticsengineering.substack.com/w_1456, /__u/learnanalyticsengineering.substack.com/c_limit, /__u/learnanalyticsengineering.substack.com/f_webp, /__u/learnanalyticsengineering.substack.com/q_auto:good, /__u/learnanalyticsengineering.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2a305d82-dfe1-4802-b837-a37d55576e8b_2664x510.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!TFcE!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2a305d82-dfe1-4802-b837-a37d55576e8b_2664x510.png" width="1456" height="279" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/2a305d82-dfe1-4802-b837-a37d55576e8b_2664x510.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:279,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:508995,&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://learnanalyticsengineering.substack.com/i/212438405?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2a305d82-dfe1-4802-b837-a37d55576e8b_2664x510.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_!TFcE!, /__u/learnanalyticsengineering.substack.com/w_424, /__u/learnanalyticsengineering.substack.com/c_limit, /__u/learnanalyticsengineering.substack.com/f_auto, /__u/learnanalyticsengineering.substack.com/q_auto:good, /__u/learnanalyticsengineering.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2a305d82-dfe1-4802-b837-a37d55576e8b_2664x510.png 424w, /__u/substackcdn.com/image/fetch/$s_!TFcE!, /__u/learnanalyticsengineering.substack.com/w_848, /__u/learnanalyticsengineering.substack.com/c_limit, /__u/learnanalyticsengineering.substack.com/f_auto, /__u/learnanalyticsengineering.substack.com/q_auto:good, /__u/learnanalyticsengineering.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2a305d82-dfe1-4802-b837-a37d55576e8b_2664x510.png 848w, /__u/substackcdn.com/image/fetch/$s_!TFcE!, /__u/learnanalyticsengineering.substack.com/w_1272, /__u/learnanalyticsengineering.substack.com/c_limit, /__u/learnanalyticsengineering.substack.com/f_auto, /__u/learnanalyticsengineering.substack.com/q_auto:good, /__u/learnanalyticsengineering.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2a305d82-dfe1-4802-b837-a37d55576e8b_2664x510.png 1272w, /__u/substackcdn.com/image/fetch/$s_!TFcE!, /__u/learnanalyticsengineering.substack.com/w_1456, /__u/learnanalyticsengineering.substack.com/c_limit, /__u/learnanalyticsengineering.substack.com/f_auto, /__u/learnanalyticsengineering.substack.com/q_auto:good, /__u/learnanalyticsengineering.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2a305d82-dfe1-4802-b837-a37d55576e8b_2664x510.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><p>You can expect Claude to call out a few different things based on your setup. For me, I asked for my pipeline to be scheduled on EST, even though my computer&#8217;s timezone is set to Arizona time. This changes how daylight savings is handled, which I&#8217;m honestly impressed that it recognized!</p><p>It also calls out that the ClickHouse server is spun off locally as needed, and may not always persist. This is a great call out when building any type of local pipeline. If using Cloud-based tools, this wouldn&#8217;t be the case, but here it matters a lot! For this reason, I suggest a way to retry the job if my computer is shut down at the normal run time. </p><p><em>&#10095; Can you give me a plan with options for this? Don&#8217;t do anything yet but I want to understand my options, the tradeoffs, and how each one would be executed.</em></p><p>I always recommend asking for the plan before you start executing anything. If you jump right in, not only do you not fully understand the architecture, by Claude is likely to make mistakes that you could have otherwise corrected. </p><p><strong>Always ask for the plan and iterate on it until you are happy with what it wants to build for you. </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_!dlKC!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0d558883-2fc0-4803-bb42-31a5f93fa744_2652x734.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!dlKC!, /__u/learnanalyticsengineering.substack.com/w_424, /__u/learnanalyticsengineering.substack.com/c_limit, /__u/learnanalyticsengineering.substack.com/f_webp, /__u/learnanalyticsengineering.substack.com/q_auto:good, /__u/learnanalyticsengineering.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0d558883-2fc0-4803-bb42-31a5f93fa744_2652x734.png 424w, /__u/substackcdn.com/image/fetch/$s_!dlKC!, /__u/learnanalyticsengineering.substack.com/w_848, /__u/learnanalyticsengineering.substack.com/c_limit, /__u/learnanalyticsengineering.substack.com/f_webp, /__u/learnanalyticsengineering.substack.com/q_auto:good, /__u/learnanalyticsengineering.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0d558883-2fc0-4803-bb42-31a5f93fa744_2652x734.png 848w, /__u/substackcdn.com/image/fetch/$s_!dlKC!, /__u/learnanalyticsengineering.substack.com/w_1272, /__u/learnanalyticsengineering.substack.com/c_limit, /__u/learnanalyticsengineering.substack.com/f_webp, /__u/learnanalyticsengineering.substack.com/q_auto:good, /__u/learnanalyticsengineering.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0d558883-2fc0-4803-bb42-31a5f93fa744_2652x734.png 1272w, /__u/substackcdn.com/image/fetch/$s_!dlKC!, /__u/learnanalyticsengineering.substack.com/w_1456, /__u/learnanalyticsengineering.substack.com/c_limit, /__u/learnanalyticsengineering.substack.com/f_webp, /__u/learnanalyticsengineering.substack.com/q_auto:good, /__u/learnanalyticsengineering.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0d558883-2fc0-4803-bb42-31a5f93fa744_2652x734.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!dlKC!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0d558883-2fc0-4803-bb42-31a5f93fa744_2652x734.png" width="1456" height="403" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/0d558883-2fc0-4803-bb42-31a5f93fa744_2652x734.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:403,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:804270,&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://learnanalyticsengineering.substack.com/i/212438405?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0d558883-2fc0-4803-bb42-31a5f93fa744_2652x734.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_!dlKC!, /__u/learnanalyticsengineering.substack.com/w_424, /__u/learnanalyticsengineering.substack.com/c_limit, /__u/learnanalyticsengineering.substack.com/f_auto, /__u/learnanalyticsengineering.substack.com/q_auto:good, /__u/learnanalyticsengineering.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0d558883-2fc0-4803-bb42-31a5f93fa744_2652x734.png 424w, /__u/substackcdn.com/image/fetch/$s_!dlKC!, /__u/learnanalyticsengineering.substack.com/w_848, /__u/learnanalyticsengineering.substack.com/c_limit, /__u/learnanalyticsengineering.substack.com/f_auto, /__u/learnanalyticsengineering.substack.com/q_auto:good, /__u/learnanalyticsengineering.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0d558883-2fc0-4803-bb42-31a5f93fa744_2652x734.png 848w, /__u/substackcdn.com/image/fetch/$s_!dlKC!, /__u/learnanalyticsengineering.substack.com/w_1272, /__u/learnanalyticsengineering.substack.com/c_limit, /__u/learnanalyticsengineering.substack.com/f_auto, /__u/learnanalyticsengineering.substack.com/q_auto:good, /__u/learnanalyticsengineering.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0d558883-2fc0-4803-bb42-31a5f93fa744_2652x734.png 1272w, /__u/substackcdn.com/image/fetch/$s_!dlKC!, /__u/learnanalyticsengineering.substack.com/w_1456, /__u/learnanalyticsengineering.substack.com/c_limit, /__u/learnanalyticsengineering.substack.com/f_auto, /__u/learnanalyticsengineering.substack.com/q_auto:good, /__u/learnanalyticsengineering.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0d558883-2fc0-4803-bb42-31a5f93fa744_2652x734.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><em>&#10095; I don&#8217;t want two jobs. Let&#8217;s just do one at 6am EST. I also want this to work on any computer, not just a Mac. Is there a way to ensure the job runs if the Mac is off? Maybe it runs when the Mac comes back on if it misses that day?</em></p><p>Here I wanted to understand why it was saying certain things and if it was possible to find a universal job that wasn&#8217;t specific to a Mac. I offered some suggestions of an ideal state to see if it was possible to execute. </p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!axxm!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7b37393d-4f42-491c-b717-d96e811de515_1878x726.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!axxm!, /__u/learnanalyticsengineering.substack.com/w_424, /__u/learnanalyticsengineering.substack.com/c_limit, /__u/learnanalyticsengineering.substack.com/f_webp, /__u/learnanalyticsengineering.substack.com/q_auto:good, /__u/learnanalyticsengineering.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7b37393d-4f42-491c-b717-d96e811de515_1878x726.png 424w, /__u/substackcdn.com/image/fetch/$s_!axxm!, /__u/learnanalyticsengineering.substack.com/w_848, /__u/learnanalyticsengineering.substack.com/c_limit, /__u/learnanalyticsengineering.substack.com/f_webp, /__u/learnanalyticsengineering.substack.com/q_auto:good, /__u/learnanalyticsengineering.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7b37393d-4f42-491c-b717-d96e811de515_1878x726.png 848w, /__u/substackcdn.com/image/fetch/$s_!axxm!, /__u/learnanalyticsengineering.substack.com/w_1272, /__u/learnanalyticsengineering.substack.com/c_limit, /__u/learnanalyticsengineering.substack.com/f_webp, /__u/learnanalyticsengineering.substack.com/q_auto:good, /__u/learnanalyticsengineering.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7b37393d-4f42-491c-b717-d96e811de515_1878x726.png 1272w, /__u/substackcdn.com/image/fetch/$s_!axxm!, /__u/learnanalyticsengineering.substack.com/w_1456, /__u/learnanalyticsengineering.substack.com/c_limit, /__u/learnanalyticsengineering.substack.com/f_webp, /__u/learnanalyticsengineering.substack.com/q_auto:good, /__u/learnanalyticsengineering.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7b37393d-4f42-491c-b717-d96e811de515_1878x726.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!axxm!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7b37393d-4f42-491c-b717-d96e811de515_1878x726.png" width="1456" height="563" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/7b37393d-4f42-491c-b717-d96e811de515_1878x726.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:563,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:702425,&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://learnanalyticsengineering.substack.com/i/212438405?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7b37393d-4f42-491c-b717-d96e811de515_1878x726.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_!axxm!, /__u/learnanalyticsengineering.substack.com/w_424, /__u/learnanalyticsengineering.substack.com/c_limit, /__u/learnanalyticsengineering.substack.com/f_auto, /__u/learnanalyticsengineering.substack.com/q_auto:good, /__u/learnanalyticsengineering.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7b37393d-4f42-491c-b717-d96e811de515_1878x726.png 424w, /__u/substackcdn.com/image/fetch/$s_!axxm!, /__u/learnanalyticsengineering.substack.com/w_848, /__u/learnanalyticsengineering.substack.com/c_limit, /__u/learnanalyticsengineering.substack.com/f_auto, /__u/learnanalyticsengineering.substack.com/q_auto:good, /__u/learnanalyticsengineering.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7b37393d-4f42-491c-b717-d96e811de515_1878x726.png 848w, /__u/substackcdn.com/image/fetch/$s_!axxm!, /__u/learnanalyticsengineering.substack.com/w_1272, /__u/learnanalyticsengineering.substack.com/c_limit, /__u/learnanalyticsengineering.substack.com/f_auto, /__u/learnanalyticsengineering.substack.com/q_auto:good, /__u/learnanalyticsengineering.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7b37393d-4f42-491c-b717-d96e811de515_1878x726.png 1272w, /__u/substackcdn.com/image/fetch/$s_!axxm!, /__u/learnanalyticsengineering.substack.com/w_1456, /__u/learnanalyticsengineering.substack.com/c_limit, /__u/learnanalyticsengineering.substack.com/f_auto, /__u/learnanalyticsengineering.substack.com/q_auto:good, /__u/learnanalyticsengineering.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7b37393d-4f42-491c-b717-d96e811de515_1878x726.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>Now it&#8217;s time to give it the go to build! I recommend checking each step and validating as you go to ensure you don&#8217;t end up with something that doesn&#8217;t work and is completely out of left field. </p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!SLEf!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1006874c-d213-4d51-919c-6736c9a9fae8_1108x370.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!SLEf!, /__u/learnanalyticsengineering.substack.com/w_424, /__u/learnanalyticsengineering.substack.com/c_limit, /__u/learnanalyticsengineering.substack.com/f_webp, /__u/learnanalyticsengineering.substack.com/q_auto:good, /__u/learnanalyticsengineering.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1006874c-d213-4d51-919c-6736c9a9fae8_1108x370.png 424w, /__u/substackcdn.com/image/fetch/$s_!SLEf!, /__u/learnanalyticsengineering.substack.com/w_848, /__u/learnanalyticsengineering.substack.com/c_limit, /__u/learnanalyticsengineering.substack.com/f_webp, /__u/learnanalyticsengineering.substack.com/q_auto:good, /__u/learnanalyticsengineering.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1006874c-d213-4d51-919c-6736c9a9fae8_1108x370.png 848w, /__u/substackcdn.com/image/fetch/$s_!SLEf!, /__u/learnanalyticsengineering.substack.com/w_1272, /__u/learnanalyticsengineering.substack.com/c_limit, /__u/learnanalyticsengineering.substack.com/f_webp, /__u/learnanalyticsengineering.substack.com/q_auto:good, /__u/learnanalyticsengineering.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1006874c-d213-4d51-919c-6736c9a9fae8_1108x370.png 1272w, /__u/substackcdn.com/image/fetch/$s_!SLEf!, /__u/learnanalyticsengineering.substack.com/w_1456, /__u/learnanalyticsengineering.substack.com/c_limit, /__u/learnanalyticsengineering.substack.com/f_webp, /__u/learnanalyticsengineering.substack.com/q_auto:good, /__u/learnanalyticsengineering.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1006874c-d213-4d51-919c-6736c9a9fae8_1108x370.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!SLEf!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1006874c-d213-4d51-919c-6736c9a9fae8_1108x370.png" width="1108" height="370" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/1006874c-d213-4d51-919c-6736c9a9fae8_1108x370.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:370,&quot;width&quot;:1108,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:209114,&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://learnanalyticsengineering.substack.com/i/212438405?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1006874c-d213-4d51-919c-6736c9a9fae8_1108x370.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_!SLEf!, /__u/learnanalyticsengineering.substack.com/w_424, /__u/learnanalyticsengineering.substack.com/c_limit, /__u/learnanalyticsengineering.substack.com/f_auto, /__u/learnanalyticsengineering.substack.com/q_auto:good, /__u/learnanalyticsengineering.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1006874c-d213-4d51-919c-6736c9a9fae8_1108x370.png 424w, /__u/substackcdn.com/image/fetch/$s_!SLEf!, /__u/learnanalyticsengineering.substack.com/w_848, /__u/learnanalyticsengineering.substack.com/c_limit, /__u/learnanalyticsengineering.substack.com/f_auto, /__u/learnanalyticsengineering.substack.com/q_auto:good, /__u/learnanalyticsengineering.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1006874c-d213-4d51-919c-6736c9a9fae8_1108x370.png 848w, /__u/substackcdn.com/image/fetch/$s_!SLEf!, /__u/learnanalyticsengineering.substack.com/w_1272, /__u/learnanalyticsengineering.substack.com/c_limit, /__u/learnanalyticsengineering.substack.com/f_auto, /__u/learnanalyticsengineering.substack.com/q_auto:good, /__u/learnanalyticsengineering.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1006874c-d213-4d51-919c-6736c9a9fae8_1108x370.png 1272w, /__u/substackcdn.com/image/fetch/$s_!SLEf!, /__u/learnanalyticsengineering.substack.com/w_1456, /__u/learnanalyticsengineering.substack.com/c_limit, /__u/learnanalyticsengineering.substack.com/f_auto, /__u/learnanalyticsengineering.substack.com/q_auto:good, /__u/learnanalyticsengineering.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1006874c-d213-4d51-919c-6736c9a9fae8_1108x370.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>If you give it the go to start building and the plan steps don&#8217;t match your expectations, don&#8217;t execute them! Go back to the plan mode and correct it on what you expect to see and not see here. </p><p>Even better when it suggests testing along the way for you&#8230;</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!0uMg!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F81fb03d1-5473-414a-a8de-75d3dd2094f0_1790x320.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!0uMg!, /__u/learnanalyticsengineering.substack.com/w_424, /__u/learnanalyticsengineering.substack.com/c_limit, /__u/learnanalyticsengineering.substack.com/f_webp, /__u/learnanalyticsengineering.substack.com/q_auto:good, /__u/learnanalyticsengineering.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F81fb03d1-5473-414a-a8de-75d3dd2094f0_1790x320.png 424w, /__u/substackcdn.com/image/fetch/$s_!0uMg!, /__u/learnanalyticsengineering.substack.com/w_848, /__u/learnanalyticsengineering.substack.com/c_limit, /__u/learnanalyticsengineering.substack.com/f_webp, /__u/learnanalyticsengineering.substack.com/q_auto:good, /__u/learnanalyticsengineering.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F81fb03d1-5473-414a-a8de-75d3dd2094f0_1790x320.png 848w, /__u/substackcdn.com/image/fetch/$s_!0uMg!, /__u/learnanalyticsengineering.substack.com/w_1272, /__u/learnanalyticsengineering.substack.com/c_limit, /__u/learnanalyticsengineering.substack.com/f_webp, /__u/learnanalyticsengineering.substack.com/q_auto:good, /__u/learnanalyticsengineering.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F81fb03d1-5473-414a-a8de-75d3dd2094f0_1790x320.png 1272w, /__u/substackcdn.com/image/fetch/$s_!0uMg!, /__u/learnanalyticsengineering.substack.com/w_1456, /__u/learnanalyticsengineering.substack.com/c_limit, /__u/learnanalyticsengineering.substack.com/f_webp, /__u/learnanalyticsengineering.substack.com/q_auto:good, /__u/learnanalyticsengineering.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F81fb03d1-5473-414a-a8de-75d3dd2094f0_1790x320.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!0uMg!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F81fb03d1-5473-414a-a8de-75d3dd2094f0_1790x320.png" width="1456" height="260" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/81fb03d1-5473-414a-a8de-75d3dd2094f0_1790x320.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:260,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:235463,&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://learnanalyticsengineering.substack.com/i/212438405?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F81fb03d1-5473-414a-a8de-75d3dd2094f0_1790x320.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_!0uMg!, /__u/learnanalyticsengineering.substack.com/w_424, /__u/learnanalyticsengineering.substack.com/c_limit, /__u/learnanalyticsengineering.substack.com/f_auto, /__u/learnanalyticsengineering.substack.com/q_auto:good, /__u/learnanalyticsengineering.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F81fb03d1-5473-414a-a8de-75d3dd2094f0_1790x320.png 424w, /__u/substackcdn.com/image/fetch/$s_!0uMg!, /__u/learnanalyticsengineering.substack.com/w_848, /__u/learnanalyticsengineering.substack.com/c_limit, /__u/learnanalyticsengineering.substack.com/f_auto, /__u/learnanalyticsengineering.substack.com/q_auto:good, /__u/learnanalyticsengineering.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F81fb03d1-5473-414a-a8de-75d3dd2094f0_1790x320.png 848w, /__u/substackcdn.com/image/fetch/$s_!0uMg!, /__u/learnanalyticsengineering.substack.com/w_1272, /__u/learnanalyticsengineering.substack.com/c_limit, /__u/learnanalyticsengineering.substack.com/f_auto, /__u/learnanalyticsengineering.substack.com/q_auto:good, /__u/learnanalyticsengineering.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F81fb03d1-5473-414a-a8de-75d3dd2094f0_1790x320.png 1272w, /__u/substackcdn.com/image/fetch/$s_!0uMg!, /__u/learnanalyticsengineering.substack.com/w_1456, /__u/learnanalyticsengineering.substack.com/c_limit, /__u/learnanalyticsengineering.substack.com/f_auto, /__u/learnanalyticsengineering.substack.com/q_auto:good, /__u/learnanalyticsengineering.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F81fb03d1-5473-414a-a8de-75d3dd2094f0_1790x320.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><p>Once it started creating the .plist file, I became a bit concerned. I didn&#8217;t know what this was or what it was doing, so I asked for some clarification. After the clarification, I wanted to see if I could omit it and still get what I wanted. </p><p>However, Claude clarified that it was only changing the system settings for this specific script, making me feel comfortable to move forward with this. </p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!jdR_!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9139e4df-6491-4559-854b-72b94bb9205d_1868x468.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!jdR_!, /__u/learnanalyticsengineering.substack.com/w_424, /__u/learnanalyticsengineering.substack.com/c_limit, /__u/learnanalyticsengineering.substack.com/f_webp, /__u/learnanalyticsengineering.substack.com/q_auto:good, /__u/learnanalyticsengineering.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9139e4df-6491-4559-854b-72b94bb9205d_1868x468.png 424w, /__u/substackcdn.com/image/fetch/$s_!jdR_!, /__u/learnanalyticsengineering.substack.com/w_848, /__u/learnanalyticsengineering.substack.com/c_limit, /__u/learnanalyticsengineering.substack.com/f_webp, /__u/learnanalyticsengineering.substack.com/q_auto:good, /__u/learnanalyticsengineering.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9139e4df-6491-4559-854b-72b94bb9205d_1868x468.png 848w, /__u/substackcdn.com/image/fetch/$s_!jdR_!, /__u/learnanalyticsengineering.substack.com/w_1272, /__u/learnanalyticsengineering.substack.com/c_limit, /__u/learnanalyticsengineering.substack.com/f_webp, /__u/learnanalyticsengineering.substack.com/q_auto:good, /__u/learnanalyticsengineering.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9139e4df-6491-4559-854b-72b94bb9205d_1868x468.png 1272w, /__u/substackcdn.com/image/fetch/$s_!jdR_!, /__u/learnanalyticsengineering.substack.com/w_1456, /__u/learnanalyticsengineering.substack.com/c_limit, /__u/learnanalyticsengineering.substack.com/f_webp, /__u/learnanalyticsengineering.substack.com/q_auto:good, /__u/learnanalyticsengineering.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9139e4df-6491-4559-854b-72b94bb9205d_1868x468.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!jdR_!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9139e4df-6491-4559-854b-72b94bb9205d_1868x468.png" width="1456" height="365" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/9139e4df-6491-4559-854b-72b94bb9205d_1868x468.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:365,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:487074,&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://learnanalyticsengineering.substack.com/i/212438405?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9139e4df-6491-4559-854b-72b94bb9205d_1868x468.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_!jdR_!, /__u/learnanalyticsengineering.substack.com/w_424, /__u/learnanalyticsengineering.substack.com/c_limit, /__u/learnanalyticsengineering.substack.com/f_auto, /__u/learnanalyticsengineering.substack.com/q_auto:good, /__u/learnanalyticsengineering.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9139e4df-6491-4559-854b-72b94bb9205d_1868x468.png 424w, /__u/substackcdn.com/image/fetch/$s_!jdR_!, /__u/learnanalyticsengineering.substack.com/w_848, /__u/learnanalyticsengineering.substack.com/c_limit, /__u/learnanalyticsengineering.substack.com/f_auto, /__u/learnanalyticsengineering.substack.com/q_auto:good, /__u/learnanalyticsengineering.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9139e4df-6491-4559-854b-72b94bb9205d_1868x468.png 848w, /__u/substackcdn.com/image/fetch/$s_!jdR_!, /__u/learnanalyticsengineering.substack.com/w_1272, /__u/learnanalyticsengineering.substack.com/c_limit, /__u/learnanalyticsengineering.substack.com/f_auto, /__u/learnanalyticsengineering.substack.com/q_auto:good, /__u/learnanalyticsengineering.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9139e4df-6491-4559-854b-72b94bb9205d_1868x468.png 1272w, /__u/substackcdn.com/image/fetch/$s_!jdR_!, /__u/learnanalyticsengineering.substack.com/w_1456, /__u/learnanalyticsengineering.substack.com/c_limit, /__u/learnanalyticsengineering.substack.com/f_auto, /__u/learnanalyticsengineering.substack.com/q_auto:good, /__u/learnanalyticsengineering.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9139e4df-6491-4559-854b-72b94bb9205d_1868x468.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>Again, ask and iterate as Claude executes your plan! You don&#8217;t have to send everything blindly all at once. A huge part of using AI in your work is ensuring you UNDERSTAND everything it is doing along the way. <strong>If you don&#8217;t understand it, there is no point in building it.</strong> And that is my hot take &#128521;</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!3Ve7!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb19f4e54-5e53-49a0-8396-05edbf1f57f9_1848x372.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!3Ve7!, /__u/learnanalyticsengineering.substack.com/w_424, /__u/learnanalyticsengineering.substack.com/c_limit, /__u/learnanalyticsengineering.substack.com/f_webp, /__u/learnanalyticsengineering.substack.com/q_auto:good, /__u/learnanalyticsengineering.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb19f4e54-5e53-49a0-8396-05edbf1f57f9_1848x372.png 424w, /__u/substackcdn.com/image/fetch/$s_!3Ve7!, /__u/learnanalyticsengineering.substack.com/w_848, /__u/learnanalyticsengineering.substack.com/c_limit, /__u/learnanalyticsengineering.substack.com/f_webp, /__u/learnanalyticsengineering.substack.com/q_auto:good, /__u/learnanalyticsengineering.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb19f4e54-5e53-49a0-8396-05edbf1f57f9_1848x372.png 848w, /__u/substackcdn.com/image/fetch/$s_!3Ve7!, /__u/learnanalyticsengineering.substack.com/w_1272, /__u/learnanalyticsengineering.substack.com/c_limit, /__u/learnanalyticsengineering.substack.com/f_webp, /__u/learnanalyticsengineering.substack.com/q_auto:good, /__u/learnanalyticsengineering.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb19f4e54-5e53-49a0-8396-05edbf1f57f9_1848x372.png 1272w, /__u/substackcdn.com/image/fetch/$s_!3Ve7!, /__u/learnanalyticsengineering.substack.com/w_1456, /__u/learnanalyticsengineering.substack.com/c_limit, /__u/learnanalyticsengineering.substack.com/f_webp, /__u/learnanalyticsengineering.substack.com/q_auto:good, /__u/learnanalyticsengineering.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb19f4e54-5e53-49a0-8396-05edbf1f57f9_1848x372.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!3Ve7!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb19f4e54-5e53-49a0-8396-05edbf1f57f9_1848x372.png" width="1456" height="293" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/b19f4e54-5e53-49a0-8396-05edbf1f57f9_1848x372.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:293,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:323630,&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://learnanalyticsengineering.substack.com/i/212438405?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb19f4e54-5e53-49a0-8396-05edbf1f57f9_1848x372.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_!3Ve7!, /__u/learnanalyticsengineering.substack.com/w_424, /__u/learnanalyticsengineering.substack.com/c_limit, /__u/learnanalyticsengineering.substack.com/f_auto, /__u/learnanalyticsengineering.substack.com/q_auto:good, /__u/learnanalyticsengineering.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb19f4e54-5e53-49a0-8396-05edbf1f57f9_1848x372.png 424w, /__u/substackcdn.com/image/fetch/$s_!3Ve7!, /__u/learnanalyticsengineering.substack.com/w_848, /__u/learnanalyticsengineering.substack.com/c_limit, /__u/learnanalyticsengineering.substack.com/f_auto, /__u/learnanalyticsengineering.substack.com/q_auto:good, /__u/learnanalyticsengineering.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb19f4e54-5e53-49a0-8396-05edbf1f57f9_1848x372.png 848w, /__u/substackcdn.com/image/fetch/$s_!3Ve7!, /__u/learnanalyticsengineering.substack.com/w_1272, /__u/learnanalyticsengineering.substack.com/c_limit, /__u/learnanalyticsengineering.substack.com/f_auto, /__u/learnanalyticsengineering.substack.com/q_auto:good, /__u/learnanalyticsengineering.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb19f4e54-5e53-49a0-8396-05edbf1f57f9_1848x372.png 1272w, /__u/substackcdn.com/image/fetch/$s_!3Ve7!, /__u/learnanalyticsengineering.substack.com/w_1456, /__u/learnanalyticsengineering.substack.com/c_limit, /__u/learnanalyticsengineering.substack.com/f_auto, /__u/learnanalyticsengineering.substack.com/q_auto:good, /__u/learnanalyticsengineering.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb19f4e54-5e53-49a0-8396-05edbf1f57f9_1848x372.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><p>Once it&#8217;s finished building, be sure to test everything out so you aren&#8217;t surprised. We want to see the models rebuild when the script run, and ensures it starts up the ClickHouse server if it&#8217;s down at the time it is run. </p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!y_SG!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F40564e97-6ef0-407a-90cd-c5bfc8515fb2_884x128.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!y_SG!, /__u/learnanalyticsengineering.substack.com/w_424, /__u/learnanalyticsengineering.substack.com/c_limit, /__u/learnanalyticsengineering.substack.com/f_webp, /__u/learnanalyticsengineering.substack.com/q_auto:good, /__u/learnanalyticsengineering.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F40564e97-6ef0-407a-90cd-c5bfc8515fb2_884x128.png 424w, /__u/substackcdn.com/image/fetch/$s_!y_SG!, /__u/learnanalyticsengineering.substack.com/w_848, /__u/learnanalyticsengineering.substack.com/c_limit, /__u/learnanalyticsengineering.substack.com/f_webp, /__u/learnanalyticsengineering.substack.com/q_auto:good, /__u/learnanalyticsengineering.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F40564e97-6ef0-407a-90cd-c5bfc8515fb2_884x128.png 848w, /__u/substackcdn.com/image/fetch/$s_!y_SG!, /__u/learnanalyticsengineering.substack.com/w_1272, /__u/learnanalyticsengineering.substack.com/c_limit, /__u/learnanalyticsengineering.substack.com/f_webp, /__u/learnanalyticsengineering.substack.com/q_auto:good, /__u/learnanalyticsengineering.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F40564e97-6ef0-407a-90cd-c5bfc8515fb2_884x128.png 1272w, /__u/substackcdn.com/image/fetch/$s_!y_SG!, /__u/learnanalyticsengineering.substack.com/w_1456, /__u/learnanalyticsengineering.substack.com/c_limit, /__u/learnanalyticsengineering.substack.com/f_webp, /__u/learnanalyticsengineering.substack.com/q_auto:good, /__u/learnanalyticsengineering.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F40564e97-6ef0-407a-90cd-c5bfc8515fb2_884x128.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!y_SG!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F40564e97-6ef0-407a-90cd-c5bfc8515fb2_884x128.png" width="512" height="74.13574660633485" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/40564e97-6ef0-407a-90cd-c5bfc8515fb2_884x128.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:128,&quot;width&quot;:884,&quot;resizeWidth&quot;:512,&quot;bytes&quot;:76761,&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://learnanalyticsengineering.substack.com/i/212438405?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F40564e97-6ef0-407a-90cd-c5bfc8515fb2_884x128.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_!y_SG!, /__u/learnanalyticsengineering.substack.com/w_424, /__u/learnanalyticsengineering.substack.com/c_limit, /__u/learnanalyticsengineering.substack.com/f_auto, /__u/learnanalyticsengineering.substack.com/q_auto:good, /__u/learnanalyticsengineering.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F40564e97-6ef0-407a-90cd-c5bfc8515fb2_884x128.png 424w, /__u/substackcdn.com/image/fetch/$s_!y_SG!, /__u/learnanalyticsengineering.substack.com/w_848, /__u/learnanalyticsengineering.substack.com/c_limit, /__u/learnanalyticsengineering.substack.com/f_auto, /__u/learnanalyticsengineering.substack.com/q_auto:good, /__u/learnanalyticsengineering.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F40564e97-6ef0-407a-90cd-c5bfc8515fb2_884x128.png 848w, /__u/substackcdn.com/image/fetch/$s_!y_SG!, /__u/learnanalyticsengineering.substack.com/w_1272, /__u/learnanalyticsengineering.substack.com/c_limit, /__u/learnanalyticsengineering.substack.com/f_auto, /__u/learnanalyticsengineering.substack.com/q_auto:good, /__u/learnanalyticsengineering.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F40564e97-6ef0-407a-90cd-c5bfc8515fb2_884x128.png 1272w, /__u/substackcdn.com/image/fetch/$s_!y_SG!, /__u/learnanalyticsengineering.substack.com/w_1456, /__u/learnanalyticsengineering.substack.com/c_limit, /__u/learnanalyticsengineering.substack.com/f_auto, /__u/learnanalyticsengineering.substack.com/q_auto:good, /__u/learnanalyticsengineering.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F40564e97-6ef0-407a-90cd-c5bfc8515fb2_884x128.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><p>And we got a failure&#8230;</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!d64y!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1a046a82-ef70-4fee-ab66-ff017103c753_1848x386.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!d64y!, /__u/learnanalyticsengineering.substack.com/w_424, /__u/learnanalyticsengineering.substack.com/c_limit, /__u/learnanalyticsengineering.substack.com/f_webp, /__u/learnanalyticsengineering.substack.com/q_auto:good, /__u/learnanalyticsengineering.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1a046a82-ef70-4fee-ab66-ff017103c753_1848x386.png 424w, /__u/substackcdn.com/image/fetch/$s_!d64y!, /__u/learnanalyticsengineering.substack.com/w_848, /__u/learnanalyticsengineering.substack.com/c_limit, /__u/learnanalyticsengineering.substack.com/f_webp, /__u/learnanalyticsengineering.substack.com/q_auto:good, /__u/learnanalyticsengineering.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1a046a82-ef70-4fee-ab66-ff017103c753_1848x386.png 848w, /__u/substackcdn.com/image/fetch/$s_!d64y!, /__u/learnanalyticsengineering.substack.com/w_1272, /__u/learnanalyticsengineering.substack.com/c_limit, /__u/learnanalyticsengineering.substack.com/f_webp, /__u/learnanalyticsengineering.substack.com/q_auto:good, /__u/learnanalyticsengineering.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1a046a82-ef70-4fee-ab66-ff017103c753_1848x386.png 1272w, /__u/substackcdn.com/image/fetch/$s_!d64y!, /__u/learnanalyticsengineering.substack.com/w_1456, /__u/learnanalyticsengineering.substack.com/c_limit, /__u/learnanalyticsengineering.substack.com/f_webp, /__u/learnanalyticsengineering.substack.com/q_auto:good, /__u/learnanalyticsengineering.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1a046a82-ef70-4fee-ab66-ff017103c753_1848x386.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!d64y!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1a046a82-ef70-4fee-ab66-ff017103c753_1848x386.png" width="1456" height="304" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/1a046a82-ef70-4fee-ab66-ff017103c753_1848x386.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:304,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:284428,&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://learnanalyticsengineering.substack.com/i/212438405?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1a046a82-ef70-4fee-ab66-ff017103c753_1848x386.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_!d64y!, /__u/learnanalyticsengineering.substack.com/w_424, /__u/learnanalyticsengineering.substack.com/c_limit, /__u/learnanalyticsengineering.substack.com/f_auto, /__u/learnanalyticsengineering.substack.com/q_auto:good, /__u/learnanalyticsengineering.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1a046a82-ef70-4fee-ab66-ff017103c753_1848x386.png 424w, /__u/substackcdn.com/image/fetch/$s_!d64y!, /__u/learnanalyticsengineering.substack.com/w_848, /__u/learnanalyticsengineering.substack.com/c_limit, /__u/learnanalyticsengineering.substack.com/f_auto, /__u/learnanalyticsengineering.substack.com/q_auto:good, /__u/learnanalyticsengineering.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1a046a82-ef70-4fee-ab66-ff017103c753_1848x386.png 848w, /__u/substackcdn.com/image/fetch/$s_!d64y!, /__u/learnanalyticsengineering.substack.com/w_1272, /__u/learnanalyticsengineering.substack.com/c_limit, /__u/learnanalyticsengineering.substack.com/f_auto, /__u/learnanalyticsengineering.substack.com/q_auto:good, /__u/learnanalyticsengineering.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1a046a82-ef70-4fee-ab66-ff017103c753_1848x386.png 1272w, /__u/substackcdn.com/image/fetch/$s_!d64y!, /__u/learnanalyticsengineering.substack.com/w_1456, /__u/learnanalyticsengineering.substack.com/c_limit, /__u/learnanalyticsengineering.substack.com/f_auto, /__u/learnanalyticsengineering.substack.com/q_auto:good, /__u/learnanalyticsengineering.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1a046a82-ef70-4fee-ab66-ff017103c753_1848x386.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><p>Again, reiterate and let Claude Code determine the failure and ask it for a plan on how to fix it. Make sure you retest! </p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!aOdO!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1ac6d401-dcf0-4d9c-b133-faf43bac6ada_1848x508.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!aOdO!, /__u/learnanalyticsengineering.substack.com/w_424, /__u/learnanalyticsengineering.substack.com/c_limit, /__u/learnanalyticsengineering.substack.com/f_webp, /__u/learnanalyticsengineering.substack.com/q_auto:good, /__u/learnanalyticsengineering.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1ac6d401-dcf0-4d9c-b133-faf43bac6ada_1848x508.png 424w, /__u/substackcdn.com/image/fetch/$s_!aOdO!, /__u/learnanalyticsengineering.substack.com/w_848, /__u/learnanalyticsengineering.substack.com/c_limit, /__u/learnanalyticsengineering.substack.com/f_webp, /__u/learnanalyticsengineering.substack.com/q_auto:good, /__u/learnanalyticsengineering.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1ac6d401-dcf0-4d9c-b133-faf43bac6ada_1848x508.png 848w, /__u/substackcdn.com/image/fetch/$s_!aOdO!, /__u/learnanalyticsengineering.substack.com/w_1272, /__u/learnanalyticsengineering.substack.com/c_limit, /__u/learnanalyticsengineering.substack.com/f_webp, /__u/learnanalyticsengineering.substack.com/q_auto:good, /__u/learnanalyticsengineering.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1ac6d401-dcf0-4d9c-b133-faf43bac6ada_1848x508.png 1272w, /__u/substackcdn.com/image/fetch/$s_!aOdO!, /__u/learnanalyticsengineering.substack.com/w_1456, /__u/learnanalyticsengineering.substack.com/c_limit, /__u/learnanalyticsengineering.substack.com/f_webp, /__u/learnanalyticsengineering.substack.com/q_auto:good, /__u/learnanalyticsengineering.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1ac6d401-dcf0-4d9c-b133-faf43bac6ada_1848x508.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!aOdO!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1ac6d401-dcf0-4d9c-b133-faf43bac6ada_1848x508.png" width="1456" height="400" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/1ac6d401-dcf0-4d9c-b133-faf43bac6ada_1848x508.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:400,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:521020,&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://learnanalyticsengineering.substack.com/i/212438405?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1ac6d401-dcf0-4d9c-b133-faf43bac6ada_1848x508.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_!aOdO!, /__u/learnanalyticsengineering.substack.com/w_424, /__u/learnanalyticsengineering.substack.com/c_limit, /__u/learnanalyticsengineering.substack.com/f_auto, /__u/learnanalyticsengineering.substack.com/q_auto:good, /__u/learnanalyticsengineering.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1ac6d401-dcf0-4d9c-b133-faf43bac6ada_1848x508.png 424w, /__u/substackcdn.com/image/fetch/$s_!aOdO!, /__u/learnanalyticsengineering.substack.com/w_848, /__u/learnanalyticsengineering.substack.com/c_limit, /__u/learnanalyticsengineering.substack.com/f_auto, /__u/learnanalyticsengineering.substack.com/q_auto:good, /__u/learnanalyticsengineering.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1ac6d401-dcf0-4d9c-b133-faf43bac6ada_1848x508.png 848w, /__u/substackcdn.com/image/fetch/$s_!aOdO!, /__u/learnanalyticsengineering.substack.com/w_1272, /__u/learnanalyticsengineering.substack.com/c_limit, /__u/learnanalyticsengineering.substack.com/f_auto, /__u/learnanalyticsengineering.substack.com/q_auto:good, /__u/learnanalyticsengineering.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1ac6d401-dcf0-4d9c-b133-faf43bac6ada_1848x508.png 1272w, /__u/substackcdn.com/image/fetch/$s_!aOdO!, /__u/learnanalyticsengineering.substack.com/w_1456, /__u/learnanalyticsengineering.substack.com/c_limit, /__u/learnanalyticsengineering.substack.com/f_auto, /__u/learnanalyticsengineering.substack.com/q_auto:good, /__u/learnanalyticsengineering.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1ac6d401-dcf0-4d9c-b133-faf43bac6ada_1848x508.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>This is how a successful session with Claude Code should end! The code has been written, tested, and summarized. Now I can feel confidant that my local data models will run at 6am EST, or whenever I open my laptop the next day. </p><h2><strong>&#127942; Challenge: Schedule your data models to run locally</strong></h2><p>Now use this same process to work with Claude Code on setting up a daily orchestration job for the data models you wrote in the <a href="/__u/learnanalyticsengineering.substack.com/p/master-dimensional-data-modeling">last newsletter of the challenge</a>. </p><p>Follow the same steps I illustrated above, keeping in mind specifics like your timezone, computer, and local setup. If you want, you can even try using one of the orchestration tools I mentioned, which will take you one step closer to the process of setting up a cloud-based pipeline. </p><p>Don&#8217;t forget to <a href="https://www.astronomer.io/events/orchestrate-everything/workshop/?utm_campaign=20260916-virtual-conference-orchestrate-everything&amp;utm_medium=paidmedia&amp;utm_source=madison-schott">sign up</a> for the <strong><span data-color="#8394dc" style="color: rgb(131, 148, 220);">FREE data engineering conference</span></strong> held by Astronomer, which will give you even more hands-on experience with data pipelines. </p><p>Have an awesome week!</p><p>Madison </p>]]></content:encoded></item><item><title><![CDATA[Goodbye, Data Engineers & Data Analysts]]></title><description><![CDATA[The future of data roles and how they will all combine into one]]></description><link>https://learnanalyticsengineering.substack.com/p/full-stack-analytics-engineers</link><guid isPermaLink="false">https://learnanalyticsengineering.substack.com/p/full-stack-analytics-engineers</guid><dc:creator><![CDATA[Madison Mae]]></dc:creator><pubDate>Thu, 27 Aug 2026 15:14:31 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/0399979e-1769-4a53-8fe5-1799d9f1a9d0_1456x1048.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Up until my current role, I&#8217;ve always worked on data teams of people with various skill sets. Usually there is a data engineer, a few data analysts, a manager, and an analytics engineer.</p><p>In my current role, the data team is a full-stack analytics engineering team. Each of us works across the entire pipeline of our project, from configuring tasks in Snowflake for ingesting source data to building dashboards in ThoughtSpot. </p><p>It works well because there is no &#8220;passing of the baton&#8221;, which tends to slow things down.</p><p>Before, analytics engineers would need to communicate with data engineers to ensure the right data was available. This typically took a few weeks due to prioritization and communication issues. Then, after the analytics engineer would work on their data model, they&#8217;d have to talk with the data analyst to explain how it works. That would be a back-and-forth process to understand how the data is modeled and how it could be used to build dashboards. Because things often get lost in translation, the data analyst would then need to have the same business conversations with stakeholders that the analytics engineer already had. </p><p>In the past, I had projects that dragged out for months due to lag in communication, poor prioritization, and misunderstandings when they should have only taken a few weeks. </p><p><strong>All of this could have been prevented if each of us worked on our own projects end to end. </strong></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://learnanalyticsengineering.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">Learn Analytics Engineering is a reader-supported publication. To receive new posts and support my work, consider becoming a free or paid subscriber.</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>AI now makes it easier than ever to bridge these skill gaps. Data analysts can build data pipelines with the help of AI, build scalable dbt projects, and write Python scripts to help automate processes. Previously, they may not have had these skills, or they may not have been as advanced as needed. Now, a basic understanding can take you quite far. </p><p>With AI making technical work less intimidating, the business knowledge of data analysts and analytics engineers become even more prized. You can&#8217;t have well-thought out, scalable solutions without understanding the in&#8217;s and out&#8217;s of the business and being able to understand your stakeholder&#8217;s problems. This is where data engineers need to lean in. </p><p>If data engineers and data analysts are both expected to know the technical skills and business communication skills because of AI, that then means they are essentially morphing into analytics engineers. </p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!MJ-j!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2bb6683c-474e-4f35-915f-d671fd877aab_576x264.gif" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!MJ-j!, /__u/learnanalyticsengineering.substack.com/w_424, /__u/learnanalyticsengineering.substack.com/c_limit, /__u/learnanalyticsengineering.substack.com/f_webp, /__u/learnanalyticsengineering.substack.com/q_auto:good, /__u/learnanalyticsengineering.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2bb6683c-474e-4f35-915f-d671fd877aab_576x264.gif 424w, /__u/substackcdn.com/image/fetch/$s_!MJ-j!, /__u/learnanalyticsengineering.substack.com/w_848, /__u/learnanalyticsengineering.substack.com/c_limit, /__u/learnanalyticsengineering.substack.com/f_webp, /__u/learnanalyticsengineering.substack.com/q_auto:good, /__u/learnanalyticsengineering.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2bb6683c-474e-4f35-915f-d671fd877aab_576x264.gif 848w, /__u/substackcdn.com/image/fetch/$s_!MJ-j!, /__u/learnanalyticsengineering.substack.com/w_1272, /__u/learnanalyticsengineering.substack.com/c_limit, /__u/learnanalyticsengineering.substack.com/f_webp, /__u/learnanalyticsengineering.substack.com/q_auto:good, /__u/learnanalyticsengineering.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2bb6683c-474e-4f35-915f-d671fd877aab_576x264.gif 1272w, /__u/substackcdn.com/image/fetch/$s_!MJ-j!, /__u/learnanalyticsengineering.substack.com/w_1456, /__u/learnanalyticsengineering.substack.com/c_limit, /__u/learnanalyticsengineering.substack.com/f_webp, /__u/learnanalyticsengineering.substack.com/q_auto:good, /__u/learnanalyticsengineering.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2bb6683c-474e-4f35-915f-d671fd877aab_576x264.gif 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!MJ-j!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2bb6683c-474e-4f35-915f-d671fd877aab_576x264.gif" width="728" height="333.6666666666667" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/2bb6683c-474e-4f35-915f-d671fd877aab_576x264.gif&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:264,&quot;width&quot;:576,&quot;resizeWidth&quot;:728,&quot;bytes&quot;:1378187,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/gif&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://learnanalyticsengineering.substack.com/i/212454622?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2bb6683c-474e-4f35-915f-d671fd877aab_576x264.gif&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!MJ-j!, /__u/learnanalyticsengineering.substack.com/w_424, /__u/learnanalyticsengineering.substack.com/c_limit, /__u/learnanalyticsengineering.substack.com/f_auto, /__u/learnanalyticsengineering.substack.com/q_auto:good, /__u/learnanalyticsengineering.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2bb6683c-474e-4f35-915f-d671fd877aab_576x264.gif 424w, /__u/substackcdn.com/image/fetch/$s_!MJ-j!, /__u/learnanalyticsengineering.substack.com/w_848, /__u/learnanalyticsengineering.substack.com/c_limit, /__u/learnanalyticsengineering.substack.com/f_auto, /__u/learnanalyticsengineering.substack.com/q_auto:good, /__u/learnanalyticsengineering.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2bb6683c-474e-4f35-915f-d671fd877aab_576x264.gif 848w, /__u/substackcdn.com/image/fetch/$s_!MJ-j!, /__u/learnanalyticsengineering.substack.com/w_1272, /__u/learnanalyticsengineering.substack.com/c_limit, /__u/learnanalyticsengineering.substack.com/f_auto, /__u/learnanalyticsengineering.substack.com/q_auto:good, /__u/learnanalyticsengineering.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2bb6683c-474e-4f35-915f-d671fd877aab_576x264.gif 1272w, /__u/substackcdn.com/image/fetch/$s_!MJ-j!, /__u/learnanalyticsengineering.substack.com/w_1456, /__u/learnanalyticsengineering.substack.com/c_limit, /__u/learnanalyticsengineering.substack.com/f_auto, /__u/learnanalyticsengineering.substack.com/q_auto:good, /__u/learnanalyticsengineering.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2bb6683c-474e-4f35-915f-d671fd877aab_576x264.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>To keep up with the times and transition into a full-stack analytics engineer, data engineers need to:</p><ul><li><p>simplify complex technical solutions and concepts so that stakeholders understand what they are proposing </p></li><li><p>understand common business metrics like AOV, CPC, LTV, GMV, etc. </p></li><li><p>prioritize projects based on business needs and revenue potential </p></li><li><p>communicate with stakeholders to get to the root of their problems </p></li></ul><p>For data analysts to grow into a more technical full-stack analytics engineering role (and not get left in the dust by AI), they need to:</p><ul><li><p>master the basics of version control, specifically Git </p></li><li><p>evaluate raw data for data quality issues and clean it for downstream usage</p></li><li><p>model, document, and test data in a dbt project </p></li></ul><ul><li><p>build data pipelines end-to-end including data ingestion, data modeling, and orchestration </p></li></ul><p>Luckily, <strong><span data-color="#8394dc" style="color: rgb(131, 148, 220);">I&#8217;m currently teaching you how to build a data pipeline using tools like </span><a href="/__u/learnanalyticsengineering.substack.com/p/how-to-structure-an-ai-ready-data"><span data-color="#8394dc" style="color: rgb(131, 148, 220);">ClickHouse</span></a><span data-color="#8394dc" style="color: rgb(131, 148, 220);">, </span><a href="/__u/learnanalyticsengineering.substack.com/p/master-dimensional-data-modeling"><span data-color="#8394dc" style="color: rgb(131, 148, 220);">dbt</span></a><span data-color="#8394dc" style="color: rgb(131, 148, 220);">, and Claude Code</span></strong>. We are 3 weeks in and it&#8217;s not too late to join the challenge! </p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://learnanalyticsengineering.substack.com/p/how-to-build-an-ai-powered-data-pipeline&quot;,&quot;text&quot;:&quot;Start the challenge here&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="/__u/learnanalyticsengineering.substack.com/p/how-to-build-an-ai-powered-data-pipeline"><span>Start the challenge here</span></a></p><p>Data roles aren&#8217;t going anywhere, but they are evolving.</p><p>I don&#8217;t want to fear monger, but I&#8217;m not sure the data analyst role will exist in a few years. It&#8217;s not that the skillset they have isn&#8217;t important, it absolutely is. In fact, I think the skillset of talking with the business and translating their needs is actually the hardest to learn! Sorry data engineers, have fun learning that &#128540;</p><p>It&#8217;s just that data analysts now need to expand their skillset to also focus on the technical skills, which I think is the easier thing to learn. Start now and you&#8217;ll have time to grow into these as they become more and more important as AI evolves. </p><p>I&#8217;m curious to hear your thoughts on this. </p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://learnanalyticsengineering.substack.com/p/full-stack-analytics-engineers/comments&quot;,&quot;text&quot;:&quot;Leave a comment&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="/__u/learnanalyticsengineering.substack.com/p/full-stack-analytics-engineers/comments"><span>Leave a comment</span></a></p><p>Have an awesome week!</p><p>Madison</p><div><hr></div><p><em>Looking to upskill your analytics engineering skills?</em></p><ul><li><p><em>Hire me to train your data team in analytics engineering principles (reply to this email)</em></p></li><li><p><em><a href="https://madisonmae.gumroad.com/l/learnanalyticsengineering">Buy my ebook</a><span> on the ABCs of analytics engineering</span></em></p></li><li><p><em><span>Invest in a </span><a href="/__u/learnanalyticsengineering.substack.com/subscribe">paid newsletter subscription</a><span> to participate in the Data Pipeline Summer challenge </span></em></p></li><li><p><em><span>Join the </span><a href="https://www.makeform.ai/f/i5TbTrRo">waitlist</a><span> for my data analyst to analytics engineer course</span></em></p></li></ul>]]></content:encoded></item><item><title><![CDATA[Master Dimensional Data Modeling with Claude Code ]]></title><description><![CDATA[#3: Data Pipeline Summer: The steps to building a data model and using AI to execute on it]]></description><link>https://learnanalyticsengineering.substack.com/p/master-dimensional-data-modeling</link><guid isPermaLink="false">https://learnanalyticsengineering.substack.com/p/master-dimensional-data-modeling</guid><dc:creator><![CDATA[Madison Mae]]></dc:creator><pubDate>Thu, 20 Aug 2026 14:44:51 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/ddce25be-c012-44d5-b124-6d4a086a4b60_1400x1000.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Dimensional data modeling is one of the foundational skills that every analytics engineer needs to know. However, I didn&#8217;t start my career knowing anything about this.</p><p>Like most people, I started by learning modern data stack tools, looking for the best tool to solve a certain problem. While that worked at the time, I quickly realized the importance of understanding the principles outside of any tool.</p><p>Now, with AI, data modeling has become even more important as it applies business context to data, allowing analytics engineers to validate expectations BEFORE AI can use it to answer business questions. </p><p><strong>Without data modeling, there is nuance that an AI model can&#8217;t figure out on its own, leading to data quality issues and incorrect assumptions. </strong></p><p>Unfortunately, free datasets on the internet don&#8217;t mimic actual business problems, making data modeling hard to master. Luckily, our Data Pipeline Summer Aloha Fresh project does. The problem we&#8217;ll solve in this part&#8217;s challenge looks similar to problems I&#8217;ve faced in my full-time analytics engineering roles.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://learnanalyticsengineering.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">Learn Analytics Engineering is a reader-supported publication. To receive new posts and support my work, consider becoming a free or paid subscriber.</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>In the last part of Data Pipeline Summer, we learned how to create an AI-ready data warehouse, focusing on protecting raw data and PII while also optimizing for performance.</p><p>We loaded data for Aloha Fresh into ClickHouse and explored the raw data tables so we could model them this week. </p><p><span>If you missed that, be sure to check it out </span><a href="/__u/learnanalyticsengineering.substack.com/p/how-to-structure-an-ai-ready-data">here</a><span> so you can get your project up to speed.</span></p><h2><strong>What is Dimensional Data Modeling?</strong></h2><p><span>Dimension modeling delivers on two things- </span><strong>fast query performance</strong><span> and </span><strong>data that&#8217;s understandable by the business</strong><span>. Simplicity, speed, and usability.</span></p><p>With data, it&#8217;s common for projects to grow and grow in complexity until you realize you have a huge bowl of spaghetti that you&#8217;re somehow supposed to use to make quick insights. Dimensional data modeling exists to reduce this possible complexity.</p><p><span>To do this, the technique focuses on building tables as facts or dimensions. A row in a fact table represents a measurable event at a certain </span><em>grain</em><span>. A row in a dimension describes something. Together, these tables form a star schema.</span></p><p>Separating your data into facts puts business processes at the forefront of your data modeling strategy. With the business processes separated into their own tables, it reduces the complexity while also allowing for querying and &#8220;drilling down&#8221; across dimensions. You can think of drilling down as the aggregation of events across a dimension.</p><h2><strong>The Dimensional Data Modeling Process</strong></h2>
      <p>
          <a href="/__u/learnanalyticsengineering.substack.com/p/master-dimensional-data-modeling">
              Read more
          </a>
      </p>
   ]]></content:encoded></item><item><title><![CDATA[How to Structure an AI-Ready Data Warehouse]]></title><description><![CDATA[#2: Data Pipeline Summer: Best practices for access, PII data, and connecting MCPs]]></description><link>https://learnanalyticsengineering.substack.com/p/how-to-structure-an-ai-ready-data</link><guid isPermaLink="false">https://learnanalyticsengineering.substack.com/p/how-to-structure-an-ai-ready-data</guid><dc:creator><![CDATA[Madison Mae]]></dc:creator><pubDate>Thu, 13 Aug 2026 15:07:09 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/27b27bdf-a781-4738-ae86-6de6fb109c61_1400x1000.jpeg" 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_!IPAe!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcf4c6624-d93b-404c-bc1c-4d73fd8e4fb1_1400x1000.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!IPAe!, /__u/learnanalyticsengineering.substack.com/w_424, /__u/learnanalyticsengineering.substack.com/c_limit, /__u/learnanalyticsengineering.substack.com/f_webp, /__u/learnanalyticsengineering.substack.com/q_auto:good, /__u/learnanalyticsengineering.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcf4c6624-d93b-404c-bc1c-4d73fd8e4fb1_1400x1000.jpeg 424w, /__u/substackcdn.com/image/fetch/$s_!IPAe!, /__u/learnanalyticsengineering.substack.com/w_848, /__u/learnanalyticsengineering.substack.com/c_limit, /__u/learnanalyticsengineering.substack.com/f_webp, /__u/learnanalyticsengineering.substack.com/q_auto:good, /__u/learnanalyticsengineering.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcf4c6624-d93b-404c-bc1c-4d73fd8e4fb1_1400x1000.jpeg 848w, /__u/substackcdn.com/image/fetch/$s_!IPAe!, /__u/learnanalyticsengineering.substack.com/w_1272, /__u/learnanalyticsengineering.substack.com/c_limit, /__u/learnanalyticsengineering.substack.com/f_webp, /__u/learnanalyticsengineering.substack.com/q_auto:good, /__u/learnanalyticsengineering.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcf4c6624-d93b-404c-bc1c-4d73fd8e4fb1_1400x1000.jpeg 1272w, /__u/substackcdn.com/image/fetch/$s_!IPAe!, /__u/learnanalyticsengineering.substack.com/w_1456, /__u/learnanalyticsengineering.substack.com/c_limit, /__u/learnanalyticsengineering.substack.com/f_webp, /__u/learnanalyticsengineering.substack.com/q_auto:good, /__u/learnanalyticsengineering.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcf4c6624-d93b-404c-bc1c-4d73fd8e4fb1_1400x1000.jpeg 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!IPAe!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcf4c6624-d93b-404c-bc1c-4d73fd8e4fb1_1400x1000.jpeg" width="1400" height="1000" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/cf4c6624-d93b-404c-bc1c-4d73fd8e4fb1_1400x1000.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1000,&quot;width&quot;:1400,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:179259,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://learnanalyticsengineering.substack.com/i/210743360?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcf4c6624-d93b-404c-bc1c-4d73fd8e4fb1_1400x1000.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!IPAe!, /__u/learnanalyticsengineering.substack.com/w_424, /__u/learnanalyticsengineering.substack.com/c_limit, /__u/learnanalyticsengineering.substack.com/f_auto, /__u/learnanalyticsengineering.substack.com/q_auto:good, /__u/learnanalyticsengineering.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcf4c6624-d93b-404c-bc1c-4d73fd8e4fb1_1400x1000.jpeg 424w, /__u/substackcdn.com/image/fetch/$s_!IPAe!, /__u/learnanalyticsengineering.substack.com/w_848, /__u/learnanalyticsengineering.substack.com/c_limit, /__u/learnanalyticsengineering.substack.com/f_auto, /__u/learnanalyticsengineering.substack.com/q_auto:good, /__u/learnanalyticsengineering.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcf4c6624-d93b-404c-bc1c-4d73fd8e4fb1_1400x1000.jpeg 848w, /__u/substackcdn.com/image/fetch/$s_!IPAe!, /__u/learnanalyticsengineering.substack.com/w_1272, /__u/learnanalyticsengineering.substack.com/c_limit, /__u/learnanalyticsengineering.substack.com/f_auto, /__u/learnanalyticsengineering.substack.com/q_auto:good, /__u/learnanalyticsengineering.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcf4c6624-d93b-404c-bc1c-4d73fd8e4fb1_1400x1000.jpeg 1272w, /__u/substackcdn.com/image/fetch/$s_!IPAe!, /__u/learnanalyticsengineering.substack.com/w_1456, /__u/learnanalyticsengineering.substack.com/c_limit, /__u/learnanalyticsengineering.substack.com/f_auto, /__u/learnanalyticsengineering.substack.com/q_auto:good, /__u/learnanalyticsengineering.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcf4c6624-d93b-404c-bc1c-4d73fd8e4fb1_1400x1000.jpeg 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>Data warehouses are the source of truth of any modern data stack. It is where the data is stored and queried, making it one of the most important components.</p><p><strong>Every tool in your data pipeline will touch your data warehouse.</strong></p><p><strong>With AI, everyone is using MCPs and various tooling to connect directly to your data warehouse, making security and guardrails more important than ever.</strong></p><p>My data team has been working for months to make sure our PII is safe before folks on our team can begin to connect these tools to Snowflake. </p><p>In today&#8217;s rendition of Data Pipeline Summer, we will first learn what makes a data warehouse safe and ready for AI. We will cover:</p><ul><li><p>how to protect PII data and raw data </p></li><li><p>how to manage users and roles </p></li><li><p>how to connect AI tooling to your warehouse </p></li></ul><p>We will end with this week&#8217;s challenge- loading the raw data for our challenge into ClickHouse. </p><p>If you missed last week&#8217;s <a href="/__u/learnanalyticsengineering.substack.com/p/how-to-build-an-ai-powered-data-pipeline">introduction to data pipelines</a>, be sure to give that a read before diving deeper into data warehouses.</p><p>Let&#8217;s get started!</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://learnanalyticsengineering.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">Data Pipeline Summer is a hands-on coding challenge available to paid subscribers. Subscribe for free, or upgrade to a paid subscription to access the challenge.</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>Why do we care about AI touching our data?</h2><p>Customers trust us to keep their data safe. AI is a tool that threatens that safety, especially when the data is email addresses, social security numbers, and credit card numbers. Some data is more dangerous when leaked than other, but that doesn&#8217;t mean all of it doesn&#8217;t matter. </p><p>Whenever AI touches your data, a black box is created. Sure, in some cases it tells you exactly what it&#8217;s doing with it, but others you don&#8217;t know what&#8217;s happening under the hood. </p><p>Because of this, it&#8217;s our responsibility as analytics engineers to protect this data and ensure AI only has access to the data we feel comfortable it having. </p><h2>What type of warehouse is best for AI?</h2><p>Analytics cloud data warehouses work just fine with AI. They allow AI to easily query structured data. In combination with a context layer (which we will talk about at the end of the series), you can query structured data as well as take advantage of unstructured data like your Notion documents and Slack messages. </p><p>Some teams may want to take advantage of storing large amounts of unstructured data outside platforms like Notion and Slack. For this type of work, it&#8217;s best to use something like a data lakehouse which stores structured and unstructured data. However, if you aren&#8217;t already using a lakehouse, you most likely don&#8217;t need one to take advantage of AI. </p><h2>Protecting PII and raw data</h2>
      <p>
          <a href="/__u/learnanalyticsengineering.substack.com/p/how-to-structure-an-ai-ready-data">
              Read more
          </a>
      </p>
   ]]></content:encoded></item><item><title><![CDATA[How to Build an AI-Powered Data Pipeline ]]></title><description><![CDATA[#1: Data Pipeline Summer: A step-by-step transformation pipeline built with the help of AI]]></description><link>https://learnanalyticsengineering.substack.com/p/how-to-build-an-ai-powered-data-pipeline</link><guid isPermaLink="false">https://learnanalyticsengineering.substack.com/p/how-to-build-an-ai-powered-data-pipeline</guid><dc:creator><![CDATA[Madison Mae]]></dc:creator><pubDate>Thu, 06 Aug 2026 14:38:29 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/114a4dc9-e4d1-4829-a6c6-0b9fbc1d7e6d_1400x1000.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Welcome to the first email of this 5-week series, Data Pipeline Summer! In the next 5 weeks, we will learn how to build a data pipeline from start to finish, using some of the most popular open-source data tools.</p><p>By the end of the challenge, you will have hands-on experience building dimensional data models in dbt, working with Claude Code as a coding as&#8230;</p>
      <p>
          <a href="/__u/learnanalyticsengineering.substack.com/p/how-to-build-an-ai-powered-data-pipeline">
              Read more
          </a>
      </p>
   ]]></content:encoded></item><item><title><![CDATA[How to Validate Data Models w/ Claude Code]]></title><description><![CDATA[6 prompts I used to catch my mistakes and write a data model that aligns with the business every time]]></description><link>https://learnanalyticsengineering.substack.com/p/how-to-validate-data-models-w-claude</link><guid isPermaLink="false">https://learnanalyticsengineering.substack.com/p/how-to-validate-data-models-w-claude</guid><dc:creator><![CDATA[Madison Mae]]></dc:creator><pubDate>Thu, 30 Jul 2026 15:09:05 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/ac4a86d0-ea0b-4f77-9596-2c723b5f9183_1456x1048.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>There&#8217;s nothing more exciting in an analytics engineer&#8217;s work than planning and building a data model from scratch. It&#8217;s one of the best parts of our jobs because we get to see something go from a hypothesis to an easily measured insight. </p><p>Stakeholders start by asking us a question, and we put all the puzzle pieces together to give them the right answer. How rewarding is that!? </p><p>However, with the highs also come the lows. And by lows, I mean the validation phase. </p><p>After you&#8217;ve spent all this time building a data model with the correct grain, baking in the right dimensions, and solving data quality issues in the source data, you need to validate that what you did works as expected. </p><p>I always find data validation to be the hardest step because<em> we don&#8217;t know what we don&#8217;t know</em>. How do you know what to test? If I knew what to look out for from the start, I would&#8217;ve built my code around exactly that!</p><p>Luckily, AI can see things we may have missed. It can call out our blind spots and reassert our expectations. </p><p>This is why using Claude Code for validating your data models can be so powerful. You have an automated, robotic way of checking your assumptions and ensuring your code works as expected. </p><p>In this article, I&#8217;ll walk you through exactly how I work with Claude Code to validate my data models, making the process seamless and, dare I even say, enjoyable. </p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://learnanalyticsengineering.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">Learn Analytics Engineering is a reader-supported publication. To receive new posts and support my work, consider becoming a free or paid subscriber.</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 problem</h2><p>With building a data model from scratch comes lots of exploration of the source data. It also involves asking stakeholders a lot of questions about the business process you are modeling.</p><p>Even with this extensive research, there are things that slip through the cracks. Inevitably, there will be something you failed to explore or consider. <strong>This is why validating the source data and our data modeling logic as we work on it is so important. </strong></p><p>You don&#8217;t want to lose hours progressing on a project that isn&#8217;t going in the right direction. </p><p>However, we can only test the pitfalls that we are aware of. For example, I&#8217;m currently building out a model that attributes purchases to certain locations on the application. Stakeholders want to know what locations are responsible for the highest conversion rates. </p><p>I know I want to attribute the most recent click on a given product before the purchase was made to the location that click occurred on. However, there&#8217;s a lot of different expectations of how this logic needs to work, and who wants to be the one to write all of the queries testing this? </p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!y0L1!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F491a3bc3-30ba-4ea8-bbb3-a82f2a78290f_918x612.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!y0L1!, /__u/learnanalyticsengineering.substack.com/w_424, /__u/learnanalyticsengineering.substack.com/c_limit, /__u/learnanalyticsengineering.substack.com/f_webp, /__u/learnanalyticsengineering.substack.com/q_auto:good, /__u/learnanalyticsengineering.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F491a3bc3-30ba-4ea8-bbb3-a82f2a78290f_918x612.png 424w, /__u/substackcdn.com/image/fetch/$s_!y0L1!, /__u/learnanalyticsengineering.substack.com/w_848, /__u/learnanalyticsengineering.substack.com/c_limit, /__u/learnanalyticsengineering.substack.com/f_webp, /__u/learnanalyticsengineering.substack.com/q_auto:good, /__u/learnanalyticsengineering.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F491a3bc3-30ba-4ea8-bbb3-a82f2a78290f_918x612.png 848w, /__u/substackcdn.com/image/fetch/$s_!y0L1!, /__u/learnanalyticsengineering.substack.com/w_1272, /__u/learnanalyticsengineering.substack.com/c_limit, /__u/learnanalyticsengineering.substack.com/f_webp, /__u/learnanalyticsengineering.substack.com/q_auto:good, /__u/learnanalyticsengineering.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F491a3bc3-30ba-4ea8-bbb3-a82f2a78290f_918x612.png 1272w, /__u/substackcdn.com/image/fetch/$s_!y0L1!, /__u/learnanalyticsengineering.substack.com/w_1456, /__u/learnanalyticsengineering.substack.com/c_limit, /__u/learnanalyticsengineering.substack.com/f_webp, /__u/learnanalyticsengineering.substack.com/q_auto:good, /__u/learnanalyticsengineering.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F491a3bc3-30ba-4ea8-bbb3-a82f2a78290f_918x612.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!y0L1!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F491a3bc3-30ba-4ea8-bbb3-a82f2a78290f_918x612.png" width="558" height="372" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/491a3bc3-30ba-4ea8-bbb3-a82f2a78290f_918x612.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:612,&quot;width&quot;:918,&quot;resizeWidth&quot;:558,&quot;bytes&quot;:778824,&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://learnanalyticsengineering.substack.com/i/208978134?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F491a3bc3-30ba-4ea8-bbb3-a82f2a78290f_918x612.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_!y0L1!, /__u/learnanalyticsengineering.substack.com/w_424, /__u/learnanalyticsengineering.substack.com/c_limit, /__u/learnanalyticsengineering.substack.com/f_auto, /__u/learnanalyticsengineering.substack.com/q_auto:good, /__u/learnanalyticsengineering.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F491a3bc3-30ba-4ea8-bbb3-a82f2a78290f_918x612.png 424w, /__u/substackcdn.com/image/fetch/$s_!y0L1!, /__u/learnanalyticsengineering.substack.com/w_848, /__u/learnanalyticsengineering.substack.com/c_limit, /__u/learnanalyticsengineering.substack.com/f_auto, /__u/learnanalyticsengineering.substack.com/q_auto:good, /__u/learnanalyticsengineering.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F491a3bc3-30ba-4ea8-bbb3-a82f2a78290f_918x612.png 848w, /__u/substackcdn.com/image/fetch/$s_!y0L1!, /__u/learnanalyticsengineering.substack.com/w_1272, /__u/learnanalyticsengineering.substack.com/c_limit, /__u/learnanalyticsengineering.substack.com/f_auto, /__u/learnanalyticsengineering.substack.com/q_auto:good, /__u/learnanalyticsengineering.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F491a3bc3-30ba-4ea8-bbb3-a82f2a78290f_918x612.png 1272w, /__u/substackcdn.com/image/fetch/$s_!y0L1!, /__u/learnanalyticsengineering.substack.com/w_1456, /__u/learnanalyticsengineering.substack.com/c_limit, /__u/learnanalyticsengineering.substack.com/f_auto, /__u/learnanalyticsengineering.substack.com/q_auto:good, /__u/learnanalyticsengineering.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F491a3bc3-30ba-4ea8-bbb3-a82f2a78290f_918x612.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>Claude Code prompts</h2>
      <p>
          <a href="/__u/learnanalyticsengineering.substack.com/p/how-to-validate-data-models-w-claude">
              Read more
          </a>
      </p>
   ]]></content:encoded></item><item><title><![CDATA[Are the ~vibes~ good?]]></title><description><![CDATA[2 tips for how I evaluate the ~vibes~ of a company while interviewing for an open role, so I'm never in a shitty situation]]></description><link>https://learnanalyticsengineering.substack.com/p/the-vibe-test-i-give-as-an-interviewee</link><guid isPermaLink="false">https://learnanalyticsengineering.substack.com/p/the-vibe-test-i-give-as-an-interviewee</guid><dc:creator><![CDATA[Madison Mae]]></dc:creator><pubDate>Thu, 16 Jul 2026 14:07:06 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/d7fae37e-3a86-4286-a913-6048da355d59_1456x1048.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>This time last year, I was unemployed, considering going all-in on my business or looking for a full-time analytics engineering job. I had been laid off a month before and wasn&#8217;t sure what I wanted next. </p><p>Working for myself full-time felt like a lot of pressure. I always enjoyed the side income from my data hustles and didn&#8217;t want to necessarily depend o&#8230;</p>
      <p>
          <a href="/__u/learnanalyticsengineering.substack.com/p/the-vibe-test-i-give-as-an-interviewee">
              Read more
          </a>
      </p>
   ]]></content:encoded></item><item><title><![CDATA[Stop Full Table Scans ]]></title><description><![CDATA[Pruning, Indexing, and Clustering- A deep dive into the skills necessary to build strong foundational knowledge that AI can't replace]]></description><link>https://learnanalyticsengineering.substack.com/p/how-to-optimize-analytical-queries</link><guid isPermaLink="false">https://learnanalyticsengineering.substack.com/p/how-to-optimize-analytical-queries</guid><dc:creator><![CDATA[Madison Mae]]></dc:creator><pubDate>Thu, 02 Jul 2026 15:39:17 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/3deae3fb-57cf-4ef2-be39-2eee90c3fb7f_1456x1048.gif" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>More people now than ever will be querying your data due to the availability of data via AI agents. It will no longer be just the data team accessing data in the warehouse, but marketing executives, sales teams, and product owners. </p><p>Because of this, query speed will matter more than ever. You are no longer optimizing your code for your own work, but for the work of those who may not even understand data that well. </p><p>This leaves more room for error, performance issues, and long-running queries. </p><p>As analytics engineers, we need to understand query optimization so we can write code and design systems that are stable and performant.</p><p>Once again, foundational knowledge is the thing that carries us through this era of AI to ensure we can enable AI in other areas of the business. </p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://learnanalyticsengineering.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">Learn Analytics Engineering is a reader-supported publication. To receive new posts and support my work, consider becoming a free or paid subscriber.</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>Everyone has that one table that is so large and painful to query, that you try to avoid using it at all costs. It can sometimes be hours just to get one simple SELECT query to run. </p><p>This is because the system is reading every single row in your table to locate the piece of data that you requested. If there is no data pruning, it has no idea where to start.</p><p>It&#8217;s like paying someone to search every corner, of every room in your house to find your car keys, with no hints as to where they were last seen. This is time-consuming and expensive. </p><p><strong>You can think of data warehouse optimization techniques like indexing, partitioning, and pruning as pointers to tell the person where to start searching. </strong>If you know you lost your keys in the kitchen, that will be quicker (and therefore cheaper) to search than the entire home. </p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!kcyc!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb4297c1c-276a-41ce-8b8a-8a9f72294482_360x201.gif" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!kcyc!, /__u/learnanalyticsengineering.substack.com/w_424, /__u/learnanalyticsengineering.substack.com/c_limit, /__u/learnanalyticsengineering.substack.com/f_webp, /__u/learnanalyticsengineering.substack.com/q_auto:good, /__u/learnanalyticsengineering.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb4297c1c-276a-41ce-8b8a-8a9f72294482_360x201.gif 424w, /__u/substackcdn.com/image/fetch/$s_!kcyc!, /__u/learnanalyticsengineering.substack.com/w_848, /__u/learnanalyticsengineering.substack.com/c_limit, /__u/learnanalyticsengineering.substack.com/f_webp, /__u/learnanalyticsengineering.substack.com/q_auto:good, /__u/learnanalyticsengineering.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb4297c1c-276a-41ce-8b8a-8a9f72294482_360x201.gif 848w, /__u/substackcdn.com/image/fetch/$s_!kcyc!, /__u/learnanalyticsengineering.substack.com/w_1272, /__u/learnanalyticsengineering.substack.com/c_limit, /__u/learnanalyticsengineering.substack.com/f_webp, /__u/learnanalyticsengineering.substack.com/q_auto:good, /__u/learnanalyticsengineering.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb4297c1c-276a-41ce-8b8a-8a9f72294482_360x201.gif 1272w, /__u/substackcdn.com/image/fetch/$s_!kcyc!, /__u/learnanalyticsengineering.substack.com/w_1456, /__u/learnanalyticsengineering.substack.com/c_limit, /__u/learnanalyticsengineering.substack.com/f_webp, /__u/learnanalyticsengineering.substack.com/q_auto:good, /__u/learnanalyticsengineering.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb4297c1c-276a-41ce-8b8a-8a9f72294482_360x201.gif 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!kcyc!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb4297c1c-276a-41ce-8b8a-8a9f72294482_360x201.gif" width="494" height="275.81666666666666" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/b4297c1c-276a-41ce-8b8a-8a9f72294482_360x201.gif&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:201,&quot;width&quot;:360,&quot;resizeWidth&quot;:494,&quot;bytes&quot;:2036352,&quot;alt&quot;:&quot;shrek running like a clustered table query&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/gif&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://learnanalyticsengineering.substack.com/i/201791678?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb4297c1c-276a-41ce-8b8a-8a9f72294482_360x201.gif&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="shrek running like a clustered table query" title="shrek running like a clustered table query" srcset="/__u/substackcdn.com/image/fetch/$s_!kcyc!, /__u/learnanalyticsengineering.substack.com/w_424, /__u/learnanalyticsengineering.substack.com/c_limit, /__u/learnanalyticsengineering.substack.com/f_auto, /__u/learnanalyticsengineering.substack.com/q_auto:good, /__u/learnanalyticsengineering.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb4297c1c-276a-41ce-8b8a-8a9f72294482_360x201.gif 424w, /__u/substackcdn.com/image/fetch/$s_!kcyc!, /__u/learnanalyticsengineering.substack.com/w_848, /__u/learnanalyticsengineering.substack.com/c_limit, /__u/learnanalyticsengineering.substack.com/f_auto, /__u/learnanalyticsengineering.substack.com/q_auto:good, /__u/learnanalyticsengineering.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb4297c1c-276a-41ce-8b8a-8a9f72294482_360x201.gif 848w, /__u/substackcdn.com/image/fetch/$s_!kcyc!, /__u/learnanalyticsengineering.substack.com/w_1272, /__u/learnanalyticsengineering.substack.com/c_limit, /__u/learnanalyticsengineering.substack.com/f_auto, /__u/learnanalyticsengineering.substack.com/q_auto:good, /__u/learnanalyticsengineering.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb4297c1c-276a-41ce-8b8a-8a9f72294482_360x201.gif 1272w, /__u/substackcdn.com/image/fetch/$s_!kcyc!, /__u/learnanalyticsengineering.substack.com/w_1456, /__u/learnanalyticsengineering.substack.com/c_limit, /__u/learnanalyticsengineering.substack.com/f_auto, /__u/learnanalyticsengineering.substack.com/q_auto:good, /__u/learnanalyticsengineering.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb4297c1c-276a-41ce-8b8a-8a9f72294482_360x201.gif 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><h2>What causes full scans?</h2><p>When a full scan occurs, the system is reading <em>every single row</em> in your table. This is both timely and expensive because of the massive amounts of compute that this takes, especially on large tables. Not to mention, most data warehouses charge you based on the amount of data scanned (or compute). </p><p>This means, if you want to save money, your goal should always be to scan as little data as possible. </p><p>Full scans are caused by:</p><ul><li><p>no index on fields used in WHERE or JOIN clauses</p></li><li><p>filtering on date parts or columns with functions applied </p></li><li><p>comparing values of different data types </p></li><li><p>overusing SELECT * </p></li><li><p>inefficient joins </p></li><li><p>lack of proper data modeling </p></li></ul><p><strong>I see a lot of these mistakes in AI-generated SQL, which is why avoiding these patterns is a foundational skill every analytics engineer needs to know. </strong></p><h2>Techniques to avoid full scans</h2><p>To optimize your SQL queries, save money, and increase performance, you can use the following techniques: </p>
      <p>
          <a href="/__u/learnanalyticsengineering.substack.com/p/how-to-optimize-analytical-queries">
              Read more
          </a>
      </p>
   ]]></content:encoded></item><item><title><![CDATA[How AI Changes 4 Core Data Roles]]></title><description><![CDATA[What are the core skills required for data analysts, data engineers, analytics engineers, and data scientists in the age of AI?]]></description><link>https://learnanalyticsengineering.substack.com/p/how-ai-changes-4-core-data-roles</link><guid isPermaLink="false">https://learnanalyticsengineering.substack.com/p/how-ai-changes-4-core-data-roles</guid><dc:creator><![CDATA[Madison Mae]]></dc:creator><pubDate>Thu, 25 Jun 2026 16:25:15 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/68026e74-387c-4c04-a043-a2dde746fc9e_1456x1048.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>When I first realized I wanted a career in data, I wanted to be a data scientist. I was interning at a fashion company at the time, and someone in the office had introduced me to the idea. I loved math and solving problems- it seemed like the perfect fit!</p><p>In my pursuit of data science, Capital One recruited me to join a 6-month coding bootcamp, which led&#8230;</p>
      <p>
          <a href="/__u/learnanalyticsengineering.substack.com/p/how-ai-changes-4-core-data-roles">
              Read more
          </a>
      </p>
   ]]></content:encoded></item><item><title><![CDATA[4 Analytic Engineering Fundamentals That Haven't Changed]]></title><description><![CDATA[Because these are still things that AI can't replace and become more important now than ever]]></description><link>https://learnanalyticsengineering.substack.com/p/4-analytic-engineering-fundamentals</link><guid isPermaLink="false">https://learnanalyticsengineering.substack.com/p/4-analytic-engineering-fundamentals</guid><dc:creator><![CDATA[Madison Mae]]></dc:creator><pubDate>Thu, 18 Jun 2026 17:19:56 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/81a5ea2f-ec88-4290-b095-b570b394d064_1456x1048.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Analytics engineering is changing rapidly.</p><p>We can now do so much more in such little time. Data models can be built in minutes, pipelines can be debugged in seconds, and the overall pace of work is accelerating. </p><p>With all the doom and gloom out there, it can seem like AI is coming for our jobs. While AI is really good at the technical skills that once too&#8230;</p>
      <p>
          <a href="/__u/learnanalyticsengineering.substack.com/p/4-analytic-engineering-fundamentals">
              Read more
          </a>
      </p>
   ]]></content:encoded></item><item><title><![CDATA[I was wrong about semantic layers. ]]></title><description><![CDATA[Why semantic layers are more important now than they ever were, and testing out a cool new open-source tool to help you build one effectively]]></description><link>https://learnanalyticsengineering.substack.com/p/i-was-wrong-about-semantic-layers</link><guid isPermaLink="false">https://learnanalyticsengineering.substack.com/p/i-was-wrong-about-semantic-layers</guid><dc:creator><![CDATA[Madison Mae]]></dc:creator><pubDate>Thu, 11 Jun 2026 17:38:28 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/dfcc10e9-7aae-4a9d-b992-0bee4860ab1c_1456x1048.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Honestly, I never thought I&#8217;d be writing a post in support of semantic layers. I always thought they were a huge effort to build out for very little reward. Not to mention, most data teams were never in a position to even think about a semantic layer.</p><p>But now there is a new way of working (hello AI), and semantic layers are necessary. They were previousl&#8230;</p>
      <p>
          <a href="/__u/learnanalyticsengineering.substack.com/p/i-was-wrong-about-semantic-layers">
              Read more
          </a>
      </p>
   ]]></content:encoded></item><item><title><![CDATA[4 Snowflake Summit Hot Topics]]></title><description><![CDATA[What to care about and what to leave behind as analytics engineers in 2026]]></description><link>https://learnanalyticsengineering.substack.com/p/4-snowflake-summit-hot-topics</link><guid isPermaLink="false">https://learnanalyticsengineering.substack.com/p/4-snowflake-summit-hot-topics</guid><dc:creator><![CDATA[Madison Mae]]></dc:creator><pubDate>Thu, 04 Jun 2026 17:16:51 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/207233c3-34f2-44ea-97f9-57767d8f5068_1456x1048.gif" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Snowflake this, Snowflake that. It seems like Snowflake conversation always dominates the first week of June. </p><p>While I sadly didn&#8217;t attend Snowflake Summit this year, I still kept tabs on all the important updates coming out of the summit. </p><p>Quite frankly, there usually isn&#8217;t much that excites me. The best part about the summit is meeting the community IRL&#8230;</p>
      <p>
          <a href="/__u/learnanalyticsengineering.substack.com/p/4-snowflake-summit-hot-topics">
              Read more
          </a>
      </p>
   ]]></content:encoded></item><item><title><![CDATA[Death of Data Analysts]]></title><description><![CDATA[Why AI is slowly killing this role as we know it and transitioning it to analytics engineering]]></description><link>https://learnanalyticsengineering.substack.com/p/death-of-data-analysts</link><guid isPermaLink="false">https://learnanalyticsengineering.substack.com/p/death-of-data-analysts</guid><dc:creator><![CDATA[Madison Mae]]></dc:creator><pubDate>Thu, 28 May 2026 17:50:34 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/14fd50df-5d8e-4d2d-967e-23ad9fb0d779_1456x1048.gif" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Data analysts will be nonexistent in a few years. Not because their skills aren&#8217;t needed, but because there are about to be major process shifts. </p><p>Stakeholders will soon turn towards AI tools for answers instead of data analysts. Because, let&#8217;s face it, it&#8217;s quicker. There&#8217;s less of a bottleneck.</p><p>They will still need a data person to help them validate me&#8230;</p>
      <p>
          <a href="/__u/learnanalyticsengineering.substack.com/p/death-of-data-analysts">
              Read more
          </a>
      </p>
   ]]></content:encoded></item><item><title><![CDATA[Analytics Engineers Are Taking Over]]></title><description><![CDATA[How I accidentally built a career in analytics engineering and why its popularity only continues to grow]]></description><link>https://learnanalyticsengineering.substack.com/p/analytics-engineers-are-taking-over</link><guid isPermaLink="false">https://learnanalyticsengineering.substack.com/p/analytics-engineers-are-taking-over</guid><dc:creator><![CDATA[Madison Mae]]></dc:creator><pubDate>Thu, 21 May 2026 16:36:49 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/7fb11da7-fe69-451b-98cb-4b076519f265_1456x1048.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>I was first introduced to analytics engineering by a little data transformation tool called dbt. At the time dbt was a purely open-source tool and quite new to the market. </p><p>A data engineer at the time, I used it as an engine to apply SQL to large CSV files. This isn&#8217;t how dbt is meant to be used, but it worked for our use case.  </p><p>Little did I know that th&#8230;</p>
      <p>
          <a href="/__u/learnanalyticsengineering.substack.com/p/analytics-engineers-are-taking-over">
              Read more
          </a>
      </p>
   ]]></content:encoded></item><item><title><![CDATA[3 Ways AI Breaks Your Data Governance]]></title><description><![CDATA[How does AI's lack of audibility and policy enforcement affect schema changes, and what can we do about it as analytics engineers?]]></description><link>https://learnanalyticsengineering.substack.com/p/3-problems-with-ai-and-data-governance</link><guid isPermaLink="false">https://learnanalyticsengineering.substack.com/p/3-problems-with-ai-and-data-governance</guid><dc:creator><![CDATA[Madison Mae]]></dc:creator><pubDate>Thu, 14 May 2026 18:10:03 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/7cf8d776-0f37-41b9-a662-841b211aae3b_1456x1048.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>It&#8217;s no secret that I have a love-hate relationship with AI. One second it&#8217;s dynamically updating all of my column descriptions and the next it&#8217;s brute-forcing access to PII.</p><p>For better or worse, AI rapidly changes how we all work as analytics engineers.</p><p>The better:</p><ul><li><p>Small changes are quicker than ever.</p></li><li><p>Boring tasks no longer make up 70% of our work.</p></li><li><p>Complex &#8230;</p></li></ul>
      <p>
          <a href="/__u/learnanalyticsengineering.substack.com/p/3-problems-with-ai-and-data-governance">
              Read more
          </a>
      </p>
   ]]></content:encoded></item><item><title><![CDATA[Avoid these 4 Data Warehousing Mistakes]]></title><description><![CDATA[I once got a bill for $1,571 dollars from Snowflake. Here's how to avoid spending too much on your data warehouse.]]></description><link>https://learnanalyticsengineering.substack.com/p/4-data-warehousing-mistakes-youre</link><guid isPermaLink="false">https://learnanalyticsengineering.substack.com/p/4-data-warehousing-mistakes-youre</guid><dc:creator><![CDATA[Madison Mae]]></dc:creator><pubDate>Thu, 07 May 2026 17:27:49 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/a0730a28-ae78-4ce5-8a1e-d48ac703ffbd_1456x1048.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>When I first started using Snowflake, I had no idea how warehouses worked and what made them so expensive. I didn&#8217;t know about auto resume periods, warehouse sizing, or clustering. </p><p>It seems quite naive now, looking back, but you don&#8217;t know what you don&#8217;t know. Unfortunately, these lessons are typically learned the hard way. </p><p>A few weeks in, I started a S&#8230;</p>
      <p>
          <a href="/__u/learnanalyticsengineering.substack.com/p/4-data-warehousing-mistakes-youre">
              Read more
          </a>
      </p>
   ]]></content:encoded></item><item><title><![CDATA[I've Reached AI Overwhelm. ]]></title><description><![CDATA[The problems I'm seeing with using AI in my workflow and how I'm planning to fix them]]></description><link>https://learnanalyticsengineering.substack.com/p/ive-reached-ai-overwhelm</link><guid isPermaLink="false">https://learnanalyticsengineering.substack.com/p/ive-reached-ai-overwhelm</guid><dc:creator><![CDATA[Madison Mae]]></dc:creator><pubDate>Thu, 30 Apr 2026 17:25:27 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/c154d09b-c5d9-4f64-963c-a9cdf4a9cd89_1456x1048.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>It&#8217;s official. I&#8217;m overwhelmed and frustrated by AI. </p><p>I&#8217;ve been dedicating most of my days for the last few months to successfully working Claude Code into my analytics engineering workflow. For most of the process, it was fun, new, and exciting.</p><p>I felt like I was flying through my work at record speed. Claude was my coding companion who helped me solve a&#8230;</p>
      <p>
          <a href="/__u/learnanalyticsengineering.substack.com/p/ive-reached-ai-overwhelm">
              Read more
          </a>
      </p>
   ]]></content:encoded></item><item><title><![CDATA[How I Solved for Data Validation with AI]]></title><description><![CDATA[My hack week learnings from working with GitHub MCP and CLI, Snowflake MCP and CLI, Principle of Least Privilege, and Snowflake users and roles.]]></description><link>https://learnanalyticsengineering.substack.com/p/how-i-solved-for-data-validation</link><guid isPermaLink="false">https://learnanalyticsengineering.substack.com/p/how-i-solved-for-data-validation</guid><dc:creator><![CDATA[Madison Mae]]></dc:creator><pubDate>Thu, 23 Apr 2026 17:29:48 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/9b6810ee-ea28-41e4-bf06-5da68d255cad_1456x1048.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Every engineer loves to learn and build more than anything else. So when your company offers you a week of uninterrupted time to just build and learn, you take it.</p><p>This is what happened last week at work. My company had a hack week where we could solve any issue that&#8217;s been pressing us, with the help of AI, of course. The goal was to improve our AI skills and hopefully make something cool in the process.</p><p>Lately, my team has been talking about how difficult it is to validate AI code changes in the data world. Not only do you need to make sure your code performs as expected, but you also need to evaluate for backwards compatibility. </p><p>I&#8217;ve been leveraging Claude Code to do some painful refactoring in our dbt project, and while the changes it&#8217;s made seem great in theory, they end up changing the underlying data in unexpected ways. This then makes it difficult to evaluate why the underlying data changed, and if it&#8217;s ok to push the changes <em>despite</em> the changes.  </p><p>In other words, <strong>we needed a way to validate the backwards compatibility of data changes using Claude Code</strong>. </p><p>Another analytics engineer on my team and I set out to solve this problem by creating an AI skill that automatically opens a GitHub PR and links to a validation notebook that it opens in Snowflake with context and queries needed to validate backwards compatibility. </p><p>In this post, I&#8217;m going to talk about this skill I built with a fellow analytics engineer to automatically open a Snowflake validation notebook upon AI code changes and my key findings along the way.  </p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://learnanalyticsengineering.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">Learn Analytics Engineering is a reader-supported publication. To receive new posts and support my work, consider becoming a free or paid subscriber.</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>I&#8217;ll share learnings on:</p><ul><li><p>Principle of Least Privilege</p></li><li><p>data governance for MCPs (users, roles, Snowflake security)</p></li><li><p>using a CLI tool vs MCP </p></li><li><p>iterating on and adjusting instructions in AI skills </p></li><li><p>the final project and outcome and why it&#8217;s purpose is so important for analytics engineers in the age of AI </p></li></ul><h2><strong>Principle of Least Privilege with AI and data</strong></h2>
      <p>
          <a href="/__u/learnanalyticsengineering.substack.com/p/how-i-solved-for-data-validation">
              Read more
          </a>
      </p>
   ]]></content:encoded></item><item><title><![CDATA[The Analytics Engineer's Workflow ]]></title><description><![CDATA[How to build a data product from start to finish]]></description><link>https://learnanalyticsengineering.substack.com/p/the-analytics-engineers-workflow</link><guid isPermaLink="false">https://learnanalyticsengineering.substack.com/p/the-analytics-engineers-workflow</guid><dc:creator><![CDATA[Madison Mae]]></dc:creator><pubDate>Thu, 16 Apr 2026 17:29:19 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/7a381dfc-d672-48ca-8979-49624a0b05f4_1456x1048.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>I&#8217;m always asked, &#8220;What does an analytics engineer do?&#8221; Most people are familiar with the workflow of a data engineer or a data analyst, but are unfamiliar with the day-to-day of an analytics engineer. </p><p>The truth is that it looks different every day. </p><p>We talk with stakeholders to get to the root of their needs, debug failing data pipelines, analyze produc&#8230;</p>
      <p>
          <a href="/__u/learnanalyticsengineering.substack.com/p/the-analytics-engineers-workflow">
              Read more
          </a>
      </p>
   ]]></content:encoded></item><item><title><![CDATA[Data and AI 101]]></title><description><![CDATA[Fundamentals that every person needs to understand before using data with AI]]></description><link>https://learnanalyticsengineering.substack.com/p/data-and-ai-101</link><guid isPermaLink="false">https://learnanalyticsengineering.substack.com/p/data-and-ai-101</guid><dc:creator><![CDATA[Madison Mae]]></dc:creator><pubDate>Thu, 02 Apr 2026 18:38:55 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!0Pf1!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8f8c9dd8-ef5a-433b-9d0d-2cc9af073a33_1024x768.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Let&#8217;s imagine you're a marketing manager using AI for the first time. You&#8217;re frustrated with your data analyst, who is holding you back from getting the insights that you need on the latest Meta campaign. </p><p>Your company hasn&#8217;t dabbled much in AI yet, which means it hasn&#8217;t set up any guardrails for how you can use it. This is great for you because you can quickly set up a connection to the data warehouse to get the answers you need on the campaign!</p><p>You start by finding all raw Meta data and copying it into Claude. You then tell it that you want to see how successful the latest campaign you ran was based on click-through rate and cost. You also ask it to give you the results in a pretty dashboard you can quickly copy and paste into a presentation for your team tomorrow. </p><p>Claude spits you back some nice-looking metrics and a pretty graphic, and you are instantly relieved that you now have some data to present! This means you can act fast on creating a similar campaign next week. </p><p>When your team asks about the numbers, you thank your good friend Claude for her hard work and diligence!  </p><p><strong>This is exactly what NOT to do when it comes to using data with AI. </strong></p><p>In this article, I&#8217;ll break down the five major pillars of safely using data and AI, including rules to follow. </p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://learnanalyticsengineering.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">Learn Analytics Engineering is a reader-supported publication. To receive new posts and support my work, consider becoming a free or paid subscriber.</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>&#9851;&#65039; If you&#8217;re enjoying this newsletter so far and think someone on your team (or even a stakeholder) could benefit from it, please share it with them! </p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://learnanalyticsengineering.substack.com/p/data-and-ai-101?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="/__u/learnanalyticsengineering.substack.com/p/data-and-ai-101?utm_source=substack&amp;utm_medium=email&amp;utm_content=share&amp;action=share"><span>Share</span></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_!0Pf1!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8f8c9dd8-ef5a-433b-9d0d-2cc9af073a33_1024x768.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!0Pf1!, /__u/learnanalyticsengineering.substack.com/w_424, /__u/learnanalyticsengineering.substack.com/c_limit, /__u/learnanalyticsengineering.substack.com/f_webp, /__u/learnanalyticsengineering.substack.com/q_auto:good, /__u/learnanalyticsengineering.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8f8c9dd8-ef5a-433b-9d0d-2cc9af073a33_1024x768.png 424w, /__u/substackcdn.com/image/fetch/$s_!0Pf1!, /__u/learnanalyticsengineering.substack.com/w_848, /__u/learnanalyticsengineering.substack.com/c_limit, /__u/learnanalyticsengineering.substack.com/f_webp, /__u/learnanalyticsengineering.substack.com/q_auto:good, /__u/learnanalyticsengineering.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8f8c9dd8-ef5a-433b-9d0d-2cc9af073a33_1024x768.png 848w, /__u/substackcdn.com/image/fetch/$s_!0Pf1!, /__u/learnanalyticsengineering.substack.com/w_1272, /__u/learnanalyticsengineering.substack.com/c_limit, /__u/learnanalyticsengineering.substack.com/f_webp, /__u/learnanalyticsengineering.substack.com/q_auto:good, /__u/learnanalyticsengineering.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8f8c9dd8-ef5a-433b-9d0d-2cc9af073a33_1024x768.png 1272w, /__u/substackcdn.com/image/fetch/$s_!0Pf1!, /__u/learnanalyticsengineering.substack.com/w_1456, /__u/learnanalyticsengineering.substack.com/c_limit, /__u/learnanalyticsengineering.substack.com/f_webp, /__u/learnanalyticsengineering.substack.com/q_auto:good, /__u/learnanalyticsengineering.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8f8c9dd8-ef5a-433b-9d0d-2cc9af073a33_1024x768.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!0Pf1!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8f8c9dd8-ef5a-433b-9d0d-2cc9af073a33_1024x768.png" width="1024" height="768" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/8f8c9dd8-ef5a-433b-9d0d-2cc9af073a33_1024x768.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:768,&quot;width&quot;:1024,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:105139,&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://learnanalyticsengineering.substack.com/i/192906565?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8f8c9dd8-ef5a-433b-9d0d-2cc9af073a33_1024x768.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_!0Pf1!, /__u/learnanalyticsengineering.substack.com/w_424, /__u/learnanalyticsengineering.substack.com/c_limit, /__u/learnanalyticsengineering.substack.com/f_auto, /__u/learnanalyticsengineering.substack.com/q_auto:good, /__u/learnanalyticsengineering.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8f8c9dd8-ef5a-433b-9d0d-2cc9af073a33_1024x768.png 424w, /__u/substackcdn.com/image/fetch/$s_!0Pf1!, /__u/learnanalyticsengineering.substack.com/w_848, /__u/learnanalyticsengineering.substack.com/c_limit, /__u/learnanalyticsengineering.substack.com/f_auto, /__u/learnanalyticsengineering.substack.com/q_auto:good, /__u/learnanalyticsengineering.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8f8c9dd8-ef5a-433b-9d0d-2cc9af073a33_1024x768.png 848w, /__u/substackcdn.com/image/fetch/$s_!0Pf1!, /__u/learnanalyticsengineering.substack.com/w_1272, /__u/learnanalyticsengineering.substack.com/c_limit, /__u/learnanalyticsengineering.substack.com/f_auto, /__u/learnanalyticsengineering.substack.com/q_auto:good, /__u/learnanalyticsengineering.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8f8c9dd8-ef5a-433b-9d0d-2cc9af073a33_1024x768.png 1272w, /__u/substackcdn.com/image/fetch/$s_!0Pf1!, /__u/learnanalyticsengineering.substack.com/w_1456, /__u/learnanalyticsengineering.substack.com/c_limit, /__u/learnanalyticsengineering.substack.com/f_auto, /__u/learnanalyticsengineering.substack.com/q_auto:good, /__u/learnanalyticsengineering.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8f8c9dd8-ef5a-433b-9d0d-2cc9af073a33_1024x768.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>AI and PII don't mix.</h2><p>If we go back to our example, we broke a major pillar in the very first step. We copied sensitive data directly into Claude. </p><p>When using data with AI, you always need to have governance top of mind. This means you <strong>cannot give AI access to sensitive data</strong>. Anything that identifies a customer can be considered PII, and therefore sensitive. Think names, phone numbers, emails, social security numbers, IP addresses, and even id&#8217;s. If you are dealing with any type of medical data, you need to be even more careful or you will be breaking HIPPA. </p><p>This is why I don&#8217;t give AI agents access to my data warehouse, import CSVs, or even copy and paste data into the chat. It is always better to be safe than sorry.</p><p>Here are some rules to follow to keep your data safe:</p><ul><li><p>only provide agents with highly aggregated metrics that are at a grain you feel 100% confident in </p></li><li><p>ask agents for validation queries that you can then run within your data warehouse, providing them with the results of that query (whether it was successful, if it returned records, etc.)</p></li><li><p>tag PII data so it is clear that a piece of data is sensitive</p></li><li><p>don&#8217;t give stakeholders access to raw or untransformed data in your data warehouse </p></li><li><p>always check with your legal and tech teams about the guardrails in place and what AI tools you can/cannot use </p></li></ul><h2>Garbage in, garbage out.</h2><p>Just because data is available to use with AI, doesn&#8217;t mean it is accurate. In this example, we assumed the raw data we pasted was clean and ready to be consumed. If you know anything about raw data, that is almost never the case. There is a reason why staging models and data modeling are a best practices!</p><p>This is also a reason why we have jobs as data people&#8230; <strong>data is inherently messy</strong>.</p><p>Analytics engineers spend so much time speaking with the business and engineering to ensure data meets expectations. When you skip the well-thought-out data models, you are opening a lot of room for error. </p><p>AI agents should only have access to do that is properly cleaned and modeled. If you stakeholders have access to any raw or unclean data, that is a major red flag. You need to create more secure data governance practices with strict roles on what types of users have access to what. </p><p>Here are some rules I like to follow:</p><ul><li><p>if raw data hasn&#8217;t been properly cleaned, nobody should be able to use it! </p></li><li><p>business stakeholders should only ever have access to core data models </p></li><li><p>business stakeholders should NEVER have access to raw data (they shouldn&#8217;t even be able to see these tables!)</p></li><li><p>business stakeholders and AI users need to have specific roles assigned to them that are highly governed, allowing the data team to control what they do and don&#8217;t have access to</p></li></ul><h2>AI is only as smart as the context you give it.</h2><p>It&#8217;s important to remember that AI only has the context that you provide it. It knows nothing about your business, its particular challenges, how you work as a team, etc. It only knows the prompt and any resources that you give it access to. </p><p>In this example, we asked for click-through rate and cost. This could mean so many different things depending on your type of business. AI agents have no idea how we define these metrics unless we give it context or provide it with something like a semantic layer!</p><p>Claude in this example infers a metric definition and acts as if it is the truth. </p><p>When using data with AI, <strong>you need to provide accurate and extensive context in order to get the results you want.</strong> Even then, it&#8217;s imperative that you validate that those results match the conversations you&#8217;ve had with the business. </p><p>For example, I recently worked with Claude to help define some store-level metrics I was given. I didn&#8217;t have much context, but these were metrics that were already defined at different grains within my codebase. Claude was able to infer the correct definitions because of code comments and documented metrics already in my codebase. If we hadn&#8217;t had this information, Claude would have chosen generic definitions, referenced data models that seemed right, and most likely abandoned a lot of important filters that help get us the correct numbers. </p><h2>If you can&#8217;t explain it, don&#8217;t ship it.</h2><p>AI creates a black box. This means that you often can&#8217;t explain why it did something. If you can&#8217;t explain why a code change was made, you shouldn&#8217;t be using AI at all. You need to have a strong level of understanding of what AI agents are doing in order to use them!</p><p><strong>If you can&#8217;t do what AI did yourself, the data team or someone else should be owning the task. </strong></p><p>In this example, we presented metrics on the campaign without being able to explain how those metrics were calculated and what data it was using. </p><p>Explainability operates at two levels: <em>what did the AI agent use</em> (data resources) and <em>why did it decide that</em> (interpretability). </p><p>Again, if we can&#8217;t explain these two things, we shouldn&#8217;t be using AI to do it. This is what creates massive future tech debt and bugs that no human can solve. </p><h2>You own the output, not AI. </h2><p>AI isn&#8217;t responsible for AI outputs. YOU are responsible for what AI outputs, and in order to claim responsibility you need to be able to explain what it does. <strong>Explainability and accountability go hand in hand.</strong></p><p>For everything you use AI to produce, you need to ask yourself if you feel comfortable taking full accountability of it. Because, if you don&#8217;t, it shouldn&#8217;t be produced. </p><p>With our above example, we didn&#8217;t take ownership of the work and instead gave ownership to Claude. Claude doesn&#8217;t own anything. The person who USED Claude owns the thing. Again, if you don&#8217;t understand the data sources, business logic, and full context behind what you are providing to your agent, you shouldn&#8217;t use AI at all. </p><p>When nobody takes ownership over their AI products, you see:</p><ul><li><p>bugs that nobody knows how to fix or wants to fix</p></li><li><p>unanswered business questions </p></li><li><p>sloppy code and lack of documentation </p></li></ul><p>As data people we&#8217;ve worked too hard at building well-documented, clear systems to let it all go to shit over AI!</p><div><hr></div><p>&#10145;&#65039; If you&#8217;re struggling to safely use AI with data in your company or individual work, reach out to me by replying to this email.</p><p>I&#8217;ve helped clients build AI-ready data warehouses, streamline their governance, and even train teams in safe data practices. </p><p>And, if you&#8217;re looking to improve your AI readiness, consider <strong>upgrading to a paid subscription</strong> where I share how I&#8217;m using AI on a daily basis in the subscriber chat and sharing monthly deep-dive data and AI tutorials. </p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://learnanalyticsengineering.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">Learn Analytics Engineering is a reader-supported publication. To receive new posts and support my work, consider becoming a free or paid subscriber.</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>Have a great week!</p><p>Madison </p><p></p>]]></content:encoded></item></channel></rss>