<?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>Sat, 16 May 2026 02:45:22 GMT</lastBuildDate><atom:link href="https://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[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 operations can be done solo instead of with an entire team.</p></li></ul><p>The bad:</p><ul><li><p>There is now an overwhelming amount of changes to review.</p></li><li><p>Our data is more vulnerable now than ever.</p></li><li><p>Changes can feel out of our control and difficult to trace.</p></li></ul><p>I recently used Claude Code to help me fix a failing data quality test in our daily data pipeline. One of the fields had too many characters and couldn&#8217;t be processed by the data warehouse. While Claude was able to offer some solutions like only adding unique values to an array and unioning two arrays, none of these schema changes were backwards compatible.</p><p>Tools like Claude and Cursor make it easy to generate database and schema changes, but lack the proper insight that we need as analytics engineers to feel comfortable following these changes. While speed is great, we also need clear control, traceability, and rollback, which these agents don&#8217;t yet give us.</p><p>This is exactly why data governance frameworks exist.</p><p>However, even if a company does have one, it most likely hasn&#8217;t caught up to AI. Instead, teams are improvising and figuring it out as they go.</p><p>But this isn&#8217;t the right way to approach things.</p><p>You need to address the most common problems with AI and data governance before it&#8217;s too late and AI reaches mass adoption throughout your company.</p><p>In this article, I&#8217;m discussing the top 3 problems I see with AI and data governance and how you can fix them with the right tools and practices.</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><div><hr></div><p>Next Thursday, I&#8217;m hosting a webinar with Liquibase on all things schema changes, AI-driven development, and data governance.</p><p>We will discuss what the shift to AI systems looks like across the modern data landscape and what it means for analytics engineers for database delivery, governance, and reliability.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://www.liquibase.com/videos/ai-is-accelerating-database-change-governance-must-keep-pace?utm_campaign=34103815-26-AIGovernance&amp;utm_source=email&amp;utm_medium=Learn%20Analytics%20Engineering%20Newsletter&amp;utm_content=Learn%20Analytics%20Engineering%20Newsletter" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!GsMt!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7b609626-5a9c-4371-b2b9-8c5b0cfc69af_1200x1200.jpeg 424w, https://substackcdn.com/image/fetch/$s_!GsMt!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7b609626-5a9c-4371-b2b9-8c5b0cfc69af_1200x1200.jpeg 848w, https://substackcdn.com/image/fetch/$s_!GsMt!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7b609626-5a9c-4371-b2b9-8c5b0cfc69af_1200x1200.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!GsMt!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7b609626-5a9c-4371-b2b9-8c5b0cfc69af_1200x1200.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!GsMt!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7b609626-5a9c-4371-b2b9-8c5b0cfc69af_1200x1200.jpeg" width="512" height="512" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/7b609626-5a9c-4371-b2b9-8c5b0cfc69af_1200x1200.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:false,&quot;imageSize&quot;:&quot;normal&quot;,&quot;height&quot;:1200,&quot;width&quot;:1200,&quot;resizeWidth&quot;:512,&quot;bytes&quot;:156741,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:&quot;https://www.liquibase.com/videos/ai-is-accelerating-database-change-governance-must-keep-pace?utm_campaign=34103815-26-AIGovernance&amp;utm_source=email&amp;utm_medium=Learn%20Analytics%20Engineering%20Newsletter&amp;utm_content=Learn%20Analytics%20Engineering%20Newsletter&quot;,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://learnanalyticsengineering.substack.com/i/197579500?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4b1084af-7449-426a-a85a-b9f2c1c6dd04_1200x1200.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:&quot;center&quot;,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!GsMt!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7b609626-5a9c-4371-b2b9-8c5b0cfc69af_1200x1200.jpeg 424w, https://substackcdn.com/image/fetch/$s_!GsMt!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7b609626-5a9c-4371-b2b9-8c5b0cfc69af_1200x1200.jpeg 848w, https://substackcdn.com/image/fetch/$s_!GsMt!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7b609626-5a9c-4371-b2b9-8c5b0cfc69af_1200x1200.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!GsMt!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7b609626-5a9c-4371-b2b9-8c5b0cfc69af_1200x1200.jpeg 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 role="img" 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><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>You will leave with a strong understanding of:</p><ul><li><p>What controls need to be built into the schema change process</p></li><li><p>Foundational data principles that are still important in this age of AI</p></li><li><p>What the future of data governance looks like</p></li><li><p>How analytics engineers will empower stakeholders in a new way</p></li></ul><p>You can sign up to <strong>join this conversation for free <a href="https://www.liquibase.com/videos/ai-is-accelerating-database-change-governance-must-keep-pace?utm_campaign=34103815-26-AIGovernance&amp;utm_source=email&amp;utm_medium=Learn%20Analytics%20Engineering%20Newsletter&amp;utm_content=Learn%20Analytics%20Engineering%20Newsletter">here</a>.</strong></p><div><hr></div><h2><strong>Problem 1: Your sensitive data is exposed to AI.</strong></h2><p>If you think your data is safe with AI tooling, it&#8217;s not.</p><p>AI accesses much more data than you intend it to. PII, financial records, health data, passwords, you name it.</p><p>Snowflake CLI and MCP are great examples of tools that can access all your data when not properly governed.</p><p>I recently downloaded Snowflake&#8217;s MCP to make backwards compatibility validation easier. I set it up with a specific service account and very limited permission on what it could access in order to protect any PII. Despite this, after a few prompts, it tried to brute force access to Snowflake using my local development permissions. Luckily, I had approvals turned on and was able to stop it.</p><p>With using these tools, most people expose them to data that they don&#8217;t intend to. <strong>What seems like simple context to the agent is actually exposed data.</strong></p><h3><strong>Solution:</strong> The only real solution to this problem is closely auditing your data.</h3><p>You need to make sure every person and tool that has access to your data warehouse has <strong>least-privileged</strong> access controls scoped specifically to AI tooling. This means everything that touches your warehouse has the minimum level of access needed to accomplish its goal.</p><p>For example, a product manager should only ever have read access on their business domain schema.</p><p>Your dbt orchestration job should only ever have write access on the analytics production database, not any raw data tables.</p><p>To protect your data even further, all <strong>PII should be masked at the schema layer </strong>with the exception of any values needed by the data team. Even if AI were to access a production schema that it shouldn&#8217;t, PII shouldn&#8217;t be able to be read by humans or tools.</p><p>I like to always ask myself, &#8220;<strong>if everything were to go wrong, what needs to be in place for our data to still be protected?</strong>&#8221;.</p><p>This means you need to consider situations like the one I mentioned above where the MCP brute forced its way to use my local development access. I need to access all this data, but how can I make it so even if AI does use my personal credentials, the data is safe?</p><p>Data masking and strict role separation are great ways to ensure this.</p><h2><strong>Problem 2: AI makes a lot of changes that feel impossible to trace and review.</strong></h2><p>If you&#8217;ve ever let an agent loose to handle database changes, you know the pain of it altering 15 different files and hundreds of lines of code. It feels exhausting to try to trace what it did and why, and <em>then </em>validate those changes.</p><p><strong>These changes help improve our code but only if they are correct and can be made sense of.</strong> To make sense of a complex string of database changes, we need modern tools and processes that allow us to trace these changes.</p><p>But what if these changes can&#8217;t be traced at all?</p><p>There are many processes in the data world that still feel archaic, and database changes are one of them. Most were designed for a world where schema changes were rare and extremely manual (definitely no AI helpers).</p><p>This means no version control, review cycles, and rollback capabilities. AND, if something goes wrong, a full-team effort is required or a change is just impossible. Changes made by humans, let alone AI agents, can&#8217;t be traced.</p><p>In my last role, engineering would frequently change underlying schemas, breaking our data models. This involved a lot of panic and long Slack threads to try to fix what was broken. It was impossible to trace back the exact change that broke everything downstream and the issue would then land on the data team to figure out a work around.</p><p>Now, add an AI agent into this data engineering workflow that&#8217;s generating and pushing schema changes faster than ever, and the problems you could once ignore become louder.</p><h3><strong>Solution:</strong> Bring tools to the data stack that make development with AI more transparent and put control back in the hands of engineers.</h3><p>Liquibase Secure does just this. It adds agent-safe governance to AI-assisted database change by enforcing policy checks, traceability, approvals, and rollback before changes reach production.</p><p>This means you no longer have to deal with the same frustrations that I did when downstream dbt models break due to improper schema changes. Instead of the responsibility falling on the data team to investigate breaking changes, they can easily be seen, understood, and then rolled back with the help from Liquibase Secure.</p><p>Instead of slowing AI down, this tool gives it the same guardrails that good engineering already demands everywhere else in the stack to then enable easier reviewing and traceability. This means less incidents in production, greater availability of data to stakeholders, and greater confidence in AI for data work.</p><h2><strong>Problem 3: You can&#8217;t audit what you can&#8217;t trace.</strong></h2><p>Compliance frameworks like the EU AI Act are beginning to require traceability at the schema level, not just the data level. This means that every change that AI makes needs to be version controlled and traceable.</p><p>Most teams have dbt lineage (model-to-model dependencies, column-level lineage, freshness checks) but dbt lineage starts at the source in your warehouse. If an AI agent silently renames a column or restructures a table, dbt has no visibility into that.</p><p>It tells you the story from the source forward, not what happened <em>to</em> the source.</p><h3><strong>Solution:</strong> You need to leverage schema-level lineage that captures the full who/what/when/why of every change. </h3><p>Again, this goes a level deeper than the lineage in your dbt models and traces data back to the source. What dbt lineage assumes is stable, schema lineage proves actually is.</p><p>Tools like Liquibase Secure&#8217;s dbDoc surface this beneath the dbt layer, giving teams the complete picture: dbt tells you what your data looks like, schema lineage tells you how it got that way. Together they close the audit gap that compliance frameworks are increasingly targeting.</p><p>I know I would have loved to have this tool all of the times I was banging my head against a wall, trying to figure out how the data changed in the source. Unexpected schema changes have happened numerous times to me with Hubspot and Intercom, making it time-consuming and stressful to debug.</p><p>Schema-level lineage is also ideal because it removes engineering as the bottle neck for breaking changes at the source. If a dbt test starts breaking on a staging model or downstream, you can have full visibility past the dbt layer into the schema layer.</p><h2><strong>The future of schema changes</strong></h2><p>I can&#8217;t remember the changes I made to my data 3 days ago, let alone 3 weeks ago. As AI takes on more of the heavy technical lift, transparency and traceability becomes even more important. We need to be able to look back on all changes made to our databases and data models by AI.</p><p>A tool like Liquibase Secure brings data governance a level deeper further than the transformation layer into the schema layer. This allows us to take greater ownership of the work being done between engineering and analytics, empowering analytics engineers to own the entire data stack.</p><p>Governance tooling like Liquibase Secure is quietly setting the standard for how AI and data infrastructure will coexist. Teams that prioritize governance throughout the entire data pipeline, not just in the data warehouse or BI layer, are the ones that will inevitably pull ahead in the race of AI.</p><p>The ones that don&#8217;t will end up with a sloppy code base that can&#8217;t scale because AI is making changes that we can&#8217;t keep up with, with zero visibility. We are already beginning to see a wave of people who are struggling to debug their vibe-coded apps or are dealing with leaked data.</p><p>No way am I letting the Learn Analytics Engineering community be one of these people!</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 Snowflake trial to help improve my skills and experiment with my own portfolio data pipeline project. The data was filtered, and only a few hundred rows, so I figured my costs would be very low.</p><p>Well, I was wrong.</p><p>Snowflake hit me with a FAT invoice. </p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!DS3U!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8f463f18-c45b-4f6b-b436-fe15eff84a1f_1502x494.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!DS3U!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8f463f18-c45b-4f6b-b436-fe15eff84a1f_1502x494.png 424w, https://substackcdn.com/image/fetch/$s_!DS3U!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8f463f18-c45b-4f6b-b436-fe15eff84a1f_1502x494.png 848w, https://substackcdn.com/image/fetch/$s_!DS3U!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8f463f18-c45b-4f6b-b436-fe15eff84a1f_1502x494.png 1272w, https://substackcdn.com/image/fetch/$s_!DS3U!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8f463f18-c45b-4f6b-b436-fe15eff84a1f_1502x494.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!DS3U!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8f463f18-c45b-4f6b-b436-fe15eff84a1f_1502x494.png" width="1456" height="479" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/8f463f18-c45b-4f6b-b436-fe15eff84a1f_1502x494.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:479,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:84234,&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/196688008?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8f463f18-c45b-4f6b-b436-fe15eff84a1f_1502x494.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!DS3U!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8f463f18-c45b-4f6b-b436-fe15eff84a1f_1502x494.png 424w, https://substackcdn.com/image/fetch/$s_!DS3U!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8f463f18-c45b-4f6b-b436-fe15eff84a1f_1502x494.png 848w, https://substackcdn.com/image/fetch/$s_!DS3U!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8f463f18-c45b-4f6b-b436-fe15eff84a1f_1502x494.png 1272w, https://substackcdn.com/image/fetch/$s_!DS3U!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8f463f18-c45b-4f6b-b436-fe15eff84a1f_1502x494.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 role="img" 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><title></title><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>The invoice from Snowflake was for $1,571. This was my own personal project, not a project I was building using my 9-5&#8217;s Snowflake plan, which meant<strong> I</strong> owed this money. $1,571 is a lot of money for a 20-something just starting in her data career. </p><p>Little to say, I&#8217;ve never made these cost-consuming mistakes in my data warehouse ever again. </p><p>In today&#8217;s article, you&#8217;ll learn from the mistakes I&#8217;ve made over the years as an analytics engineer, so you don&#8217;t have to learn them the hard way. </p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://learnanalyticsengineering.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://learnanalyticsengineering.substack.com/subscribe?"><span>Subscribe now</span></a></p><div><hr></div><h4><strong>Today&#8217;s newsletter is sponsored by <a href="https://www.greybeam.ai?utm_source=madisonschott&amp;utm_medium=newsletter&amp;utm_campaign=demo&amp;utm_content=primary-placement-may7">Greybeam</a>.</strong></h4><p>The best way to support my work is to check out the cost savings you can get with <a href="https://www.greybeam.ai?utm_source=madisonschott&amp;utm_medium=newsletter&amp;utm_campaign=demo&amp;utm_content=primary-placement-may7">Greybeam</a> and click the links below.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!-83p!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd60ecdf4-fda6-4392-9319-f17f5b921bd9_1638x566.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!-83p!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd60ecdf4-fda6-4392-9319-f17f5b921bd9_1638x566.png 424w, https://substackcdn.com/image/fetch/$s_!-83p!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd60ecdf4-fda6-4392-9319-f17f5b921bd9_1638x566.png 848w, https://substackcdn.com/image/fetch/$s_!-83p!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd60ecdf4-fda6-4392-9319-f17f5b921bd9_1638x566.png 1272w, https://substackcdn.com/image/fetch/$s_!-83p!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd60ecdf4-fda6-4392-9319-f17f5b921bd9_1638x566.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!-83p!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd60ecdf4-fda6-4392-9319-f17f5b921bd9_1638x566.png" width="514" height="177.57005494505495" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d60ecdf4-fda6-4392-9319-f17f5b921bd9_1638x566.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:503,&quot;width&quot;:1456,&quot;resizeWidth&quot;:514,&quot;bytes&quot;:432009,&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/196688008?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd60ecdf4-fda6-4392-9319-f17f5b921bd9_1638x566.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!-83p!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd60ecdf4-fda6-4392-9319-f17f5b921bd9_1638x566.png 424w, https://substackcdn.com/image/fetch/$s_!-83p!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd60ecdf4-fda6-4392-9319-f17f5b921bd9_1638x566.png 848w, https://substackcdn.com/image/fetch/$s_!-83p!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd60ecdf4-fda6-4392-9319-f17f5b921bd9_1638x566.png 1272w, https://substackcdn.com/image/fetch/$s_!-83p!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd60ecdf4-fda6-4392-9319-f17f5b921bd9_1638x566.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><p style="text-align: center;">Not every query needs a warehouse.  99% of BI queries are small, scanning less than 100GB. Running that on Snowflake is like taking a helicopter to go get groceries. Greybeam acts as an intelligent routing layer, matching every workload to its most efficient compute engine:</p><ul><li><p><strong>Cost optimization:</strong> Only pay for the warehouse for the 1% that needs it</p></li><li><p><strong>Faster queries:</strong> They run 3x faster on the right engine</p></li><li><p><strong>Data portability.</strong> Manage your data as Apache Iceberg tables, readable by any engine</p></li></ul><p style="text-align: center;">Stop spending blindly. Start saving on average 86% of your compute costs immediately. No migration. No code changes.</p><p style="text-align: center;"><strong><a href="https://www.greybeam.ai?utm_source=madisonschott&amp;utm_medium=newsletter&amp;utm_campaign=demo&amp;utm_content=primary-placement-may7">[ Try one month free ] - </a></strong><a href="https://www.greybeam.ai?utm_source=madisonschott&amp;utm_medium=newsletter&amp;utm_campaign=demo&amp;utm_content=primary-placement-may7">Book a demo</a></p><div><hr></div><h2>Mistake #1: Segregating warehouses by purpose and size.</h2><p>When I designed my very first data warehouse, I thought it was best to keep resources separated by purpose. Data ingestion had its own set of resources. Ad-hoc analysis had its own set of resources. Orchestration had its own set of resources.</p><p>This meant that each of these processes had its own warehouse for compute. </p><p>While it seemed like a great idea to keep all of the workloads separate, it actually ended up costing us more money than it should have. Instead of warehouses being able to lend capacity to an intensive workload, some were left underutilized while others were forced to scale up. </p><p>Because each warehouse also has a minimum start-up cost, we paid this for each warehouse instead of only paying for one. </p><p>Instead of separating warehouses by function, create a few core right-sized warehouses that can run your workloads effectively, depending on what needs to be run and when. You can then monitor credit consumption by tag in <code>QUERY_HISTORY</code> and set alerts if a particular workload is burning more than expected.</p><h2>Mistake #2: Not configuring auto-suspend. </h2><p>My $1,500 Snowflake bill was caused by the auto-suspend periods of my warehouses being so high. And by so high, I mean 60 seconds. You wouldn&#8217;t think this is a long time to be running compute, but it is! </p><p>Auto-suspend periods define the amount of time your warehouse can go without any activity before being shut down. This means you are paying to keep it up and running only to avoid a cold start. So, if your auto-suspend is 10 minutes and a new query comes in every 8 minutes, you are paying for the warehouse to be active indefinitely. </p><p>It&#8217;s important to find the sweet spot where you aren&#8217;t continually paying to resume your warehouse when there are bursts of queries with short periods in between, but you also aren&#8217;t paying for something with no activity. </p><p>Needless to say, if you are running a small portfolio project, you can most likely set this to the lowest possible setting. &#128521;</p><p><a href="https://www.greybeam.ai?utm_source=madisonschott&amp;utm_medium=newsletter&amp;utm_campaign=demo&amp;utm_content=primary-placement-may7">Greybeam</a> has an excellent <a href="https://www.greybeam.ai/blog/why-is-my-snowflake-bill-high#what-actually-makes-a-snowflake-bill-high?utm_source=madisonschott&amp;utm_medium=newsletter&amp;utm_campaign=whyismysnowflakebillsohigh&amp;utm_content=backlink-may7">deep dive article</a> on all of these cost-saving hacks for Snowflake users. </p><h2>Mistake #3: Building all models as incremental tables in dbt.</h2><p>Just because you can, doesn&#8217;t mean you should. When I first started using dbt, I thought incremental models were the coolest feature (and still do!). I wanted to make every model an incremental model, because if I can optimize, why not!?</p><p>Well, there are repercussions when it comes to using incremental models. If you are dealing with a large volume of data, the pros greatly outweigh the cons. However, when you&#8217;re dealing with tables that otherwise take a few seconds to completely refresh, incremental builds aren&#8217;t worth the hassle. </p><p>As you know, data is messy. Incremental logic can often miss late-arriving data, not account for source records that get updated rather than just inserted, and use unreliable timestamp fields. </p><p>When you run into these types of issues, you need to fully refresh your incremental models. This ends up wasting your time with manual intervention and running up compute on large refreshes. </p><p>I always recommend building intermediate data models as views first and then materializing them as a table if needed. With mart models, start with full refresh tables and configure them to be incremental as performance calls for it. This will save you from compute costs but also unnecessary struggle. </p><h2>Mistake #4: Exposing PII to the average user (especially in the age of AI). </h2><p>If you&#8217;ve used any type of MCP recently, you&#8217;ve most likely exposed sensitive data. I hope that isn&#8217;t the case, but it&#8217;s becoming more and more common. We think our data is safe with these AI tools, but it&#8217;s not. </p><p>We need to protect our PII at all costs. This means that nobody should have access to PII in their data warehouse, even developers. Most of us don&#8217;t need health records, social security numbers, or phone numbers to model business metrics. </p><p>I haven&#8217;t touched Snowflake&#8217;s MCP outside of a very limited scope for this very reason. Our PII has yet to be masked, so I have yet to expose all of our data to these tools.</p><p>Before you start playing around with Snowflake MCP or a similar tool, be sure to apply data masking on PII fields in your data warehouse. You can apply data masking based on roles. If a role is any role other than admin, users should not be able to see sensitive customer data. </p><p>This will protect you from any accidental permission mixups, because God knows Claude will try to get access to as much data as it can! </p><div><hr></div><p>I can say I&#8217;ve come a long way in my data warehousing skills from when I first became an analytics engineer years ago. </p><p>Whether you&#8217;ve been in the industry for a while or are just starting out, understanding how to save costs and improve pipeline efficiency are skills any employer will love.</p><p>Saying you saved your company $$$ thousands of dollars a month on compute costs is a HUGE flex! I honestly can&#8217;t think of anything else that&#8217;s more likely to get you a promotion or land a better role. </p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!OFpt!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F45c6a5ed-55b6-42d0-9989-a4875a6f1026_738x876.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!OFpt!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F45c6a5ed-55b6-42d0-9989-a4875a6f1026_738x876.png 424w, https://substackcdn.com/image/fetch/$s_!OFpt!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F45c6a5ed-55b6-42d0-9989-a4875a6f1026_738x876.png 848w, https://substackcdn.com/image/fetch/$s_!OFpt!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F45c6a5ed-55b6-42d0-9989-a4875a6f1026_738x876.png 1272w, https://substackcdn.com/image/fetch/$s_!OFpt!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F45c6a5ed-55b6-42d0-9989-a4875a6f1026_738x876.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!OFpt!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F45c6a5ed-55b6-42d0-9989-a4875a6f1026_738x876.png" width="428" height="508.0325203252033" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/45c6a5ed-55b6-42d0-9989-a4875a6f1026_738x876.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:876,&quot;width&quot;:738,&quot;resizeWidth&quot;:428,&quot;bytes&quot;:1145916,&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/196688008?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F45c6a5ed-55b6-42d0-9989-a4875a6f1026_738x876.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!OFpt!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F45c6a5ed-55b6-42d0-9989-a4875a6f1026_738x876.png 424w, https://substackcdn.com/image/fetch/$s_!OFpt!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F45c6a5ed-55b6-42d0-9989-a4875a6f1026_738x876.png 848w, https://substackcdn.com/image/fetch/$s_!OFpt!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F45c6a5ed-55b6-42d0-9989-a4875a6f1026_738x876.png 1272w, https://substackcdn.com/image/fetch/$s_!OFpt!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F45c6a5ed-55b6-42d0-9989-a4875a6f1026_738x876.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 role="img" 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><title></title><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>Have a great week!</p><p>Madison </p><p></p><p></p><p></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 anything and everything! </p><p>Don&#8217;t get me wrong, Claude is still helping me work faster and more efficiently. </p><p>However, now that the shininess has worn off, I&#8217;m starting to see it for who it really is. </p><p>Over-eager and profligate. </p><p>So what does this mean for AI and analytics engineering? </p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://learnanalyticsengineering.substack.com/p/ive-reached-ai-overwhelm?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="https://learnanalyticsengineering.substack.com/p/ive-reached-ai-overwhelm?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Share</span></a></p><div><hr></div><h4><strong>Today&#8217;s newsletter is sponsored by <a href="https://www.greybeam.ai/?utm_source=madisonschott&amp;utm_medium=newsletter&amp;utm_campaign=demo&amp;utm_content=primary-placement-apr30">Greybeam</a>. </strong></h4><p>Thanks to them, this post is free for everyone to read! The best way to support my work is to check out the cost savings you can get with <a href="https://www.greybeam.ai/?utm_source=madisonschott&amp;utm_medium=newsletter&amp;utm_campaign=demo&amp;utm_content=primary-placement-apr30">Greybeam</a> and click the links below. </p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Pb05!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa175eac4-a73d-4e5f-8a4e-8da372fdb214_1640x924.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Pb05!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa175eac4-a73d-4e5f-8a4e-8da372fdb214_1640x924.png 424w, https://substackcdn.com/image/fetch/$s_!Pb05!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa175eac4-a73d-4e5f-8a4e-8da372fdb214_1640x924.png 848w, https://substackcdn.com/image/fetch/$s_!Pb05!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa175eac4-a73d-4e5f-8a4e-8da372fdb214_1640x924.png 1272w, https://substackcdn.com/image/fetch/$s_!Pb05!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa175eac4-a73d-4e5f-8a4e-8da372fdb214_1640x924.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Pb05!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa175eac4-a73d-4e5f-8a4e-8da372fdb214_1640x924.png" width="558" height="314.25824175824175" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a175eac4-a73d-4e5f-8a4e-8da372fdb214_1640x924.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:820,&quot;width&quot;:1456,&quot;resizeWidth&quot;:558,&quot;bytes&quot;:138408,&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/195821296?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa175eac4-a73d-4e5f-8a4e-8da372fdb214_1640x924.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!Pb05!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa175eac4-a73d-4e5f-8a4e-8da372fdb214_1640x924.png 424w, https://substackcdn.com/image/fetch/$s_!Pb05!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa175eac4-a73d-4e5f-8a4e-8da372fdb214_1640x924.png 848w, https://substackcdn.com/image/fetch/$s_!Pb05!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa175eac4-a73d-4e5f-8a4e-8da372fdb214_1640x924.png 1272w, https://substackcdn.com/image/fetch/$s_!Pb05!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa175eac4-a73d-4e5f-8a4e-8da372fdb214_1640x924.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 role="img" 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><title></title><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 style="text-align: center;"><strong>Your snowflake bill is bigger than it should be.</strong></p><p style="text-align: center;">Most cost optimization advice stops at &#8220;set auto-suspend to 60 seconds.&#8221; This guide doesn&#8217;t. Greybeam&#8217;s free Snowflake Cost Optimization Guide walks you through 10 checks that can cut <strong>30&#8211;60% of your costs </strong>with the exact SQL to run against your account today.</p><p style="text-align: center;">The greatest cloud savings emerge from costs never born. This guide helps you find the spend most teams overlook, fix it, and put guardrails in place so it stays that way.</p><p style="text-align: center;"><a href="https://www.greybeam.ai/snowflake-cost-optimization-guide?utm_source=madisonschott&amp;utm_medium=newsletter&amp;utm_campaign=snowflakecostguide&amp;utm_content=primary-placement-apr30">Get the free guide</a> &#183; <a href="https://www.greybeam.ai?utm_source=madisonschott&amp;utm_medium=newsletter&amp;utm_campaign=demo&amp;utm_content=primary-placement-apr30">Get a demo</a></p><div><hr></div><h2>2 Major Problems with AI</h2><p>I&#8217;ve said this before, but I really want to emphasize this now: <strong>human discernment is so important.</strong></p><p>This week, I used Claude Code to make some basic changes to a few metrics. The changes involved adding an additional app mode for two very specific metrics. Instead of updating the three metrics that I needed, it decided to update all ecomm metrics. </p><p>I kept going back and forth with it, specifying that I only wanted it to update the two related metrics and touch nothing else. For some reason, Claude wasn&#8217;t understanding and kept overstepping. </p><p>Instead of just updating the metrics myself, I ended up wasting an hour trying to reason with it, only to still end up with the wrong outcome. </p><p>No matter how much context I gave it, and how specific I tried to be, we were running in circles. This is the perfect example of where you can land with AI when you&#8217;re not careful. </p><p>There are even rumors going around that Claude has gotten dumber in recent weeks&#8230;</p><p>I see two main problems:</p><ul><li><p>AI agents wanting to do too much, too fast, all at once </p></li><li><p>AI agents burning costs and wasting resources </p></li></ul><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://learnanalyticsengineering.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://learnanalyticsengineering.substack.com/subscribe?"><span>Subscribe now</span></a></p><h3>Problem #1: Overstepping boundaries </h3><p>AI agents are like overeager circus monkeys wanting to please their masters. They will do something just for the sake of doing it, like change metrics you didn&#8217;t ask to be changed. </p><p>This can quickly become overwhelming when you&#8217;re trying to complete a very small, specific piece of work, and it starts touching all areas of your code base. Not only does this make for bad data changes, but it also frustrates us as analytics engineers. </p><p>I&#8217;ve realized that I need to always utilize<strong> plan mode </strong>to get the result I want. It&#8217;s much easier to narrow the scope in a plan before AI makes the actual changes to your code. Plan mode allows you to reason back and forth and dump the context that you need in one brain dump before the work gets done. This then helps provide all the context upfront. </p><p>I used to think plan mode was just for bigger projects like complex data modeling, but I&#8217;ve found it necessary for smaller-scoped work like the &#8220;simple&#8221; metric change I mentioned above. </p><p>Not to mention, better scoping of your work also gives greater insight into what AI does and doesn&#8217;t have access to. </p><p>Today, I used my <a href="https://learnanalyticsengineering.substack.com/p/how-i-solved-for-data-validation">notebook validation skill</a> to open a Snowflake notebook, and Claude tried to brute force a permissions override from the very clearly scoped service account to my personal user, despite very clear directions not to do this. </p><p><strong>This is why I never auto-accept its actions and use plan mode before implementing any changes. </strong></p><h3>Problem #2: Increasing costs </h3><p>With AI being shoved in our faces every second of every day, the easy thing to do is default to AI. Instead of adding a simple test myself, I ask AI to do it. Instead of writing the SQL myself, I ask AI to do it. </p><p>It can be easy to default to AI for every analytics engineering task, despite the true level of effort being quite small. </p><p>Well, AI can do it, so why would I ever do it myself!?</p><p>Because of costs, that&#8217;s why.</p><p><strong>The costs of using AI for the small, very human-capable tasks are quite high. </strong></p><p>It&#8217;s high on the environment. </p><p>It&#8217;s high on our mental health and cognitive abilities. </p><p>It&#8217;s high on our&#8217;s or our company&#8217;s wallets (whether they realize it or not yet). </p><p>How you use Claude Code affects how much you pay. <a href="https://www.reddit.com/r/ClaudeCode/comments/1sw01xi/can_we_talk_about_the_insane_token_usage_and/">Resuming a chat session</a>, for example, has been shown to increase token usage my 15%. How you use it with data is even more risky!</p><p>If you are thoughtful about the rollout of your data warehouse with AI, you will be closely monitoring behaviors and costs. However, what happens when companies roll out widespread data access through Snowflake MCP via Claude Code? Claude will be able to run any gnarly query against your data warehouse without many guardrails. How will long-running and inefficient queries be managed?</p><p>It&#8217;s become more and more important to use tools and strategies to monitor and control your data warehouse costs with AI. Trust me, you don&#8217;t want a surprise bill from Snowflake. I&#8217;ve learned that lesson the hard way. </p><h2>Rawdogging without AI</h2><p>Frankly, <strong>once you learn how to harness AI to do a lot more, I think we all need to then scale it back</strong> to figure out what we can rawdog without AI.</p><p>I don&#8217;t know about you, but I don&#8217;t want all the skills I built years developing to disappear. The AI fatigue on the brain is real! I plan to utilize AI for complex planning, dynamic code changes, and documentation. This is where I see it make the biggest difference in my work. </p><p>I plan to keep my skills sharp by manually opening a GitHub PR every now and then and continuing to write one-off SQL queries. </p><p>As analytics engineers, we need to be honest with ourselves about what&#8217;s working and what&#8217;s not. Continue learning and developing AI in your workflows, but do so where it makes sense. Don&#8217;t overcomplicate the simple things. </p><p>In the meantime, start really thinking about governance and how these problems will scale when your greater organization gets access to your data for AI usage. </p><p>This is where the real difficult problems will start. They&#8217;re better solved on a small scale in your personal workflow first, before stakeholders start facing these same problems. </p><p>Have a great week!</p><p>Madison </p><p></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="https://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="https://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 &#8230;</p>
      <p>
          <a href="https://learnanalyticsengineering.substack.com/p/data-and-ai-101">
              Read more
          </a>
      </p>
   ]]></content:encoded></item><item><title><![CDATA[How to Leverage Claude for Data Analysis ]]></title><description><![CDATA[A deep dive into the 3 things you must have in your dbt project to do so]]></description><link>https://learnanalyticsengineering.substack.com/p/how-to-leverage-claude-for-data-analysis</link><guid isPermaLink="false">https://learnanalyticsengineering.substack.com/p/how-to-leverage-claude-for-data-analysis</guid><dc:creator><![CDATA[Madison Mae]]></dc:creator><pubDate>Thu, 26 Mar 2026 17:07:16 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/f0be623a-2aa4-4612-b05a-07130d7a7358_1456x1048.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Last week, Claude Code planned and executed an entire data analysis case study for me, and I didn&#8217;t need to give it access to any of my data. </p><p>Our sales team has been looking for data on how well our product features correlate to different outcomes, such as revenue, return on ad spend (ROAS), and average order value. Their hypothesis stated that the greater the number of product reviews, the better the sales. I needed to provide the data to back this up. </p><p>I dumped all of my thoughts into Claude Code, asking it to summarize what I was looking for. I then used this to have it create me a step-by-step plan to perform this analysis using the models in my dbt project. </p><p>One by one, it provided me with a query that I ran in Snowflake, validating the results or giving it feedback on what didn&#8217;t work. </p><p>There were only a small number of things that went wrong, and when they did, they were easy fixes. </p><p>This goes to show the power of having a dbt project with foundational data models and well-documented code. Claude was able to problem-solve any issues by simply using the code that was already written. </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 this article, I&#8217;ll walk you through the exact prompts I used to get an entire analytics case study in under an hour. I&#8217;ll also share the knitty-gritty details of why Claude was able to do this so well, including what makes a data model easy for AI to use and the most important types of documentation when using agents. </p><h2>How to Prompt Claude for Data Analysis</h2>
      <p>
          <a href="https://learnanalyticsengineering.substack.com/p/how-to-leverage-claude-for-data-analysis">
              Read more
          </a>
      </p>
   ]]></content:encoded></item><item><title><![CDATA[3 Hard Lessons That Made Me a Better Analytics Engineer]]></title><description><![CDATA[What a tough year in data taught me about work, people, and trusting my gut]]></description><link>https://learnanalyticsengineering.substack.com/p/3-hard-lessons-that-made-me-a-better</link><guid isPermaLink="false">https://learnanalyticsengineering.substack.com/p/3-hard-lessons-that-made-me-a-better</guid><dc:creator><![CDATA[Madison Mae]]></dc:creator><pubDate>Thu, 19 Mar 2026 17:04:47 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/c7851bcf-4385-43b9-bfea-8254b2277cf4_1456x1048.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Just a year ago today, I was in a difficult spot.</p><p>I felt lost in my work as an analytics engineer. I was working towards building a data model that impacted how the business would measure revenue, but I felt like all the forces were against me. </p><p>The business&#8217;s processes were an unpredictable mess. </p><p>My coworker and I had completely different viewpoints on h&#8230;</p>
      <p>
          <a href="https://learnanalyticsengineering.substack.com/p/3-hard-lessons-that-made-me-a-better">
              Read more
          </a>
      </p>
   ]]></content:encoded></item><item><title><![CDATA[3 AI-Proof Analytics Engineering Skills ]]></title><description><![CDATA[Because discernment is necessary and you can't have it without a solid foundation]]></description><link>https://learnanalyticsengineering.substack.com/p/3-ai-proof-analytics-engineering</link><guid isPermaLink="false">https://learnanalyticsengineering.substack.com/p/3-ai-proof-analytics-engineering</guid><dc:creator><![CDATA[Madison Mae]]></dc:creator><pubDate>Thu, 12 Mar 2026 17:04:39 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/7a0b18cd-1692-4bf9-9646-e7bbad43c9e3_1456x1048.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>If you&#8217;ve taken an AI fundamentals course, you&#8217;re probably familiar with the terms discernment and hallucination. These are two concepts whose importance is stressed heavily when it comes to AI.</p><p>Why?</p><p>AI is often wrong. It could have been trained on poor data. It could have been trained on outdated data. Despite what many people want to believe, it&#8217;s not t&#8230;</p>
      <p>
          <a href="https://learnanalyticsengineering.substack.com/p/3-ai-proof-analytics-engineering">
              Read more
          </a>
      </p>
   ]]></content:encoded></item><item><title><![CDATA[OpenAI is Hiring an Analytics Engineer]]></title><description><![CDATA[The future of analytics engineering job descriptions]]></description><link>https://learnanalyticsengineering.substack.com/p/how-to-become-an-analytics-engineer-304</link><guid isPermaLink="false">https://learnanalyticsengineering.substack.com/p/how-to-become-an-analytics-engineer-304</guid><dc:creator><![CDATA[Madison Mae]]></dc:creator><pubDate>Thu, 05 Mar 2026 17:03:37 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/bdaf09fa-e32a-41e9-8fa4-3a642ef3f0db_1456x1048.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>In a world where people are panicking about AI replacing their jobs, an analytics engineer role at an AI company seems like the ultimate job security. But actually, it says a lot about the future of the role. </p><p>If they aren&#8217;t replacing AEs with AI, then who really can? </p><p>OpenAI recently posted an <a href="https://openai.com/careers/analytics-engineer-san-francisco/">Analytics Engineer role</a> on their Go-To-Market (GTM) team. <strong>Thi&#8230;</strong></p>
      <p>
          <a href="https://learnanalyticsengineering.substack.com/p/how-to-become-an-analytics-engineer-304">
              Read more
          </a>
      </p>
   ]]></content:encoded></item><item><title><![CDATA[Cursor for Analytics: Where it Fails and Where it Thrives]]></title><description><![CDATA[A step-by-step workflow walk-through with code samples and screenshots]]></description><link>https://learnanalyticsengineering.substack.com/p/cursor-for-analytics-where-it-fails</link><guid isPermaLink="false">https://learnanalyticsengineering.substack.com/p/cursor-for-analytics-where-it-fails</guid><dc:creator><![CDATA[Madison Mae]]></dc:creator><pubDate>Thu, 26 Feb 2026 17:03:20 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/50beb0c3-8c20-4414-8bf6-4e0a6714329c_1456x1048.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>If you&#8217;re an analytics engineer who wants to be the most productive, valuable version of yourself, you need to start integrating AI into your workflows. Whether you disagree with the ethics behind it or think it&#8217;s going to lead to brain rot, you need to start learning how to use it now. </p><p>My employer recently began mandating AI training for its engineers because, not only does it want the company to be ahead of the curve, but it also wants its engineers to keep up with the times.<strong> In just a few years, if you don&#8217;t know how to use AI, you probably won&#8217;t get hired.</strong></p><p>I don&#8217;t say this to cause fear, but more so to motivate you to start learning these tools now. The sooner you learn them, the more of a leg up you have over those who wait until it&#8217;s absolutely necessary. </p><p>I also want to mention- it&#8217;s never been an EASIER time to break into analytics engineering or data. AI can help accelerate your learning beyond what would be possible without it. The knowledge gap between those hungry to learn and those who have been in the field for 20 years has never been faster to traverse. </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>Now that I&#8217;m done my pep talk on WHY you need to be using AI, let&#8217;s get into testing Cursor. If you aren&#8217;t familiar, <a href="https://cursor.com/product">Cursor</a> is an AI-powered IDE specifically for software engineers. It has an AI agent built directly into the IDE, giving it access to your entire code base and terminal. </p><p>While it&#8217;s superpower is software engineering, I wanted to test it out to see where it thrives and where it fails for data and analytics work, specifically within a dbt project.</p><p><strong>With learning to use these tools comes learning WHAT to hand over to them and what to keep tight reins on yourself. </strong>AI agents still get a lot of things wrong, so it&#8217;s important that you take the time to understand their strengths and weaknesses so you don&#8217;t become entirely dependent on them but rather leverage them for their optimizations.</p><p>In this article, there are 5 major analytics engineering tasks I use to evaluate Cursor&#8217;s effectiveness for dbt, SQL, and data model design work. </p><ul><li><p>Test #1: Can it accurately make small code changes? </p></li><li><p>Test #2: How well does it create templates and document data sources?</p></li><li><p>Test #3: How well can it debug? </p></li><li><p>Test #4: How well can it write and optimize SQL code within my dbt models?</p></li><li><p>Test #5: Can it plan a data model design given a set of business requirements? </p></li></ul><p>Let&#8217;s look at each of these in action and use the results to effectively measure the helpfulness of adding an AI IDE like Cursor to our analytics engineering workflow. </p>
      <p>
          <a href="https://learnanalyticsengineering.substack.com/p/cursor-for-analytics-where-it-fails">
              Read more
          </a>
      </p>
   ]]></content:encoded></item><item><title><![CDATA[The Truth of Self-Service Analytics ]]></title><description><![CDATA[The 4 things that need to be true before self-service BI is even possible.]]></description><link>https://learnanalyticsengineering.substack.com/p/is-self-service-bi-a-myth</link><guid isPermaLink="false">https://learnanalyticsengineering.substack.com/p/is-self-service-bi-a-myth</guid><dc:creator><![CDATA[Madison Mae]]></dc:creator><pubDate>Thu, 19 Feb 2026 16:56:50 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/190259f9-d9e6-40b2-8aa0-a9dff750f727_1456x1048.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Self-service analytics is a state of mind. It&#8217;s a culture. It requires full commitment from every member of a data team to be done right. </p><p>Most data teams have an ultimate goal of providing self-serve analytics, but never truly get there. Why is this? They often aren&#8217;t willing to go through the pain required to shift the current culture and state of mind. </p><p>When I joined the data team at Kit, we were in a vicious cycle of over-committing and rushing to deliver on stakeholders&#8217; every wish. Instead of prioritizing and saying no, we would say yes to everything.</p><p>This led to a lot of one-off reporting queries and dashboards that couldn&#8217;t be reused. With every new request came a new data product that had to be built from scratch.</p><p>This is a natural pattern that many data teams without analytics engineers fall into. Data analysts don&#8217;t naturally build scalable data products, so everything becomes quick and dirty without much thought about the future. Tech debt continues to build in an effort to keep up with all the work coming in. Highly impactful projects get pushed to the back burner because there&#8217;s simply no extra time to work on them.</p><p>There comes a point in time when you have to put an end to this cycle. Because if you don&#8217;t, it will only continue until it implodes on itself. </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>To get to a spot where BI is truly self-service, a few things first need to happen:</p><ul><li><p>You&#8217;ve created a culture of ruthless prioritization where everything built is tied to a company KPI or goal. </p></li><li><p>You focus on solving underlying problems rather than providing exactly what a stakeholder has asked for. </p></li><li><p>You&#8217;ve created foundational data models that can answer many different business questions. </p></li><li><p>You&#8217;ve educated your stakeholders on proper data and AI practices, differences between high and low quality data, and how to use your company data models. </p></li></ul><h2>What even is self-service BI?</h2><p>Self-service is one of those terms that have been overly used in the data space. There was a time when everything had &#8220;self-serve&#8221; slapped in front of it. However, <strong>now with AI becoming baked into BI tools like <a href="https://dkwr.short.gy/count-ai">Count</a>, self-serve is finally becoming realistic. </strong></p><p>Self-service means stakeholders have the data they need to explore and dig into their questions, without the help of the data team. It means they can feel confidant about the answers they are getting without needing to ask the data team to confirm if their answers are correct. </p><p>In short, <strong>self-service BI should be entirely disconnected from the data team apart from the initial work of getting the data available and ready to use within the BI tool. </strong></p><h2>Does your BI tool matter?</h2><p>While I&#8217;ve always been skeptical that you need certain BI tools to enable self-service BI, I&#8217;ve used tools that make it nearly impossible to achieve this. After using Quicksight for nearly 2 years, I&#8217;ve realized that the tools available to you really do make a difference. </p><p>In today&#8217;s world, you absolutely need a BI tool with a high-quality, built-in AI agent to achieve self-service. Having an AI agent available to a stakeholder allows them to mimic 5+ years of experience diving into quality data and metrics that they otherwise wouldn&#8217;t have. </p><p><strong>This means minimal data training for major impact. </strong></p><p><a href="https://dkwr.short.gy/count-agent">Count&#8217;s AI agent</a>, for example, allows stakeholders to follow its exact thought process, seeing what it&#8217;s looking at and thinking through to answer their question. This not only gives them the answer faster, but it allows them to learn from the agent and also question it when something in the process seems off. </p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!y-KO!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff7f9666a-94f6-42c2-9c8c-bf4c7f0e1f52_754x402.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!y-KO!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff7f9666a-94f6-42c2-9c8c-bf4c7f0e1f52_754x402.png 424w, https://substackcdn.com/image/fetch/$s_!y-KO!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff7f9666a-94f6-42c2-9c8c-bf4c7f0e1f52_754x402.png 848w, https://substackcdn.com/image/fetch/$s_!y-KO!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff7f9666a-94f6-42c2-9c8c-bf4c7f0e1f52_754x402.png 1272w, https://substackcdn.com/image/fetch/$s_!y-KO!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff7f9666a-94f6-42c2-9c8c-bf4c7f0e1f52_754x402.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!y-KO!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff7f9666a-94f6-42c2-9c8c-bf4c7f0e1f52_754x402.png" width="508" height="270.84350132625997" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/f7f9666a-94f6-42c2-9c8c-bf4c7f0e1f52_754x402.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:402,&quot;width&quot;:754,&quot;resizeWidth&quot;:508,&quot;bytes&quot;:56396,&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/188161832?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff7f9666a-94f6-42c2-9c8c-bf4c7f0e1f52_754x402.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!y-KO!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff7f9666a-94f6-42c2-9c8c-bf4c7f0e1f52_754x402.png 424w, https://substackcdn.com/image/fetch/$s_!y-KO!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff7f9666a-94f6-42c2-9c8c-bf4c7f0e1f52_754x402.png 848w, https://substackcdn.com/image/fetch/$s_!y-KO!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff7f9666a-94f6-42c2-9c8c-bf4c7f0e1f52_754x402.png 1272w, https://substackcdn.com/image/fetch/$s_!y-KO!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff7f9666a-94f6-42c2-9c8c-bf4c7f0e1f52_754x402.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 role="img" 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><title></title><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>It&#8217;s really important to work with AI agents that aren&#8217;t black boxes for this very reason. It puts discernment in the hands of the user still, empowering them throughout the process rather than giving over full control. </p><p>Of course, with this, I do want to emphasize the importance of having foundational data models that make this possible. AI agents like the one offered by Count have an easier time understanding data that is well-modeled compared to raw data. With raw data comes a higher likelihood of business logic being inferred and therefore incorrect. </p><h2>Data modeling for AI agents</h2><p>You can&#8217;t have self-service BI without well-built, scalable, high-quality data models. This is something no amount of AI capabilities will be able to replace. </p><p>Data models give your AI agents direction. They act as a map of business processes. Let&#8217;s look at two examples using the same data and same business questions. In the first example we are using the raw data with the AI agent and in the second we are using modeled data with the AI agent. </p><h3>EX: Feeding AI agents raw data</h3><p>I start by giving Count the raw data tables I want it to use to help me understand subscription plan changes. Because it doesn&#8217;t yet know the relationships between the tables, it explores the patterns between them, inferring their relationship. </p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!o-DO!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5823c14a-8ee0-4d69-818a-06be21af053a_768x594.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!o-DO!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5823c14a-8ee0-4d69-818a-06be21af053a_768x594.png 424w, https://substackcdn.com/image/fetch/$s_!o-DO!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5823c14a-8ee0-4d69-818a-06be21af053a_768x594.png 848w, https://substackcdn.com/image/fetch/$s_!o-DO!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5823c14a-8ee0-4d69-818a-06be21af053a_768x594.png 1272w, https://substackcdn.com/image/fetch/$s_!o-DO!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5823c14a-8ee0-4d69-818a-06be21af053a_768x594.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!o-DO!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5823c14a-8ee0-4d69-818a-06be21af053a_768x594.png" width="498" height="385.171875" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/5823c14a-8ee0-4d69-818a-06be21af053a_768x594.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:594,&quot;width&quot;:768,&quot;resizeWidth&quot;:498,&quot;bytes&quot;:84605,&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/188161832?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5823c14a-8ee0-4d69-818a-06be21af053a_768x594.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!o-DO!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5823c14a-8ee0-4d69-818a-06be21af053a_768x594.png 424w, https://substackcdn.com/image/fetch/$s_!o-DO!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5823c14a-8ee0-4d69-818a-06be21af053a_768x594.png 848w, https://substackcdn.com/image/fetch/$s_!o-DO!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5823c14a-8ee0-4d69-818a-06be21af053a_768x594.png 1272w, https://substackcdn.com/image/fetch/$s_!o-DO!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5823c14a-8ee0-4d69-818a-06be21af053a_768x594.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 role="img" 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><title></title><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>It then begins to build its own set of core models. While these were actually pretty accurate, it created many different models at different grains rather than one core subscription plan changes model, which is all we really need. </p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!7qV3!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F787216e3-5459-43dc-910b-5e575a9065f1_802x1362.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!7qV3!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F787216e3-5459-43dc-910b-5e575a9065f1_802x1362.png 424w, https://substackcdn.com/image/fetch/$s_!7qV3!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F787216e3-5459-43dc-910b-5e575a9065f1_802x1362.png 848w, https://substackcdn.com/image/fetch/$s_!7qV3!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F787216e3-5459-43dc-910b-5e575a9065f1_802x1362.png 1272w, https://substackcdn.com/image/fetch/$s_!7qV3!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F787216e3-5459-43dc-910b-5e575a9065f1_802x1362.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!7qV3!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F787216e3-5459-43dc-910b-5e575a9065f1_802x1362.png" width="450" height="764.214463840399" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/787216e3-5459-43dc-910b-5e575a9065f1_802x1362.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1362,&quot;width&quot;:802,&quot;resizeWidth&quot;:450,&quot;bytes&quot;:202942,&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/188161832?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F787216e3-5459-43dc-910b-5e575a9065f1_802x1362.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!7qV3!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F787216e3-5459-43dc-910b-5e575a9065f1_802x1362.png 424w, https://substackcdn.com/image/fetch/$s_!7qV3!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F787216e3-5459-43dc-910b-5e575a9065f1_802x1362.png 848w, https://substackcdn.com/image/fetch/$s_!7qV3!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F787216e3-5459-43dc-910b-5e575a9065f1_802x1362.png 1272w, https://substackcdn.com/image/fetch/$s_!7qV3!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F787216e3-5459-43dc-910b-5e575a9065f1_802x1362.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 role="img" 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><title></title><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 can be confusing for stakeholders to follow, as the models are at different grains, built for different use cases, and are not clearly documented with the business logic they are modeled after. Even if the agent is able to extract the correct insights, it makes it harder for stakeholders to validate. </p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!_Pxs!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb403b90d-fd87-4793-bb1a-bf8bacfda930_1496x422.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!_Pxs!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb403b90d-fd87-4793-bb1a-bf8bacfda930_1496x422.png 424w, https://substackcdn.com/image/fetch/$s_!_Pxs!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb403b90d-fd87-4793-bb1a-bf8bacfda930_1496x422.png 848w, https://substackcdn.com/image/fetch/$s_!_Pxs!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb403b90d-fd87-4793-bb1a-bf8bacfda930_1496x422.png 1272w, https://substackcdn.com/image/fetch/$s_!_Pxs!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb403b90d-fd87-4793-bb1a-bf8bacfda930_1496x422.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!_Pxs!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb403b90d-fd87-4793-bb1a-bf8bacfda930_1496x422.png" width="1456" height="411" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/b403b90d-fd87-4793-bb1a-bf8bacfda930_1496x422.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:411,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:141313,&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/188161832?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb403b90d-fd87-4793-bb1a-bf8bacfda930_1496x422.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!_Pxs!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb403b90d-fd87-4793-bb1a-bf8bacfda930_1496x422.png 424w, https://substackcdn.com/image/fetch/$s_!_Pxs!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb403b90d-fd87-4793-bb1a-bf8bacfda930_1496x422.png 848w, https://substackcdn.com/image/fetch/$s_!_Pxs!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb403b90d-fd87-4793-bb1a-bf8bacfda930_1496x422.png 1272w, https://substackcdn.com/image/fetch/$s_!_Pxs!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb403b90d-fd87-4793-bb1a-bf8bacfda930_1496x422.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 role="img" 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><title></title><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>Count&#8217;s agent gave me a pretty thorough description of the subscription changes that occurred, even detailing an important insight that the Explorer plan was the most churn-prone plan despite being one of the least used plans. Overall, it&#8217;s pretty impressive what it was able to do without data modeling, but imagine what it&#8217;s capable of with more direction!  </p><h3>EX: Giving AI agents modeled data</h3><p>When you give an AI agent modeled data, you&#8217;ve already created the structure that it needs. You&#8217;ve cleaned the raw data, adjusted for any mistakes, and have applied the proper business logic. </p><p>You aren&#8217;t depending on AI to solve the hardest part of the data puzzle. Instead, you can hand over the data and give it the business context it needs to then make sense of the data. </p><p>Providing this well-documented data model also gives stakeholders direction in their attempts to make sense of the data. They don&#8217;t have to guess what is right or wrong, but are instead guided in the right direction. </p><p>When given modeled data, not only was Count able to work faster to develop insights and visuals (and aren&#8217;t they beautiful?), but it was able to dive deeper into my data with more confidence. </p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!O0Y_!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6ec0c0bc-ac11-4347-a7fa-9ebfdf59bfbc_1594x852.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!O0Y_!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6ec0c0bc-ac11-4347-a7fa-9ebfdf59bfbc_1594x852.png 424w, https://substackcdn.com/image/fetch/$s_!O0Y_!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6ec0c0bc-ac11-4347-a7fa-9ebfdf59bfbc_1594x852.png 848w, https://substackcdn.com/image/fetch/$s_!O0Y_!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6ec0c0bc-ac11-4347-a7fa-9ebfdf59bfbc_1594x852.png 1272w, https://substackcdn.com/image/fetch/$s_!O0Y_!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6ec0c0bc-ac11-4347-a7fa-9ebfdf59bfbc_1594x852.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!O0Y_!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6ec0c0bc-ac11-4347-a7fa-9ebfdf59bfbc_1594x852.png" width="1456" height="778" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/6ec0c0bc-ac11-4347-a7fa-9ebfdf59bfbc_1594x852.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:778,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:199022,&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/188161832?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6ec0c0bc-ac11-4347-a7fa-9ebfdf59bfbc_1594x852.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!O0Y_!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6ec0c0bc-ac11-4347-a7fa-9ebfdf59bfbc_1594x852.png 424w, https://substackcdn.com/image/fetch/$s_!O0Y_!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6ec0c0bc-ac11-4347-a7fa-9ebfdf59bfbc_1594x852.png 848w, https://substackcdn.com/image/fetch/$s_!O0Y_!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6ec0c0bc-ac11-4347-a7fa-9ebfdf59bfbc_1594x852.png 1272w, https://substackcdn.com/image/fetch/$s_!O0Y_!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6ec0c0bc-ac11-4347-a7fa-9ebfdf59bfbc_1594x852.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 role="img" 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><title></title><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>Other BI features for enabling self-service</h2><p>In addition to an AI agent, stakeholders need space to drill down and explore data that isn&#8217;t in a data warehouse and doesn&#8217;t involve editing a dashboard. <em>Business stakeholders shouldn&#8217;t have data warehouse access. They also shouldn&#8217;t be able to edit a dashboard. </em></p><p>With Quicksight, for example, stakeholders have no way to access the data used in dashboards unless they have access to the data warehouse. This created a huge hurdle for stakeholders that required the data team to constantly pull CSVs for them to then ingest into Excel. Or we had to do the &#8220;quick&#8221; analysis for them. Every. Single. Time. </p><p>Talk about a time suck! </p><p>Count has a <a href="https://dkwr.short.gy/5CeYea">collaborative canvas</a> feature that allows stakeholders to work alongside AI agents, creating their own data resources entirely separate from those the data team has created. This allows stakeholders to build what they need while also leveraging what already exists, and collaborating with others in the meantime. </p><div><hr></div><p>As much as I want to tell you a tool doesn&#8217;t matter, when it comes to self-service BI it does. There are things you will never be able to do unless you have the right tool. I couldn&#8217;t collaborate with stakeholders on a data drill down or even give stakeholders access to datasets that allowed them to explore metrics when I used Quicksight. </p><p><strong>That being said, a good tool doesn&#8217;t allow you to skip the foundations of high quality data. </strong></p><p>You still need to build scalable data models, or even the best BI tool will be prone to mistakes. You still need to make sure you are prioritizing the right work and saying no. If you don&#8217;t do this, even the best BI tool will be cluttered with useless dashboards and reports. </p><p>A solid, AI-enabled BI tool like <a href="https://dkwr.short.gy/count-ai">Count</a> can take you far when you use it the right way. It helps feed a cycle that allows you to put more of your effort towards foundational data models which then improve stakeholders&#8217; self-exploration of metrics.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!bZps!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5be8c81e-f795-4e6e-8253-9df7a22c617a_1024x768.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!bZps!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5be8c81e-f795-4e6e-8253-9df7a22c617a_1024x768.jpeg 424w, https://substackcdn.com/image/fetch/$s_!bZps!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5be8c81e-f795-4e6e-8253-9df7a22c617a_1024x768.jpeg 848w, https://substackcdn.com/image/fetch/$s_!bZps!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5be8c81e-f795-4e6e-8253-9df7a22c617a_1024x768.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!bZps!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5be8c81e-f795-4e6e-8253-9df7a22c617a_1024x768.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!bZps!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5be8c81e-f795-4e6e-8253-9df7a22c617a_1024x768.jpeg" width="580" height="435" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/5be8c81e-f795-4e6e-8253-9df7a22c617a_1024x768.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:768,&quot;width&quot;:1024,&quot;resizeWidth&quot;:580,&quot;bytes&quot;:57423,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://learnanalyticsengineering.substack.com/i/188161832?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5be8c81e-f795-4e6e-8253-9df7a22c617a_1024x768.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!bZps!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5be8c81e-f795-4e6e-8253-9df7a22c617a_1024x768.jpeg 424w, https://substackcdn.com/image/fetch/$s_!bZps!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5be8c81e-f795-4e6e-8253-9df7a22c617a_1024x768.jpeg 848w, https://substackcdn.com/image/fetch/$s_!bZps!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5be8c81e-f795-4e6e-8253-9df7a22c617a_1024x768.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!bZps!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5be8c81e-f795-4e6e-8253-9df7a22c617a_1024x768.jpeg 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 role="img" 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><title></title><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>These efforts continue to compound, allowing everyone to focus on the big things that move company KPIs the most.</p><p>So no. Self-service analytics is not a myth. &#128521; You just need foundational data models and a tool that allows you to make the most out of them. </p><p>Have a great week!</p><p>Madison </p>]]></content:encoded></item><item><title><![CDATA[Will AI Replace Data Modeling? ]]></title><description><![CDATA[3 reasons why this is the hardest data skill to hand over to AI]]></description><link>https://learnanalyticsengineering.substack.com/p/will-ai-replace-data-modeling</link><guid isPermaLink="false">https://learnanalyticsengineering.substack.com/p/will-ai-replace-data-modeling</guid><dc:creator><![CDATA[Madison Mae]]></dc:creator><pubDate>Thu, 12 Feb 2026 17:02:58 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/44903c17-eaf1-44ab-b117-042f8107bffa_1456x1048.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>I&#8217;ve been experimenting a lot lately with Cursor for all kinds of analytics tasks. I&#8217;ve been using it to debug, make small changes, generate documentation, write complex SQL, and even plan a potential data model. </p><p>Some of these tasks it excels at, others it falls short. Planning a data model is one of those tasks where it seems to fall short. I find that&#8230;</p>
      <p>
          <a href="https://learnanalyticsengineering.substack.com/p/will-ai-replace-data-modeling">
              Read more
          </a>
      </p>
   ]]></content:encoded></item><item><title><![CDATA[4 Things to STOP Doing ]]></title><description><![CDATA[...if you want to become a better analytics engineer this year]]></description><link>https://learnanalyticsengineering.substack.com/p/4-things-to-stop-doing</link><guid isPermaLink="false">https://learnanalyticsengineering.substack.com/p/4-things-to-stop-doing</guid><dc:creator><![CDATA[Madison Mae]]></dc:creator><pubDate>Thu, 05 Feb 2026 17:51:45 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/d0d1a508-a52b-40fb-a29d-ae2cf1f1f263_1456x1048.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Every analytics engineer learns lessons the hard way sooner or later. They learn them through failed projects, wasted time, and data products that do not scale. </p><p>In fact, I&#8217;ve learned all of the lessons I&#8217;m about to share with you the hard way. Nobody ever taught me these things when I started my career in analytics engineering, but I wish they had. Not &#8230;</p>
      <p>
          <a href="https://learnanalyticsengineering.substack.com/p/4-things-to-stop-doing">
              Read more
          </a>
      </p>
   ]]></content:encoded></item><item><title><![CDATA[How to Decide on a Data Model Design ]]></title><description><![CDATA[The order of operations, key design principles, and common pitfalls to avoid]]></description><link>https://learnanalyticsengineering.substack.com/p/how-to-decide-on-a-data-model-design</link><guid isPermaLink="false">https://learnanalyticsengineering.substack.com/p/how-to-decide-on-a-data-model-design</guid><dc:creator><![CDATA[Madison Mae]]></dc:creator><pubDate>Thu, 29 Jan 2026 17:38:12 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/989e2d22-9abb-49c9-ad6f-d7236d7ac4d9_1456x1048.gif" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Data model design is one of those skills that&#8217;s really hard to improve in unless you are doing it every day, with real business processes to model. The more you do it, the more mistakes you make, and the more you learn. </p><p>I&#8217;ve learned a great deal about data modeling from my successes and failures over the past few years. I&#8217;ve had high highs of solving complex data quality issues and simplifying reporting work for data analysts on my team. I&#8217;ve also had low lows of completely bombing a project because I didn&#8217;t narrow down the scope or set clear expectations with stakeholders. </p><p>Today, I&#8217;m sharing my data modeling design process and the mistakes I&#8217;ve made along the way that have informed me of these lessons. </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>Every month, I&#8217;ll be sharing an in-depth, technical deep dive like this one for paid subscribers. </p><h2>Before You Model: Discovery and Requirements</h2>
      <p>
          <a href="https://learnanalyticsengineering.substack.com/p/how-to-decide-on-a-data-model-design">
              Read more
          </a>
      </p>
   ]]></content:encoded></item><item><title><![CDATA[How NOT to Use Medallion Architecture]]></title><description><![CDATA[Differences between them and how to use them together while avoiding the most common mistakes and anti-patterns]]></description><link>https://learnanalyticsengineering.substack.com/p/why-medallion-architecture-is-not</link><guid isPermaLink="false">https://learnanalyticsengineering.substack.com/p/why-medallion-architecture-is-not</guid><dc:creator><![CDATA[Madison Mae]]></dc:creator><pubDate>Thu, 22 Jan 2026 15:14:54 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/53c9c824-a5ab-4b87-a7d9-16d89b4ddb48_1456x1048.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Medallion architecture can quickly become everything that it shouldn&#8217;t. It&#8217;s easy to think of it as a replacement for data modeling, and it&#8217;s easy to view it as a filing cabinet for your various models.</p><p>Both of these things are what you <em>shouldn&#8217;t </em>be doing.</p><p>If you didn&#8217;t read last week&#8217;s newsletter with <a href="https://medium.com/@rikimiko">Riki Miko</a>, I recommend starting <a href="https://learnanalyticsengineering.substack.com/p/medallion-architecture-101">there</a>. This discusses&#8230;</p>
      <p>
          <a href="https://learnanalyticsengineering.substack.com/p/why-medallion-architecture-is-not">
              Read more
          </a>
      </p>
   ]]></content:encoded></item><item><title><![CDATA[Medallion Architecture 101]]></title><description><![CDATA[Why it's NOT a data modeling strategy but a data design that allows for strong governance and clear expectations for all users]]></description><link>https://learnanalyticsengineering.substack.com/p/medallion-architecture-101</link><guid isPermaLink="false">https://learnanalyticsengineering.substack.com/p/medallion-architecture-101</guid><dc:creator><![CDATA[Madison Mae]]></dc:creator><pubDate>Thu, 15 Jan 2026 16:07:30 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/47030bda-acf2-4a0d-b64c-e869f0c42811_1456x1048.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Medallion Architecture is often misunderstood as a data modeling approach. It&#8217;s not that. </p><p>Whether you are new to analytics engineering or new to modern data stack tools, it&#8217;s easy to get caught up in vendor jargon, taking any slice of information they give you as fact. </p><p>That&#8217;s what happened to me when I first started in analytics engineering and was intr&#8230;</p>
      <p>
          <a href="https://learnanalyticsengineering.substack.com/p/medallion-architecture-101">
              Read more
          </a>
      </p>
   ]]></content:encoded></item><item><title><![CDATA[How to Become an Analytics Engineer in 2026]]></title><description><![CDATA[Finding success and providing value in the age of AI]]></description><link>https://learnanalyticsengineering.substack.com/p/how-to-become-an-analytics-engineer-676</link><guid isPermaLink="false">https://learnanalyticsengineering.substack.com/p/how-to-become-an-analytics-engineer-676</guid><dc:creator><![CDATA[Madison Mae]]></dc:creator><pubDate>Thu, 08 Jan 2026 17:04:25 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/3ce38680-c16c-4976-ba80-b734d769f4cb_1456x1048.gif" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>We can&#8217;t talk about analytics engineering in 2026 without mentioning the elephant in the room, AI. I&#8217;ve heard everything as dramatic as &#8220;<em>AI will replace all data engineers and data analysts!</em>&#8221; to &#8220;<em>I don&#8217;t think AI will change a thing</em>&#8221;. </p><p>I fall somewhere in between, because the truth is-<strong> AI will change a lot about how we work as analytics engineers</strong>. It req&#8230;</p>
      <p>
          <a href="https://learnanalyticsengineering.substack.com/p/how-to-become-an-analytics-engineer-676">
              Read more
          </a>
      </p>
   ]]></content:encoded></item><item><title><![CDATA[2025 Analytics Engineering Wrapped]]></title><description><![CDATA[Watch now | A recording from Madison's live video]]></description><link>https://learnanalyticsengineering.substack.com/p/2025-analytics-engineering-wrapped</link><guid isPermaLink="false">https://learnanalyticsengineering.substack.com/p/2025-analytics-engineering-wrapped</guid><dc:creator><![CDATA[Madison Mae]]></dc:creator><pubDate>Wed, 31 Dec 2025 19:52:19 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/b638382c-4bf8-4bab-a6d4-c13c8b3d67fe_1042x582.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Here are the posts mentioned in this video:</p><div class="digest-post-embed" data-attrs="{&quot;nodeId&quot;:&quot;8f9aca82-79b8-4cbf-becb-00075ce46c9f&quot;,&quot;caption&quot;:&quot;After spending weeks working on a portfolio project, most people ship their code to GitHub and call it a day. They think the code is enough to prove their skill sets to future employers, clients, you name it.&quot;,&quot;cta&quot;:&quot;Read full story&quot;,&quot;showBylines&quot;:true,&quot;size&quot;:&quot;sm&quot;,&quot;isEditorNode&quot;:true,&quot;title&quot;:&quot;How to Write a Good README&quot;,&quot;publishedBylines&quot;:[{&quot;id&quot;:66148605,&quot;name&quot;:&quot;Madison Mae&quot;,&quot;bio&quot;:&quot;analytics engineer and technical writer; making data easy to understand and accessible to anyone! passions include nutrition, fitness, reading, &amp; sewing&quot;,&quot;photo_url&quot;:&quot;https://substackcdn.com/image/fetch/f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F85ad6273-a9b9-4151-b1ee-17bcf78e036b_48x48.png&quot;,&quot;is_guest&quot;:false,&quot;bestseller_tier&quot;:null}],&quot;post_date&quot;:&quot;2025-09-04T14:45:53.216Z&quot;,&quot;cover_image&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/8457b3bc-b954-4338-a495-bfa090abdfc7_1400x1000.jpeg&quot;,&quot;cover_image_alt&quot;:null,&quot;canonical_url&quot;:&quot;https://learnanalyticsengineering.substack.com/p/how-to-write-a-good-readme&quot;,&quot;section_name&quot;:null,&quot;video_upload_id&quot;:null,&quot;id&quot;:171892587,&quot;type&quot;:&quot;newsletter&quot;,&quot;reaction_count&quot;:7,&quot;comment_count&quot;:0,&quot;publication_id&quot;:629885,&quot;publication_name&quot;:&quot;Learn Analytics Engineering &quot;,&quot;publication_logo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!CuB0!,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&quot;,&quot;belowTheFold&quot;:false,&quot;youtube_url&quot;:null,&quot;show_links&quot;:null,&quot;feed_url&quot;:null}"></div><div class="digest-post-embed" data-attrs="{&quot;nodeId&quot;:&quot;d45e10da-6e90-44b8-8e74-7aea7049c598&quot;,&quot;caption&quot;:&quot;dbt is a great tool (even after being bought by Fivetran) to create a consistent, reusable, and well-documented codebase of data transformations. After all, there&#8217;s a reason why no other data transformation tool has come close to their success.&quot;,&quot;cta&quot;:&quot;Read full story&quot;,&quot;showBylines&quot;:true,&quot;size&quot;:&quot;sm&quot;,&quot;isEditorNode&quot;:true,&quot;title&quot;:&quot;4 dbt Mistakes to Avoid&quot;,&quot;publishedBylines&quot;:[{&quot;id&quot;:66148605,&quot;name&quot;:&quot;Madison Mae&quot;,&quot;bio&quot;:&quot;analytics engineer and technical writer; making data easy to understand and accessible to anyone! passions include nutrition, fitness, reading, &amp; sewing&quot;,&quot;photo_url&quot;:&quot;https://substackcdn.com/image/fetch/f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F85ad6273-a9b9-4151-b1ee-17bcf78e036b_48x48.png&quot;,&quot;is_guest&quot;:false,&quot;bestseller_tier&quot;:null}],&quot;post_date&quot;:&quot;2025-10-23T17:20:56.883Z&quot;,&quot;cover_image&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/23525f35-38e0-4492-97d1-926dcc0d9f67_1456x1048.jpeg&quot;,&quot;cover_image_alt&quot;:null,&quot;canonical_url&quot;:&quot;https://learnanalyticsengineering.substack.com/p/4-biggest-dbt-mistakes&quot;,&quot;section_name&quot;:null,&quot;video_upload_id&quot;:null,&quot;id&quot;:176852500,&quot;type&quot;:&quot;newsletter&quot;,&quot;reaction_count&quot;:25,&quot;comment_count&quot;:0,&quot;publication_id&quot;:629885,&quot;publication_name&quot;:&quot;Learn Analytics Engineering &quot;,&quot;publication_logo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!CuB0!,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&quot;,&quot;belowTheFold&quot;:false,&quot;youtube_url&quot;:null,&quot;show_links&quot;:null,&quot;feed_url&quot;:null}"></div><div class="digest-post-embed" data-attrs="{&quot;nodeId&quot;:&quot;81972504-3dfd-40b5-b96e-740a5e76f8de&quot;,&quot;caption&quot;:&quot;Data modeling is a foundational skill of any analytics engineer.&quot;,&quot;cta&quot;:&quot;Read full story&quot;,&quot;showBylines&quot;:true,&quot;size&quot;:&quot;sm&quot;,&quot;isEditorNode&quot;:true,&quot;title&quot;:&quot;7 Data Modeling Concepts You Must Know&quot;,&quot;publishedBylines&quot;:[{&quot;id&quot;:66148605,&quot;name&quot;:&quot;Madison Mae&quot;,&quot;bio&quot;:&quot;analytics engineer and technical writer; making data easy to understand and accessible to anyone! passions include nutrition, fitness, reading, &amp; sewing&quot;,&quot;photo_url&quot;:&quot;https://substackcdn.com/image/fetch/f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F85ad6273-a9b9-4151-b1ee-17bcf78e036b_48x48.png&quot;,&quot;is_guest&quot;:false,&quot;bestseller_tier&quot;:null}],&quot;post_date&quot;:&quot;2025-05-08T17:21:57.213Z&quot;,&quot;cover_image&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/41f0103d-3922-4e7b-9355-94b8bdf3684f_1456x1048.jpeg&quot;,&quot;cover_image_alt&quot;:null,&quot;canonical_url&quot;:&quot;https://learnanalyticsengineering.substack.com/p/7-data-modeling-concepts-you-must-1b3&quot;,&quot;section_name&quot;:null,&quot;video_upload_id&quot;:null,&quot;id&quot;:163136795,&quot;type&quot;:&quot;newsletter&quot;,&quot;reaction_count&quot;:27,&quot;comment_count&quot;:0,&quot;publication_id&quot;:629885,&quot;publication_name&quot;:&quot;Learn Analytics Engineering &quot;,&quot;publication_logo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!CuB0!,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&quot;,&quot;belowTheFold&quot;:false,&quot;youtube_url&quot;:null,&quot;show_links&quot;:null,&quot;feed_url&quot;:null}"></div><div class="digest-post-embed" data-attrs="{&quot;nodeId&quot;:&quot;cba3286f-dc42-4d7d-908a-eea103a17e59&quot;,&quot;caption&quot;:&quot;Welcome to the first email of this 6-week series, Data Pipeline Summer! In the next 6 weeks, we will learn how to build a data pipeline from start to finish, using some of the most popular open-source data tools.&quot;,&quot;cta&quot;:&quot;Read full story&quot;,&quot;showBylines&quot;:true,&quot;size&quot;:&quot;sm&quot;,&quot;isEditorNode&quot;:true,&quot;title&quot;:&quot;How to Build an Open-Source Data Pipeline&quot;,&quot;publishedBylines&quot;:[{&quot;id&quot;:66148605,&quot;name&quot;:&quot;Madison Mae&quot;,&quot;bio&quot;:&quot;analytics engineer and technical writer; making data easy to understand and accessible to anyone! passions include nutrition, fitness, reading, &amp; sewing&quot;,&quot;photo_url&quot;:&quot;https://substackcdn.com/image/fetch/f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F85ad6273-a9b9-4151-b1ee-17bcf78e036b_48x48.png&quot;,&quot;is_guest&quot;:false,&quot;bestseller_tier&quot;:null}],&quot;post_date&quot;:&quot;2025-07-31T14:58:13.465Z&quot;,&quot;cover_image&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d00f2c0f-e8bd-4a68-acf9-b6dfe571f8db_1400x1000.jpeg&quot;,&quot;cover_image_alt&quot;:null,&quot;canonical_url&quot;:&quot;https://learnanalyticsengineering.substack.com/p/how-to-build-an-open-source-data&quot;,&quot;section_name&quot;:null,&quot;video_upload_id&quot;:null,&quot;id&quot;:167203391,&quot;type&quot;:&quot;newsletter&quot;,&quot;reaction_count&quot;:26,&quot;comment_count&quot;:3,&quot;publication_id&quot;:629885,&quot;publication_name&quot;:&quot;Learn Analytics Engineering &quot;,&quot;publication_logo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!CuB0!,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&quot;,&quot;belowTheFold&quot;:false,&quot;youtube_url&quot;:null,&quot;show_links&quot;:null,&quot;feed_url&quot;:null}"></div><p></p><p>If you&#8217;re interested in learning more about analytics engineering, <strong><a href="https://madisonmae.gumroad.com/l/learnanalyticsengineering">The ABCs of Analytics Engineering ebook</a></strong> covers all of the major concepts, tools, and skills for succeeding as an analytics engineer. </p><div class="install-substack-app-embed install-substack-app-embed-web" data-component-name="InstallSubstackAppToDOM"><img class="install-substack-app-embed-img" src="https://substackcdn.com/image/fetch/$s_!CuB0!,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"><div class="install-substack-app-embed-text"><div class="install-substack-app-header">Get more from Madison Mae in the Substack app</div><div class="install-substack-app-text">Available for iOS and Android</div></div><a href="https://substack.com/app/app-store-redirect?utm_campaign=app-marketing&amp;utm_content=author-post-insert&amp;utm_source=learnanalyticsengineering" target="_blank" class="install-substack-app-embed-link"><button class="install-substack-app-embed-btn button primary">Get the app</button></a></div>
      <p>
          <a href="https://learnanalyticsengineering.substack.com/p/2025-analytics-engineering-wrapped">
              Read more
          </a>
      </p>
   ]]></content:encoded></item><item><title><![CDATA[My Biggest Lesson of 2025]]></title><description><![CDATA[Why people and your intuition matter more than you think]]></description><link>https://learnanalyticsengineering.substack.com/p/my-biggest-lesson-of-2025</link><guid isPermaLink="false">https://learnanalyticsengineering.substack.com/p/my-biggest-lesson-of-2025</guid><dc:creator><![CDATA[Madison Mae]]></dc:creator><pubDate>Thu, 18 Dec 2025 15:32:17 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/1d6adae6-7a64-4949-8d1c-2b095839b1d7_1456x1048.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Can you believe the year is almost over? What a year 2025 has been! Below, I&#8217;m sharing my biggest career (and personal) lesson of 2025. But first, I wanted to share with you a survey so I can better plan the content and learning resources to come for helping you Learn Analytics Engineering! </p><div class="poll-embed" data-attrs="{&quot;id&quot;:420902}" data-component-name="PollToDOM"></div><div class="poll-embed" data-attrs="{&quot;id&quot;:420904}" data-component-name="PollToDOM"></div><div class="poll-embed" data-attrs="{&quot;id&quot;:420905}" data-component-name="PollToDOM"></div><div class="poll-embed" data-attrs="{&quot;id&quot;:421150}" data-component-name="PollToDOM"></div><h2>What 2025 Taught Me</h2>
      <p>
          <a href="https://learnanalyticsengineering.substack.com/p/my-biggest-lesson-of-2025">
              Read more
          </a>
      </p>
   ]]></content:encoded></item></channel></rss>