<?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[Future Proof Data Science]]></title><description><![CDATA[A weekly newsletter for data scientists who want to stay relevant and grow their careers in the age of AI (and beyond)]]></description><link>https://read.futureproofds.com</link><image><url>https://substackcdn.com/image/fetch/$s_!yGDz!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F87022f87-5553-4f08-b339-8b197aa4e908_1280x1280.png</url><title>Future Proof Data Science</title><link>https://read.futureproofds.com</link></image><generator>Substack</generator><lastBuildDate>Sat, 27 Jun 2026 10:43:16 GMT</lastBuildDate><atom:link href="https://read.futureproofds.com/feed" rel="self" type="application/rss+xml"/><copyright><![CDATA[Andres Vourakis]]></copyright><language><![CDATA[en]]></language><webMaster><![CDATA[futureproofdatascience@substack.com]]></webMaster><itunes:owner><itunes:email><![CDATA[futureproofdatascience@substack.com]]></itunes:email><itunes:name><![CDATA[Andres Vourakis]]></itunes:name></itunes:owner><itunes:author><![CDATA[Andres Vourakis]]></itunes:author><googleplay:owner><![CDATA[futureproofdatascience@substack.com]]></googleplay:owner><googleplay:email><![CDATA[futureproofdatascience@substack.com]]></googleplay:email><googleplay:author><![CDATA[Andres Vourakis]]></googleplay:author><itunes:block><![CDATA[Yes]]></itunes:block><item><title><![CDATA[Testing & Logging: How to Know Your Code Actually Works]]></title><description><![CDATA[Data scientists skip this, engineers don't, and it shows.]]></description><link>https://read.futureproofds.com/p/testing-and-logging-how-to-know-your-code-works</link><guid isPermaLink="false">https://read.futureproofds.com/p/testing-and-logging-how-to-know-your-code-works</guid><dc:creator><![CDATA[Andres Vourakis]]></dc:creator><pubDate>Tue, 23 Jun 2026 13:11:00 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/268604b2-35d2-4f8e-a14a-41862a86997d_1950x1024.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!yLRx!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc4412b4c-e2f0-4d55-92c3-2ae854d4ab3b_1650x866.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!yLRx!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc4412b4c-e2f0-4d55-92c3-2ae854d4ab3b_1650x866.png 424w, https://substackcdn.com/image/fetch/$s_!yLRx!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc4412b4c-e2f0-4d55-92c3-2ae854d4ab3b_1650x866.png 848w, https://substackcdn.com/image/fetch/$s_!yLRx!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc4412b4c-e2f0-4d55-92c3-2ae854d4ab3b_1650x866.png 1272w, https://substackcdn.com/image/fetch/$s_!yLRx!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc4412b4c-e2f0-4d55-92c3-2ae854d4ab3b_1650x866.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!yLRx!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc4412b4c-e2f0-4d55-92c3-2ae854d4ab3b_1650x866.png" width="1456" height="764" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c4412b4c-e2f0-4d55-92c3-2ae854d4ab3b_1650x866.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:764,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:277467,&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;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!yLRx!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc4412b4c-e2f0-4d55-92c3-2ae854d4ab3b_1650x866.png 424w, https://substackcdn.com/image/fetch/$s_!yLRx!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc4412b4c-e2f0-4d55-92c3-2ae854d4ab3b_1650x866.png 848w, https://substackcdn.com/image/fetch/$s_!yLRx!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc4412b4c-e2f0-4d55-92c3-2ae854d4ab3b_1650x866.png 1272w, https://substackcdn.com/image/fetch/$s_!yLRx!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc4412b4c-e2f0-4d55-92c3-2ae854d4ab3b_1650x866.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><blockquote><p>&#128104;&#8205;&#128187; Welcome to the <strong>Engineering Skills for Data Scientists series</strong>, where I&#8217;ll be teaching the engineering skills that quietly separate data scientists who can ship from the ones who can&#8217;t. This is article 2 of 5. You can find the full series <a href="https://read.futureproofds.com/t/engineering-skills-for-data-scientists">here</a>.</p></blockquote><div><hr></div><p><em>Here&#8217;s a question worth asking yourself&#8230;</em></p><p>When was the last time you were genuinely <em>sure</em> your code worked?</p><p>Not &#8220;it ran without errors.&#8221; Not &#8220;the dashboard looked right.&#8221; Not &#8220;my colleague said it looked good.&#8221; Actually sure.</p><p>Most data scientists, if they&#8217;re honest, don&#8217;t operate from that place. They operate from <em>hope</em>. The code seemed to work on the sample I checked. The model trained without crashing. The pipeline ran end-to-end at least once.</p><p>That&#8217;s a fine place to be when you&#8217;re exploring. It&#8217;s a terrible place to be when your code is making decisions in production.</p><p>There are two engineering habits that move you from hoping to knowing:</p><ul><li><p><strong>Testing</strong>: checks your code does what you think it does, <em>before</em> it ships.</p></li><li><p><strong>Logging</strong>: gives you visibility into what your code is doing, <em>after</em> it ships.</p></li></ul><p>Together, they&#8217;re how engineers sleep at night. And they&#8217;re surprisingly underrepresented in most data science workflows, mostly because nobody taught us how.</p><p><em>And to be fair, when you&#8217;re moving fast on analysis, it&#8217;s hard to justify the upfront cost. Until something breaks in production at 2am and you&#8217;re staring at a model that&#8217;s been making wrong predictions for a week.</em></p><p>In this article, I&#8217;ll walk you through both, the practical minimum a data scientist needs.</p><p>We&#8217;ll also look at how to use AI to make adopting these habits significantly cheaper than it used to be, including the specific setup that turns AI from a generic code generator into a competent assistant for your conventions.</p><p>Let&#8217;s get to it!</p><div><hr></div><p><strong>Here&#8217;s what we&#8217;ll cover</strong></p><ul><li><p>Part 1: Testing your code before it ships (and how to use AI to make it cheap)</p></li><li><p>Part 2: Logging what your code does after it ships (and how to use AI to make it cheap)</p></li><li><p>&#127909; <strong>Try it on your own (a short walkthrough + exercises)</strong></p></li><li><p>Why do these two go together</p></li></ul><div><hr></div><h1>Part 1: Testing your code before it ships</h1><p>A test is just a piece of code that checks whether your other code does what you think it does. That&#8217;s it!</p><p>You give it some input, you say &#8220;here&#8217;s what I expect,&#8221; and you let the test tell you if reality matched expectations.</p><p>Now, something you might be wondering about. If you've been writing Python for a while, or you've been around engineers, you've probably heard three terms thrown around: <code>assert</code>, unit test, and <code>pytest</code>. They're related, but they're not the same thing.</p><ul><li><p><code>assert</code> is a Python keyword. It&#8217;s the <em>check</em> itself: &#8220;This better be true, or raise an error.&#8221;</p></li><li><p><strong>Unit test</strong> is the <em>kind of test</em> you&#8217;re writing: one that checks a single function in isolation, with no database, no API calls, no side effects. Just the logic.</p></li><li><p><code>pytest</code> is the <em>runner</em>. It finds your tests, executes them, and reports which passed and failed.</p></li></ul><p>Put them together, and a unit test is: a function that uses <code>assert</code> to check one piece of logic, organized so <code>pytest</code> can find and run it.</p><p>Unit tests are 90% of what you&#8217;ll write as a data scientist. The other kinds (integration tests, end-to-end tests) matter on a bigger scale, but unit tests are where the payoff is highest, so that&#8217;s what we&#8217;ll focus on here.</p><p>But before you can write tests, your code has to be testable. This is the part nobody tells you about.</p><h2>What &#8220;testable&#8221; code looks like</h2><p>Most data science code is written as one long function or notebook cell that does everything: loads the data, transforms it, fits the model, evaluates it, saves the output.</p><p>There&#8217;s nothing wrong with that for exploration. But it&#8217;s almost impossible to test.</p><p>Here&#8217;s a function that&#8217;s hard to test:</p><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;python&quot;,&quot;nodeId&quot;:&quot;f1143008-2778-4cfb-8ba5-4c3c5e138a94&quot;}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-python">def run_churn_analysis():
    df = pd.read_csv("data/customers.csv")
    df = df[df["tenure_days"] &gt;= 30]
    rate = df["churned"].sum() / len(df)
    print(f"Churn rate: {rate:.2%}")
    df.to_csv("data/eligible_customers.csv")</code></pre></div><p>What would you even test? It reads a specific file, mutates it, and writes another specific file. Everything is glued together.</p><p>Here&#8217;s the same logic, refactored to be testable:</p><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;python&quot;,&quot;nodeId&quot;:&quot;417c7760-1b72-40da-b4b0-ff21626b47e3&quot;}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-python">def compute_churn_rate(customers: pd.DataFrame) -&gt; float:
    """Returns the share of customers who churned this month.
    Excludes customers who signed up this month (incomplete tenure).
    """
    eligible = customers[customers["tenure_days"] &gt;= 30]
    if len(eligible) == 0:
        return 0.0
    return eligible["churned"].sum() / len(eligible)</code></pre></div><p>One small function. Takes a DataFrame, returns a number, does one thing with clear business rules: exclude new customers, return the share that churned. Now you can test it independently with whatever data you want, no files, no side effects, no print statements to read.</p><blockquote><p>&#128161; Quick tip: <strong>separate logic from the I/O</strong>. The logic (transforming data, computing metrics, applying business rules) is what you test. The I/O (reading files, writing to databases, calling APIs) sits outside, in glue code that&#8217;s harder to test but doesn&#8217;t need to be tested as carefully.</p></blockquote><h2>Writing your first real test</h2><p>Python&#8217;s built-in testing tool is <a href="https://docs.pytest.org/en/stable/">pytest</a>.</p><p>Install it once with <code>pip install pytest</code>, then write a test in a file that starts with <code>test_</code>:</p><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;python&quot;,&quot;nodeId&quot;:&quot;7047d486-448a-4ef2-9613-c762b28c8418&quot;}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-python"># test_churn.py
import pandas as pd
from my_module import compute_churn_rate

def test_compute_churn_rate_excludes_new_customers():
    df = pd.DataFrame({
        "tenure_days": [45, 60, 10],   # third customer is too new
        "churned": [True, False, True]
    })
    result = compute_churn_rate(df)
    assert result == 0.5  # only 2 eligible customers, 1 churned</code></pre></div><p>Run it from your terminal with <code>pytest</code>. If the function works, the test passes silently. If it doesn&#8217;t, you get a clear error telling you exactly what failed and why.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!g_QK!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1fd10b19-82a3-4a40-a765-a13a3a1d1c89_1672x941.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!g_QK!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1fd10b19-82a3-4a40-a765-a13a3a1d1c89_1672x941.png 424w, https://substackcdn.com/image/fetch/$s_!g_QK!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1fd10b19-82a3-4a40-a765-a13a3a1d1c89_1672x941.png 848w, https://substackcdn.com/image/fetch/$s_!g_QK!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1fd10b19-82a3-4a40-a765-a13a3a1d1c89_1672x941.png 1272w, https://substackcdn.com/image/fetch/$s_!g_QK!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1fd10b19-82a3-4a40-a765-a13a3a1d1c89_1672x941.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!g_QK!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1fd10b19-82a3-4a40-a765-a13a3a1d1c89_1672x941.png" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/1fd10b19-82a3-4a40-a765-a13a3a1d1c89_1672x941.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1350303,&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://read.futureproofds.com/i/201974037?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1fd10b19-82a3-4a40-a765-a13a3a1d1c89_1672x941.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_!g_QK!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1fd10b19-82a3-4a40-a765-a13a3a1d1c89_1672x941.png 424w, https://substackcdn.com/image/fetch/$s_!g_QK!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1fd10b19-82a3-4a40-a765-a13a3a1d1c89_1672x941.png 848w, https://substackcdn.com/image/fetch/$s_!g_QK!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1fd10b19-82a3-4a40-a765-a13a3a1d1c89_1672x941.png 1272w, https://substackcdn.com/image/fetch/$s_!g_QK!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1fd10b19-82a3-4a40-a765-a13a3a1d1c89_1672x941.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><figcaption class="image-caption">Example of running a pytest that passes</figcaption></figure></div><p>That&#8217;s a test. One function, three lines, no ceremony.</p><p>Notice what makes this test actually useful: it pins down a specific business rule (the tenure filter) and a specific behavior (only eligible customers count toward the rate). If someone removes the filter, changes the threshold, or includes everyone in the denominator, the test fails immediately.</p><p>The pattern that holds up across almost any test:</p><ol><li><p><strong>Arrange:</strong> set up the input data</p></li><li><p><strong>Act:</strong> call the function</p></li><li><p><strong>Assert:</strong> check the output is what you expected</p></li></ol><h2>What&#8217;s worth testing</h2><p>Not everything needs a test.</p><p>The right answer is closer to &#8220;test the things that would cause real damage if they broke quietly&#8221;:</p><ul><li><p><strong>Functions that compute metrics</strong> (a churn rate, an ARPU, a conversion). If these are wrong, your decisions are wrong.</p></li><li><p><strong>Feature transformations</strong> that feed into a model. If these are wrong, your predictions are wrong.</p></li><li><p><strong>Business logic</strong> (filtering, deduplication, joining rules). If these are wrong, your downstream analysis is wrong.</p></li><li><p><strong>Edge cases you&#8217;ve already been bitten by</strong>. Once a bug shows up, write a test that would have caught it.</p></li></ul><p>You don&#8217;t need 100% coverage. You need to cover the things that, if wrong, would hurt.</p><h2>Using AI to make testing cheap</h2><p>The reason most data scientists skip testing isn&#8217;t that they don&#8217;t see the value. It&#8217;s the upfront cost. Writing tests for a function you already wrote feels like double work.</p><p>AI changes that calculation, but only if you set it up right.</p><p>Pasting a function into Claude and saying &#8220;write tests for this&#8221; gives you tests. It doesn&#8217;t give you <em>good</em> tests.</p><p>The single highest-leverage move is setting up a project-level instruction file. Most AI coding tools (Claude Code, Cursor, Windsurf) read a file called <code>CLAUDE.md</code> or <code>AGENTS.md</code> in your project root and load it into every session automatically.</p><p>That&#8217;s where you put your testing conventions.</p><p>A useful starter:</p><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;markdown&quot;,&quot;nodeId&quot;:&quot;3dc82701-f10f-42c9-9a82-969588007915&quot;}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-markdown">## Testing
- Use pytest. Run with `pytest tests/ -v`.
- Tests live in `tests/`, matching the structure of `src/`.
- Fixtures go in `conftest.py`.
- Use `unittest.mock` for mocking. Never call real APIs in tests.

## Testing rules
- Never modify existing tests to make them pass. Fix the implementation instead.
- Write the failing test before fixing any reported bug.
- Mock network calls and time. Never use real credentials.
- Aim to cover the logic that, if wrong, would hurt: metrics, transformations, business rules.</code></pre></div><p>With this in place, AI defaults to your standards instead of generic patterns. The single most important rule is the first one under &#8220;Testing rules.&#8221; Without it, AI will quietly change your tests to make them pass instead of fixing the actual bug, and you&#8217;ll lose the entire point of testing.</p><p>A few prompts that work well once the conventions are set:</p><ul><li><p><em>&#8220;Write pytest tests for this function. Cover the happy path and at least three edge cases.&#8221;</em> You get a working test file in seconds.</p></li><li><p><em>&#8220;What inputs could break this function?&#8221;</em> This is genuinely useful, even if you don&#8217;t use the tests it writes. AI is good at surfacing edge cases you didn&#8217;t think of.</p></li><li><p><em>&#8220;This function is too tangled to test. Refactor it so the logic is separable from the I/O.&#8221;</em> Then you write tests against the refactored version.</p></li></ul><blockquote><p>&#128161; AI will happily generate tests that pass without actually testing anything meaningful. Tests that just assert the function returns <em>something</em>, or that mock so much that nothing real gets verified. Read what it gives you. The skill isn&#8217;t getting AI to write tests, it&#8217;s knowing which tests are worth keeping (that&#8217;s still up to the human to decide).</p></blockquote><div><hr></div><h1>Part 2: Logging what your code does after it ships</h1><p>Testing catches problems <em>before</em> your code runs in production. But once it&#8217;s out there, you need a different tool: logging.</p><p>Logging is how your code tells you what it&#8217;s doing while it runs. Without it, when something goes wrong, you&#8217;re guessing. With it, you can actually answer questions like: </p><ul><li><p><em>When did this start failing?</em></p></li><li><p><em>What was the input?</em></p></li><li><p><em>Where in the pipeline did it break?</em></p></li></ul><h2>Why <code>print()</code> doesn&#8217;t cut it</h2><p>Every data scientist&#8217;s first instinct is to debug with <code>print()</code>. It works fine in a notebook. You see the output immediately, you check it, you move on.</p><p>In production, <code>print()</code> falls apart for three reasons:</p><ul><li><p><strong>Nobody&#8217;s watching the output: </strong>Your code runs at 3am on a server you&#8217;ve never logged into. There&#8217;s no one to read the print statements.</p></li><li><p><strong>The output disappears:</strong> Print goes to stdout. If the process crashes or stdout isn&#8217;t captured, the output is gone.</p></li><li><p><strong>Every message looks the same:</strong> A print is a print. There&#8217;s no way to say &#8220;this one is important, this one is just debug noise.&#8221;</p></li></ul><p>What you need is something that records what your code is doing, persists it somewhere you can read later, and lets you separate the important from the routine. That&#8217;s logging.</p><h2>What logging actually does</h2><p>Python has a built-in <code>logging</code> module. The minimum setup:</p><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;python&quot;,&quot;nodeId&quot;:&quot;753f26b4-a6b3-410f-901e-52d93550e1b7&quot;}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-python">import logging

logging.basicConfig(level=logging.INFO)
logger = logging.getLogger(__name__)

logger.info("Pipeline started")
logger.warning("Found 12 rows with missing values")
logger.error("Failed to load model from S3")
</code></pre></div><p>Three things to notice:</p><ul><li><p><code>logger.info</code><strong>, </strong><code>logger.warning</code><strong>, </strong><code>logger.error</code> are <em>levels</em>. They let you mark how important each message is.</p></li><li><p>The messages go wherever you configured them to go (the console by default, but easily a file or a log aggregator like Datadog).</p></li><li><p>You can filter by level when you read them later. Show me only the errors, or only the warnings and errors.</p></li></ul><h2>The five logging levels (and when to use them)</h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!KaAK!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd870d912-b170-49ab-8fd2-d6f2072cd396_1672x941.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!KaAK!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd870d912-b170-49ab-8fd2-d6f2072cd396_1672x941.png 424w, https://substackcdn.com/image/fetch/$s_!KaAK!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd870d912-b170-49ab-8fd2-d6f2072cd396_1672x941.png 848w, https://substackcdn.com/image/fetch/$s_!KaAK!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd870d912-b170-49ab-8fd2-d6f2072cd396_1672x941.png 1272w, https://substackcdn.com/image/fetch/$s_!KaAK!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd870d912-b170-49ab-8fd2-d6f2072cd396_1672x941.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!KaAK!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd870d912-b170-49ab-8fd2-d6f2072cd396_1672x941.png" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d870d912-b170-49ab-8fd2-d6f2072cd396_1672x941.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1626461,&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://read.futureproofds.com/i/201974037?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd870d912-b170-49ab-8fd2-d6f2072cd396_1672x941.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_!KaAK!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd870d912-b170-49ab-8fd2-d6f2072cd396_1672x941.png 424w, https://substackcdn.com/image/fetch/$s_!KaAK!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd870d912-b170-49ab-8fd2-d6f2072cd396_1672x941.png 848w, https://substackcdn.com/image/fetch/$s_!KaAK!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd870d912-b170-49ab-8fd2-d6f2072cd396_1672x941.png 1272w, https://substackcdn.com/image/fetch/$s_!KaAK!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd870d912-b170-49ab-8fd2-d6f2072cd396_1672x941.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><figcaption class="image-caption">Example of logging on the CLI</figcaption></figure></div><ul><li><p><strong>DEBUG</strong>: noisy details only useful when actively debugging. Variable values, intermediate states.</p></li><li><p><strong>INFO</strong>: normal events you want a record of. Pipeline started, file loaded, model saved.</p></li><li><p><strong>WARNING</strong>: something unexpected, but not fatal. Missing values, fallback to default, slow query.</p></li><li><p><strong>ERROR</strong>: something failed. An exception, a request that didn&#8217;t go through, a metric that couldn&#8217;t be computed.</p></li><li><p><strong>CRITICAL</strong>: the system is broken. Database down, model file corrupted, pipeline can&#8217;t continue.</p></li></ul><blockquote><p>&#128161; If you only remember two levels, remember <code>INFO</code> (things I want a record of) and <code>ERROR</code> (things that broke). That covers most of what you&#8217;ll need.</p></blockquote><h2>How to log well</h2><p>The mistake most beginners make is logging things that <em>feel</em> important but don&#8217;t help you debug.</p><p>Things like <code>"got here"</code> or <code>"step 3"</code>. These tell you the code ran, but nothing else.</p><p>Useful log messages give you the <strong>state that would help you debug</strong>:</p><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;python&quot;,&quot;nodeId&quot;:&quot;3af223ec-0ca8-4af0-8374-8a2497c8b7e2&quot;}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-python"># Not useful
logger.info("Starting model training")

# Useful
logger.info(f"Starting model training with {len(X_train)} samples and {X_train.shape[1]} features")</code></pre></div><p>The second one tells you, six months later, when something looks off, whether your training data was the size you expected.</p><p>A few more rules of thumb:</p><ul><li><p><strong>Log the inputs and outputs at boundaries:</strong> When data enters or leaves your pipeline, log enough that you can reconstruct what happened.</p></li><li><p><strong>Log the metric values for things you care about:</strong> Latency, row counts, prediction distributions.</p></li><li><p><strong>Log exceptions with </strong><code>logger.exception()</code> inside an <code>except</code> block. It captures the full traceback automatically.</p></li></ul><h2>Where logging fits in your day-to-day</h2><p>A few concrete places this pays off:</p><ul><li><p><strong>Training pipelines</strong>: log the dataset size, feature stats, hyperparameters, and final metrics. When a model performs worse than the last one, you can trace what changed.</p></li><li><p><strong>Inference endpoints</strong>: log request payloads, prediction outputs, and latency. When predictions start looking weird, you have a record.</p></li><li><p><strong>LLM-powered systems</strong>: log the prompts, token counts, and any validation failures (this is where logging plays nicely with Pydantic from last week).</p></li></ul><h2>Where logging fits in the bigger picture</h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!LQqF!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F21052b1f-bbf6-450e-b563-9adc6108f13e_1469x856.webp" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!LQqF!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F21052b1f-bbf6-450e-b563-9adc6108f13e_1469x856.webp 424w, https://substackcdn.com/image/fetch/$s_!LQqF!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F21052b1f-bbf6-450e-b563-9adc6108f13e_1469x856.webp 848w, https://substackcdn.com/image/fetch/$s_!LQqF!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F21052b1f-bbf6-450e-b563-9adc6108f13e_1469x856.webp 1272w, https://substackcdn.com/image/fetch/$s_!LQqF!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F21052b1f-bbf6-450e-b563-9adc6108f13e_1469x856.webp 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!LQqF!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F21052b1f-bbf6-450e-b563-9adc6108f13e_1469x856.webp" width="1456" height="848" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/21052b1f-bbf6-450e-b563-9adc6108f13e_1469x856.webp&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:848,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:149072,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/webp&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://read.futureproofds.com/i/201974037?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F21052b1f-bbf6-450e-b563-9adc6108f13e_1469x856.webp&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!LQqF!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F21052b1f-bbf6-450e-b563-9adc6108f13e_1469x856.webp 424w, https://substackcdn.com/image/fetch/$s_!LQqF!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F21052b1f-bbf6-450e-b563-9adc6108f13e_1469x856.webp 848w, https://substackcdn.com/image/fetch/$s_!LQqF!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F21052b1f-bbf6-450e-b563-9adc6108f13e_1469x856.webp 1272w, https://substackcdn.com/image/fetch/$s_!LQqF!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F21052b1f-bbf6-450e-b563-9adc6108f13e_1469x856.webp 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><figcaption class="image-caption">LLM tracing with LangFuse</figcaption></figure></div><p>One thing worth mentioning, since it&#8217;ll come up the moment you start working at scale: <strong>logging is one piece of a broader practice called observability.</strong></p><p>Observability has three pillars:</p><ul><li><p><strong>Logs</strong> are what we just covered, individual messages your code writes out as it runs.</p></li><li><p><strong>Metrics</strong> are numerical measurements over time (latency, error rate, prediction volume).</p></li><li><p><strong>Traces</strong> show the full path of a request through your system, especially useful when one call triggers many others (think LLM agents making multiple tool calls, or a request that touches three microservices).</p></li></ul><p>For most data scientists getting started, logging is enough.</p><p>But once you&#8217;re working with multi-step LLM agents, distributed pipelines, or anything where one request fans out into many, tracing becomes the more useful tool.</p><p>Tools like MLflow (for ML experiments and LLM traces), OpenTelemetry (the underlying standard), and platforms like LangSmith or Arize are where you&#8217;d go next.</p><p>You don&#8217;t need any of that yet. Logging is the foundation. Just know it&#8217;s the entry point, not the destination.</p><h2>Using AI to make logging cheap</h2><p>Same pattern as with testing: setting up your project&#8217;s instruction file is what makes AI actually useful here.</p><p>A useful starter for the logging section of your <code>CLAUDE.md</code>:</p><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;markdown&quot;,&quot;nodeId&quot;:&quot;0acf3224-7cfa-44c7-aba1-b4e9c56e5c3e&quot;}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-markdown">## Logging
- Use Python's built-in `logging` module. Never use `print()` for anything beyond ad-hoc debugging.
- Logger setup goes in a central module (`logging_config.py`), not scattered through the codebase.
- Format: plain text in development, structured JSON in production.
- Use `logger.exception()` inside `except` blocks to capture full tracebacks.

## Logging rules
- Never log credentials, API keys, passwords, or PII. Redact before logging.
- Log enough state to debug, not so much that logs become noise.
- Use INFO for normal events, WARNING for unexpected-but-recoverable, ERROR for failures.</code></pre></div><p>The PII rule matters more than it looks.</p><p>AI doesn&#8217;t always know what&#8217;s sensitive in your domain. Without an explicit rule, it will happily log full user objects, full request bodies, and full responses, including the parts you really don&#8217;t want sitting in a log aggregator.</p><p>A few prompts that work well:</p><ul><li><p><em>&#8220;Add logging to this function at appropriate levels. Log enough state that I could debug this in production. Don&#8217;t log any user PII.&#8221;</em> Specifying the constraint matters.</p></li><li><p><em>&#8220;Review these log statements. What&#8217;s missing that I&#8217;d actually want when debugging this in production?&#8221;</em> Useful for tightening up existing code.</p></li><li><p><em>&#8220;This function uses </em><code>print()</code><em> throughout. Replace each one with the appropriate logging call.&#8221;</em> Quick win for legacy code you&#8217;re cleaning up.</p></li></ul><blockquote><p>&#128161; AI tends to generate logs that look impressive but don&#8217;t actually help you debug. Lots of <code>logger.info("Starting X")</code> and <code>logger.info("Finished X")</code> without any of the <em>state</em> you&#8217;d actually want when something goes wrong. When you review what it produces, ask yourself: <em>if this code failed at 3am, would these logs help me figure out why?</em> If not, push for more specific state.</p></blockquote><h1>Try it on your own</h1><p>Reading about testing and logging gets you halfway there. The other half is feeling what it&#8217;s like to actually do it: watching a test catch a bug you introduced, seeing logs tell you exactly what your code was doing.</p><p>I put together a short <a href="https://colab.research.google.com/drive/1H0tw_QTU2yQJ0pulLbMTWtfxYmlOFKdo?usp=sharing">Google Colab notebook</a> with a few examples to work through. You&#8217;ll write your first pytest test, watch it catch a bug, and replace <code>print()</code> with proper logging.</p><p>Nothing heavy, maybe 15 minutes.</p><p>If you&#8217;d like a guided walkthrough, I also recorded a short video covering the same examples.</p><div class="native-video-embed" data-component-name="VideoPlaceholder" data-attrs="{&quot;mediaUploadId&quot;:&quot;1e7e4ff5-2d4b-4ea6-a45e-1c27c3a9f0b8&quot;,&quot;duration&quot;:null}"></div><blockquote><p>&#128161; Once you&#8217;ve done the notebook, pick one script you&#8217;ve already written and apply both habits to it. Replace one <code>print()</code> with a <code>logger.info()</code>. Refactor one function to be testable, and write one test for it. That&#8217;s the move that makes it stick.</p></blockquote><h1>Final thoughts</h1><p>The reason these two habits are so underrated isn&#8217;t that they&#8217;re hard.</p><p>It&#8217;s that they don&#8217;t feel like the &#8220;interesting&#8221; parts of data science work. Testing isn&#8217;t modeling. Logging isn&#8217;t analysis. Neither one shows up in a portfolio.</p><p>But they&#8217;re the difference between code you can trust and code you can only hope works. And once you&#8217;re shipping things real people depend on, that difference becomes everything.</p><div><hr></div><h2>A couple of other great resources:</h2><ul><li><p><strong>&#127909; Want to follow along on YouTube?</strong> I just launched a <a href="https://www.youtube.com/@andresvourakis688">channel</a> for data scientists. Subscribe, first video drops soon.</p></li><li><p>&#129309; <strong>Want to connect?</strong> Find me on <a href="https://www.linkedin.com/in/andresvourakis/">LinkedIn</a>, where I share more on data science careers and the AI shift.</p></li></ul><div><hr></div><p><em>Thank you for reading! </em>And stay tuned for next week&#8217;s article in the <em>Engineering Skills for Data Scientists</em> series.</p><p><em>- Andres Vourakis</em></p><div><hr></div><p>Before you go, please hit the like &#10084;&#65039; button at the bottom of this email to help support me. It truly makes a difference!</p>]]></content:encoded></item><item><title><![CDATA[Pydantic: Data Validation That Spans MLOps and LLMOps]]></title><description><![CDATA[Start writing data science code that holds up in production]]></description><link>https://read.futureproofds.com/p/pydantic-data-validation-for-mlops-llmops</link><guid isPermaLink="false">https://read.futureproofds.com/p/pydantic-data-validation-for-mlops-llmops</guid><dc:creator><![CDATA[Andres Vourakis]]></dc:creator><pubDate>Tue, 16 Jun 2026 12:31:00 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/106cdce7-e5b0-4bba-8014-5b8f13bfb160_1500x788.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!MVQ0!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff8c3019f-1b29-4063-ab66-2b0dbaae62b5_1650x866.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!MVQ0!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff8c3019f-1b29-4063-ab66-2b0dbaae62b5_1650x866.png 424w, https://substackcdn.com/image/fetch/$s_!MVQ0!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff8c3019f-1b29-4063-ab66-2b0dbaae62b5_1650x866.png 848w, https://substackcdn.com/image/fetch/$s_!MVQ0!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff8c3019f-1b29-4063-ab66-2b0dbaae62b5_1650x866.png 1272w, https://substackcdn.com/image/fetch/$s_!MVQ0!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff8c3019f-1b29-4063-ab66-2b0dbaae62b5_1650x866.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!MVQ0!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff8c3019f-1b29-4063-ab66-2b0dbaae62b5_1650x866.png" width="1456" height="764" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/f8c3019f-1b29-4063-ab66-2b0dbaae62b5_1650x866.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:764,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:277467,&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://read.futureproofds.com/i/201700088?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff8c3019f-1b29-4063-ab66-2b0dbaae62b5_1650x866.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_!MVQ0!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff8c3019f-1b29-4063-ab66-2b0dbaae62b5_1650x866.png 424w, https://substackcdn.com/image/fetch/$s_!MVQ0!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff8c3019f-1b29-4063-ab66-2b0dbaae62b5_1650x866.png 848w, https://substackcdn.com/image/fetch/$s_!MVQ0!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff8c3019f-1b29-4063-ab66-2b0dbaae62b5_1650x866.png 1272w, https://substackcdn.com/image/fetch/$s_!MVQ0!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff8c3019f-1b29-4063-ab66-2b0dbaae62b5_1650x866.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><blockquote><p>&#128104;&#8205;&#128187; Welcome to the <strong>Engineering Skills for Data Scientists series</strong>, where I'll be teaching the engineering skills that quietly separate data scientists who can ship from the ones who can't. This is article 1 of 5. You can find the full series <a href="https://read.futureproofds.com/t/engineering-skills-for-data-scientists">here</a>.</p></blockquote><div><hr></div><p><em>You&#8217;ve probably seen this too&#8230;</em></p><p>Data scientists are shipping more code into production than ever before.</p><ul><li><p>On one side, the classic ML lane: pipelines, model serving, feature stores.</p></li><li><p>On the other, the LLM lane: agents, structured outputs, tool calling, retrieval systems.</p></li></ul><p>Both are growing fast, and more data scientists are expected to work in at least one of them.</p><p>Of all the challenges these two lanes share, one of the most underrated is the simplest: <strong>data showing up in shapes your code wasn&#8217;t ready for.</strong></p><ul><li><p>A column that changed type upstream.</p></li><li><p>An LLM that returned a field your code didn&#8217;t expect.</p></li><li><p>A request payload missing a key.</p></li></ul><p>None of these are rare failures. They&#8217;re the ones that quietly cause the most pain in production, and most data scientists don&#8217;t have a systematic way to handle them.</p><p><em>And to be fair, unless you come from a CS background, you probably never learned it, and you didn&#8217;t need to, until now.</em></p><p><strong>Pydantic</strong> is the Python library that makes it cheap to learn, and learning this engineering habit will pay off in everything you ship from here on.</p><p>In this article, I&#8217;ll show you how to get started</p><p>Let&#8217;s get to it!</p><div><hr></div><p><strong>Here&#8217;s what we&#8217;ll cover</strong></p><ul><li><p>Why &#8220;boundary problems&#8221; are the silent killers in production</p></li><li><p>What Pydantic actually does</p></li><li><p>Where Pydantic fits in LLMOps (the schema-driven approach to LLM outputs)</p></li><li><p>Where Pydantic fits in MLOps (validating requests at your model endpoint)\</p></li><li><p>&#127909; <strong>Try Pydantic on your own (a short video + Colab notebook)</strong></p></li><li><p>Why this skill compounds across everything you ship</p></li></ul><div><hr></div><h1>Why your data validation falls short</h1><p>Here&#8217;s a pattern that shows up in most production code written by data scientists:</p><p>Data comes in, gets passed through several transformations, and somewhere deep inside the pipeline (or worse, inside the model itself), something breaks. </p><ul><li><p>A missing key (<code>KeyError</code>).</p></li><li><p>A value that came in as the wrong type (a number stored as a string, a float where you expected an integer).</p></li><li><p>A silent data type conversion that doesn't crash but produces wrong numbers downstream.</p></li></ul><p>The instinct most data scientists have is to add defensive checks: an <code>assert</code> here, a <code>try/except</code> there, a quick <code>if "field" in data</code> somewhere. It feels like good engineering, but honestly, it falls short.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!e0Hh!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F18278405-ce22-4ac4-a439-7be848b72250_3936x2624.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!e0Hh!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F18278405-ce22-4ac4-a439-7be848b72250_3936x2624.jpeg 424w, https://substackcdn.com/image/fetch/$s_!e0Hh!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F18278405-ce22-4ac4-a439-7be848b72250_3936x2624.jpeg 848w, https://substackcdn.com/image/fetch/$s_!e0Hh!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F18278405-ce22-4ac4-a439-7be848b72250_3936x2624.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!e0Hh!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F18278405-ce22-4ac4-a439-7be848b72250_3936x2624.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!e0Hh!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F18278405-ce22-4ac4-a439-7be848b72250_3936x2624.jpeg" width="1456" height="971" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/18278405-ce22-4ac4-a439-7be848b72250_3936x2624.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:971,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:547979,&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://read.futureproofds.com/i/201700088?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F18278405-ce22-4ac4-a439-7be848b72250_3936x2624.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_!e0Hh!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F18278405-ce22-4ac4-a439-7be848b72250_3936x2624.jpeg 424w, https://substackcdn.com/image/fetch/$s_!e0Hh!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F18278405-ce22-4ac4-a439-7be848b72250_3936x2624.jpeg 848w, https://substackcdn.com/image/fetch/$s_!e0Hh!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F18278405-ce22-4ac4-a439-7be848b72250_3936x2624.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!e0Hh!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F18278405-ce22-4ac4-a439-7be848b72250_3936x2624.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><figcaption class="image-caption">Photo by <a href="https://unsplash.com/@sambourke?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText">Samuel Bourke</a></figcaption></figure></div><p>The problem isn&#8217;t that you didn&#8217;t add enough checks. The problem is that the checks live in the wrong place. They&#8217;re scattered throughout the code, which means:</p><ul><li><p>You validate the same thing in multiple places (or worse, inconsistently)</p></li><li><p>When something does fail, you find out three steps deep into your pipeline instead of at the entry point</p></li><li><p>Bad data has already corrupted your state by the time you notice</p></li></ul><p>The fix isn&#8217;t more checks. It&#8217;s moving validation to <strong>the boundary</strong>: the moment data enters your code, before anything else touches it. Define the shape you expect, validate against it once, and from that point on, you can trust what you&#8217;re working with.</p><p>That&#8217;s schema-driven design. And it applies whether the data is coming from an LLM, a feature store, an API request, or a row in a database.</p><h2>Two half-measures that don&#8217;t actually solve the problem</h2><p>If you&#8217;ve ever tried to do this, you&#8217;ve probably reached for one of two tools that <em>look</em> like they solve it. Neither actually does.</p><h3>Plain dicts: no schema, no safety</h3><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;python&quot;,&quot;nodeId&quot;:&quot;ccb10a2b-ccd2-4eed-b092-1cd42eb298c0&quot;}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-python"># Whatever the LLM returns, you just hope it's right
ticket = {
    "title": "Login broken",
    "priority": "high",
    "user_id": 42
}

# Nothing stops this from happening:
ticket = {
    "titel": "Login broken",       # typo
    "priority": "super urgent",    # invalid value
    "user_id": "forty-two"         # wrong type
}
# Code downstream will break, silently or loudly.</code></pre></div><p>You parse whatever comes in into a dictionary and hope it&#8217;s right. There&#8217;s no enforcement at all. A typo&#8217;d key, an invalid value, or a wrong type all flow through silently until something downstream breaks.</p><h3>TypedDict: annotation only, no runtime check</h3><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;python&quot;,&quot;nodeId&quot;:&quot;84a7f927-407b-4efd-bb0b-2b187f8cb80e&quot;}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-python">from typing import TypedDict, Literal

class Ticket(TypedDict):
    title: str
    priority: Literal["low", "medium", "high"]
    user_id: int

# IDE/type-checker warns you. Python at runtime does not.
ticket: Ticket = {
    "title": "Login broken",
    "priority": "super urgent",   # type checker complains, runtime doesn't
    "user_id": "forty-two"        # same, runtime accepts it
}</code></pre></div><p><code>TypedDict</code> lets you describe the shape with type hints. It feels safer because your IDE will warn you about mistakes you make in code <em>you</em> wrote yourself. But when the code actually runs, Python doesn&#8217;t enforce it. If the data coming in doesn&#8217;t match the shape, <code>TypedDict</code> won&#8217;t catch it.</p><blockquote><p>&#128161; What both of these miss is the part that matters: validation has to actually happen when the code runs, not just when you&#8217;re editing it. That&#8217;s the part that&#8217;s hard to get right by hand, and it&#8217;s what makes a real data validation library worth the small upfront cost.</p></blockquote><h1>What Pydantic actually is</h1><p><a href="https://pydantic.dev/docs/validation/latest/get-started">Pydantic</a> is the most popular <strong>data validation</strong> library in Python.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Yku2!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe4947ea7-e3d3-43d6-a9fc-f86f2b1335c1_1144x392.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Yku2!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe4947ea7-e3d3-43d6-a9fc-f86f2b1335c1_1144x392.png 424w, https://substackcdn.com/image/fetch/$s_!Yku2!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe4947ea7-e3d3-43d6-a9fc-f86f2b1335c1_1144x392.png 848w, https://substackcdn.com/image/fetch/$s_!Yku2!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe4947ea7-e3d3-43d6-a9fc-f86f2b1335c1_1144x392.png 1272w, https://substackcdn.com/image/fetch/$s_!Yku2!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe4947ea7-e3d3-43d6-a9fc-f86f2b1335c1_1144x392.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Yku2!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe4947ea7-e3d3-43d6-a9fc-f86f2b1335c1_1144x392.png" width="1144" height="392" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/e4947ea7-e3d3-43d6-a9fc-f86f2b1335c1_1144x392.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:392,&quot;width&quot;:1144,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:57350,&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://read.futureproofds.com/i/201700088?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3b99254a-23f1-4544-976b-9fc19861717e_1200x630.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_!Yku2!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe4947ea7-e3d3-43d6-a9fc-f86f2b1335c1_1144x392.png 424w, https://substackcdn.com/image/fetch/$s_!Yku2!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe4947ea7-e3d3-43d6-a9fc-f86f2b1335c1_1144x392.png 848w, https://substackcdn.com/image/fetch/$s_!Yku2!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe4947ea7-e3d3-43d6-a9fc-f86f2b1335c1_1144x392.png 1272w, https://substackcdn.com/image/fetch/$s_!Yku2!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe4947ea7-e3d3-43d6-a9fc-f86f2b1335c1_1144x392.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>The idea is simple: you describe the shape of the data you're expecting, and Pydantic checks every piece of incoming data against that description. If something doesn't match, you get a clear error right away, before the bad data has a chance to break anything downstream.</p><p>You describe the shape using <strong>type hints</strong>, the same <code>: str</code>, <code>: int</code>, <code>: float</code> annotations you&#8217;ve probably already seen in Python code. Pydantic just makes those annotations <em>enforced</em> when your code actually runs, instead of being suggestions your IDE shows you.</p><p>Here's what that looks like:</p><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;python&quot;,&quot;nodeId&quot;:&quot;6312da22-a31f-472c-a993-f6dcc5940525&quot;}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-python">from pydantic import BaseModel
from typing import Literal

class Ticket(BaseModel):
    title: str
    priority: Literal["low", "medium", "high"]
    user_id: int</code></pre></div><p>That class is now a <strong>contract</strong>. Anything that claims to be a <code>Ticket</code> must have a string title, a priority that's one of three values, and an integer <code>user_id</code>. Pass in anything that doesn't match, and Pydantic raises an error pointing at exactly what's wrong.</p><p>You describe what good data looks like, and Pydantic tells you when something doesn't fit.</p><p>But now, let&#8217;s see how we leverage it across different use cases.</p><h1>How to use Pydantic in LLMOps</h1><p>Whenever you ask an LLM to return data your code is going to use, you&#8217;re stepping into the same boundary problem we just talked about.</p><p>Say you&#8217;re using an LLM to tag support tickets with a priority level. You want it to return something like:</p><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;python&quot;,&quot;nodeId&quot;:&quot;66834de3-9ceb-42c3-980b-260ad9e01d02&quot;}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-python">{"title": "Login broken", "priority": "high", "user_id": 42}</code></pre></div><p>Most of the time it will. But not always. Sometimes the model might:</p><ul><li><p>Drop a required field</p></li><li><p>Add an extra one you didn&#8217;t ask for</p></li><li><p>Return <code>"42"</code> (a string) where you expected <code>42</code> (a number)</p></li><li><p>Pick a priority value you didn&#8217;t define (like <code>"super urgent"</code> instead of <code>"low"</code>, <code>"medium"</code>, or <code>"high"</code>)</p></li><li><p>Misspell a key (<code>"titel"</code> instead of <code>"title"</code>)</p></li></ul><p>In development, with a few test prompts, you might never see it happen. In production, with thousands of requests, you absolutely will.</p><p>This is where Pydantic earns its place. You reuse the same <code>Ticket</code> model from earlier and let it validate every LLM response before your code touches it:</p><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;python&quot;,&quot;nodeId&quot;:&quot;302911c6-27f3-490e-b31b-12a887b33465&quot;}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-python">from pydantic import ValidationError

raw = call_llm_to_tag_ticket(message)  # returns a dict

try:
    ticket = Ticket(**raw)
    # safe to use: ticket.title, ticket.priority, ticket.user_id
except ValidationError as e:
    # log it, retry the call, or fall back gracefully
    handle_bad_response(e)</code></pre></div><p>The downstream code never sees malformed data.</p><p>Either it gets a valid <code>Ticket</code> object it can trust, or it gets a clear exception pointing at exactly what was wrong with the LLM's response.</p><h2>The bonus: Pydantic also tells the LLM what shape to return</h2><p>Here&#8217;s the part that earns Pydantic its place in LLMOps specifically.</p><p>The same class <code>Ticket</code> class you use to validate the response can be turned into a <strong>JSON Schema</strong>: a description of the shape, written in a format that LLM providers like OpenAI, Anthropic, and Google understand.</p><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;json&quot;,&quot;nodeId&quot;:&quot;b2cd8bd5-15e5-4f17-87a8-a736928c7666&quot;}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-json">{
  "title": "Ticket",
  "type": "object",
  "properties": {
    "title": { "type": "string" },
    "priority": { "type": "string", "enum": ["low", "medium", "high"] },
    "user_id": { "type": "integer" }
  },
  "required": ["title", "priority", "user_id"]
}</code></pre></div><p>If you&#8217;ve worked with <a href="https://developers.openai.com/api/docs/guides/function-calling">OpenAI function calling</a>, Anthropic tool use, or any provider&#8217;s structured outputs feature, you&#8217;ve already used JSON Schema, even if you didn&#8217;t call it that. It&#8217;s the format these APIs use to tell the model what shape to return.</p><p>You send that schema to the model along with your prompt, and the provider constrains the output to match it. So Pydantic ends up working on both sides:</p><ul><li><p><strong>On the way out</strong>: it tells the LLM provider exactly what shape to enforce.</p></li><li><p><strong>On the way back</strong>: it validates the response before your code uses it.</p></li></ul><p>One source of truth. Enforced from both directions.</p><blockquote><p>&#128161; The pattern: anywhere an LLM&#8217;s output meets your code, define the expected shape explicitly, and validate against it. Don&#8217;t trust the model to follow instructions perfectly. It won&#8217;t.</p></blockquote><h1>How to use Pydantic in MLOps</h1><p>The same habit applies on the other side of your work: classic ML in production.</p><p>The most common place data scientists hit this is at the <strong>model serving endpoint</strong>. You&#8217;ve trained a model. You wrap it in FastAPI (or similar). A client sends a prediction request, your endpoint passes the features to the model, and you return a prediction.</p><p>The naive version looks something like this:</p><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;python&quot;,&quot;nodeId&quot;:&quot;37d7c329-72c0-47c3-96a3-036d330a190b&quot;}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-python">@app.post("/predict")
def predict(request: dict):
    features = [request["age"], request["income"], request["tenure"]]
    prediction = model.predict([features])
    return {"prediction": prediction[0]}</code></pre></div><p>This works until it doesn&#8217;t.</p><p>A client sends <code>age</code> as a string instead of a number. A field is missing. A new field is added that your model wasn&#8217;t trained on. Each of these will either crash deep inside your model code, or worse, produce a silently wrong prediction because Python coerced something it shouldn&#8217;t have.</p><p>With Pydantic, the contract sits at the endpoint:</p><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;python&quot;,&quot;nodeId&quot;:&quot;2e637344-0f0d-41c8-b961-f086f51d7ae5&quot;}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-python">from pydantic import BaseModel

class PredictionRequest(BaseModel):
    age: int
    income: float
    tenure: int

@app.post("/predict")
def predict(request: PredictionRequest):
    features = [request.age, request.income, request.tenure]
    prediction = model.predict([features])
    return {"prediction": prediction[0]}</code></pre></div><p>Now, any request that doesn&#8217;t match the contract is rejected before your model ever sees it. The client gets a clear <code>422 Unprocessable Entity</code> with the specific field that failed validation. Your model code stays clean because it only ever runs on validated inputs.</p><blockquote><p>&#128161; By the way, FastAPI integrates with Pydantic natively, so this isn&#8217;t extra work. You&#8217;re already writing the function signature. Adding the type just turns the parameter into a validated contract.</p></blockquote><p>The same pattern applies anywhere data enters your code:</p><ul><li><p>Pipeline step receiving features from upstream</p></li><li><p>Configuration loaded from a YAML file</p></li><li><p>Data read from a feature store before being passed to a model</p></li><li><p>Request payloads at any API endpoint</p></li></ul><p>Wherever there&#8217;s a boundary, there&#8217;s a contract worth enforcing.</p><h1>Try Pydantic on your own</h1><p>Reading about Pydantic gets you halfway there. The other half is feeling what it&#8217;s like when validation actually catches something for you.</p><p>I put together a short <a href="https://colab.research.google.com/drive/1LCLVKS5a0PoxRHbge7lGDxv2St6QJwqz#scrollTo=8735a5d8">Google Colab notebook</a> with a few examples to work through. You&#8217;ll see Pydantic validate good input, catch bad input, and generate a JSON Schema you could send to an LLM provider. Nothing heavy, maybe 15 minutes.</p><p>If you&#8217;d like a guided walkthrough, I also recorded a short video covering the same examples.</p><div class="native-video-embed" data-component-name="VideoPlaceholder" data-attrs="{&quot;mediaUploadId&quot;:&quot;8b56c6bd-761c-4225-a091-e6441e12eff7&quot;,&quot;duration&quot;:null}"></div><blockquote><p>&#128161; Once you&#8217;ve done the notebook, pick one script you&#8217;ve already written that takes data from somewhere you don&#8217;t control (an API, an LLM, a CSV, a feature store) and add a <code>BaseModel</code> at the entry point.</p><p>That&#8217;s the real test to make sure if this lesson stuck.</p></blockquote><h1>Final thoughts</h1><p>The reason Pydantic is worth learning isn&#8217;t that it's a popular library (though it has over 28K stars on GitHub). It&#8217;s because <strong>the habit it teaches you applies to everything you ship.</strong></p><p>Once you start thinking in contracts, your code looks different:</p><ul><li><p>You stop writing scattered asserts and start defining shapes at function boundaries</p></li><li><p>You stop debugging mysterious downstream failures and start seeing errors at the entry point where they belong</p></li><li><p>You stop trusting &#8220;it worked in dev&#8221; and start designing for the failure modes you can&#8217;t predict</p></li></ul><p>This is the engineering habit that quietly separates data scientists who can ship reliably from the ones who can&#8217;t. It&#8217;s not a glamorous skill. It doesn&#8217;t show up in interview questions. But it&#8217;s the difference between a model in production that silently fails for a week and one that fails loudly the first time something is off.</p><blockquote><p>&#128161; If you&#8217;re earlier in your career: don&#8217;t worry about every Pydantic feature (there are many). Start with the one move: define a <code>BaseModel</code> for any data that crosses into your code from somewhere you don&#8217;t control. That single habit will compound over the rest of your career.</p></blockquote><div><hr></div><h2>A couple of other great resources:</h2><ul><li><p><strong>&#127909; Want to follow along on YouTube?</strong> I just launched a <a href="https://www.youtube.com/@andresvourakis688">channel</a> for data scientists. Subscribe, first video drops soon.</p></li><li><p>&#129309; <strong>Want to connect?</strong> Find me on <a href="https://www.linkedin.com/in/andresvourakis/">LinkedIn</a>, where I share more on data science careers and the AI shift.</p></li></ul><div><hr></div><p><em>Thank you for reading! </em>And stay tuned for next week's article in the <em>Engineering Skills for Data Scientists</em> series: <strong>Testing &amp; Logging.</strong></p><p><em>- Andres Vourakis</em></p><div><hr></div><p>Before you go, please hit the like &#10084;&#65039; button at the bottom of this email to help support me. It truly makes a difference!</p>]]></content:encoded></item><item><title><![CDATA[Introducing Engineering Skills for Data Scientists (Summer Series)]]></title><description><![CDATA[A free 5-week series of practical articles to level up your engineering skills.]]></description><link>https://read.futureproofds.com/p/engineering-skills-for-data-scientists</link><guid isPermaLink="false">https://read.futureproofds.com/p/engineering-skills-for-data-scientists</guid><dc:creator><![CDATA[Andres Vourakis]]></dc:creator><pubDate>Sat, 13 Jun 2026 12:06:04 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/6317921f-f612-45d3-87e6-0b54ee27e76f_1650x866.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>If you&#8217;ve been reading this newsletter for a while, you&#8217;ve noticed we&#8217;ve been going heavy on the topic of AI.</p><p><em>And for a good reason.</em></p><p>It&#8217;s where the field is moving, it&#8217;s where most of the demand is right now, and it&#8217;s the topic readers ask me about most.</p><p>But future-proofing your data science career takes more than AI skills.</p><p>The data scientists who actually ship things, who get their work out of the notebook and into production, share a foundation that nobody really talks about: <strong>engineering skills.</strong></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!nCVt!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F17c38577-98f8-4852-a528-0f658ff68b30_1650x866.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!nCVt!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F17c38577-98f8-4852-a528-0f658ff68b30_1650x866.png 424w, https://substackcdn.com/image/fetch/$s_!nCVt!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F17c38577-98f8-4852-a528-0f658ff68b30_1650x866.png 848w, https://substackcdn.com/image/fetch/$s_!nCVt!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F17c38577-98f8-4852-a528-0f658ff68b30_1650x866.png 1272w, https://substackcdn.com/image/fetch/$s_!nCVt!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F17c38577-98f8-4852-a528-0f658ff68b30_1650x866.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!nCVt!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F17c38577-98f8-4852-a528-0f658ff68b30_1650x866.png" width="1456" height="764" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/17c38577-98f8-4852-a528-0f658ff68b30_1650x866.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:764,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:277467,&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://read.futureproofds.com/i/201741706?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F17c38577-98f8-4852-a528-0f658ff68b30_1650x866.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_!nCVt!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F17c38577-98f8-4852-a528-0f658ff68b30_1650x866.png 424w, https://substackcdn.com/image/fetch/$s_!nCVt!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F17c38577-98f8-4852-a528-0f658ff68b30_1650x866.png 848w, https://substackcdn.com/image/fetch/$s_!nCVt!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F17c38577-98f8-4852-a528-0f658ff68b30_1650x866.png 1272w, https://substackcdn.com/image/fetch/$s_!nCVt!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F17c38577-98f8-4852-a528-0f658ff68b30_1650x866.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>So starting Tuesday, I&#8217;m running a new free series on it.</p><h1>What&#8217;s coming</h1><p>5 articles, one per week, through mid-July. Each one focused on a specific skill that fills a real gap most data scientists have:</p><ol><li><p><strong>Pydantic</strong>, for data validation in MLOps and LLMOps</p></li><li><p><strong>Testing and logging</strong>, so you actually know your code works</p></li><li><p><strong>FastAPI</strong>, the cleanest way to turn a model into a service</p></li><li><p><strong>Reproducible environments with uv</strong>, no more &#8220;works on my machine&#8221;</p></li><li><p><strong>CI/CD for data scientists</strong>, automating the boring parts so your work actually ships</p></li></ol><p>I&#8217;m keeping these practical. Concrete examples, code you can use, no shallow overviews.</p><p>The goal is that by the end of the series, you&#8217;ll have a real toolkit for shipping production code.</p><h1>Get ahead this summer</h1><p>Summer is usually the quietest stretch for data teams. Fewer urgent stakeholder requests, which means, finally, some room to actually learn something new.</p><p>So one article a week, little by little, through June and July.</p><p>Read it, try the techniques on a side project, and by the time Q3 picks up, you&#8217;ll have leveled up in an area most of your peers are still ignoring.</p><p>That&#8217;s the idea.</p><p>The first one drops on Tuesday, June 16.</p><div><hr></div><h2>A couple of other great resources:</h2><ul><li><p><strong>&#128640; Ready to take the next step? </strong>Get my <a href="https://futureproofds.com/resources/agentic-analytics-for-data-scientists">free workshop</a> on agentic analytics for data scientists.</p></li><li><p><strong>&#127909; Want to follow along on YouTube?</strong> I just launched a <a href="https://www.youtube.com/@andresvourakis688">channel</a> for data scientists. Subscribe, first video drops soon.</p></li></ul><div><hr></div><p><em>Thank you for reading! And hope you&#8217;re looking forward to this series as much as I am.</em></p><p><em>- Andres Vourakis</em></p><div><hr></div><p>Before you go, please hit the like &#10084;&#65039; button at the bottom of this email to help support me. It truly makes a difference!</p>]]></content:encoded></item><item><title><![CDATA[When Is It Actually a RAG Problem?]]></title><description><![CDATA[How to tell RAG from MCP, semantic layers, and other patterns people often confuse it with]]></description><link>https://read.futureproofds.com/p/when-is-it-actually-a-rag-problem</link><guid isPermaLink="false">https://read.futureproofds.com/p/when-is-it-actually-a-rag-problem</guid><dc:creator><![CDATA[Andres Vourakis]]></dc:creator><pubDate>Thu, 04 Jun 2026 12:32:11 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!d5EF!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F19401b7a-01d4-46b6-b0fc-96b347a727c6_2580x1425.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Over the past few months, I&#8217;ve talked to a lot of data scientists who are trying to figure out RAG.</p><p>Not building with it yet, just trying to figure out if they should.</p><p>They&#8217;ve seen it in job postings. They&#8217;ve read a few articles. They have a use case in mind at work. And the question they keep coming back to is some version of:</p><p><em>Is this actually a RAG problem, or am I reaching for the wrong thing?</em></p><p>It&#8217;s a fair question. And it&#8217;s harder to answer than it sounds, because RAG doesn&#8217;t sit alone. It shares space with two other patterns that show up in the same conversations and sound like they do the same job: MCP and semantic layers.</p><p>So here's the answer I've been giving in those conversations. By the end of this article, you'll know exactly when RAG is the right call, and when something else fits better.</p><p><strong>Here&#8217;s what we&#8217;ll cover</strong></p><ul><li><p>Why RAG is suddenly showing up everywhere</p></li><li><p>What RAG actually is (skim if you already know)</p></li><li><p>The four times a &#8220;RAG problem&#8221; isn&#8217;t one</p></li><li><p>When RAG actually makes sense</p></li><li><p>Where these patterns actually work together</p></li><li><p><strong>&#128204; Resource:</strong> Building your first RAG system</p></li></ul><div><hr></div><h1>Why RAG is having a moment</h1><p>Every company I talk to has the same split.</p><p>Their structured data is handled. Dashboards, SQL, the warehouse, it&#8217;s all fine.</p><p>People know how to ask questions of it. But the moment a question depends on <em>unstructured</em> data: the PDFs, the support tickets, the internal docs, the Confluence pages, the meeting transcripts. There&#8217;s no good way to get at it; it just sits there.</p><p>That&#8217;s the gap RAG fills.</p><p>And it&#8217;s starting to show up more and more in the job market. After analysing <a href="https://ai-in-ds.streamlit.app/">4K+ data scientist job postings</a>, RAG appeared as the top-4 AI skill in demand.</p><p>It&#8217;s not the most common skill on the list yet, but a year ago, it was barely there, and it keeps gaining more demand.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!dmZA!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1ff02a1b-05e9-4ce9-bdf7-aba49dc1e1dc_1414x940.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!dmZA!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1ff02a1b-05e9-4ce9-bdf7-aba49dc1e1dc_1414x940.png 424w, https://substackcdn.com/image/fetch/$s_!dmZA!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1ff02a1b-05e9-4ce9-bdf7-aba49dc1e1dc_1414x940.png 848w, https://substackcdn.com/image/fetch/$s_!dmZA!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1ff02a1b-05e9-4ce9-bdf7-aba49dc1e1dc_1414x940.png 1272w, https://substackcdn.com/image/fetch/$s_!dmZA!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1ff02a1b-05e9-4ce9-bdf7-aba49dc1e1dc_1414x940.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!dmZA!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1ff02a1b-05e9-4ce9-bdf7-aba49dc1e1dc_1414x940.png" width="1414" height="940" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/1ff02a1b-05e9-4ce9-bdf7-aba49dc1e1dc_1414x940.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:940,&quot;width&quot;:1414,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:106833,&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://read.futureproofds.com/i/200336797?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1ff02a1b-05e9-4ce9-bdf7-aba49dc1e1dc_1414x940.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_!dmZA!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1ff02a1b-05e9-4ce9-bdf7-aba49dc1e1dc_1414x940.png 424w, https://substackcdn.com/image/fetch/$s_!dmZA!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1ff02a1b-05e9-4ce9-bdf7-aba49dc1e1dc_1414x940.png 848w, https://substackcdn.com/image/fetch/$s_!dmZA!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1ff02a1b-05e9-4ce9-bdf7-aba49dc1e1dc_1414x940.png 1272w, https://substackcdn.com/image/fetch/$s_!dmZA!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1ff02a1b-05e9-4ce9-bdf7-aba49dc1e1dc_1414x940.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><figcaption class="image-caption">Total from 4,525 Data Scientists jobs in the US from November 2025 to May 2026.</figcaption></figure></div><p>So yes, RAG is worth learning.</p><p>But that&#8217;s the easy part. The harder part is knowing when to use it.</p><h1>What RAG actually is</h1><p><em>Skim if you already know.</em></p><p>RAG (Retrieval-Augmented Generation) is a pattern where you retrieve relevant content from your own data and pass it into a model so the answer comes from that, not from the model&#8217;s training memory.</p><p>Three phases:</p><ul><li><p><strong>Ingestion</strong> (done once, ahead of time): your documents get parsed, chunked, embedded, and stored.</p></li><li><p><strong>Retrieval</strong> (done per query): the user&#8217;s question gets embedded, and you search the store for similar chunks.</p></li><li><p><strong>Generation</strong>: the model gets the question plus the retrieved chunks, and produces an answer grounded in them.</p></li></ul><p>The key shift: <strong>SQL retrieves by literal match. RAG retrieves by meaning.</strong> That&#8217;s what makes it useful for text.</p><h1>Why &#8220;should I use RAG?&#8221; is a hard question</h1><p>The reason this question trips people up isn&#8217;t RAG itself. It&#8217;s that RAG isn&#8217;t the only thing in the room.</p><p>Two other patterns show up in the same conversations and sound like they do the same job:</p><ul><li><p><strong>MCP (Model Context Protocol)</strong>: a standard for connecting models to existing systems (Notion, Confluence, Slack, Google Drive, internal APIs). Retrieval is involved, but you don&#8217;t build it. You inherit it from whoever wrote the MCP server.</p></li><li><p><strong>Semantic layers</strong>: a modeling layer over your structured data that defines business logic, metrics, and dimensions in one place. Not retrieval in the same sense as RAG, but it's how AI systems (and BI tools, and chatbots) get reliable access to your metrics.</p></li></ul><p>These aren&#8217;t apples-to-apples with RAG.</p><p>MCP is a delivery mechanism. A semantic layer is a modeling layer. RAG is a retrieval pattern. But they all show up the moment someone says &#8220;I want AI on top of my data&#8221;, and from the outside, they sound interchangeable.</p><p>So before reaching for RAG, it&#8217;s worth asking: <em>am I sure this is what I need?</em></p><p>Here's how I think about it: four cases where something else fits better, and one where RAG is the right call.</p><h2>Case 1: &#8220;Can&#8217;t I just dump everything into the prompt now?&#8221;</h2><p><em>What you actually need: in most cases, still retrieval.</em></p><p>This is the argument you&#8217;ve probably seen on X. Context windows used to be small, so you had to retrieve the relevant chunks before sending them to the model. Now that windows are at 1M+ tokens, why retrieve at all? Just load the whole knowledge base into the prompt every time.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Uilq!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc7d2c053-d70a-4ee4-8e32-c236aacf2b54_3840x2160.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Uilq!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc7d2c053-d70a-4ee4-8e32-c236aacf2b54_3840x2160.png 424w, https://substackcdn.com/image/fetch/$s_!Uilq!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc7d2c053-d70a-4ee4-8e32-c236aacf2b54_3840x2160.png 848w, https://substackcdn.com/image/fetch/$s_!Uilq!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc7d2c053-d70a-4ee4-8e32-c236aacf2b54_3840x2160.png 1272w, https://substackcdn.com/image/fetch/$s_!Uilq!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc7d2c053-d70a-4ee4-8e32-c236aacf2b54_3840x2160.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Uilq!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc7d2c053-d70a-4ee4-8e32-c236aacf2b54_3840x2160.png" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c7d2c053-d70a-4ee4-8e32-c236aacf2b54_3840x2160.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:570306,&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://read.futureproofds.com/i/200336797?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc7d2c053-d70a-4ee4-8e32-c236aacf2b54_3840x2160.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_!Uilq!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc7d2c053-d70a-4ee4-8e32-c236aacf2b54_3840x2160.png 424w, https://substackcdn.com/image/fetch/$s_!Uilq!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc7d2c053-d70a-4ee4-8e32-c236aacf2b54_3840x2160.png 848w, https://substackcdn.com/image/fetch/$s_!Uilq!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc7d2c053-d70a-4ee4-8e32-c236aacf2b54_3840x2160.png 1272w, https://substackcdn.com/image/fetch/$s_!Uilq!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc7d2c053-d70a-4ee4-8e32-c236aacf2b54_3840x2160.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><figcaption class="image-caption">Exploring how Claude&#8217;s context window fills up through their <a href="https://code.claude.com/docs/en/context-window">simulator</a>.</figcaption></figure></div><p>For a small, slow-changing corpus, sometimes yes. If your &#8220;knowledge base&#8221; is your team&#8217;s 8 metric definitions and 3 architecture decision docs, a cached system prompt covers it. No vector store, no chunking, no eval loop.</p><p>But for most real systems, no. A few reasons:</p><ul><li><p><strong>Cost scales with tokens loaded.</strong> Even with caching, you pay to load context. Stuffing 200K tokens into every query gets expensive fast at scale.</p></li><li><p><strong>&#8220;Lost in the middle&#8221; is real.</strong> Models read the start and end of long contexts well, and the middle much worse. A 1M context window doesn&#8217;t give you 1M tokens of equally useful attention.</p></li><li><p><strong>Latency.</strong> Long-context queries are noticeably slower than retrieval-style ones.</p></li><li><p><strong>Freshness.</strong> A cached context doesn&#8217;t update on its own. Anything that changes often needs to be reloaded.</p></li></ul><p>The honest framing: bigger context windows didn&#8217;t kill RAG, they raised the floor for when you need it. If your corpus is small and stable, skip retrieval. If it&#8217;s large, fast-changing, or queried at scale, you still need RAG.</p><h2>Case 2: The answer lives on the public web</h2><p><em>What you actually need: a web search tool.</em></p><p>You don&#8217;t want to be in the business of indexing the internet, and you don&#8217;t need to be.</p><p>If you&#8217;re asking <em>&#8220;how does this new Python library handle async?&#8221;</em> or <em>&#8220;what did the latest BLS report say about wage growth?&#8221;</em>, you want web search, not RAG.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!w9x5!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7980346e-801d-4423-84de-eeefdd8f5af7_3024x1722.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!w9x5!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7980346e-801d-4423-84de-eeefdd8f5af7_3024x1722.png 424w, https://substackcdn.com/image/fetch/$s_!w9x5!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7980346e-801d-4423-84de-eeefdd8f5af7_3024x1722.png 848w, https://substackcdn.com/image/fetch/$s_!w9x5!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7980346e-801d-4423-84de-eeefdd8f5af7_3024x1722.png 1272w, https://substackcdn.com/image/fetch/$s_!w9x5!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7980346e-801d-4423-84de-eeefdd8f5af7_3024x1722.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!w9x5!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7980346e-801d-4423-84de-eeefdd8f5af7_3024x1722.png" width="1456" height="829" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/7980346e-801d-4423-84de-eeefdd8f5af7_3024x1722.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:829,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:709361,&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://read.futureproofds.com/i/200336797?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7980346e-801d-4423-84de-eeefdd8f5af7_3024x1722.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_!w9x5!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7980346e-801d-4423-84de-eeefdd8f5af7_3024x1722.png 424w, https://substackcdn.com/image/fetch/$s_!w9x5!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7980346e-801d-4423-84de-eeefdd8f5af7_3024x1722.png 848w, https://substackcdn.com/image/fetch/$s_!w9x5!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7980346e-801d-4423-84de-eeefdd8f5af7_3024x1722.png 1272w, https://substackcdn.com/image/fetch/$s_!w9x5!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7980346e-801d-4423-84de-eeefdd8f5af7_3024x1722.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><figcaption class="image-caption">Example of how &#8220;tavily&#8220; can help your AI agents connect to the web.</figcaption></figure></div><p>I know this might seem basic to some of you, but it's worth clarifying.</p><p>When people hear "extend the LLM's knowledge base," they often jump straight to RAG. But if the knowledge they need is public, the tooling already exists. If you're building, there's Tavily and similar APIs. If you're using existing AI tools (Claude, ChatGPT, Perplexity), web search is already baked in.</p><h2>Case 3: The question is really a SQL question</h2><p><em>What you actually need: a semantic layer.</em></p><p>This is the one where I see the most confusion.</p><p>If the question is <em>&#8220;how many sign-ups last quarter?&#8221;</em> or <em>&#8220;average order value by region&#8221;</em>, that&#8217;s SQL, not RAG. RAG can&#8217;t compute averages over your sales table. It can find a paragraph that <em>mentions</em> sign-ups, but it can&#8217;t sum a column.</p><p>If your stakeholders want natural-language access to those numbers, what you actually want is a <strong>semantic layer</strong>. Something like Cube, dbt&#8217;s semantic layer, or LookML. It defines your metrics once and lets an AI system (or a BI tool, or a chatbot) translate questions into the right query against your data.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!ka0B!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F54cec6b5-488c-4d53-acfb-55561f735511_2116x1175.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!ka0B!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F54cec6b5-488c-4d53-acfb-55561f735511_2116x1175.png 424w, https://substackcdn.com/image/fetch/$s_!ka0B!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F54cec6b5-488c-4d53-acfb-55561f735511_2116x1175.png 848w, https://substackcdn.com/image/fetch/$s_!ka0B!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F54cec6b5-488c-4d53-acfb-55561f735511_2116x1175.png 1272w, https://substackcdn.com/image/fetch/$s_!ka0B!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F54cec6b5-488c-4d53-acfb-55561f735511_2116x1175.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!ka0B!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F54cec6b5-488c-4d53-acfb-55561f735511_2116x1175.png" width="1456" height="809" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/54cec6b5-488c-4d53-acfb-55561f735511_2116x1175.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:809,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:764561,&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://read.futureproofds.com/i/200336797?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F54cec6b5-488c-4d53-acfb-55561f735511_2116x1175.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_!ka0B!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F54cec6b5-488c-4d53-acfb-55561f735511_2116x1175.png 424w, https://substackcdn.com/image/fetch/$s_!ka0B!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F54cec6b5-488c-4d53-acfb-55561f735511_2116x1175.png 848w, https://substackcdn.com/image/fetch/$s_!ka0B!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F54cec6b5-488c-4d53-acfb-55561f735511_2116x1175.png 1272w, https://substackcdn.com/image/fetch/$s_!ka0B!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F54cec6b5-488c-4d53-acfb-55561f735511_2116x1175.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>A RAG pipeline pointed at a data warehouse export will happily return a number that looks plausible and is actually wrong. That number doesn&#8217;t stay in your notebook, it ends up in a deck.</p><h2>Case 4: Someone already built the retrieval for you</h2><p><em>What you actually need: an MCP server.</em></p><p>If your knowledge lives in Notion, Confluence, Linear, or a similar system, check whether there&#8217;s already an MCP server for it before you build anything. If there is, you&#8217;ll ship grounded answers faster than you can spec out a chunking strategy.</p><p>Imagine you&#8217;re in Claude Code working on an analysis, and you need to understand the business context around a feature your team shipped last quarter. The PRD lives in Confluence. With the Confluence MCP server connected, Claude can pull the PRD directly during the analysis. You didn&#8217;t build a RAG pipeline. You didn&#8217;t chunk anything. The retrieval happens for you.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!T92q!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F17c4f635-ba30-46eb-85ea-35a7ed0afb3b_2299x1327.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!T92q!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F17c4f635-ba30-46eb-85ea-35a7ed0afb3b_2299x1327.png 424w, https://substackcdn.com/image/fetch/$s_!T92q!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F17c4f635-ba30-46eb-85ea-35a7ed0afb3b_2299x1327.png 848w, https://substackcdn.com/image/fetch/$s_!T92q!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F17c4f635-ba30-46eb-85ea-35a7ed0afb3b_2299x1327.png 1272w, https://substackcdn.com/image/fetch/$s_!T92q!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F17c4f635-ba30-46eb-85ea-35a7ed0afb3b_2299x1327.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!T92q!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F17c4f635-ba30-46eb-85ea-35a7ed0afb3b_2299x1327.png" width="1456" height="840" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/17c4f635-ba30-46eb-85ea-35a7ed0afb3b_2299x1327.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:840,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1230506,&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://read.futureproofds.com/i/200336797?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F17c4f635-ba30-46eb-85ea-35a7ed0afb3b_2299x1327.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_!T92q!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F17c4f635-ba30-46eb-85ea-35a7ed0afb3b_2299x1327.png 424w, https://substackcdn.com/image/fetch/$s_!T92q!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F17c4f635-ba30-46eb-85ea-35a7ed0afb3b_2299x1327.png 848w, https://substackcdn.com/image/fetch/$s_!T92q!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F17c4f635-ba30-46eb-85ea-35a7ed0afb3b_2299x1327.png 1272w, https://substackcdn.com/image/fetch/$s_!T92q!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F17c4f635-ba30-46eb-85ea-35a7ed0afb3b_2299x1327.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>You do inherit whatever retrieval choices the server makes (chunking, ranking, filtering). For some use cases, you&#8217;ll outgrow that and need your own pipeline. But starting with MCP is almost always the cheaper first move.</p><h2>The case where RAG actually fits</h2><p>A body of text the model needs to read before it can answer well, where:</p><ul><li><p>The knowledge is yours (not on the public web)</p></li><li><p>It&#8217;s too large or inefficient for the prompt</p></li><li><p>The question is about meaning, not computation</p></li><li><p>No off-the-shelf MCP server covers it well enough</p></li></ul><p>Think of an assistant that answers questions from your team&#8217;s internal documentation: runbooks, architecture decisions, post-mortems, metric definitions written up in long-form.</p><p>A new hire asks, <em>&#8220;why did we move from BigQuery to Snowflake?&#8221;</em> and the system surfaces the right architecture decision doc.</p><p>That&#8217;s a real RAG case. The knowledge is yours, it&#8217;s text-heavy, it&#8217;s too large for a prompt, and the question is about meaning, not a number.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!d5EF!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F19401b7a-01d4-46b6-b0fc-96b347a727c6_2580x1425.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!d5EF!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F19401b7a-01d4-46b6-b0fc-96b347a727c6_2580x1425.png 424w, https://substackcdn.com/image/fetch/$s_!d5EF!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F19401b7a-01d4-46b6-b0fc-96b347a727c6_2580x1425.png 848w, https://substackcdn.com/image/fetch/$s_!d5EF!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F19401b7a-01d4-46b6-b0fc-96b347a727c6_2580x1425.png 1272w, https://substackcdn.com/image/fetch/$s_!d5EF!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F19401b7a-01d4-46b6-b0fc-96b347a727c6_2580x1425.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!d5EF!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F19401b7a-01d4-46b6-b0fc-96b347a727c6_2580x1425.png" width="1456" height="804" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/19401b7a-01d4-46b6-b0fc-96b347a727c6_2580x1425.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:804,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1225812,&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://read.futureproofds.com/i/200336797?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F19401b7a-01d4-46b6-b0fc-96b347a727c6_2580x1425.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_!d5EF!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F19401b7a-01d4-46b6-b0fc-96b347a727c6_2580x1425.png 424w, https://substackcdn.com/image/fetch/$s_!d5EF!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F19401b7a-01d4-46b6-b0fc-96b347a727c6_2580x1425.png 848w, https://substackcdn.com/image/fetch/$s_!d5EF!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F19401b7a-01d4-46b6-b0fc-96b347a727c6_2580x1425.png 1272w, https://substackcdn.com/image/fetch/$s_!d5EF!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F19401b7a-01d4-46b6-b0fc-96b347a727c6_2580x1425.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>The first question is never <em>&#8220;should I use RAG?&#8221;</em> It&#8217;s <em>&#8220;what kind of question am I answering?&#8221;</em></p><h2>The quick-reference version</h2><p>If you only remember one thing from this article, remember this table.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!GQeu!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4da97978-1e25-43fe-9979-dd7004e0855c_1724x664.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!GQeu!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4da97978-1e25-43fe-9979-dd7004e0855c_1724x664.png 424w, https://substackcdn.com/image/fetch/$s_!GQeu!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4da97978-1e25-43fe-9979-dd7004e0855c_1724x664.png 848w, https://substackcdn.com/image/fetch/$s_!GQeu!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4da97978-1e25-43fe-9979-dd7004e0855c_1724x664.png 1272w, https://substackcdn.com/image/fetch/$s_!GQeu!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4da97978-1e25-43fe-9979-dd7004e0855c_1724x664.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!GQeu!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4da97978-1e25-43fe-9979-dd7004e0855c_1724x664.png" width="1456" height="561" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/4da97978-1e25-43fe-9979-dd7004e0855c_1724x664.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:561,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:109857,&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://read.futureproofds.com/i/200336797?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4da97978-1e25-43fe-9979-dd7004e0855c_1724x664.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_!GQeu!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4da97978-1e25-43fe-9979-dd7004e0855c_1724x664.png 424w, https://substackcdn.com/image/fetch/$s_!GQeu!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4da97978-1e25-43fe-9979-dd7004e0855c_1724x664.png 848w, https://substackcdn.com/image/fetch/$s_!GQeu!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4da97978-1e25-43fe-9979-dd7004e0855c_1724x664.png 1272w, https://substackcdn.com/image/fetch/$s_!GQeu!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4da97978-1e25-43fe-9979-dd7004e0855c_1724x664.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>Four out of five times, RAG isn't the answer. That's the part most people miss.</p><h1>Where these patterns actually work together</h1><p>One more thing&#8230;</p><p>These patterns aren&#8217;t competing. The best AI systems use all three.</p><p>Imagine a &#8220;talk-to-your-data&#8221; Slackbot at a real company:</p><ul><li><p>A <strong>semantic layer</strong> lets the system answer <em>&#8220;how many enterprise sign-ups last quarter?&#8221;</em> by translating to SQL against a defined metric.</p></li><li><p>An <strong>MCP server</strong> lets it pull the latest ticket from Linear or the latest doc edit from Notion.</p></li><li><p>A <strong>RAG pipeline</strong> lets it surface the right paragraph from your internal playbook when someone asks <em>&#8220;what&#8217;s our refund policy for annual plans?&#8221;</em></p></li></ul><p>Same system. Three retrieval patterns. Each owns the questions it&#8217;s actually good at.</p><p>The skill that&#8217;s getting harder to find isn&#8217;t building any one of these. It&#8217;s knowing which pattern owns which question, and then composing them into a system that picks the right tool for the job.</p><h1>Want to build your first RAG system?</h1><p>RAG is showing up in more data scientist job postings every quarter for a reason.</p><p>The unstructured side of every business is huge, and once you can build retrieval over it, you become the person on the team who handles the half of the data that everyone else can't.</p><p>This is why I put together a <strong>RAG crash course for data professionals</strong>, where you'll build your first RAG system end-to-end, including evaluation.</p><p>And I'm giving it away free to anyone who enrolls in the upcoming cohort of my <strong><a href="https://futureproofds.com/">AI Workflows Bootcamp</a></strong>, which starts <strong>June 12</strong>.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!hs9H!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbb70049e-00cb-4fa0-b3cf-f1701ff426bf_1794x1498.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!hs9H!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbb70049e-00cb-4fa0-b3cf-f1701ff426bf_1794x1498.png 424w, https://substackcdn.com/image/fetch/$s_!hs9H!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbb70049e-00cb-4fa0-b3cf-f1701ff426bf_1794x1498.png 848w, https://substackcdn.com/image/fetch/$s_!hs9H!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbb70049e-00cb-4fa0-b3cf-f1701ff426bf_1794x1498.png 1272w, https://substackcdn.com/image/fetch/$s_!hs9H!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbb70049e-00cb-4fa0-b3cf-f1701ff426bf_1794x1498.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!hs9H!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbb70049e-00cb-4fa0-b3cf-f1701ff426bf_1794x1498.png" width="1794" height="1498" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/bb70049e-00cb-4fa0-b3cf-f1701ff426bf_1794x1498.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1498,&quot;width&quot;:1794,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1200791,&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://read.futureproofds.com/i/200336797?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fca97aed9-d6d8-4806-970a-18e0408b078a_1794x1610.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_!hs9H!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbb70049e-00cb-4fa0-b3cf-f1701ff426bf_1794x1498.png 424w, https://substackcdn.com/image/fetch/$s_!hs9H!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbb70049e-00cb-4fa0-b3cf-f1701ff426bf_1794x1498.png 848w, https://substackcdn.com/image/fetch/$s_!hs9H!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbb70049e-00cb-4fa0-b3cf-f1701ff426bf_1794x1498.png 1272w, https://substackcdn.com/image/fetch/$s_!hs9H!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbb70049e-00cb-4fa0-b3cf-f1701ff426bf_1794x1498.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>You don't want to miss this. The bootcamp teaches you to leverage AI day-to-day and build systems with real design judgment. The RAG course adds the unstructured side. Together, that's the toolkit most data scientists are still missing.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://futureproofds.com&quot;,&quot;text&quot;:&quot;Enroll today&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://futureproofds.com"><span>Enroll today</span></a></p><div><hr></div><h2>A couple of other great resources:</h2><ul><li><p><strong>&#128640; Ready to take the next step? </strong>Get my <a href="https://futureproofds.com/resources/agentic-analytics-for-data-scientists">free workshop</a> on agentic analytics for data scientists.</p></li><li><p><strong>&#127909; Want to follow along on YouTube?</strong> I just launched a <a href="https://www.youtube.com/@andresvourakis688">channel</a> for data scientists. Subscribe, first video drops soon.</p></li></ul><div><hr></div><p><em>Thank you for reading! I hope you find this guide useful.</em></p><p><em>- Andres Vourakis</em></p><div><hr></div><p>Before you go, please hit the like &#10084;&#65039; button at the bottom of this email to help support me. It truly makes a difference!</p>]]></content:encoded></item><item><title><![CDATA[Building Your First Claude Skill: An Analytical Peer Reviewer for Data Scientists]]></title><description><![CDATA[A step-by-step build for a Skill that stress-tests your analysis, not just your code]]></description><link>https://read.futureproofds.com/p/building-your-first-claude-skill</link><guid isPermaLink="false">https://read.futureproofds.com/p/building-your-first-claude-skill</guid><dc:creator><![CDATA[Andres Vourakis]]></dc:creator><pubDate>Sat, 16 May 2026 12:31:15 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!Kczp!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe52e896c-b93b-43d7-9590-21d004c7ddbf_2916x1796.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><em>&#8220;Yeah, looks good to me.&#8221;</em></p><p>If you&#8217;ve worked on a data team for more than a few months, you&#8217;ve probably seen an analysis ship with a review that amounts to roughly that (maybe paired with a thumbs-up emoji)</p><p>And honestly, I get it.</p><p>When stakeholders need answers fast, peer review is the first thing that gets cut.</p><p>And once the analysis is out the door, there&#8217;s no real motivation to revisit it. The dashboard is live, the deck got presented, and the decision got made. Going back to audit the methodology feels more like a waste of time.</p><p>I&#8217;ve watched this happen across every data team I&#8217;ve worked on. <strong>The part that gets reviewed is the code. The part that almost never gets reviewed is the analysis itself.</strong></p><p>And those are two very different things.</p><p>Code review checks if your SQL runs. It doesn&#8217;t check if your SQL is answering the right question. It doesn&#8217;t catch a join that silently inflates revenue, an average that&#8217;s hiding a bimodal distribution, or a framing that&#8217;s going to lead your stakeholder straight to the wrong conclusion.</p><p>That&#8217;s a methodology review. And almost no one does it.</p><p>So I built a Claude Skill to act as my peer reviewer. And in this article, I&#8217;m going to walk you through how to build your own, step by step, even if you are completely new to Claude Skills.</p><p><strong>Here&#8217;s what we&#8217;ll cover</strong></p><ul><li><p>A quick primer on Claude Skills (skip ahead if you already know)</p></li><li><p>A step-by-step build of an analytical peer reviewer Skill</p></li><li><p>An example of the skill reviewing a real analysis</p></li><li><p>The full version of the Skill at the end</p></li></ul><div><hr></div><h1>A quick primer on Claude Skills</h1><p>A Skill is a markdown file that tells Claude how to approach a specific, repeatable task, different from a <code>CLAUDE.md</code> or <code>AGENTS.md</code>, which set general conventions and rules for a project. That's it. The rest is just where the file lives and how Claude finds it.</p><h4>Where does the file go?</h4><p>You can place a Skill in two places:</p><ul><li><p><strong>Project level:</strong> lives inside the project you&#8217;re working on. Only available when you&#8217;re in that project.</p></li><li><p><strong>Global level:</strong> lives in your user directory. Available across every project and every tool that reads Skills (Claude Code, Cursor, etc.).</p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!7Wwa!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F410e818a-9f6a-4823-a856-dbb60cfb3d84_2299x1513.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!7Wwa!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F410e818a-9f6a-4823-a856-dbb60cfb3d84_2299x1513.png 424w, https://substackcdn.com/image/fetch/$s_!7Wwa!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F410e818a-9f6a-4823-a856-dbb60cfb3d84_2299x1513.png 848w, https://substackcdn.com/image/fetch/$s_!7Wwa!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F410e818a-9f6a-4823-a856-dbb60cfb3d84_2299x1513.png 1272w, https://substackcdn.com/image/fetch/$s_!7Wwa!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F410e818a-9f6a-4823-a856-dbb60cfb3d84_2299x1513.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!7Wwa!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F410e818a-9f6a-4823-a856-dbb60cfb3d84_2299x1513.png" width="1456" height="958" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/410e818a-9f6a-4823-a856-dbb60cfb3d84_2299x1513.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:958,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1534678,&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://read.futureproofds.com/i/197824063?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F410e818a-9f6a-4823-a856-dbb60cfb3d84_2299x1513.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_!7Wwa!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F410e818a-9f6a-4823-a856-dbb60cfb3d84_2299x1513.png 424w, https://substackcdn.com/image/fetch/$s_!7Wwa!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F410e818a-9f6a-4823-a856-dbb60cfb3d84_2299x1513.png 848w, https://substackcdn.com/image/fetch/$s_!7Wwa!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F410e818a-9f6a-4823-a856-dbb60cfb3d84_2299x1513.png 1272w, https://substackcdn.com/image/fetch/$s_!7Wwa!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F410e818a-9f6a-4823-a856-dbb60cfb3d84_2299x1513.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>For an analytical peer reviewer, global makes the most sense. You want to be able to invoke it on any analysis, in any repo.</p><h4>How does a skill file get picked up?</h4><p>The file has a metadata block at the top (we&#8217;ll get to it in Step 1). Claude reads that metadata, and if your task matches the Skill&#8217;s description, it loads the rest of the file and follows the instructions inside.</p><p>You don&#8217;t have to manually trigger it (although you have the option). If the description is written well, Claude figures out when to use it.</p><h4>How does a skill get used?</h4><p>Once invoked, the Skill is basically a prompt: a set of instructions Claude executes. You wrote it once, refined it, and now it runs the same way every time. That&#8217;s the real value, consistency.</p><p>Skills can also include scripts (Python, bash, whatever) that Claude can run as part of executing the instructions. We won&#8217;t need that for this build, but it&#8217;s worth knowing the option is there.</p><h1>What we&#8217;re building</h1><p>Before we build, here&#8217;s what the Skill does:</p><p>You give it a file (a SQL query, a notebook, or a Python script, whatever the analysis lives in)</p><ol><li><p>It scans the file, the surrounding context, and asks you a few questions to understand what the analysis is trying to accomplish.</p></li><li><p>It pressure-tests the work in a systematic way</p></li><li><p>It gives you back a structured review: a verdict, the things worth looking at, and a question to sit with.</p></li></ol><p>Once you have saved it either into your local or global skills directory, here is what it would look like to trigger it manually:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!L0xO!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff9db94a7-54c5-4553-aba0-cd60d26814f6_2916x1796.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!L0xO!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff9db94a7-54c5-4553-aba0-cd60d26814f6_2916x1796.png 424w, https://substackcdn.com/image/fetch/$s_!L0xO!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff9db94a7-54c5-4553-aba0-cd60d26814f6_2916x1796.png 848w, https://substackcdn.com/image/fetch/$s_!L0xO!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff9db94a7-54c5-4553-aba0-cd60d26814f6_2916x1796.png 1272w, https://substackcdn.com/image/fetch/$s_!L0xO!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff9db94a7-54c5-4553-aba0-cd60d26814f6_2916x1796.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!L0xO!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff9db94a7-54c5-4553-aba0-cd60d26814f6_2916x1796.png" width="1456" height="897" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/f9db94a7-54c5-4553-aba0-cd60d26814f6_2916x1796.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:897,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:699931,&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://read.futureproofds.com/i/197824063?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff9db94a7-54c5-4553-aba0-cd60d26814f6_2916x1796.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_!L0xO!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff9db94a7-54c5-4553-aba0-cd60d26814f6_2916x1796.png 424w, https://substackcdn.com/image/fetch/$s_!L0xO!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff9db94a7-54c5-4553-aba0-cd60d26814f6_2916x1796.png 848w, https://substackcdn.com/image/fetch/$s_!L0xO!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff9db94a7-54c5-4553-aba0-cd60d26814f6_2916x1796.png 1272w, https://substackcdn.com/image/fetch/$s_!L0xO!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff9db94a7-54c5-4553-aba0-cd60d26814f6_2916x1796.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>Alright, let&#8217;s build it.</p><h2>Step 1: The setup (metadata)</h2><p>Every Skill starts with a metadata block at the top of the <code>SKILL.md</code> file. This is what Claude reads to decide whether the Skill applies to whatever you&#8217;re working on.</p><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;markdown&quot;,&quot;nodeId&quot;:&quot;82235830-dbf8-4572-acce-f0b47dc65104&quot;}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-markdown">---
name: analyst-peer-review
description: Analytical peer review that challenges the logic, assumptions,
and business reasoning behind SQL, Python, or other analytical code.
Use when you want your analysis stress-tested before sharing results or making decisions.
Not a linter &#8212; a devil's advocate for your analysis.
allowed-tools: Read Grep Glob AskUserQuestion
argument-hint: &lt;file_path&gt; [file_path_2 ...]
---</code></pre></div><p>Three things to pay attention to:</p><ul><li><p><code>name</code> is the identifier. Keep it short and descriptive.</p></li><li><p><code>description</code> is the most important field. This is what Claude uses to decide <em>when</em> to invoke the Skill. Be precise about what it does and (just as importantly) what it isn&#8217;t. Notice I explicitly call out &#8220;not a linter&#8221;, that&#8217;s there to keep Claude from misfiring on generic code review requests.</p></li><li><p><code>allowed-tools</code> limits what the Skill can do. This Skill only needs to read files and ask questions, so I&#8217;ve restricted it to read-only tools. No file writes, no bash, no edits.</p></li></ul><blockquote><p>&#128161; Limiting tools is a small thing that matters. A peer reviewer shouldn&#8217;t be modifying your code, it should be challenging it. Constraining the Skill to read-only enforces that boundary at the tool level, not just in the instructions.</p></blockquote><h2>Step 2: Gathering context</h2><p>Here&#8217;s where most automated review tools fail: they jump straight to critique without understanding intent. A peer reviewer who doesn&#8217;t know what you&#8217;re trying to accomplish is just a more opinionated version of a linter.</p><p>So the first thing the Skill does is gather context.</p><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;markdown&quot;,&quot;nodeId&quot;:&quot;d17fb6d2-429b-4068-87c6-a78240939a71&quot;}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-markdown">## Phase 1: Gather Context

Before reviewing anything, you need to understand what the analyst is trying to accomplish. Do not skip this step.

1. Read the file(s) passed as arguments.
2. Check for project context: read the CLAUDE.md or README at the project root.
3. Ask the analyst (skip questions you can confidently answer from the code, but state your understanding and ask them to confirm):

   - What question is this code trying to answer? (The business question, not "it calculates X")
   - Who will consume this output and what decisions will they make based on it?
   - Any constraints, assumptions, or known edge cases I should know about?

Wait for answers before proceeding.</code></pre></div><p>Three questions, and they&#8217;re not arbitrary. Each one maps to a specific failure mode I&#8217;ve seen over and over:</p><ul><li><p><strong>&#8220;What question is this trying to answer?&#8221;</strong> catches the mismatch between the metric being computed and the question the stakeholder actually asked. You&#8217;d be surprised how often these don&#8217;t line up.</p></li><li><p><strong>&#8220;Who will consume this and what decisions will they make?&#8221;</strong> anchors the review in the audience. A metric that&#8217;s correct for an engineering team can be deeply misleading for an exec.</p></li><li><p><strong>&#8220;Any constraints or edge cases?&#8221;</strong> lets the analyst surface known limitations upfront, so the Skill doesn&#8217;t waste energy on issues you&#8217;ve already accounted for.</p></li></ul><blockquote><p>&#128161; Notice the instruction to <em>skip questions you can confidently answer from the code</em>. Without this, the Skill becomes annoying, asking obvious questions when the answer is right there in the file. With it, it only asks what it actually needs to know.</p></blockquote><div><hr></div><h3>&#128204; Get my <a href="https://futureproofds.com/resources/agentic-analytics-for-data-scientists">free workshop</a> on agentic analytics in production </h3><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://futureproofds.com/resources/agentic-analytics-for-data-scientists" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!w_ER!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F912cc9ae-b5e1-424b-980c-24518b56567f_2104x830.png 424w, https://substackcdn.com/image/fetch/$s_!w_ER!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F912cc9ae-b5e1-424b-980c-24518b56567f_2104x830.png 848w, https://substackcdn.com/image/fetch/$s_!w_ER!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F912cc9ae-b5e1-424b-980c-24518b56567f_2104x830.png 1272w, https://substackcdn.com/image/fetch/$s_!w_ER!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F912cc9ae-b5e1-424b-980c-24518b56567f_2104x830.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!w_ER!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F912cc9ae-b5e1-424b-980c-24518b56567f_2104x830.png" width="1456" height="574" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/912cc9ae-b5e1-424b-980c-24518b56567f_2104x830.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:574,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:562084,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:&quot;https://futureproofds.com/resources/agentic-analytics-for-data-scientists&quot;,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://read.futureproofds.com/i/197824063?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F912cc9ae-b5e1-424b-980c-24518b56567f_2104x830.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_!w_ER!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F912cc9ae-b5e1-424b-980c-24518b56567f_2104x830.png 424w, https://substackcdn.com/image/fetch/$s_!w_ER!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F912cc9ae-b5e1-424b-980c-24518b56567f_2104x830.png 848w, https://substackcdn.com/image/fetch/$s_!w_ER!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F912cc9ae-b5e1-424b-980c-24518b56567f_2104x830.png 1272w, https://substackcdn.com/image/fetch/$s_!w_ER!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F912cc9ae-b5e1-424b-980c-24518b56567f_2104x830.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><div><hr></div><h2>Step 3: The pressure test</h2><p>This is the heart of the Skill. The part that does the actual analytical work.</p><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;markdown&quot;,&quot;nodeId&quot;:&quot;10259110-e903-48ee-92ad-88e7b9fc04fe&quot;}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-markdown">## Phase 2: Pressure Test

With the analyst's stated question and audience in mind, work through the following:

Are the numbers correct?
- Joins: could any join fan out or silently drop rows?
- Grain: is the metric computed at the right granularity before being rolled up?
- Aggregation: are ratios using the correct numerator and denominator? How do NULLs behave?
- Temporal boundaries: off-by-one in date ranges? Incomplete periods at edges?
- Filters: could WHERE clauses silently exclude a population that matters?

Is this answering the right question?
- Does the output actually address what the decision-maker needs?
- Could the metric subtly answer a different question than intended?
- Are business terms defined the way the audience defines them, or just the way the code defines them?

Will the audience interpret this correctly?
- What's the most likely misread?
- Is important context missing that the audience would need to draw the right conclusion?
- Could someone use this output to justify a decision the data doesn't actually support?

What's not in the frame?
- Are there confounding factors that could explain the result equally well?
- Is the analysis looking at survivors only, missing what left?
- Are there segments or edge cases excluded that could change the story?</code></pre></div><p>Four categories, and they&#8217;re deliberately ordered.</p><p>The first one (are the numbers correct?) is the cheapest to get wrong and the most embarrassing when you do. The other three are where the real value lives. A join that silently fans out is a bug. An analysis that answers the wrong question is a strategic miss.</p><p>The principle that anchors this whole section: <em><strong>Most code is fine. Most analyses have a blind spot.</strong></em></p><p>That&#8217;s why this Skill spends more energy on framing and interpretation than on mechanics. Tools like dbt tests and CI checks already cover a lot of the &#8220;is the number right&#8221; question. Almost nothing covers &#8220;Does the number mean what you think it means?&#8221;</p><h2>Step 4: Delivering the review</h2><p>The format of the output matters as much as the content. Two failure modes to design against:</p><ul><li><p>A review that lists 10 findings of equal weight is a review that highlights nothing.</p></li><li><p>A review without a clear bottom line forces the reader to do the synthesizing themselves.</p></li></ul><p>So the output has three parts:</p><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;markdown&quot;,&quot;nodeId&quot;:&quot;ba41269c-493a-4829-b6da-ebae537d3121&quot;}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-markdown">## Phase 3: Deliver the Review

Structure your output as follows:

### Bottom Line
Lead with a verdict, one of:
- Ship it: code is correct and the analysis holds up
- Think on it: numbers are right, but the framing or interpretation deserves another look
- Fix first: there's a correctness issue that must be resolved

Follow with 2-3 sentences explaining why.

### What I'd Look At
Maximum 3 findings. Only include findings that could change the conclusion or mislead a decision-maker. For each:
- The issue in one sentence
- Where (file, line)
- Why it matters

If you found fewer than 3 real issues, list fewer. Do not pad.

### One Question to Sit With
A single analytical question. Not a code fix, not a suggestion. A question about whether the output means what they think it means.</code></pre></div><p>A few design choices worth calling out:</p><ul><li><p><strong>The verdict comes first.</strong> If someone reads nothing else, they should know what to do. Ship, think, or fix.</p></li><li><p><strong>Maximum 3 findings.</strong> This is the most important constraint in the whole Skill. Without it, Claude will happily list every minor observation it noticed. Forcing selectivity is what makes the review useful instead of overwhelming.</p></li><li><p><strong>One question at the end.</strong> This is the part that mimics what a thoughtful colleague would actually do. They don&#8217;t always give you an answer. Sometimes they just ask the question that makes you pause.</p></li></ul><blockquote><p>&#128161; The &#8220;one question to sit with&#8221; is my favorite part. It&#8217;s the move a good senior reviewer pulls: they don&#8217;t tell you what to fix, they ask you something that makes you realize what to fix.</p></blockquote><h2>Trying it out</h2><p>I ran the Skill on a churn analysis: a notebook looking at monthly customer churn rates over the past six months, with a recommendation to the CRO and board on whether to launch a retention program this quarter.</p><p>The Skill started by reading the notebook and the README, then asked me one targeted question about whether including May (a partial month, since the data was pulled mid-month) was intentional or an oversight:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Kczp!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe52e896c-b93b-43d7-9590-21d004c7ddbf_2916x1796.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Kczp!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe52e896c-b93b-43d7-9590-21d004c7ddbf_2916x1796.png 424w, https://substackcdn.com/image/fetch/$s_!Kczp!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe52e896c-b93b-43d7-9590-21d004c7ddbf_2916x1796.png 848w, https://substackcdn.com/image/fetch/$s_!Kczp!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe52e896c-b93b-43d7-9590-21d004c7ddbf_2916x1796.png 1272w, https://substackcdn.com/image/fetch/$s_!Kczp!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe52e896c-b93b-43d7-9590-21d004c7ddbf_2916x1796.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Kczp!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe52e896c-b93b-43d7-9590-21d004c7ddbf_2916x1796.png" width="1456" height="897" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/e52e896c-b93b-43d7-9590-21d004c7ddbf_2916x1796.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:897,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:984282,&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://read.futureproofds.com/i/197824063?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe52e896c-b93b-43d7-9590-21d004c7ddbf_2916x1796.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_!Kczp!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe52e896c-b93b-43d7-9590-21d004c7ddbf_2916x1796.png 424w, https://substackcdn.com/image/fetch/$s_!Kczp!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe52e896c-b93b-43d7-9590-21d004c7ddbf_2916x1796.png 848w, https://substackcdn.com/image/fetch/$s_!Kczp!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe52e896c-b93b-43d7-9590-21d004c7ddbf_2916x1796.png 1272w, https://substackcdn.com/image/fetch/$s_!Kczp!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe52e896c-b93b-43d7-9590-21d004c7ddbf_2916x1796.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>After I confirmed it was intentional, but I hadn't fully accounted for May being half a month, the Skill ran the pressure test and returned a "Fix first" verdict:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!RwHF!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F75d6a5b6-4f08-4dce-9a1f-6506570f2fc8_2916x1796.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!RwHF!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F75d6a5b6-4f08-4dce-9a1f-6506570f2fc8_2916x1796.png 424w, https://substackcdn.com/image/fetch/$s_!RwHF!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F75d6a5b6-4f08-4dce-9a1f-6506570f2fc8_2916x1796.png 848w, https://substackcdn.com/image/fetch/$s_!RwHF!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F75d6a5b6-4f08-4dce-9a1f-6506570f2fc8_2916x1796.png 1272w, https://substackcdn.com/image/fetch/$s_!RwHF!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F75d6a5b6-4f08-4dce-9a1f-6506570f2fc8_2916x1796.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!RwHF!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F75d6a5b6-4f08-4dce-9a1f-6506570f2fc8_2916x1796.png" width="1456" height="897" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/75d6a5b6-4f08-4dce-9a1f-6506570f2fc8_2916x1796.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:897,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1200823,&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://read.futureproofds.com/i/197824063?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F75d6a5b6-4f08-4dce-9a1f-6506570f2fc8_2916x1796.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_!RwHF!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F75d6a5b6-4f08-4dce-9a1f-6506570f2fc8_2916x1796.png 424w, https://substackcdn.com/image/fetch/$s_!RwHF!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F75d6a5b6-4f08-4dce-9a1f-6506570f2fc8_2916x1796.png 848w, https://substackcdn.com/image/fetch/$s_!RwHF!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F75d6a5b6-4f08-4dce-9a1f-6506570f2fc8_2916x1796.png 1272w, https://substackcdn.com/image/fetch/$s_!RwHF!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F75d6a5b6-4f08-4dce-9a1f-6506570f2fc8_2916x1796.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>Here&#8217;s what the Skill flagged. A few things stood out as clear blind spots in the analysis:</p><ul><li><p><strong>It caught a partial month being treated as a full one.</strong> The most recent month in the trend only had half its data in, but the analysis was reading it like any other point. This is the kind of thing a stakeholder would&#8217;ve flagged immediately.</p></li><li><p><strong>It caught a denominator that didn&#8217;t match what the metric was named.</strong> A metric labeled &#8220;logo churn&#8221; was being computed on subscription rows, not accounts, which silently inflated the active base in months with upgrade activity. The number going to the board wasn&#8217;t measuring what it said it was.</p></li><li><p><strong>It caught a shrinking base hiding behind a rate.</strong> Churn rate looked flat, but the underlying customer count had contracted 13% in five months. Fewer churn events partly meant fewer customers left to churn, which is a very different story than &#8220;churn is under control.&#8221;</p></li></ul><p>Any one of these would have been enough to walk back the recommendation. All three in the same analysis is the kind of thing that, in the real world, quietly makes it to a board deck without anyone noticing.</p><p>And then there was the closing question: <em>&#8220;If you drop May entirely and look only at complete months, does anything in the data still say &#8216;this is resolving on its own&#8217;, or does the entire &#8216;hold off&#8217; recommendation depend on the one month you can&#8217;t actually measure yet?&#8221;</em></p><p>That&#8217;s the question that would have stopped me before I sent the deck.</p><h1>Wrapping up</h1><p>A Skill like this codifies a kind of thinking that usually only exists in senior heads, and makes it available on demand.</p><p>That&#8217;s the real unlock. <strong>AI doesn&#8217;t replace judgment. It lets you scale yours.</strong></p><p>The version we built in this article is intentionally simplified. The full version (the one I use in practice), with a more thorough pressure test phase and a few extra principles, is here:</p><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;markdown&quot;,&quot;nodeId&quot;:&quot;fd1c718b-6bbb-4864-a4e2-36b06abbf88a&quot;}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-markdown">---
name: analyst-peer-review
description: Analytical peer review that challenges the logic, assumptions, and business reasoning behind SQL, Python, or other analytical code. Use when you want your analysis stress-tested before sharing results or making decisions. Not a linter &#8212; a devil's advocate for your analysis.
allowed-tools: Read Grep Glob AskUserQuestion
argument-hint: &lt;file_path&gt; [file_path_2 ...]
---

You are an analytical peer reviewer. Your job is to pressure-test analytical code &#8212; first verifying the numbers are correct, then challenging whether the analysis actually serves its purpose.

Think of yourself as a skeptical but constructive colleague who asks: **"Are you sure this actually answers the question you think it does?"**

## What this is NOT

- Not a linter or syntax checker
- Not a code quality review (style, formatting, best practices)
- Not about performance optimization
- Do not suggest adding comments, docstrings, error handling, or type hints
- Do not suggest code changes unless a logic flaw requires it

## Phase 1: Gather Context

Before reviewing anything, you need to understand what the analyst is trying to accomplish. **Do not skip this step.**

1. **Read the file(s)** passed as arguments. If no arguments are provided, ask which files to review.
2. **Check for project context**: read the CLAUDE.md or README at the project root. This tells you the domain, data model, and conventions.
3. **Ask the analyst** (adapt based on what you already know &#8212; skip questions you can confidently answer from code and project context, but state your understanding and ask the analyst to confirm):

   - **What question is this code trying to answer?** (The business question, not "it calculates X")
   - **Who will consume this output and what decisions will they make based on it?**
   - **Any constraints, assumptions, or known edge cases I should know about?**

Wait for answers before proceeding. The review is only as good as your understanding of intent.

## Phase 2: Map the Logic Chain

Before critiquing, understand. Trace the full data flow:

**Source** -&gt; **Filters/Scope** -&gt; **Joins/Enrichment** -&gt; **Transformations** -&gt; **Aggregation** -&gt; **Output** -&gt; **Interpretation**

Write this chain out in plain language. This is your map for the review &#8212; and it helps the analyst see their own logic laid bare.

## Phase 3: Pressure Test (Two Layers)

Work through two layers in order. **Layer 1 gates Layer 2**: if the code produces wrong numbers, that's the story &#8212; don't move on to analytical framing until the mechanics are sound.

### Layer 1 &#8212; Code Mechanics (are the numbers correct?)

This is a quick pass. Scan for issues that would make the output wrong:

- **Joins**: Could any join fan out (create duplicates) or silently drop rows? Are join keys unique on the side that needs to be?
- **Grain**: Is the metric computed at the right granularity before being rolled up? Could a GROUP BY collapse rows that shouldn't be combined?
- **Aggregation**: Are ratios using the correct numerator and denominator? How do NULLs behave? Is DISTINCT masking an upstream duplication problem?
- **Temporal boundaries**: Off-by-one in date ranges? Incomplete periods at edges? Look-ahead bias?
- **Filters**: Could WHERE clauses or join conditions silently exclude a population segment that matters?

**If you find a logic flaw here &#8212; something that makes the numbers wrong &#8212; that becomes your bottom line. Stop and report it.** The analytical framing doesn't matter if the data is broken.

**If the code mechanics are sound, say so briefly and move to Layer 2.** This is where most reviews should spend their energy.

### Layer 2 &#8212; Analytical Reasoning (does this analysis serve its purpose?)

This is the main event. With the analyst's stated question and audience in mind:

**Is this answering the right question?**
- Does the output actually address what the decision-maker needs to know?
- Could the metric or framing subtly answer a different question than intended? (e.g., showing a rate when the audience needs a volume; showing an average when the distribution matters)
- Are key business terms defined the way the audience defines them &#8212; or the way the code defines them?

**Will the audience interpret this correctly?**
- What's the most likely misread? (e.g., stable rate interpreted as "things are fine" when the underlying population is shifting)
- Is important context missing from the output that the audience would need to draw the right conclusion?
- Could someone use this output to justify a decision the data doesn't actually support?

**What's not in the frame?**
- Are there confounding factors that could explain the result equally well?
- Is the analysis looking at survivors only, missing the ones that left?
- Are there segments, time periods, or edge cases excluded that could change the story?
- What would this analysis miss if conditions changed? (e.g., seasonality, a product launch, a policy change)

**Does the "so what" hold up?**
- If this number moves 10%, does anyone do anything differently? If not, is this the right metric?
- Could an alternative framing of the same data tell a more useful or more honest story?

## Phase 4: Deliver the Review

**Be selective, not comprehensive.** Your job is to surface the 1-3 things that actually matter &#8212; not to list everything you noticed. A review that highlights 6 findings with equal weight is a review that highlights nothing.

Structure your output as follows:

---

### Bottom Line
Lead with a **verdict** &#8212; one of three words that tells the analyst what to do before they read anything else:

- **Ship it** &#8212; code is correct and the analysis holds up
- **Think on it** &#8212; numbers are right, but the framing or interpretation deserves another look
- **Fix first** &#8212; there's a correctness issue that must be resolved

Follow the verdict with 2-3 sentences explaining why. This is what someone reads if they read nothing else.

Example: **Verdict: Think on it** &#8212; The numbers check out, but the output shows a per-user average that could mask a bimodal distribution. If the audience assumes a normal spread, they'll draw the wrong conclusion.

### What I'd Look At
**Maximum 3 findings.** Only include findings that could change the conclusion, mislead a decision-maker, or silently produce wrong results. Tag each one:

- **Logic flaw** &#8212; the code produces or could produce incorrect results
- **Assumption risk** &#8212; correct IF a fragile or unverified assumption holds
- **Blind spot** &#8212; something unaccounted for that could change the conclusion
- **Framing gap** &#8212; the output is technically correct but could mislead the audience

For each finding, keep it tight:
1. The issue in one sentence
2. Where (file, line)
3. Why it matters &#8212; what goes wrong and for whom

If you found fewer than 3 real issues, list fewer. Do not pad.

### What's Solid
One short paragraph. Call out the parts of the logic and the analytical choices the analyst can trust and stop worrying about. Not a bulleted inventory &#8212; just the key things that hold up.

### One Question to Sit With
A single analytical question &#8212; the kind that makes the analyst pause. Not a code fix. Not a suggestion. A question about whether the output means what they think it means, or whether the audience will read it the way they intend.

---

## Principles

- **Selectivity over completeness.** Finding everything is easy. Knowing what matters is the job. If a finding wouldn't change a decision, leave it out.
- **Layer 1 gates Layer 2.** If the numbers are wrong, that's the review. Don't critique the framing of broken data.
- **Most code is fine. Most analyses have a blind spot.** Expect to spend more time on Layer 2 than Layer 1. The valuable insight is rarely "your join is wrong" &#8212; it's "your audience will misread this."
- **Be specific.** "This join might fan out" is useless. "The join on line 34 between orders and refunds could produce duplicates because an order can have multiple partial refunds &#8212; this would inflate the revenue total on line 52" is useful.
- **Challenge the logic, not the person.**
- **It's okay to say "this looks solid."** Don't manufacture issues to seem thorough.
- **If you're uncertain, say so.** Frame it as a question, not a finding.
- **No scope creep.** Review what was asked. Don't redesign the approach unless it's fundamentally flawed.
</code></pre></div><p>Copy it, modify it, make it yours. The whole point of writing a Skill is that it reflects how <em>you</em> think. Mine is a starting point, not a template to copy.</p><blockquote><p>&#128161; If you&#8217;re earlier in your career: this Skill is also a pretty good cheat sheet for how a senior reviewer thinks about your work. Try running it on your own analyses before you share them. The questions it asks are the questions you&#8217;ll eventually start asking yourself automatically.</p></blockquote><div><hr></div><h2>A couple of other great resources:</h2><ul><li><p><strong>&#128640; Ready to take the next step? </strong>Get my <a href="https://futureproofds.com/resources/agentic-analytics-for-data-scientists">free workshop</a> on agentic analytics for data scientists.</p></li><li><p><strong>&#129302; Struggling to keep up with AI/ML?</strong> <a href="https://neuralpulse.io/subscribe">Neural Pulse</a> is a 5-minute, human-curated newsletter delivering the best in AI, ML, and data science.</p></li></ul><div><hr></div><p><em>Thank you for reading! I hope you find this guide useful.</em></p><p><em>- Andres Vourakis</em></p><div><hr></div><p>Before you go, please hit the like &#10084;&#65039; button at the bottom of this email to help support me. It truly makes a difference!</p>]]></content:encoded></item><item><title><![CDATA[Top 5 AI Tools I (Actually) Use as a Senior Data Scientist]]></title><description><![CDATA[My real AI stack, what each tool does, and how they all fit together]]></description><link>https://read.futureproofds.com/p/top-5-ai-tools-i-actually-use-as</link><guid isPermaLink="false">https://read.futureproofds.com/p/top-5-ai-tools-i-actually-use-as</guid><dc:creator><![CDATA[Andres Vourakis]]></dc:creator><pubDate>Thu, 23 Apr 2026 12:46:04 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/b1271c27-6f6a-44bc-a7ab-2403d3b179d7_6240x4160.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Every week there&#8217;s a new &#8220;best AI tools you should use&#8221; list making the rounds.</p><p><em>I&#8217;ve stopped reading them.</em></p><p>Most feel like they were written by someone who spent 20 minutes with each tool. No real workflow behind it. No honest take on what actually stuck.</p><p>So here&#8217;s mine. These are 5 tools that have genuinely become part of how I work, not tools I&#8217;ve tried once or revisit occasionally, but ones I reach for almost every day.</p><p>There are other tools in my stack, but these are the ones that have earned a permanent spot. Some I pay for out of my own pocket. Some are covered by my employer.</p><p>Let&#8217;s get to it&#8230;</p><h1>1. Wispr Flow <em>(personal)</em></h1><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!ssBw!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd11c24f9-e6a8-4540-a301-16ecd825cf05_2924x1924.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!ssBw!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd11c24f9-e6a8-4540-a301-16ecd825cf05_2924x1924.png 424w, https://substackcdn.com/image/fetch/$s_!ssBw!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd11c24f9-e6a8-4540-a301-16ecd825cf05_2924x1924.png 848w, https://substackcdn.com/image/fetch/$s_!ssBw!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd11c24f9-e6a8-4540-a301-16ecd825cf05_2924x1924.png 1272w, https://substackcdn.com/image/fetch/$s_!ssBw!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd11c24f9-e6a8-4540-a301-16ecd825cf05_2924x1924.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!ssBw!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd11c24f9-e6a8-4540-a301-16ecd825cf05_2924x1924.png" width="1456" height="958" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d11c24f9-e6a8-4540-a301-16ecd825cf05_2924x1924.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:958,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1054754,&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://read.futureproofds.com/i/195221459?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd11c24f9-e6a8-4540-a301-16ecd825cf05_2924x1924.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_!ssBw!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd11c24f9-e6a8-4540-a301-16ecd825cf05_2924x1924.png 424w, https://substackcdn.com/image/fetch/$s_!ssBw!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd11c24f9-e6a8-4540-a301-16ecd825cf05_2924x1924.png 848w, https://substackcdn.com/image/fetch/$s_!ssBw!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd11c24f9-e6a8-4540-a301-16ecd825cf05_2924x1924.png 1272w, https://substackcdn.com/image/fetch/$s_!ssBw!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd11c24f9-e6a8-4540-a301-16ecd825cf05_2924x1924.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>It&#8217;s a voice-to-text tool. But calling it that undersells it.</p><p>I think much faster when I&#8217;m speaking than when I&#8217;m typing. So <a href="https://wisprflow.ai/r?ANDRES422">Wispr Flow</a> essentially removed the bottleneck between my brain and everything else in my stack. I use it to brainstorm out loud, give instructions to Claude, write Slack messages, and dump half-formed thoughts I clean up later.</p><p>That last one is something I do constantly: speak a messy brain dump into Wispr, hand it to Claude to organize, then use Claude to expand it into documentation, a deeper investigation, or a full draft. It&#8217;s become a core part of how I go from idea to output.</p><p>Because it sits at the input layer of everything I do, it speeds up every other tool on this list.</p><p><em>If you type everything and feel like your hands can&#8217;t keep up with your brain, this is worth trying.</em></p><h1>Claude <em>(personal Max, work standard)</em></h1><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!pWSe!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fea121bf1-33dd-4150-b821-73b8621467a7_2868x1692.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!pWSe!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fea121bf1-33dd-4150-b821-73b8621467a7_2868x1692.png 424w, https://substackcdn.com/image/fetch/$s_!pWSe!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fea121bf1-33dd-4150-b821-73b8621467a7_2868x1692.png 848w, https://substackcdn.com/image/fetch/$s_!pWSe!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fea121bf1-33dd-4150-b821-73b8621467a7_2868x1692.png 1272w, https://substackcdn.com/image/fetch/$s_!pWSe!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fea121bf1-33dd-4150-b821-73b8621467a7_2868x1692.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!pWSe!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fea121bf1-33dd-4150-b821-73b8621467a7_2868x1692.png" width="1456" height="859" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/ea121bf1-33dd-4150-b821-73b8621467a7_2868x1692.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:859,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:798048,&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://read.futureproofds.com/i/195221459?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fea121bf1-33dd-4150-b821-73b8621467a7_2868x1692.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_!pWSe!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fea121bf1-33dd-4150-b821-73b8621467a7_2868x1692.png 424w, https://substackcdn.com/image/fetch/$s_!pWSe!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fea121bf1-33dd-4150-b821-73b8621467a7_2868x1692.png 848w, https://substackcdn.com/image/fetch/$s_!pWSe!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fea121bf1-33dd-4150-b821-73b8621467a7_2868x1692.png 1272w, https://substackcdn.com/image/fetch/$s_!pWSe!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fea121bf1-33dd-4150-b821-73b8621467a7_2868x1692.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><a href="https://claude.com/product/overview?utm_source=linkedin&amp;utm_medium=influencer_knw&amp;utm_campaign=AndresVourakis03_clai_us&amp;utm_content=tutorial_single">Claude</a> is the center of my stack.</p><p>It&#8217;s how I brainstorm, write and debug code, think through problems, and draft communications. If Wispr Flow is the input layer, Claude is the brain.</p><p>My work covers Claude at a Pro tier. I personally pay for Max, not for my day job, but for everything else I build and experiment with outside of it. The difference matters for longer context, heavier reasoning tasks, and Claude Code, which handles end-to-end implementation, catches its own mistakes, and reasons through complex multi-step tasks in a way that genuinely changes what&#8217;s possible in a single working session.</p><h2>Windsurf <em>(personal)</em></h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!KodB!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F07a7d631-8a75-4cb7-a43e-4944fce48cdb_3112x2100.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!KodB!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F07a7d631-8a75-4cb7-a43e-4944fce48cdb_3112x2100.png 424w, https://substackcdn.com/image/fetch/$s_!KodB!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F07a7d631-8a75-4cb7-a43e-4944fce48cdb_3112x2100.png 848w, https://substackcdn.com/image/fetch/$s_!KodB!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F07a7d631-8a75-4cb7-a43e-4944fce48cdb_3112x2100.png 1272w, https://substackcdn.com/image/fetch/$s_!KodB!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F07a7d631-8a75-4cb7-a43e-4944fce48cdb_3112x2100.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!KodB!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F07a7d631-8a75-4cb7-a43e-4944fce48cdb_3112x2100.png" width="1456" height="983" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/07a7d631-8a75-4cb7-a43e-4944fce48cdb_3112x2100.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:983,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1443938,&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://read.futureproofds.com/i/195221459?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F07a7d631-8a75-4cb7-a43e-4944fce48cdb_3112x2100.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_!KodB!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F07a7d631-8a75-4cb7-a43e-4944fce48cdb_3112x2100.png 424w, https://substackcdn.com/image/fetch/$s_!KodB!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F07a7d631-8a75-4cb7-a43e-4944fce48cdb_3112x2100.png 848w, https://substackcdn.com/image/fetch/$s_!KodB!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F07a7d631-8a75-4cb7-a43e-4944fce48cdb_3112x2100.png 1272w, https://substackcdn.com/image/fetch/$s_!KodB!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F07a7d631-8a75-4cb7-a43e-4944fce48cdb_3112x2100.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>My work covers Cursor. I&#8217;ve used it and it&#8217;s good.</p><p>But I still pay for <a href="https://windsurf.com/">Windsurf</a> out of pocket. I know that on paper it probably looks redundant: I already have Claude Code. I could just use VS Code and call it a day.</p><p>The honest answer is that Windsurf has features I genuinely enjoy using, and the IDE experience feels complete in a way that keeps me coming back. The agentic features are accurate and don&#8217;t require constant babysitting. It&#8217;s become a reliable backup that I reach for on personal projects, and occasionally I&#8217;ll use it alongside Claude in a sort of adversarial mode, where one checks the other&#8217;s work. Two different models, two different reasoning paths, one output that&#8217;s been pressure-tested.</p><p>Is it strictly necessary? Probably not. But it earns its place.</p><p>It&#8217;s my go-to setup for personal projects, weekend experiments, and anything I&#8217;m building outside of work.</p><h2>&#8220;Take Notes for Me&#8221;, Google Meet <em>(work)</em></h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!2kOR!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb4433d2a-c220-4bd0-83de-757f7fa8fcdf_3094x1958.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!2kOR!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb4433d2a-c220-4bd0-83de-757f7fa8fcdf_3094x1958.png 424w, https://substackcdn.com/image/fetch/$s_!2kOR!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb4433d2a-c220-4bd0-83de-757f7fa8fcdf_3094x1958.png 848w, https://substackcdn.com/image/fetch/$s_!2kOR!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb4433d2a-c220-4bd0-83de-757f7fa8fcdf_3094x1958.png 1272w, https://substackcdn.com/image/fetch/$s_!2kOR!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb4433d2a-c220-4bd0-83de-757f7fa8fcdf_3094x1958.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!2kOR!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb4433d2a-c220-4bd0-83de-757f7fa8fcdf_3094x1958.png" width="1456" height="921" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/b4433d2a-c220-4bd0-83de-757f7fa8fcdf_3094x1958.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:921,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1230346,&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://read.futureproofds.com/i/195221459?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb4433d2a-c220-4bd0-83de-757f7fa8fcdf_3094x1958.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_!2kOR!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb4433d2a-c220-4bd0-83de-757f7fa8fcdf_3094x1958.png 424w, https://substackcdn.com/image/fetch/$s_!2kOR!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb4433d2a-c220-4bd0-83de-757f7fa8fcdf_3094x1958.png 848w, https://substackcdn.com/image/fetch/$s_!2kOR!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb4433d2a-c220-4bd0-83de-757f7fa8fcdf_3094x1958.png 1272w, https://substackcdn.com/image/fetch/$s_!2kOR!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb4433d2a-c220-4bd0-83de-757f7fa8fcdf_3094x1958.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 one is easy to overlook because it&#8217;s baked into Google Meet, not a standalone product.</p><p>But &#8220;T<a href="https://workspace.google.com/solutions/ai/ai-note-taking/">ake Notes for Me</a>&#8221; has quietly become one of the most useful things in my workflow.</p><p>I work closely with stakeholders. Design discussions, alignment calls, requirements sessions. A lot of important context lives in those conversations. I used to take manual notes and still miss things.</p><p>Now I let Gemini handle it, and after the call I have a structured summary, action items, and a full transcript I can actually work with. More importantly, I can feed that directly as context into Claude and other tools. The discussion becomes usable input, not a memory I&#8217;m trying to reconstruct.</p><p>Not flashy. But it quietly makes everything else work better.</p><h2>&#128218; NotebookLM</h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Wq3B!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F298f6378-e347-4ae1-b98f-4929eeed3155_3010x1966.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Wq3B!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F298f6378-e347-4ae1-b98f-4929eeed3155_3010x1966.png 424w, https://substackcdn.com/image/fetch/$s_!Wq3B!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F298f6378-e347-4ae1-b98f-4929eeed3155_3010x1966.png 848w, https://substackcdn.com/image/fetch/$s_!Wq3B!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F298f6378-e347-4ae1-b98f-4929eeed3155_3010x1966.png 1272w, https://substackcdn.com/image/fetch/$s_!Wq3B!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F298f6378-e347-4ae1-b98f-4929eeed3155_3010x1966.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Wq3B!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F298f6378-e347-4ae1-b98f-4929eeed3155_3010x1966.png" width="1456" height="951" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/298f6378-e347-4ae1-b98f-4929eeed3155_3010x1966.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:951,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1011164,&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://read.futureproofds.com/i/195221459?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F298f6378-e347-4ae1-b98f-4929eeed3155_3010x1966.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_!Wq3B!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F298f6378-e347-4ae1-b98f-4929eeed3155_3010x1966.png 424w, https://substackcdn.com/image/fetch/$s_!Wq3B!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F298f6378-e347-4ae1-b98f-4929eeed3155_3010x1966.png 848w, https://substackcdn.com/image/fetch/$s_!Wq3B!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F298f6378-e347-4ae1-b98f-4929eeed3155_3010x1966.png 1272w, https://substackcdn.com/image/fetch/$s_!Wq3B!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F298f6378-e347-4ae1-b98f-4929eeed3155_3010x1966.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><a href="https://notebooklm.google/">NotebookLM</a> isn&#8217;t in my stack every single day, but it shows up often enough, and for a specific enough reason, that it belongs here.</p><p>When I&#8217;m doing research (reading papers, going deep on a topic) I don&#8217;t fully trust any single source, including Claude. Claude is excellent, but it can hallucinate, especially on niche or recent material.</p><p>NotebookLM lets me feed in the actual papers and articles I&#8217;m working with and get explanations and outlines grounded in those sources. It&#8217;s my verification layer. When I need to trust the answer, not just get one, this is where I go.</p><h1>How it all fits together</h1><p>Listing tools makes them sound more isolated than they are. In practice, this is one system.</p><ul><li><p><strong>Wispr Flow</strong> handles the input, speaking is faster than typing, so it removes friction at the start of almost every task.</p></li><li><p><strong>Claude</strong> is where the real thinking and overhaul happens.</p></li><li><p><strong>Windsurf</strong> gives me an IDE I enjoy working in, with Claude as a pressure-test on its output.</p></li><li><p><strong>Google Workspace transcription</strong> captures stakeholder context that would otherwise get lost and feeds it downstream.</p></li><li><p><strong>NotebookLM</strong> closes the loop when I need sourced answers rather than fast ones.</p></li></ul><p>Each tool has a job. Together, they cover the full arc from raw idea to finished output.</p><div><hr></div><h2>A couple of other great resources:</h2><ul><li><p><strong>&#128640; Ready to take the next step? </strong>Get my <a href="https://futureproofds.com/resources/agentic-analytics-for-data-scientists">free workshop</a> on agentic analytics for data scientists.</p></li><li><p><strong>&#129302; Struggling to keep up with AI/ML?</strong> <a href="https://neuralpulse.io/subscribe">Neural Pulse</a> is a 5-minute, human-curated newsletter delivering the best in AI, ML, and data science.</p></li></ul><div><hr></div><p><em>Thank you for reading! I hope you find this dashboard useful.</em></p><p><em>- Andres Vourakis</em></p><div><hr></div><p>Before you go, please hit the like &#10084;&#65039; button at the bottom of this email to help support me. It truly makes a difference!</p>]]></content:encoded></item><item><title><![CDATA[I Built a Free Dashboard to Track AI in Data Science]]></title><description><![CDATA[Explore the skills companies are actually hiring for, updated weekly with thousands of job postings]]></description><link>https://read.futureproofds.com/p/i-built-a-free-dashboard-to-track</link><guid isPermaLink="false">https://read.futureproofds.com/p/i-built-a-free-dashboard-to-track</guid><dc:creator><![CDATA[Andres Vourakis]]></dc:creator><pubDate>Fri, 10 Apr 2026 15:32:46 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/20bf4d03-f843-4054-a580-1a62dd0636a7_2250x1181.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><em>What AI skills are companies actually hiring for right now?</em></p><p>That question has been driving a lot of my research over the past few months. I&#8217;ve been scraping thousands of U.S. data science job postings, analyzing the data, and writing about the findings here.</p><p>But at some point, I realized something: <strong>the dashboard I built for the analysis was more useful than anything I was writing about it.</strong></p><p>So I decided to open source it.</p><h1>What the dashboard covers</h1><div class="native-video-embed" data-component-name="VideoPlaceholder" data-attrs="{&quot;mediaUploadId&quot;:&quot;41cede1c-8b42-4135-a574-81886756f0a7&quot;,&quot;duration&quot;:null}"></div><p>You can explore:</p><ul><li><p>The top skills companies are actually hiring for, ranked by frequency</p></li><li><p>Skills broken down by category (ML/DL, GenAI, Cloud, MLOps, etc.)</p></li><li><p>What percentage of roles now require AI skills, broken down by seniority level</p></li><li><p>The salary premium for candidates with AI skills</p></li><li><p>An interactive explorer where you can browse individual postings with matched skills highlighted</p></li></ul><p>The skill extraction is built on around 230 curated keyword groups, so it&#8217;s pretty granular.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://ai-in-ds.streamlit.app/&quot;,&quot;text&quot;:&quot;Explore the dashboard&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://ai-in-ds.streamlit.app/"><span>Explore the dashboard</span></a></p><h2>Why open source?</h2><p>I&#8217;ve always believed that the best way to help people navigate this market is to show them the data, not just tell them what I think about it.</p><p>The code, the data, and the full methodology are all available in this <a href="https://github.com/andresvourakis/ai-ds-job-market">GitHub repo</a>. You can fork it, run your own analysis, or build on top of it.</p><blockquote><p>And by the way, I&#8217;m scraping weekly, and I&#8217;ll soon be uploading all of the raw data to Kaggle as well. For now, everything is in the repo.</p></blockquote><h1>What&#8217;s next?</h1><p>I plan to keep updating this throughout the year and revisit the analysis before the summer. Just like the one I did early this year:</p><div class="digest-post-embed" data-attrs="{&quot;nodeId&quot;:&quot;8291d587-91de-44a7-9d01-244c0ba99860&quot;,&quot;caption&quot;:&quot;Late last year, I published an article analyzing the data science job market, drawing primarily on two independent studies: one from Harvard University and another from the labor market analytics company Lightcast.&quot;,&quot;cta&quot;:&quot;Read full story&quot;,&quot;showBylines&quot;:true,&quot;showDescription&quot;:true,&quot;showImage&quot;:true,&quot;size&quot;:&quot;sm&quot;,&quot;isEditorNode&quot;:true,&quot;title&quot;:&quot;AI + Data Scientist Job Market in 2026: Analysis, Trends, Opportunities (Early Year Report)&quot;,&quot;publishedBylines&quot;:[{&quot;id&quot;:135808578,&quot;name&quot;:&quot;Andres Vourakis&quot;,&quot;bio&quot;:&quot;Senior Data Scientist (and ex-hiring manager) with 8+ years in tech and applied AI/ML&quot;,&quot;photo_url&quot;:&quot;https://substackcdn.com/image/fetch/f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd9ebf6fc-4ed6-47e1-938e-a1fa37a2347e_1601x1646.jpeg&quot;,&quot;is_guest&quot;:false,&quot;bestseller_tier&quot;:null}],&quot;post_date&quot;:&quot;2026-01-15T14:01:17.381Z&quot;,&quot;cover_image&quot;:&quot;https://substackcdn.com/image/fetch/$s_!Ki6z!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd5347fc9-b5f5-4f51-942a-8c1318728cb8_3144x960.png&quot;,&quot;cover_image_alt&quot;:null,&quot;canonical_url&quot;:&quot;https://read.futureproofds.com/p/ai-and-data-scientist-job-market-in-2026&quot;,&quot;section_name&quot;:null,&quot;video_upload_id&quot;:null,&quot;id&quot;:184348336,&quot;type&quot;:&quot;newsletter&quot;,&quot;reaction_count&quot;:39,&quot;comment_count&quot;:8,&quot;publication_id&quot;:2749479,&quot;publication_name&quot;:&quot;Future Proof Data Science&quot;,&quot;publication_logo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!yGDz!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F87022f87-5553-4f08-b339-8b197aa4e908_1280x1280.png&quot;,&quot;belowTheFold&quot;:true,&quot;youtube_url&quot;:null,&quot;show_links&quot;:null,&quot;feed_url&quot;:null}"></div><p>If you find it useful, give the repo a star and share the dashboard with someone who might benefit from it. That&#8217;s the best way to say thank you and support this work.</p><p>Oh and of course, if you spot anything off or have ideas for what to add, I&#8217;d love to hear from you.</p><div><hr></div><h2>A couple of other great resources:</h2><ul><li><p><strong>&#128640; Ready to take the next step? </strong>Build real <a href="https://futureproofds.com/">AI workflows</a> and sharpen the skills that keep data scientists ahead.</p></li><li><p><strong>&#129302; Struggling to keep up with AI/ML?</strong> <a href="https://neuralpulse.io/subscribe">Neural Pulse</a> is a 5-minute, human-curated newsletter delivering the best in AI, ML, and data science.</p></li></ul><div><hr></div><p><em>Thank you for reading! I hope you find this dashboard useful.</em></p><p><em>- Andres Vourakis</em></p><div><hr></div><p>Before you go, please hit the like &#10084;&#65039; button at the bottom of this email to help support me. It truly makes a difference!</p>]]></content:encoded></item><item><title><![CDATA[Ultimate Guide to Future-Proofing Your Data Science Career (2026-2027)]]></title><description><![CDATA[The skills, strategies, and career moves data scientists need to stay competitive as AI reshapes the field]]></description><link>https://read.futureproofds.com/p/ultimate-guide-to-future-proofing</link><guid isPermaLink="false">https://read.futureproofds.com/p/ultimate-guide-to-future-proofing</guid><dc:creator><![CDATA[Andres Vourakis]]></dc:creator><pubDate>Thu, 26 Mar 2026 13:31:37 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/dc4f3453-ed53-4ca1-b37c-7f3240bdd7ec_2400x1260.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><em>Am I even doing enough?</em></p><p>I&#8217;ve been hearing this a lot from data scientists lately. People who are genuinely good at what they do, but feel overwhelmed by how fast everything is changing.</p><p>Not sure where to focus. Not sure if what they&#8217;re learning even matters.</p><p><em>And honestly, it wasn&#8217;t that long ago that I felt that way too.</em> Until I started approaching my learning a lot more strategically.</p><p>You see, for the past year, I&#8217;ve been obsessed with answering one question: <strong>What does it really take to future-proof my data science career?</strong> Not just in the context of AI, but in terms of how the field is evolving over the next few years.</p><p>That shift in focus has genuinely transformed my career, and for the first time ever, I feel like I&#8217;m ahead of the curve, not chasing it.</p><p>Today, I&#8217;m actively championing AI adoption at my company. I&#8217;ve been able to amplify my output at work in ways that have led to promotion discussions much sooner than ever before. I&#8217;m a stronger candidate in the market despite the competition. I&#8217;ve even been invited to give talks on agentic analytics.</p><p><em>But I didn&#8217;t get here by learning passively.</em></p><p>I got here by building, by studying the market, and by figuring out what actually matters. I&#8217;ve analyzed thousands of job postings to understand what companies really want from data scientists right now, and the picture is much clearer than the noise on social media makes it seem.</p><p>This article is my attempt to lay it all out in one place for anyone who needs it.</p><p>A practical, no-BS guide to future-proofing your data science career in 2026-2027, covering the skills, the strategy, and the mindset shifts that are actually making a difference right now.</p><div><hr></div><p><strong>Here&#8217;s what we&#8217;ll cover:</strong></p><ol><li><p>What the job market actually looks like right now (based on thousands of job postings analyzed)</p></li><li><p>The three pillars every data scientist should be investing in</p></li><li><p>Agentic analytics: what it is and why you should (really) care</p></li><li><p>Should you transition to AI engineering? (My honest advice)</p></li><li><p>A practical learning roadmap to help you get started</p></li><li><p>The most effective way to future-proof your career for AI &#128072;</p></li></ol><p>You&#8217;ll definitely want to read this one until the end!</p><div><hr></div><h1>What&#8217;s actually happening in the job market</h1><p>Let&#8217;s start with the data, because there&#8217;s a lot of noise out there and most of it falls into either &#8220;data science is dead&#8221; panic or &#8220;it&#8217;s all just hype&#8221; copium.</p><p>Neither is accurate.</p><p>Earlier this year, I scraped and analyzed 700+ Data Scientist job postings in the US spanning November 2025 through January 2026. I also drew on findings from a <a href="https://papers.ssrn.com/sol3/papers.cfm?abstract_id=5425555">Harvard study</a> that tracked nearly 285,000 companies and a report by <a href="https://lightcast.io/resources/blog/the-generative-ai-job-market-2025-data-insights">Lightcast</a> on generative AI hiring trends. Here&#8217;s what the picture actually looks like:</p><h3>The fundamentals haven&#8217;t changed, but AI is now expected</h3><p>Python, SQL, and machine learning still dominate job postings. No surprise there. But <strong>AI is now referenced in almost 60% of data science postings</strong>, and LLMs have entered the top 10 most requested skills compared to the previous year.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!d4iU!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa9fb0d8c-bdd5-4fa7-ab57-89ea8b152c90_1456x947.webp" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!d4iU!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa9fb0d8c-bdd5-4fa7-ab57-89ea8b152c90_1456x947.webp 424w, https://substackcdn.com/image/fetch/$s_!d4iU!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa9fb0d8c-bdd5-4fa7-ab57-89ea8b152c90_1456x947.webp 848w, https://substackcdn.com/image/fetch/$s_!d4iU!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa9fb0d8c-bdd5-4fa7-ab57-89ea8b152c90_1456x947.webp 1272w, https://substackcdn.com/image/fetch/$s_!d4iU!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa9fb0d8c-bdd5-4fa7-ab57-89ea8b152c90_1456x947.webp 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!d4iU!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa9fb0d8c-bdd5-4fa7-ab57-89ea8b152c90_1456x947.webp" width="1456" height="947" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a9fb0d8c-bdd5-4fa7-ab57-89ea8b152c90_1456x947.webp&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:947,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:31894,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/webp&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://read.futureproofds.com/i/191777115?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa9fb0d8c-bdd5-4fa7-ab57-89ea8b152c90_1456x947.webp&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!d4iU!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa9fb0d8c-bdd5-4fa7-ab57-89ea8b152c90_1456x947.webp 424w, https://substackcdn.com/image/fetch/$s_!d4iU!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa9fb0d8c-bdd5-4fa7-ab57-89ea8b152c90_1456x947.webp 848w, https://substackcdn.com/image/fetch/$s_!d4iU!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa9fb0d8c-bdd5-4fa7-ab57-89ea8b152c90_1456x947.webp 1272w, https://substackcdn.com/image/fetch/$s_!d4iU!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa9fb0d8c-bdd5-4fa7-ab57-89ea8b152c90_1456x947.webp 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>AI isn&#8217;t a niche specialization for data scientists anymore. It&#8217;s becoming part of the baseline.</p><h3>Senior roles are growing. Entry-level is tightening.</h3><p>The Harvard study showed something important: when companies adopt generative AI, <strong>junior hiring slows down while senior roles keep growing.</strong> Companies aren&#8217;t mass-firing juniors, but they&#8217;re hiring fewer of them. The routine work that used to justify those headcounts (cleaning data, writing basic code, drafting reports) is now handled more efficiently with AI.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!NgUP!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fea8ac010-836b-4c39-8066-f16fec27d4d8_1456x942.webp" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!NgUP!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fea8ac010-836b-4c39-8066-f16fec27d4d8_1456x942.webp 424w, https://substackcdn.com/image/fetch/$s_!NgUP!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fea8ac010-836b-4c39-8066-f16fec27d4d8_1456x942.webp 848w, https://substackcdn.com/image/fetch/$s_!NgUP!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fea8ac010-836b-4c39-8066-f16fec27d4d8_1456x942.webp 1272w, https://substackcdn.com/image/fetch/$s_!NgUP!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fea8ac010-836b-4c39-8066-f16fec27d4d8_1456x942.webp 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!NgUP!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fea8ac010-836b-4c39-8066-f16fec27d4d8_1456x942.webp" width="1456" height="942" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/ea8ac010-836b-4c39-8066-f16fec27d4d8_1456x942.webp&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:942,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:64652,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/webp&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://read.futureproofds.com/i/191777115?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fea8ac010-836b-4c39-8066-f16fec27d4d8_1456x942.webp&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!NgUP!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fea8ac010-836b-4c39-8066-f16fec27d4d8_1456x942.webp 424w, https://substackcdn.com/image/fetch/$s_!NgUP!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fea8ac010-836b-4c39-8066-f16fec27d4d8_1456x942.webp 848w, https://substackcdn.com/image/fetch/$s_!NgUP!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fea8ac010-836b-4c39-8066-f16fec27d4d8_1456x942.webp 1272w, https://substackcdn.com/image/fetch/$s_!NgUP!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fea8ac010-836b-4c39-8066-f16fec27d4d8_1456x942.webp 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><figcaption class="image-caption">Employment differences between adopters and non-adopters over time. Image by Harvard.</figcaption></figure></div><blockquote><p>&#128161; The door into many companies is narrower, not closed. And for those already inside, opportunities haven&#8217;t disappeared. In fact, internal promotions for juniors actually went up in companies adopting AI.</p></blockquote><h3>AI-heavy roles skew mid-to-senior</h3><p>When I looked at which seniority levels are being asked for AI skills, the pattern was clear: <strong>73% of AI-focused postings target mid (43%) and senior (30%) data scientists.</strong> Entry-level accounted for less than 6%.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!9fQm!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff72c14c5-7523-4e92-838d-72ac3ca7f959_1684x756.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!9fQm!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff72c14c5-7523-4e92-838d-72ac3ca7f959_1684x756.png 424w, https://substackcdn.com/image/fetch/$s_!9fQm!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff72c14c5-7523-4e92-838d-72ac3ca7f959_1684x756.png 848w, https://substackcdn.com/image/fetch/$s_!9fQm!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff72c14c5-7523-4e92-838d-72ac3ca7f959_1684x756.png 1272w, https://substackcdn.com/image/fetch/$s_!9fQm!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff72c14c5-7523-4e92-838d-72ac3ca7f959_1684x756.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!9fQm!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff72c14c5-7523-4e92-838d-72ac3ca7f959_1684x756.png" width="1456" height="654" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/f72c14c5-7523-4e92-838d-72ac3ca7f959_1684x756.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:654,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:48249,&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://read.futureproofds.com/i/191777115?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff72c14c5-7523-4e92-838d-72ac3ca7f959_1684x756.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_!9fQm!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff72c14c5-7523-4e92-838d-72ac3ca7f959_1684x756.png 424w, https://substackcdn.com/image/fetch/$s_!9fQm!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff72c14c5-7523-4e92-838d-72ac3ca7f959_1684x756.png 848w, https://substackcdn.com/image/fetch/$s_!9fQm!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff72c14c5-7523-4e92-838d-72ac3ca7f959_1684x756.png 1272w, https://substackcdn.com/image/fetch/$s_!9fQm!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff72c14c5-7523-4e92-838d-72ac3ca7f959_1684x756.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 reinforces what I&#8217;ve been saying for a while now: companies mainly expect experienced practitioners to be the ones who translate AI capabilities into real systems and business outcomes.</p><h3>There&#8217;s an emerging salary premium</h3><p>Roles that explicitly mention AI tend to show higher median salaries across most seniority levels. The signal is still early (salary data was only available for about a third of postings), but it&#8217;s directionally clear: <strong>AI skills are starting to pay more.</strong></p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!nnBm!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb236074b-797b-4e66-a671-eaed48302dae_2180x502.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!nnBm!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb236074b-797b-4e66-a671-eaed48302dae_2180x502.png 424w, https://substackcdn.com/image/fetch/$s_!nnBm!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb236074b-797b-4e66-a671-eaed48302dae_2180x502.png 848w, https://substackcdn.com/image/fetch/$s_!nnBm!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb236074b-797b-4e66-a671-eaed48302dae_2180x502.png 1272w, https://substackcdn.com/image/fetch/$s_!nnBm!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb236074b-797b-4e66-a671-eaed48302dae_2180x502.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!nnBm!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb236074b-797b-4e66-a671-eaed48302dae_2180x502.png" width="1456" height="335" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/b236074b-797b-4e66-a671-eaed48302dae_2180x502.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:335,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:82827,&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://read.futureproofds.com/i/191777115?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb236074b-797b-4e66-a671-eaed48302dae_2180x502.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_!nnBm!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb236074b-797b-4e66-a671-eaed48302dae_2180x502.png 424w, https://substackcdn.com/image/fetch/$s_!nnBm!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb236074b-797b-4e66-a671-eaed48302dae_2180x502.png 848w, https://substackcdn.com/image/fetch/$s_!nnBm!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb236074b-797b-4e66-a671-eaed48302dae_2180x502.png 1272w, https://substackcdn.com/image/fetch/$s_!nnBm!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb236074b-797b-4e66-a671-eaed48302dae_2180x502.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><blockquote><p>&#128161; If you want the full breakdown, including which specific AI skills are most in demand, I published the <a href="https://read.futureproofds.com/p/ai-and-data-scientist-job-market-in-2026">complete job market report here</a>.</p></blockquote><div><hr></div><h1>The three pillars of a future-proof data science career</h1><p><em>Now that we&#8217;ve seen what the market is asking for, let&#8217;s talk about how to respond.</em></p><p>What I&#8217;m about to share are the three areas I believe every data scientist should be investing in right now, regardless of seniority (although how you prioritize each does depend largely on your goals and your seniority).</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!S-KM!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcb9416cf-e3dd-429c-953f-f314f29634ca_2048x1536.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!S-KM!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcb9416cf-e3dd-429c-953f-f314f29634ca_2048x1536.png 424w, https://substackcdn.com/image/fetch/$s_!S-KM!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcb9416cf-e3dd-429c-953f-f314f29634ca_2048x1536.png 848w, https://substackcdn.com/image/fetch/$s_!S-KM!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcb9416cf-e3dd-429c-953f-f314f29634ca_2048x1536.png 1272w, https://substackcdn.com/image/fetch/$s_!S-KM!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcb9416cf-e3dd-429c-953f-f314f29634ca_2048x1536.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!S-KM!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcb9416cf-e3dd-429c-953f-f314f29634ca_2048x1536.png" width="1456" height="1092" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/cb9416cf-e3dd-429c-953f-f314f29634ca_2048x1536.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1092,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:255612,&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://read.futureproofds.com/i/191777115?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcb9416cf-e3dd-429c-953f-f314f29634ca_2048x1536.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_!S-KM!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcb9416cf-e3dd-429c-953f-f314f29634ca_2048x1536.png 424w, https://substackcdn.com/image/fetch/$s_!S-KM!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcb9416cf-e3dd-429c-953f-f314f29634ca_2048x1536.png 848w, https://substackcdn.com/image/fetch/$s_!S-KM!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcb9416cf-e3dd-429c-953f-f314f29634ca_2048x1536.png 1272w, https://substackcdn.com/image/fetch/$s_!S-KM!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcb9416cf-e3dd-429c-953f-f314f29634ca_2048x1536.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>But I want to be clear about <em>why</em> these three specifically.</p><p>The goal isn&#8217;t just to &#8220;keep up with AI.&#8221; The goal is to <strong>make yourself full-stack enough to navigate the market in almost any direction.</strong> Whether you want to stay in a data science role, move into AI engineering, step into leadership, or even build something on your own, these three pillars give you the foundation to choose.</p><p>And that&#8217;s the real future-proofing, in my opinion. Not clinging to a job title, but building the kind of skills that give you options no matter how the field evolves.</p><h2>Pillar 1: AI-Powered Data Scientist</h2><p>This is about making AI a core part of how you work, not just a side tool you occasionally prompt.</p><p>Right now, most data scientists are using AI for ad-hoc tasks: fixing code, generating documentation, and summarizing results. And that&#8217;s fine as a starting point. But the gap between that and what the market is starting to expect is widening quietly. <strong>If that&#8217;s where your AI usage stops, you&#8217;re building on a false floor.</strong></p><p>The next level has two sides to it.</p><ol><li><p><strong>The first is using AI to amplify your existing work.</strong> Automating data cleaning and early-stage EDA. Speeding up reporting. Getting through the repetitive parts of your workflow faster so you can focus on higher-leverage thinking. This alone can dramatically increase your output and make you more effective in your current role.</p></li><li><p><strong>The second is building AI systems that create new value.</strong> Designing semantic layers that let AI reason over your company&#8217;s data. Enabling conversational analytics so stakeholders can query data in natural language instead of waiting on you. Building custom knowledge sources and RAG systems that give AI accurate, context-aware access to real datasets.</p></li></ol><p>That combination, amplifying your work <em>and</em> building systems others depend on, is what separates someone who uses AI from someone who is indispensable because of it. It&#8217;s also what has made the biggest difference in my own career recently.</p><blockquote><p>&#128161; About 1 in 3 AI-related job postings (31%) now require hands-on expertise across multiple specific AI skills: LLMs, RAG, prompt engineering, vector databases, and more. This isn&#8217;t conceptual. Companies want people who can build.</p></blockquote><h2>Pillar 2: ML &amp; MLOps</h2><p>Despite not getting as much attention as AI, this one is more relevant than ever.</p><p><strong>The data science role is becoming more full-stack.</strong> Job descriptions are increasingly expecting data scientists to build ML/AI systems end-to-end, from development through deployment and monitoring. Companies don&#8217;t just need insights anymore. They need robust, scalable solutions that deliver value beyond the notebook.</p><p>If you&#8217;re not already investing time in things like:</p><ul><li><p>Model deployment and monitoring</p></li><li><p>System design for ML pipelines</p></li><li><p>Tools like Vertex AI, MLflow, or similar platforms</p></li><li><p>Python packaging (Poetry, UV) and data validation (Pydantic)</p></li></ul><p>...you should start. These aren&#8217;t &#8220;nice to have&#8221; skills anymore. They&#8217;re showing up in job descriptions for standard Data Scientist roles, not just ML Engineer positions.</p><p>This is also the pillar that opens the door to AI Engineering if that&#8217;s a path that interests you (which we&#8217;ll discuss in later sections of this guide). The overlap between a strong data scientist with MLOps skills and an AI Engineer is bigger than most people realize. I&#8217;ve been leaning back into this area myself, and it&#8217;s been one of the most valuable investments I&#8217;ve made.</p><h2>Pillar 3: Human-First Strategist</h2><p>Here&#8217;s the mistake a lot of people make: they think AI skills alone are enough.</p><p>They&#8217;re not.</p><p>As AI levels the playing field technically (everyone gets access to the same tools, the same models, the same capabilities), <strong>your human side becomes the differentiator.</strong> The ability to communicate clearly, tell a compelling story with data, and influence decisions is what will set you apart when everyone around you can prompt their way to a decent analysis.</p><p>The skills that make you truly resilient in this market are the ones AI cannot replace:</p><ul><li><p><strong>Business acumen:</strong> Connecting your work to outcomes that matter, whether that&#8217;s revenue, retention, cost savings, or growth</p></li><li><p><strong>Strategic communication:</strong> Knowing how to distill complex ideas into something that drives action, not just understanding</p></li><li><p><strong>Stakeholder influence:</strong> Building the trust and alignment needed for your work to actually shape decisions</p></li><li><p><strong>Domain expertise:</strong> Understanding the industry and context behind the problems you&#8217;re solving, something no model can learn from a prompt</p></li></ul><p>These are about <strong>judgment and influence</strong>, not just execution. And no matter how good AI tools get, they can&#8217;t replicate that.</p><p>The data scientists who will stand out in the next few years won&#8217;t be the ones with the most technical skills. They&#8217;ll be the ones who can pair those skills with the judgment to know what matters, the communication to make it land, and the influence to turn insights into action.</p><blockquote><p>&#128161; If you want to stay valuable, combine technical proficiency with these human skills. That mix is what makes you more than someone who can query data. It makes you someone who can drive outcomes. I wrote a full article on <a href="https://read.futureproofds.com/p/from-junior-to-senior-data-scientist">the traits that accelerated my career growth</a> if you want to dig deeper.</p></blockquote><div><hr></div><h1>Agentic Analytics: The Shift You Can&#8217;t Ignore</h1><p>If you haven&#8217;t heard this term yet, you will. A lot.</p><p>Agentic analytics represents a fundamental shift in how data work gets done. Instead of data professionals manually querying databases, building dashboards, and writing reports, AI agents step in to automate and augment large parts of that workflow, using natural language, business context, and structured reasoning.</p><p>And the backbone of this shift? <strong>The semantic layer and ontologies.</strong></p><h3>What&#8217;s a semantic layer (and why should you care)?</h3><p>Think of a semantic layer as a shared definition of your company&#8217;s data (metrics, business logic, relationships) that sits between raw data and anything that consumes it (dashboards, notebooks, AI agents, stakeholders).</p><p>The concept has actually been around since the 1990s. Looker modernized it with LookML, but what&#8217;s different now is that semantic layers are no longer just powering dashboards; they&#8217;re becoming <strong>the interface through which AI agents reason about data.</strong></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!aSwA!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6a33c7bc-6414-43bc-808f-6efb5580fe9c_960x502.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!aSwA!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6a33c7bc-6414-43bc-808f-6efb5580fe9c_960x502.png 424w, https://substackcdn.com/image/fetch/$s_!aSwA!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6a33c7bc-6414-43bc-808f-6efb5580fe9c_960x502.png 848w, https://substackcdn.com/image/fetch/$s_!aSwA!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6a33c7bc-6414-43bc-808f-6efb5580fe9c_960x502.png 1272w, https://substackcdn.com/image/fetch/$s_!aSwA!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6a33c7bc-6414-43bc-808f-6efb5580fe9c_960x502.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!aSwA!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6a33c7bc-6414-43bc-808f-6efb5580fe9c_960x502.png" width="960" height="502" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/6a33c7bc-6414-43bc-808f-6efb5580fe9c_960x502.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:502,&quot;width&quot;:960,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:122750,&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://read.futureproofds.com/i/191777115?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6a33c7bc-6414-43bc-808f-6efb5580fe9c_960x502.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_!aSwA!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6a33c7bc-6414-43bc-808f-6efb5580fe9c_960x502.png 424w, https://substackcdn.com/image/fetch/$s_!aSwA!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6a33c7bc-6414-43bc-808f-6efb5580fe9c_960x502.png 848w, https://substackcdn.com/image/fetch/$s_!aSwA!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6a33c7bc-6414-43bc-808f-6efb5580fe9c_960x502.png 1272w, https://substackcdn.com/image/fetch/$s_!aSwA!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6a33c7bc-6414-43bc-808f-6efb5580fe9c_960x502.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><figcaption class="image-caption">The &#8220;Semantic Layer&#8220;. Image by Tellius</figcaption></figure></div><blockquote><p>&#128161; In September 2025, major companies like dbt Labs, Snowflake, Google, Cube, and others came together to announce the Open Semantics Initiative (OSI), a shared standard for how systems define and communicate business context. This is a big deal.</p></blockquote><h3>What does this mean for you?</h3><p>Here&#8217;s my take: <strong>by the end of 2026, the idea of a semantic layer will start moving from cutting-edge to expected.</strong> We&#8217;ll see more &#8220;conversational analytics&#8221; capabilities across platforms, and data scientists who understand how to build and shape these semantic layers will have a significant edge.</p><p>I&#8217;ve experienced this firsthand. I recently deployed a talk-to-your-data Slackbot at my company, and one of the keys to its success was defining the semantic layer properly. You don&#8217;t need to be a data engineer to start building one. But you do need to understand why it matters.</p><blockquote><p>&#128161; Agentic analytics, semantic layers, and ontologies are already showing up in job postings. In small numbers now, but my bet is that this will only continue to increase. Data scientists who are part of this design process early will be the ones shaping the next generation of analytics, not just reacting to it. I go into much more detail in my article on <a href="https://read.futureproofds.com/p/semantic-layers-and-the-future-of-agentic-analytics">Semantic Layers and the Future of Agentic Analytics</a>.</p></blockquote><div><hr></div><h1>Should you transition to AI Engineering?</h1><p>This is one of the most common questions I see data scientists wrestling with right now. And it&#8217;s a fair one, because the hype around AI Engineering roles is real. The salaries are attractive, the work sounds exciting, and the job postings are everywhere.</p><p>But before you start rewriting your LinkedIn headline, here&#8217;s what you need to know.</p><h3>First, understand what AI Engineering actually is</h3><p>Strip away the hype, and AI Engineering looks a lot like software engineering applied to AI systems. It&#8217;s about designing, building, and operating intelligent applications reliably in production. Less emphasis on exploratory analysis and stakeholder storytelling. More emphasis on architecture, state management, evaluation frameworks, and deployment.</p><h3>It&#8217;s a spectrum, not a binary switch</h3><p>What a lot of people often overlook is that the data science role is already evolving to include more AI-focused work. As the market demands more experience with AI, many data scientists are now building foundation models for tasks like recommendation, designing RAG pipelines, running AI evaluation frameworks, and even orchestrating agentic workflows.</p><p>So this isn&#8217;t necessarily about changing your title. It&#8217;s about <em>where you sit on the spectrum</em> between analysis-focused and systems-focused work, and how far you want to take it.</p><h3>It might be right for you if...</h3><p>You might genuinely thrive in AI Engineering if you:</p><ul><li><p>Feel more energized by building systems than analyzing outcomes</p></li><li><p>Enjoy debugging integrations more than interpreting experimental results</p></li><li><p>Get excited about architecture decisions, not just model accuracy</p></li><li><p>Were always drawn to the engineering side of data science</p></li></ul><h3>But it&#8217;s not for everyone</h3><p>If what gives you satisfaction is <strong>shaping decisions rather than shipping infrastructure</strong>, then moving fully into engineering could disconnect you from what you actually enjoy.</p><p>There is good money in AI Engineering, and the work is exciting. But alignment with your interests is what sustains a career over time. <strong>That&#8217;s what truly future-proofs you</strong>, not chasing the hottest job title.</p><blockquote><p>&#128161; I wrote a full deep dive on this topic: <a href="https://read.futureproofds.com/p/should-you-transition-to-ai-engineering">Should You Actually Transition from Data Science to AI Engineering?</a>. Worth reading if you&#8217;re seriously considering this path.</p></blockquote><div><hr></div><h1>A practical learning roadmap</h1><p>Before I share specific resources, I want to talk about how to approach learning this stuff, because the mindset matters more than the material.</p><h3>The framework: build, break, learn, repeat</h3><p>If you take one thing from this section, let it be this: <strong>build something, get stuck, go back to the theory, then build again.</strong> That loop is the fastest way to actually internalize these skills. Not watching a 10-hour course end-to-end. Not collecting bookmarks you&#8217;ll never open.</p><p>You start a project. You hit a wall. You go figure out why. Then you come back and keep going.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!dVRX!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F355cba16-071e-4744-8e06-1d79af224d02_3106x1344.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!dVRX!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F355cba16-071e-4744-8e06-1d79af224d02_3106x1344.png 424w, https://substackcdn.com/image/fetch/$s_!dVRX!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F355cba16-071e-4744-8e06-1d79af224d02_3106x1344.png 848w, https://substackcdn.com/image/fetch/$s_!dVRX!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F355cba16-071e-4744-8e06-1d79af224d02_3106x1344.png 1272w, https://substackcdn.com/image/fetch/$s_!dVRX!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F355cba16-071e-4744-8e06-1d79af224d02_3106x1344.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!dVRX!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F355cba16-071e-4744-8e06-1d79af224d02_3106x1344.png" width="1456" height="630" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/355cba16-071e-4744-8e06-1d79af224d02_3106x1344.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:630,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:5646897,&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://read.futureproofds.com/i/191777115?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F355cba16-071e-4744-8e06-1d79af224d02_3106x1344.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_!dVRX!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F355cba16-071e-4744-8e06-1d79af224d02_3106x1344.png 424w, https://substackcdn.com/image/fetch/$s_!dVRX!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F355cba16-071e-4744-8e06-1d79af224d02_3106x1344.png 848w, https://substackcdn.com/image/fetch/$s_!dVRX!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F355cba16-071e-4744-8e06-1d79af224d02_3106x1344.png 1272w, https://substackcdn.com/image/fetch/$s_!dVRX!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F355cba16-071e-4744-8e06-1d79af224d02_3106x1344.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 also means there&#8217;s nothing wrong with &#8220;vibe coding&#8221; your way through the early stages. Use Claude Code, use Copilot, let AI help you move fast. But know that it will only get you so far. There&#8217;s a point where you need to stop asking <em>&#8220;does this work?&#8221;</em> and start asking <em>&#8220;do I actually understand why?&#8221;</em></p><p>That&#8217;s when the real learning happens. And tools like NotebookLM or ChatGPT are great for bridging that gap, especially when your time outside of work is limited (which, for most of us, it is).</p><p><strong>The foundations matter more than people admit.</strong> Knowing what&#8217;s actually happening inside the loop, or why an architecture behaves the way it does, changes how you build. It changes the questions you ask. And it&#8217;s the difference between someone who can follow a tutorial and someone who can solve problems their team actually has.</p><h3>Resources I recommend</h3><p>Here are just a few of the resources that have helped me the most. You don&#8217;t need to go through all of them linearly. Pick what&#8217;s relevant to where you are right now and come back to the rest when you need it.</p><p><strong>&#128218; Books</strong></p><ul><li><p><a href="https://amzn.eu/d/0hrURlhu">AI Engineering</a> by Chip Huyen. The best resource I&#8217;ve found for understanding how to build AI systems in practice.</p></li><li><p><a href="https://amzn.eu/d/0cYYNIY2">LLM Engineer&#8217;s Handbook</a> by Paul Iusztin. Great for going deep on LLM-specific workflows.</p></li><li><p><a href="https://www.oreilly.com/library/view/designing-machine-learning/9781098107956/">Designing Machine Learning Systems</a> by Chip Huyen. Essential for anyone investing in MLOps.</p></li><li><p><a href="https://a.co/d/0fu1lnrQ">Storytelling with Data</a> by Cole Nussbaumer. A practical guide to communicating insights clearly and driving decisions.</p></li><li><p><a href="https://a.co/d/0bs8nP9u">How to Win Friends and Influence People</a> by Dale Carnegie. Timeless principles for building relationships and influencing others effectively.</p></li></ul><p><strong>&#127909; YouTube Channels</strong></p><ul><li><p><a href="https://www.youtube.com/@aiDotEngineer">AI Engineer</a>: Huge variety of technical talks on building AI systems.</p></li><li><p><a href="https://www.youtube.com/@LangChain">LangChain</a>: Lots of great tutorials on building workflows and agentic systems.</p></li><li><p><a href="https://lnkd.in/dn9x4At3">Andrej Karpathy</a>: Deep, foundational understanding of how LLMs work.</p></li></ul><p><strong>&#128104;&#8205;&#128187; Other gems</strong></p><ul><li><p><a href="https://academy.langchain.com/courses/intro-to-langgraph">Introduction to LangGraph</a> (Free course by LangChain)</p></li><li><p><a href="https://www.youtube.com/watch?v=F2FmTdLtb_4">System Design Concepts Course and Interview Prep</a> by freeCodeCamp.org</p></li><li><p>Andrej Karpathy&#8217;s <a href="https://www.youtube.com/watch?v=zjkBMFhNj_g">1hr Intro to Large Language Models</a></p></li><li><p><a href="https://www.youtube.com/watch?v=aHCDrAbH_go">Building Effective Agents with LangGraph</a></p></li></ul><h3>Where to start</h3><p>If you&#8217;re not sure where to begin, here&#8217;s a simple path that works:</p><ol><li><p><strong>Watch Andrej Karpathy&#8217;s 1hr Intro to Large Language Models:</strong> This gives you the foundational understanding of how LLMs actually work, which changes how you approach everything else.</p></li><li><p><strong>Pick up AI Engineering by Chip Huyen:</strong> You don&#8217;t need to read it cover to cover. Focus on the chapters that are relevant to what you&#8217;re trying to build.</p></li><li><p><strong>Build a simple LLM-powered data cleaning script:</strong> Call an LLM API, pass it a prompt that includes an overview of your dataset, and have it identify missing values and generate the code to clean it. Simple, useful, and the first step from using AI to building with it.</p></li><li><p><strong>From there, go deeper:</strong> Explore agent frameworks like LangGraph, experiment with building more autonomous workflows, and start thinking about how these tools could solve real problems at your company.</p></li></ol><p>Start small. Get it working. Then improve it.</p><blockquote><p>&#128161; There are plenty of other great resources out there beyond what I&#8217;ve listed here. Don&#8217;t overcomplicate it. The path above is more than enough to get moving.</p></blockquote><div><hr></div><h2>&#128640; This is the most effective way to future-proof your career for AI</h2><p>Everything you just read about becoming an AI-powered data scientist, the semantic layers, the agentic workflows, and building systems your team depends on, I had to piece together on my own over the course of a year. Through trial and error, building at work, studying on weekends, and understanding what the market actually rewards.</p><p>You could do the same. But it doesn&#8217;t have to take a year (or even months)</p><p>That&#8217;s why I packaged it all into the <strong><a href="http://futureproofds.com">AI Workflows for Data Science bootcamp</a></strong>, a 6-week structured program that covers the applied AI skills this guide lays out in Pillar 1. It gives you the roadmap, the hands-on projects, and the support system to go from reading about these skills to actually building with them, in a fraction of the time it took me.</p><p>Built specifically for data scientists, by a data scientist, focused on the skills the market is demanding right now.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!ntkN!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F701047d9-9f91-4569-85b0-255b1e2299e9_2560x1440.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!ntkN!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F701047d9-9f91-4569-85b0-255b1e2299e9_2560x1440.png 424w, https://substackcdn.com/image/fetch/$s_!ntkN!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F701047d9-9f91-4569-85b0-255b1e2299e9_2560x1440.png 848w, https://substackcdn.com/image/fetch/$s_!ntkN!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F701047d9-9f91-4569-85b0-255b1e2299e9_2560x1440.png 1272w, https://substackcdn.com/image/fetch/$s_!ntkN!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F701047d9-9f91-4569-85b0-255b1e2299e9_2560x1440.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!ntkN!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F701047d9-9f91-4569-85b0-255b1e2299e9_2560x1440.png" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/701047d9-9f91-4569-85b0-255b1e2299e9_2560x1440.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:242086,&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://read.futureproofds.com/i/191777115?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F701047d9-9f91-4569-85b0-255b1e2299e9_2560x1440.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_!ntkN!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F701047d9-9f91-4569-85b0-255b1e2299e9_2560x1440.png 424w, https://substackcdn.com/image/fetch/$s_!ntkN!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F701047d9-9f91-4569-85b0-255b1e2299e9_2560x1440.png 848w, https://substackcdn.com/image/fetch/$s_!ntkN!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F701047d9-9f91-4569-85b0-255b1e2299e9_2560x1440.png 1272w, https://substackcdn.com/image/fetch/$s_!ntkN!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F701047d9-9f91-4569-85b0-255b1e2299e9_2560x1440.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 already helped 40+ data professionals make this transition. If you&#8217;re serious about staying relevant in the market, this is the most effective path I know:</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://futureproofds.com&quot;,&quot;text&quot;:&quot;Learn More&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://futureproofds.com"><span>Learn More</span></a></p><div><hr></div><h1>A final note</h1><p>If you&#8217;ve made it this far, you are already ahead of 80% of data professionals out there.</p><p>The truth is, no one has this fully figured out, <em>including me</em>. I&#8217;m navigating the same uncertainty, making bets on where the field is heading, and adjusting as I learn.</p><p>But here&#8217;s what I do know after 8+ years in this field, after getting laid off, moving countries, going from analyst to analytics team lead, and now building AI workflows in production:</p><p><strong>The people who will thrive aren&#8217;t the ones who learn the most tools. They&#8217;re the ones who build the right skills, stay curious, and actually ship things.</strong></p><p>The market is shifting. The window to get ahead of that shift, instead of playing catch-up, is still open. But believe me, at the rate we are moving, it won&#8217;t stay open forever.</p><p>So pick a pillar. Start building. And don&#8217;t wait until you feel &#8220;ready,&#8221; because honestly, no one ever does.</p><p><em>You&#8217;ve got this.</em> &#128591;</p><div><hr></div><h2>A couple of other great resources:</h2><ul><li><p><strong>&#128640; Ready to take the next step? </strong>Build real <a href="https://futureproofds.com/">AI workflows</a> and sharpen the skills that keep data scientists ahead.</p></li><li><p><strong>&#129302; Struggling to keep up with AI/ML?</strong> <a href="https://neuralpulse.io/subscribe">Neural Pulse</a> is a 5-minute, human-curated newsletter delivering the best in AI, ML, and data science.</p></li></ul><div><hr></div><p><em>Thank you for reading! I hope this breakdown helps you get started future-proofing your career.</em></p><p><em>- Andres Vourakis</em></p><div><hr></div><p>Before you go, please hit the like &#10084;&#65039; button at the bottom of this email to help support me. It truly makes a difference!</p>]]></content:encoded></item><item><title><![CDATA[6 Research Papers Every Data Scientist Should Read In 2026]]></title><description><![CDATA[How far AI agents will automate data science, machine learning research, and broad scientific discovery]]></description><link>https://read.futureproofds.com/p/6-white-papers-every-data-scientists</link><guid isPermaLink="false">https://read.futureproofds.com/p/6-white-papers-every-data-scientists</guid><dc:creator><![CDATA[Andres Vourakis]]></dc:creator><pubDate>Thu, 19 Mar 2026 16:03:42 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!X26p!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F86b58e9a-08b6-44fd-922d-7aa470e6139c_2080x1104.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Scroll through social media for a few minutes, and you&#8217;ll be bombarded with posts about the latest AI tool and how much it is &#8220;disrupting&#8221; the field. But very little is being said about what is actually happening in research.</p><p>The focus there is not on tools, but on frameworks and end-to-end systems.</p><p>And that&#8217;s where the real signal is.</p><p>If you want to understand how far AI could transform how we do data science over the next few years, you need to look at the direction these systems are heading.</p><p>So I&#8217;ve gathered 6 research papers covering recent advances in autonomous AI agents designed to automate data science, machine learning research, and even broader scientific discovery.</p><p>At the end, I also share my take on what this actually means for us today and how we should prepare.</p><h2>1. DeepAnalyze: Autonomous Data Science via Agentic LLMs</h2><p>This <a href="https://arxiv.org/abs/2510.16872">research paper</a> introduces DeepAnalyze-8B, an agentic model trained to autonomously handle the entire data science pipeline from raw data to professional research reports. It uses a curriculum-based training paradigm to acquire complex problem-solving capabilities similar to those of a human data scientist.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!X26p!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F86b58e9a-08b6-44fd-922d-7aa470e6139c_2080x1104.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!X26p!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F86b58e9a-08b6-44fd-922d-7aa470e6139c_2080x1104.png 424w, https://substackcdn.com/image/fetch/$s_!X26p!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F86b58e9a-08b6-44fd-922d-7aa470e6139c_2080x1104.png 848w, https://substackcdn.com/image/fetch/$s_!X26p!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F86b58e9a-08b6-44fd-922d-7aa470e6139c_2080x1104.png 1272w, https://substackcdn.com/image/fetch/$s_!X26p!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F86b58e9a-08b6-44fd-922d-7aa470e6139c_2080x1104.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!X26p!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F86b58e9a-08b6-44fd-922d-7aa470e6139c_2080x1104.png" width="1456" height="773" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/86b58e9a-08b6-44fd-922d-7aa470e6139c_2080x1104.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:773,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:756792,&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://read.futureproofds.com/i/191377734?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F86b58e9a-08b6-44fd-922d-7aa470e6139c_2080x1104.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_!X26p!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F86b58e9a-08b6-44fd-922d-7aa470e6139c_2080x1104.png 424w, https://substackcdn.com/image/fetch/$s_!X26p!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F86b58e9a-08b6-44fd-922d-7aa470e6139c_2080x1104.png 848w, https://substackcdn.com/image/fetch/$s_!X26p!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F86b58e9a-08b6-44fd-922d-7aa470e6139c_2080x1104.png 1272w, https://substackcdn.com/image/fetch/$s_!X26p!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F86b58e9a-08b6-44fd-922d-7aa470e6139c_2080x1104.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><figcaption class="image-caption">Overview of DeepAnalyze</figcaption></figure></div><h2>2. AI Research Agents for Machine Learning: Search, Exploration, and Generalization in MLE-bench</h2><p>This <a href="https://arxiv.org/abs/2507.02554">paper</a> studies AI agents that compete in Kaggle competitions by exploring solution spaces using search strategies like Monte Carlo Tree Search and evolutionary methods. The study shows that pairing these search policies with well-designed operators significantly improves performance in real ML engineering tasks.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!SSwQ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc1600a8e-551b-4f18-b80d-06a1c090edb0_2092x1176.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!SSwQ!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc1600a8e-551b-4f18-b80d-06a1c090edb0_2092x1176.png 424w, https://substackcdn.com/image/fetch/$s_!SSwQ!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc1600a8e-551b-4f18-b80d-06a1c090edb0_2092x1176.png 848w, https://substackcdn.com/image/fetch/$s_!SSwQ!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc1600a8e-551b-4f18-b80d-06a1c090edb0_2092x1176.png 1272w, https://substackcdn.com/image/fetch/$s_!SSwQ!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc1600a8e-551b-4f18-b80d-06a1c090edb0_2092x1176.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!SSwQ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc1600a8e-551b-4f18-b80d-06a1c090edb0_2092x1176.png" width="1456" height="818" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c1600a8e-551b-4f18-b80d-06a1c090edb0_2092x1176.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:818,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:373878,&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://read.futureproofds.com/i/191377734?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc1600a8e-551b-4f18-b80d-06a1c090edb0_2092x1176.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_!SSwQ!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc1600a8e-551b-4f18-b80d-06a1c090edb0_2092x1176.png 424w, https://substackcdn.com/image/fetch/$s_!SSwQ!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc1600a8e-551b-4f18-b80d-06a1c090edb0_2092x1176.png 848w, https://substackcdn.com/image/fetch/$s_!SSwQ!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc1600a8e-551b-4f18-b80d-06a1c090edb0_2092x1176.png 1272w, https://substackcdn.com/image/fetch/$s_!SSwQ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc1600a8e-551b-4f18-b80d-06a1c090edb0_2092x1176.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><figcaption class="image-caption">Overview of AIRA</figcaption></figure></div><h2>3. The AI Scientist: Towards Fully Automated Open-Ended Scientific Discovery</h2><p>This <a href="https://arxiv.org/abs/2408.06292">paper</a> introduces an autonomous framework that can perform the entire ML research lifecycle: generating ideas, running experiments, analyzing results, and writing full research papers. It even includes an automated LLM-based peer-review system to evaluate the generated work.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!jqn8!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F34a47d3b-8af2-4600-af51-5008afd935e8_2180x1078.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!jqn8!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F34a47d3b-8af2-4600-af51-5008afd935e8_2180x1078.png 424w, https://substackcdn.com/image/fetch/$s_!jqn8!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F34a47d3b-8af2-4600-af51-5008afd935e8_2180x1078.png 848w, https://substackcdn.com/image/fetch/$s_!jqn8!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F34a47d3b-8af2-4600-af51-5008afd935e8_2180x1078.png 1272w, https://substackcdn.com/image/fetch/$s_!jqn8!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F34a47d3b-8af2-4600-af51-5008afd935e8_2180x1078.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!jqn8!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F34a47d3b-8af2-4600-af51-5008afd935e8_2180x1078.png" width="1456" height="720" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/34a47d3b-8af2-4600-af51-5008afd935e8_2180x1078.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:720,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:455954,&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://read.futureproofds.com/i/191377734?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F34a47d3b-8af2-4600-af51-5008afd935e8_2180x1078.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_!jqn8!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F34a47d3b-8af2-4600-af51-5008afd935e8_2180x1078.png 424w, https://substackcdn.com/image/fetch/$s_!jqn8!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F34a47d3b-8af2-4600-af51-5008afd935e8_2180x1078.png 848w, https://substackcdn.com/image/fetch/$s_!jqn8!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F34a47d3b-8af2-4600-af51-5008afd935e8_2180x1078.png 1272w, https://substackcdn.com/image/fetch/$s_!jqn8!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F34a47d3b-8af2-4600-af51-5008afd935e8_2180x1078.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><figcaption class="image-caption">Conceptual illustration of The AI Scientist</figcaption></figure></div><h2><br>4. Jupiter: Enhancing LLM Data Analysis Capabilities via Notebook and Inference-Time Value-Guided Search</h2><p>This <a href="https://arxiv.org/abs/2509.09245">paper</a> introduces NbQA, a large dataset of real Jupyter notebook analysis tasks, and JUPITER, a framework that treats notebook-based data analysis as a sequential decision-making search problem. A value model guides the reasoning process to efficiently solve multi-step data analysis tasks.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!iry2!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F175feeb5-7a04-447d-b71a-2c59510a265b_1396x1490.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!iry2!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F175feeb5-7a04-447d-b71a-2c59510a265b_1396x1490.png 424w, https://substackcdn.com/image/fetch/$s_!iry2!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F175feeb5-7a04-447d-b71a-2c59510a265b_1396x1490.png 848w, https://substackcdn.com/image/fetch/$s_!iry2!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F175feeb5-7a04-447d-b71a-2c59510a265b_1396x1490.png 1272w, https://substackcdn.com/image/fetch/$s_!iry2!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F175feeb5-7a04-447d-b71a-2c59510a265b_1396x1490.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!iry2!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F175feeb5-7a04-447d-b71a-2c59510a265b_1396x1490.png" width="1396" height="1490" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/175feeb5-7a04-447d-b71a-2c59510a265b_1396x1490.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1490,&quot;width&quot;:1396,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:442654,&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://read.futureproofds.com/i/191377734?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F175feeb5-7a04-447d-b71a-2c59510a265b_1396x1490.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_!iry2!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F175feeb5-7a04-447d-b71a-2c59510a265b_1396x1490.png 424w, https://substackcdn.com/image/fetch/$s_!iry2!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F175feeb5-7a04-447d-b71a-2c59510a265b_1396x1490.png 848w, https://substackcdn.com/image/fetch/$s_!iry2!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F175feeb5-7a04-447d-b71a-2c59510a265b_1396x1490.png 1272w, https://substackcdn.com/image/fetch/$s_!iry2!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F175feeb5-7a04-447d-b71a-2c59510a265b_1396x1490.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><figcaption class="image-caption">Construction of the NbQA dataset</figcaption></figure></div><h2>5. DS-STAR: A state-of-the-art versatile data science agent</h2><p>This <a href="https://research.google/blog/ds-star-a-state-of-the-art-versatile-data-science-agent/">paper</a> by Google proposes an agentic system designed to handle real-world data science workflows involving heterogeneous data sources such as CSV, JSON, and text. It decomposes analysis into sub-questions and iteratively builds evidence-based reports to minimize hallucinations.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!lPLU!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe617d84f-8e09-4646-aa5a-8c6e8e50a3a4_1999x876.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!lPLU!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe617d84f-8e09-4646-aa5a-8c6e8e50a3a4_1999x876.png 424w, https://substackcdn.com/image/fetch/$s_!lPLU!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe617d84f-8e09-4646-aa5a-8c6e8e50a3a4_1999x876.png 848w, https://substackcdn.com/image/fetch/$s_!lPLU!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe617d84f-8e09-4646-aa5a-8c6e8e50a3a4_1999x876.png 1272w, https://substackcdn.com/image/fetch/$s_!lPLU!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe617d84f-8e09-4646-aa5a-8c6e8e50a3a4_1999x876.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!lPLU!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe617d84f-8e09-4646-aa5a-8c6e8e50a3a4_1999x876.png" width="1456" height="638" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/e617d84f-8e09-4646-aa5a-8c6e8e50a3a4_1999x876.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:638,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:419312,&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://read.futureproofds.com/i/191377734?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe617d84f-8e09-4646-aa5a-8c6e8e50a3a4_1999x876.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_!lPLU!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe617d84f-8e09-4646-aa5a-8c6e8e50a3a4_1999x876.png 424w, https://substackcdn.com/image/fetch/$s_!lPLU!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe617d84f-8e09-4646-aa5a-8c6e8e50a3a4_1999x876.png 848w, https://substackcdn.com/image/fetch/$s_!lPLU!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe617d84f-8e09-4646-aa5a-8c6e8e50a3a4_1999x876.png 1272w, https://substackcdn.com/image/fetch/$s_!lPLU!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe617d84f-8e09-4646-aa5a-8c6e8e50a3a4_1999x876.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><figcaption class="image-caption">DS-STAR's workflow is an iterative loop</figcaption></figure></div><h2>6. Kosmos: An AI Scientist for Autonomous Discovery</h2><p>This <a href="https://arxiv.org/abs/2511.02824">paper</a> presents a scientific discovery agent that coordinates literature search and data analysis through a structured world model. By running long autonomous research loops, it can read thousands of papers and execute large-scale experiments to generate traceable scientific discoveries.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!lfVg!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe1bcfc30-dbd9-4811-9bb9-37565235111f_2072x780.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!lfVg!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe1bcfc30-dbd9-4811-9bb9-37565235111f_2072x780.png 424w, https://substackcdn.com/image/fetch/$s_!lfVg!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe1bcfc30-dbd9-4811-9bb9-37565235111f_2072x780.png 848w, https://substackcdn.com/image/fetch/$s_!lfVg!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe1bcfc30-dbd9-4811-9bb9-37565235111f_2072x780.png 1272w, https://substackcdn.com/image/fetch/$s_!lfVg!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe1bcfc30-dbd9-4811-9bb9-37565235111f_2072x780.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!lfVg!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe1bcfc30-dbd9-4811-9bb9-37565235111f_2072x780.png" width="1456" height="548" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/e1bcfc30-dbd9-4811-9bb9-37565235111f_2072x780.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:548,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:808496,&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://read.futureproofds.com/i/191377734?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe1bcfc30-dbd9-4811-9bb9-37565235111f_2072x780.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_!lfVg!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe1bcfc30-dbd9-4811-9bb9-37565235111f_2072x780.png 424w, https://substackcdn.com/image/fetch/$s_!lfVg!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe1bcfc30-dbd9-4811-9bb9-37565235111f_2072x780.png 848w, https://substackcdn.com/image/fetch/$s_!lfVg!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe1bcfc30-dbd9-4811-9bb9-37565235111f_2072x780.png 1272w, https://substackcdn.com/image/fetch/$s_!lfVg!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe1bcfc30-dbd9-4811-9bb9-37565235111f_2072x780.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><figcaption class="image-caption">Overall workflow of Kosmos</figcaption></figure></div><h1>The common denominator</h1><p>Across these papers, one thing becomes clear: we are moving from AI as a tool to systems that can operate across the entire data science lifecycle. Not just assisting with isolated tasks, but handling the full loop, from defining problems to running analyses and producing research-level outputs.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!-xzM!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb45794a7-7bc4-4f46-9ec0-ebf890e4f676_2816x1536.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!-xzM!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb45794a7-7bc4-4f46-9ec0-ebf890e4f676_2816x1536.png 424w, https://substackcdn.com/image/fetch/$s_!-xzM!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb45794a7-7bc4-4f46-9ec0-ebf890e4f676_2816x1536.png 848w, https://substackcdn.com/image/fetch/$s_!-xzM!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb45794a7-7bc4-4f46-9ec0-ebf890e4f676_2816x1536.png 1272w, https://substackcdn.com/image/fetch/$s_!-xzM!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb45794a7-7bc4-4f46-9ec0-ebf890e4f676_2816x1536.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!-xzM!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb45794a7-7bc4-4f46-9ec0-ebf890e4f676_2816x1536.png" width="1456" height="794" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/b45794a7-7bc4-4f46-9ec0-ebf890e4f676_2816x1536.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:794,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:7817835,&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://read.futureproofds.com/i/191377734?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb45794a7-7bc4-4f46-9ec0-ebf890e4f676_2816x1536.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_!-xzM!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb45794a7-7bc4-4f46-9ec0-ebf890e4f676_2816x1536.png 424w, https://substackcdn.com/image/fetch/$s_!-xzM!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb45794a7-7bc4-4f46-9ec0-ebf890e4f676_2816x1536.png 848w, https://substackcdn.com/image/fetch/$s_!-xzM!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb45794a7-7bc4-4f46-9ec0-ebf890e4f676_2816x1536.png 1272w, https://substackcdn.com/image/fetch/$s_!-xzM!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb45794a7-7bc4-4f46-9ec0-ebf890e4f676_2816x1536.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>A big part of this shift comes from how these systems are designed. They don&#8217;t rely on a single pass. Instead, they iterate. Through feedback loops, search strategies, and self-reflection, they refine their outputs step by step, getting closer to something that actually resembles how a data scientist would approach a problem.</p><p>When you combine this with large-scale training data, like real Jupyter notebooks, and more structured ways of interacting with data and external knowledge, the result is systems that can reproduce fairly complex reasoning.</p><p>There are a few patterns that show up consistently across these papers:</p><ul><li><p><strong>End-to-end ownership:</strong> These systems don&#8217;t just assist, they handle the full workflow, from ideation to final output.</p></li><li><p><strong>Iterative refinement:</strong> Instead of one-shot answers, they rely on loops, evaluation, and correction.</p></li><li><p><strong>Decomposition of problems:</strong> Open-ended questions are broken down into smaller, verifiable steps grounded in data, code, or literature.</p></li><li><p><strong>Built-in evaluation:</strong> With automated reviewing and benchmarks, they can critique and improve their own outputs.</p></li></ul><p>Another important shift is reliability. By grounding their reasoning in executable steps and verifiable sources, these systems start to reduce one of the biggest limitations we&#8217;ve seen so far: hallucinations in open-ended tasks.</p><p>Put together, this starts to look less like a model you prompt, and more like a system that can iterate on its own work, explore a space of ideas, and converge toward something useful.</p><h1>My honest take</h1><p>When I shared these papers on my <a href="https://www.linkedin.com/in/andresvourakis/">LinkedIn</a>, I got a comment that stood out.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!dc4U!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3d7f02f1-7899-4679-9789-6b7b3cec2135_1086x468.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!dc4U!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3d7f02f1-7899-4679-9789-6b7b3cec2135_1086x468.png 424w, https://substackcdn.com/image/fetch/$s_!dc4U!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3d7f02f1-7899-4679-9789-6b7b3cec2135_1086x468.png 848w, https://substackcdn.com/image/fetch/$s_!dc4U!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3d7f02f1-7899-4679-9789-6b7b3cec2135_1086x468.png 1272w, https://substackcdn.com/image/fetch/$s_!dc4U!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3d7f02f1-7899-4679-9789-6b7b3cec2135_1086x468.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!dc4U!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3d7f02f1-7899-4679-9789-6b7b3cec2135_1086x468.png" width="1086" height="468" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/3d7f02f1-7899-4679-9789-6b7b3cec2135_1086x468.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:468,&quot;width&quot;:1086,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:114951,&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://read.futureproofds.com/i/191377734?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3d7f02f1-7899-4679-9789-6b7b3cec2135_1086x468.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_!dc4U!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3d7f02f1-7899-4679-9789-6b7b3cec2135_1086x468.png 424w, https://substackcdn.com/image/fetch/$s_!dc4U!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3d7f02f1-7899-4679-9789-6b7b3cec2135_1086x468.png 848w, https://substackcdn.com/image/fetch/$s_!dc4U!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3d7f02f1-7899-4679-9789-6b7b3cec2135_1086x468.png 1272w, https://substackcdn.com/image/fetch/$s_!dc4U!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3d7f02f1-7899-4679-9789-6b7b3cec2135_1086x468.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>Because, regardless of how far these frameworks go in automating the analysis process, the question remains the same:</p><blockquote><p>Can they actually operate under real-world constraints, in companies where more than accuracy matters, and where business context is far more nuanced than what can fit into a few documentation pages?</p></blockquote><p>For the foreseeable future, I still see a strong need for a human-in-the-loop, regardless of how capable these models become or how large their context windows get (and by the way<em>, </em><a href="http://clau.de/AndresVourakis1">Claude</a> just made their 1M context window widely available for their latest models).</p><p>Still, the limiting factor isn&#8217;t intelligence, it&#8217;s context.</p><p>And more specifically, how that context is structured, injected, and continuously updated. In practice, a large part of what drives good analysis is not explicitly written down. It lives in things like:</p><ul><li><p>Shifting priorities across teams</p></li><li><p>Implicit assumptions behind metrics and decisions</p></li><li><p>Trade-offs that only emerge through experience and stakeholder context</p></li></ul><p>This is the layer that doesn&#8217;t neatly fit into prompts or documentation.</p><p>That said, I do think there are specific environments where these agents will start defining and evaluating their own hypotheses. In well-scoped problems, with reliable data and clear feedback signals, they have a clear advantage. They can explore a much larger hypothesis space and validate ideas at a speed that is simply not possible for a human.</p><p>Where this becomes powerful is in narrowing the gap between exploration and validation, not by removing the human, but by making it possible to test more ideas, faster, without losing control over what actually matters.</p><div><hr></div><h2>A couple of other great resources:</h2><ul><li><p><strong>&#128640; Ready to take the next step? </strong>Build real <a href="https://futureproofds.com/">AI workflows</a> and sharpen the skills that keep data scientists ahead.</p></li><li><p><strong>&#129302; Struggling to keep up with AI/ML?</strong> <a href="https://neuralpulse.io/subscribe">Neural Pulse</a> is a 5-minute, human-curated newsletter delivering the best in AI, ML, and data science.</p></li></ul><div><hr></div><p><em>Thank you for reading! I hope this breakdown gives you a glimpse into the future of data science. </em></p><p><em>- Andres Vourakis</em></p><div><hr></div><p>Before you go, please hit the like &#10084;&#65039; button at the bottom of this email to help support me. It truly makes a difference!</p><p></p>]]></content:encoded></item><item><title><![CDATA[What My Senior Data Scientist Role (Actually) Looks Like in 2026]]></title><description><![CDATA[Working at a scale-up with strong AI adoption]]></description><link>https://read.futureproofds.com/p/what-my-senior-data-scientist-role</link><guid isPermaLink="false">https://read.futureproofds.com/p/what-my-senior-data-scientist-role</guid><dc:creator><![CDATA[Andres Vourakis]]></dc:creator><pubDate>Sat, 07 Mar 2026 16:49:29 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!1ENf!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F30175167-3a18-447b-9cbf-e4b1877f66ef_1766x1076.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="pullquote"><p>&#128204; By the way, enrollment for the April cohort of my <a href="https://futureproofds.com/">AI workflows Bootcamp</a> is now open. This 6-week program is designed to help data scientists develop the judgment, systems thinking, and applied AI skills that amplify their impact and set them apart in the market.</p></div><p>There&#8217;s a lot of talk right now about how AI is transforming the role of data scientists.</p><p>And well, depending on who you listen to, our jobs are either about to disappear or about to turn into something completely different.</p><p>So I thought it might be useful to do something simple, show you what my job actually looks like today, working at a scale-up that is adopting AI very fast.</p><p>And I can tell you right now that while AI is definitely changing the way I work, the reality of the job probably looks different from what most people imagine.</p><p>Let&#8217;s break it down.</p><h1>Yes, I Still do Data Science</h1><p>If you shadowed me for a week, most of what you&#8217;d see would still look like a fairly traditional data science role in tech.</p><p>I spend a large portion of my time working on projects that support product and business decisions.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!MIDX!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1b86db73-8bbb-4ed5-bb01-8e4089d83a10_4284x4557.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!MIDX!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1b86db73-8bbb-4ed5-bb01-8e4089d83a10_4284x4557.jpeg 424w, https://substackcdn.com/image/fetch/$s_!MIDX!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1b86db73-8bbb-4ed5-bb01-8e4089d83a10_4284x4557.jpeg 848w, https://substackcdn.com/image/fetch/$s_!MIDX!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1b86db73-8bbb-4ed5-bb01-8e4089d83a10_4284x4557.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!MIDX!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1b86db73-8bbb-4ed5-bb01-8e4089d83a10_4284x4557.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!MIDX!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1b86db73-8bbb-4ed5-bb01-8e4089d83a10_4284x4557.jpeg" width="1456" height="1549" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/1b86db73-8bbb-4ed5-bb01-8e4089d83a10_4284x4557.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1549,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1293795,&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://read.futureproofds.com/i/189916665?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1b86db73-8bbb-4ed5-bb01-8e4089d83a10_4284x4557.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_!MIDX!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1b86db73-8bbb-4ed5-bb01-8e4089d83a10_4284x4557.jpeg 424w, https://substackcdn.com/image/fetch/$s_!MIDX!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1b86db73-8bbb-4ed5-bb01-8e4089d83a10_4284x4557.jpeg 848w, https://substackcdn.com/image/fetch/$s_!MIDX!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1b86db73-8bbb-4ed5-bb01-8e4089d83a10_4284x4557.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!MIDX!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1b86db73-8bbb-4ed5-bb01-8e4089d83a10_4284x4557.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>Typical questions I work on include things like:</p><ul><li><p>Retention and engagement analysis</p></li><li><p>Understanding user behavior</p></li><li><p>Evaluating product changes through A/B testing</p></li><li><p>Marketing and growth analytics</p></li></ul><p>At one point, I built a <a href="https://read.futureproofds.com/p/the-duolingo-model-for-retention">Markov model to better understand user behavior across the product</a>. Not exactly the type of model that gets people excited on LinkedIn these days, but still extremely useful.</p><p>And by the way, I still spend more time writing SQL than Python.</p><p>So even in 2026, a lot of my job is still about applying the fundamentals well.</p><h1>My Week Is Mostly Deep Work (Thankfully)</h1><p>One thing that might surprise people about my current role is the number of meetings I have.</p><p>In my case, it&#8217;s actually quite healthy. My calendar usually includes only a few recurring meetings:</p><ul><li><p>Standups with the data team  </p></li><li><p>Sprint planning sessions</p></li><li><p>Occasional sessions based on projects and syncs with stakeholders  </p></li></ul><p>The rest of the time is mostly dedicated to deep work on projects that span weeks or sometimes an entire quarter.</p><p>That said, this hasn&#8217;t always been the case. Earlier in my career, I had roles where I was much more embedded with stakeholders and spent significantly more time in meetings.</p><blockquote><p>What I&#8217;m experiencing now has a lot to do with my seniority level and the company culture at Nextory. There&#8217;s a strong understanding that if data scientists are buried in meetings all day, it becomes very difficult to actually produce meaningful work.</p></blockquote><p>Right now, this structure allows me to focus much more on building, analyzing, and pushing projects forward.</p><h1>AI Is Now Embedded in My Workflow</h1><p>Now, the part that <em>has</em> changed <strong>significantly</strong> is how I work day-to-day.</p><p>AI is embedded into almost everything I do.</p><p>At Nextory, we are actually encouraged to experiment with AI tools and share how we&#8217;re using them to improve our work. In fact, I&#8217;m one of the stewards in the company helping promote AI adoption internally.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!1ENf!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F30175167-3a18-447b-9cbf-e4b1877f66ef_1766x1076.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!1ENf!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F30175167-3a18-447b-9cbf-e4b1877f66ef_1766x1076.jpeg 424w, https://substackcdn.com/image/fetch/$s_!1ENf!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F30175167-3a18-447b-9cbf-e4b1877f66ef_1766x1076.jpeg 848w, https://substackcdn.com/image/fetch/$s_!1ENf!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F30175167-3a18-447b-9cbf-e4b1877f66ef_1766x1076.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!1ENf!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F30175167-3a18-447b-9cbf-e4b1877f66ef_1766x1076.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!1ENf!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F30175167-3a18-447b-9cbf-e4b1877f66ef_1766x1076.jpeg" width="1456" height="887" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/30175167-3a18-447b-9cbf-e4b1877f66ef_1766x1076.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:887,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:225098,&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://read.futureproofds.com/i/189916665?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F30175167-3a18-447b-9cbf-e4b1877f66ef_1766x1076.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_!1ENf!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F30175167-3a18-447b-9cbf-e4b1877f66ef_1766x1076.jpeg 424w, https://substackcdn.com/image/fetch/$s_!1ENf!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F30175167-3a18-447b-9cbf-e4b1877f66ef_1766x1076.jpeg 848w, https://substackcdn.com/image/fetch/$s_!1ENf!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F30175167-3a18-447b-9cbf-e4b1877f66ef_1766x1076.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!1ENf!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F30175167-3a18-447b-9cbf-e4b1877f66ef_1766x1076.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>So how do I actually use AI?</p><p>Mostly to amplify my productivity.</p><p>For example, I regularly use AI to:</p><ul><li><p>Write SQL queries faster</p></li><li><p>Automate parts of data cleaning and EDA</p></li><li><p>Generate complex Python code for analysis or modeling</p></li><li><p>Brainstorm analytical approaches</p></li><li><p>Summarize analysis results</p></li><li><p>Write documentation</p></li><li><p>Navigate our data warehouse and help improve data models</p></li></ul><blockquote><p>I also rely heavily on tools like Cursor for coding, Gemini inside the GCP ecosystem, and ChatGPT for brainstorming ideas and structuring analysis, and the same is true for my coworkers.</p></blockquote><p>At this point, AI feels less like a separate tool and more like an extra layer in the workflow.</p><p>My role is a clear example of the impact of AI in our field and exemplifies the trend we are already seeing in the job market. I recently did a full analysis on this in case you are interested:</p><div class="digest-post-embed" data-attrs="{&quot;nodeId&quot;:&quot;a7aab161-b8ea-4902-b4dc-910a96c465eb&quot;,&quot;caption&quot;:&quot;Late last year, I published an article analyzing the data science job market, drawing primarily on two independent studies: one from Harvard University and another from the labor market analytics company Lightcast.&quot;,&quot;cta&quot;:&quot;Read full story&quot;,&quot;showBylines&quot;:true,&quot;showDescription&quot;:true,&quot;showImage&quot;:true,&quot;size&quot;:&quot;sm&quot;,&quot;isEditorNode&quot;:true,&quot;title&quot;:&quot;AI + Data Scientist Job Market in 2026: Analysis, Trends, Opportunities (Early Year Report)&quot;,&quot;publishedBylines&quot;:[{&quot;id&quot;:135808578,&quot;name&quot;:&quot;Andres Vourakis&quot;,&quot;bio&quot;:&quot;Senior Data Scientist (and ex-hiring manager) with 7+ years in tech and applied AI/ML&quot;,&quot;photo_url&quot;:&quot;https://substackcdn.com/image/fetch/f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd9ebf6fc-4ed6-47e1-938e-a1fa37a2347e_1601x1646.jpeg&quot;,&quot;is_guest&quot;:false,&quot;bestseller_tier&quot;:null}],&quot;post_date&quot;:&quot;2026-01-15T14:01:17.381Z&quot;,&quot;cover_image&quot;:&quot;https://substackcdn.com/image/fetch/$s_!Ki6z!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd5347fc9-b5f5-4f51-942a-8c1318728cb8_3144x960.png&quot;,&quot;cover_image_alt&quot;:null,&quot;canonical_url&quot;:&quot;https://read.futureproofds.com/p/ai-and-data-scientist-job-market-in-2026&quot;,&quot;section_name&quot;:null,&quot;video_upload_id&quot;:null,&quot;id&quot;:184348336,&quot;type&quot;:&quot;newsletter&quot;,&quot;reaction_count&quot;:36,&quot;comment_count&quot;:8,&quot;publication_id&quot;:2749479,&quot;publication_name&quot;:&quot;Future Proof Data Science&quot;,&quot;publication_logo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!yGDz!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F87022f87-5553-4f08-b339-8b197aa4e908_1280x1280.png&quot;,&quot;belowTheFold&quot;:true,&quot;youtube_url&quot;:null,&quot;show_links&quot;:null,&quot;feed_url&quot;:null}"></div><h1>AI Hasn&#8217;t Replaced the (Real) Hard Parts</h1><p>When people talk about AI changing data science, the conversation often focuses on automation: writing SQL faster, generating Python code, and building dashboards with fewer manual steps.<br><br>And yes, those parts are changing.<br><br>But what AI hasn&#8217;t replaced is the core responsibility of the job.</p><p>Things like:</p><ul><li><p>Stakeholder communication</p></li><li><p>Defining the right questions</p></li><li><p>Building trust with teams</p></li><li><p>Driving adoption of insights</p></li></ul><p>AI can help me brainstorm, it can help me move faster, but it still depends heavily on the context I provide.</p><p>Most of the time, I&#8217;m the one guiding the process and setting the constraints. In other words, AI speeds up the work, but the judgment still sits with me.</p><h1>We&#8217;re Also Building Complex AI Systems</h1><p>Beyond using AI to improve my own workflow, we&#8217;re also starting to build AI-powered systems inside the company.</p><p>One example is a Talk-to-Your-Data Slack bot that I built for stakeholders. The idea was simple: allow non-technical stakeholders to ask questions about our data using natural language and get insights faster without needing to write SQL.</p><p>It was our first step toward something closer to what people are now calling agentic analytics.</p><p>At the same time, other teams in the company are building much more sophisticated AI systems that are user-facing. For example, Nextory recently launched an AI Librarian designed to help users discover books through conversational interactions.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!HTQe!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F404f4c2f-7c4d-48a8-ba01-a34cdb74b8b2_1782x1002.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!HTQe!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F404f4c2f-7c4d-48a8-ba01-a34cdb74b8b2_1782x1002.png 424w, https://substackcdn.com/image/fetch/$s_!HTQe!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F404f4c2f-7c4d-48a8-ba01-a34cdb74b8b2_1782x1002.png 848w, https://substackcdn.com/image/fetch/$s_!HTQe!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F404f4c2f-7c4d-48a8-ba01-a34cdb74b8b2_1782x1002.png 1272w, https://substackcdn.com/image/fetch/$s_!HTQe!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F404f4c2f-7c4d-48a8-ba01-a34cdb74b8b2_1782x1002.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!HTQe!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F404f4c2f-7c4d-48a8-ba01-a34cdb74b8b2_1782x1002.png" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/404f4c2f-7c4d-48a8-ba01-a34cdb74b8b2_1782x1002.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:107763,&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://read.futureproofds.com/i/189916665?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F404f4c2f-7c4d-48a8-ba01-a34cdb74b8b2_1782x1002.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_!HTQe!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F404f4c2f-7c4d-48a8-ba01-a34cdb74b8b2_1782x1002.png 424w, https://substackcdn.com/image/fetch/$s_!HTQe!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F404f4c2f-7c4d-48a8-ba01-a34cdb74b8b2_1782x1002.png 848w, https://substackcdn.com/image/fetch/$s_!HTQe!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F404f4c2f-7c4d-48a8-ba01-a34cdb74b8b2_1782x1002.png 1272w, https://substackcdn.com/image/fetch/$s_!HTQe!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F404f4c2f-7c4d-48a8-ba01-a34cdb74b8b2_1782x1002.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><figcaption class="image-caption">Preview of our <a href="https://www.mynewsdesk.com/se/nextory/pressreleases/nextory-lanserar-europas-foersta-ai-bibliotekarie-foer-boktips-i-en-bokstreamingtjaenst-3388450">AI Librarian</a></figcaption></figure></div><p>Projects like that involve data scientists, software engineers, and ML engineers working together to build production-grade AI systems that directly impact the product experience.</p><p>What&#8217;s interesting is that this is creating a wider spectrum of roles.</p><p>Some data scientists (like myself) remain closer to the business layer, focusing on analysis, experimentation, and decision-making. Others are moving closer to the engineering side, helping design and build the AI systems that power new product capabilities.</p><p>If you want to know more about this transition towards an engineering-focused role, then you want to read this article:</p><div class="digest-post-embed" data-attrs="{&quot;nodeId&quot;:&quot;8af9ef9b-1ef5-429d-9e00-c505a5a5f97b&quot;,&quot;caption&quot;:&quot;Over the past year, I&#8217;ve been asked this question more times than I can count:&quot;,&quot;cta&quot;:&quot;Read full story&quot;,&quot;showBylines&quot;:true,&quot;showDescription&quot;:true,&quot;showImage&quot;:true,&quot;size&quot;:&quot;sm&quot;,&quot;isEditorNode&quot;:true,&quot;title&quot;:&quot;Should You Actually Transition from Data Science to AI Engineering?&quot;,&quot;publishedBylines&quot;:[{&quot;id&quot;:135808578,&quot;name&quot;:&quot;Andres Vourakis&quot;,&quot;bio&quot;:&quot;Senior Data Scientist (and ex-hiring manager) with 7+ years in tech and applied AI/ML&quot;,&quot;photo_url&quot;:&quot;https://substackcdn.com/image/fetch/f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd9ebf6fc-4ed6-47e1-938e-a1fa37a2347e_1601x1646.jpeg&quot;,&quot;is_guest&quot;:false,&quot;bestseller_tier&quot;:null}],&quot;post_date&quot;:&quot;2026-02-19T15:42:36.220Z&quot;,&quot;cover_image&quot;:&quot;https://substackcdn.com/image/fetch/$s_!tyC_!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F73991ddf-499b-4ebe-aa9c-b63921774242_7890x5263.jpeg&quot;,&quot;cover_image_alt&quot;:null,&quot;canonical_url&quot;:&quot;https://read.futureproofds.com/p/should-you-transition-to-ai-engineering&quot;,&quot;section_name&quot;:null,&quot;video_upload_id&quot;:null,&quot;id&quot;:188429179,&quot;type&quot;:&quot;newsletter&quot;,&quot;reaction_count&quot;:25,&quot;comment_count&quot;:2,&quot;publication_id&quot;:2749479,&quot;publication_name&quot;:&quot;Future Proof Data Science&quot;,&quot;publication_logo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!yGDz!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F87022f87-5553-4f08-b339-8b197aa4e908_1280x1280.png&quot;,&quot;belowTheFold&quot;:true,&quot;youtube_url&quot;:null,&quot;show_links&quot;:null,&quot;feed_url&quot;:null}"></div><h1>Final Thoughts</h1><p>If someone shadowed me for a week, the biggest surprise probably wouldn&#8217;t be that I use AI.</p><p>It would be how much work I&#8217;m able to accomplish because of it.</p><p>The fundamentals of the job are still there: understanding problems, analyzing data, and helping teams make better decisions.</p><p>But AI is amplifying the work. It allows me to move faster, automate parts of my workflow, and explore complex ideas in days rather than weeks or months.</p><p>And from a career perspective, it&#8217;s also clear that these skills are becoming increasingly valuable. Being able to combine data science fundamentals with AI-driven workflows gives me a level of leverage that simply didn&#8217;t exist a few years ago.</p><p>Whatever happens in this role, I know those skills will transfer well. The tools are evolving quickly, but the core of the work remains the same.</p><p>And for me, that combination is exactly what makes this moment in the field so interesting.</p><div><hr></div><h2>A couple of other great resources:</h2><ul><li><p><strong>&#128640; Ready to take the next step? </strong>Build real <a href="https://futureproofds.com/">AI workflows</a> and sharpen the skills that keep data scientists ahead.</p></li><li><p><strong>&#129302; Struggling to keep up with AI/ML?</strong> <a href="https://neuralpulse.io/subscribe">Neural Pulse</a> is a 5-minute, human-curated newsletter delivering the best in AI, ML, and data science.</p></li></ul><div><hr></div><p><em>Thank you for reading! I hope this breakdown gives you a more grounded perspective on how AI is disrupting our field.</em></p><p><em>- Andres Vourakis</em></p><div><hr></div><p>Before you go, please hit the like &#10084;&#65039; button at the bottom of this email to help support me. It truly makes a difference!</p>]]></content:encoded></item><item><title><![CDATA[Should You Actually Transition from Data Science to AI Engineering?]]></title><description><![CDATA[Here is the reality most people keep ignoring]]></description><link>https://read.futureproofds.com/p/should-you-transition-to-ai-engineering</link><guid isPermaLink="false">https://read.futureproofds.com/p/should-you-transition-to-ai-engineering</guid><dc:creator><![CDATA[Andres Vourakis]]></dc:creator><pubDate>Thu, 19 Feb 2026 15:42:36 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!tyC_!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F73991ddf-499b-4ebe-aa9c-b63921774242_7890x5263.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Over the past year, I&#8217;ve been asked this question more times than I can count:</p><p>&#8220;Is it time to transition into AI Engineering?&#8221; &#8220;Is it too late?&#8221;</p><p>If you spend even a few minutes on LinkedIn, it can feel like the center of gravity has shifted. Suddenly, everyone is building agents, deploying RAG pipelines, experimenting with orchestration frameworks, and rebranding themselves as AI Engineers.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!K2gP!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F90ed9fc0-2ce9-46f8-b6a7-9629d65c4691_1012x1162.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!K2gP!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F90ed9fc0-2ce9-46f8-b6a7-9629d65c4691_1012x1162.png 424w, https://substackcdn.com/image/fetch/$s_!K2gP!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F90ed9fc0-2ce9-46f8-b6a7-9629d65c4691_1012x1162.png 848w, https://substackcdn.com/image/fetch/$s_!K2gP!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F90ed9fc0-2ce9-46f8-b6a7-9629d65c4691_1012x1162.png 1272w, https://substackcdn.com/image/fetch/$s_!K2gP!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F90ed9fc0-2ce9-46f8-b6a7-9629d65c4691_1012x1162.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!K2gP!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F90ed9fc0-2ce9-46f8-b6a7-9629d65c4691_1012x1162.png" width="420" height="482.2529644268775" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/90ed9fc0-2ce9-46f8-b6a7-9629d65c4691_1012x1162.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1162,&quot;width&quot;:1012,&quot;resizeWidth&quot;:420,&quot;bytes&quot;:1659820,&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://read.futureproofds.com/i/188429179?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F90ed9fc0-2ce9-46f8-b6a7-9629d65c4691_1012x1162.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_!K2gP!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F90ed9fc0-2ce9-46f8-b6a7-9629d65c4691_1012x1162.png 424w, https://substackcdn.com/image/fetch/$s_!K2gP!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F90ed9fc0-2ce9-46f8-b6a7-9629d65c4691_1012x1162.png 848w, https://substackcdn.com/image/fetch/$s_!K2gP!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F90ed9fc0-2ce9-46f8-b6a7-9629d65c4691_1012x1162.png 1272w, https://substackcdn.com/image/fetch/$s_!K2gP!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F90ed9fc0-2ce9-46f8-b6a7-9629d65c4691_1012x1162.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>But before you change your title, you need to answer a deeper question:</p><p>Are you genuinely drawn to that work&#8230;or are you reacting to the fear of becoming irrelevant?</p><p>Let&#8217;s slow it down and look at it properly.</p><h1>What AI Engineers Actually Do</h1><p>Strip away the hype, and AI Engineering looks a lot like software engineering applied to AI systems. It&#8217;s about designing, building, and operating intelligent applications reliably in production.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!tyC_!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F73991ddf-499b-4ebe-aa9c-b63921774242_7890x5263.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!tyC_!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F73991ddf-499b-4ebe-aa9c-b63921774242_7890x5263.jpeg 424w, https://substackcdn.com/image/fetch/$s_!tyC_!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F73991ddf-499b-4ebe-aa9c-b63921774242_7890x5263.jpeg 848w, https://substackcdn.com/image/fetch/$s_!tyC_!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F73991ddf-499b-4ebe-aa9c-b63921774242_7890x5263.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!tyC_!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F73991ddf-499b-4ebe-aa9c-b63921774242_7890x5263.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!tyC_!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F73991ddf-499b-4ebe-aa9c-b63921774242_7890x5263.jpeg" width="1456" height="971" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/73991ddf-499b-4ebe-aa9c-b63921774242_7890x5263.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:971,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:6313913,&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://read.futureproofds.com/i/188429179?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F73991ddf-499b-4ebe-aa9c-b63921774242_7890x5263.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_!tyC_!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F73991ddf-499b-4ebe-aa9c-b63921774242_7890x5263.jpeg 424w, https://substackcdn.com/image/fetch/$s_!tyC_!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F73991ddf-499b-4ebe-aa9c-b63921774242_7890x5263.jpeg 848w, https://substackcdn.com/image/fetch/$s_!tyC_!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F73991ddf-499b-4ebe-aa9c-b63921774242_7890x5263.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!tyC_!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F73991ddf-499b-4ebe-aa9c-b63921774242_7890x5263.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><figcaption class="image-caption">Photo by <a href="https://unsplash.com/@thisisengineering?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText">ThisisEngineering</a></figcaption></figure></div><p>In practice, this often means:</p><ul><li><p>Designing LLM-powered applications</p></li><li><p>Implementing retrieval-augmented generation (RAG) pipelines</p></li><li><p>Orchestrating multi-step workflows or agents</p></li><li><p>Connecting models to APIs, databases, and internal tools</p></li><li><p>Monitoring performance, latency, cost, and reliability</p></li></ul><p>The focus is <strong>far from discovering insights</strong> in a dataset and more on <strong>constructing systems that consistently deliver value at scale.</strong></p><p>You&#8217;re thinking about architecture, state management, evaluation frameworks, logging, versioning, and deployment environments. You&#8217;re asking questions like:</p><ul><li><p>How do we make this robust?</p></li><li><p>How do we reduce hallucinations?</p></li><li><p>How do we measure quality over time?</p></li></ul><p>Compared to traditional Data Science roles, there is typically less emphasis on exploratory analysis, hypothesis-driven experimentation, and stakeholder-facing storytelling.</p><p>That doesn&#8217;t make one role superior to the other, but it does mean they reward different strengths.</p><h1>Data Science Is Already Evolving</h1><p>I often talk to people seriously considering this transition, and what they often overlook is that Data Science hasn&#8217;t stayed static.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!A-yj!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F81bb6786-ece9-4e84-9a4b-ac49f1a300e2_1456x828.webp" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!A-yj!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F81bb6786-ece9-4e84-9a4b-ac49f1a300e2_1456x828.webp 424w, https://substackcdn.com/image/fetch/$s_!A-yj!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F81bb6786-ece9-4e84-9a4b-ac49f1a300e2_1456x828.webp 848w, https://substackcdn.com/image/fetch/$s_!A-yj!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F81bb6786-ece9-4e84-9a4b-ac49f1a300e2_1456x828.webp 1272w, https://substackcdn.com/image/fetch/$s_!A-yj!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F81bb6786-ece9-4e84-9a4b-ac49f1a300e2_1456x828.webp 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!A-yj!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F81bb6786-ece9-4e84-9a4b-ac49f1a300e2_1456x828.webp" width="1456" height="828" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/81bb6786-ece9-4e84-9a4b-ac49f1a300e2_1456x828.webp&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:828,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:24062,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/webp&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://read.futureproofds.com/i/188429179?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F81bb6786-ece9-4e84-9a4b-ac49f1a300e2_1456x828.webp&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!A-yj!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F81bb6786-ece9-4e84-9a4b-ac49f1a300e2_1456x828.webp 424w, https://substackcdn.com/image/fetch/$s_!A-yj!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F81bb6786-ece9-4e84-9a4b-ac49f1a300e2_1456x828.webp 848w, https://substackcdn.com/image/fetch/$s_!A-yj!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F81bb6786-ece9-4e84-9a4b-ac49f1a300e2_1456x828.webp 1272w, https://substackcdn.com/image/fetch/$s_!A-yj!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F81bb6786-ece9-4e84-9a4b-ac49f1a300e2_1456x828.webp 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>Modern data scientists are increasingly expected to:</p><ul><li><p>Write production-ready code</p></li><li><p>Own pipelines end-to-end</p></li><li><p>Collaborate closely with engineering</p></li><li><p>Think about deployment and monitoring</p></li><li><p>Use AI tools to accelerate analysis</p></li></ul><p>The &#8220;pure modeling&#8221; specialist is not disappearing (anytime soon at least) but is becoming rarer outside very large organizations. In many teams (like the one I&#8217;m currently in at Nextory), the line between Data Scientist and AI Engineer is already blurred. You may not carry the AI Engineer title, but you&#8217;re doing parts of the job.</p><p>So this transition isn&#8217;t a binary jump. It&#8217;s a movement along a spectrum.</p><p>If you want to learn more about what this looks like in practice, check out this job market report:</p><div class="digest-post-embed" data-attrs="{&quot;nodeId&quot;:&quot;092fb1b4-9930-407a-915c-3a465abb6aae&quot;,&quot;caption&quot;:&quot;Late last year, I published an article analyzing the data science job market, drawing primarily on two independent studies: one from Harvard University and another from the labor market analytics company Lightcast.&quot;,&quot;cta&quot;:&quot;Read full story&quot;,&quot;showBylines&quot;:true,&quot;showDescription&quot;:true,&quot;showImage&quot;:true,&quot;size&quot;:&quot;sm&quot;,&quot;isEditorNode&quot;:true,&quot;title&quot;:&quot;AI + Data Scientist Job Market in 2026: Analysis, Trends, Opportunities (Early Year Report)&quot;,&quot;publishedBylines&quot;:[{&quot;id&quot;:135808578,&quot;name&quot;:&quot;Andres Vourakis&quot;,&quot;bio&quot;:&quot;Senior Data Scientist (and ex-hiring manager) with 7+ years in tech and applied AI/ML&quot;,&quot;photo_url&quot;:&quot;https://substackcdn.com/image/fetch/f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd9ebf6fc-4ed6-47e1-938e-a1fa37a2347e_1601x1646.jpeg&quot;,&quot;is_guest&quot;:false,&quot;bestseller_tier&quot;:null}],&quot;post_date&quot;:&quot;2026-01-15T14:01:17.381Z&quot;,&quot;cover_image&quot;:&quot;https://substackcdn.com/image/fetch/$s_!Ki6z!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd5347fc9-b5f5-4f51-942a-8c1318728cb8_3144x960.png&quot;,&quot;cover_image_alt&quot;:null,&quot;canonical_url&quot;:&quot;https://read.futureproofds.com/p/ai-and-data-scientist-job-market-in-2026&quot;,&quot;section_name&quot;:null,&quot;video_upload_id&quot;:null,&quot;id&quot;:184348336,&quot;type&quot;:&quot;newsletter&quot;,&quot;reaction_count&quot;:35,&quot;comment_count&quot;:8,&quot;publication_id&quot;:2749479,&quot;publication_name&quot;:&quot;Future Proof Data Science&quot;,&quot;publication_logo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!yGDz!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F87022f87-5553-4f08-b339-8b197aa4e908_1280x1280.png&quot;,&quot;belowTheFold&quot;:true,&quot;youtube_url&quot;:null,&quot;show_links&quot;:null,&quot;feed_url&quot;:null}"></div><h1>Why You Might Want to Transition</h1><p>But okay, let&#8217;s figure out if this is actually the right move for you, because you might genuinely thrive in AI Engineering if you feel more energized by building systems than analyzing outcomes.</p><p>If your curiosity is triggered by questions like:</p><ul><li><p>How should this architecture be designed?</p></li><li><p>What&#8217;s the cleanest way to structure this workflow?</p></li><li><p>How do we evaluate this agent automatically?</p></li></ul><p>If you enjoy debugging integrations more than interpreting experimental results, that&#8217;s a signal.</p><p>Some data scientists were always drawn to building intelligent systems. For years, that meant moving toward ML Engineering or MLOps. Now, AI Engineering is another branch of that same instinct.</p><p>If you&#8217;ve consistently been more excited by building and operationalizing systems than by running experiments or presenting insights, this isn&#8217;t hype; it&#8217;s alignment.</p><h1>Why You Might Not Want To&#8230;</h1><p>Many data scientists chose this path because they thrive in ambiguity and enjoy framing messy business problems, designing experiments, and translating data into decisions.</p><p>There is a creative element in analysis that often goes unnoticed: defining the right metric, interpreting conflicting signals, identifying behavioral patterns, and influencing product strategy.</p><p>If what gives you satisfaction is shaping decisions rather than shipping infrastructure, then moving fully into engineering could slowly disconnect you from what you actually enjoy.</p><p>In reality, most data scientists won&#8217;t fully &#8220;switch&#8221; roles. They&#8217;ll become more AI-native instead. That means understanding how LLM systems work, being able to prototype AI workflows, knowing how to evaluate outputs, and collaborating effectively with engineers who own the deeper infrastructure.</p><p>The strongest profiles will combine business context, analytical rigor, engineering awareness, and AI literacy. The future is less about changing your title and more about expanding your toolkit.</p><h2>Why I&#8217;m Not Transitioning</h2><p>Personally, I&#8217;m not moving into a full AI Engineering role, at least not right now. </p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!2JXY!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fade64c59-2758-469a-b20f-7ac7dc898a08_1280x1557.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!2JXY!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fade64c59-2758-469a-b20f-7ac7dc898a08_1280x1557.jpeg 424w, https://substackcdn.com/image/fetch/$s_!2JXY!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fade64c59-2758-469a-b20f-7ac7dc898a08_1280x1557.jpeg 848w, https://substackcdn.com/image/fetch/$s_!2JXY!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fade64c59-2758-469a-b20f-7ac7dc898a08_1280x1557.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!2JXY!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fade64c59-2758-469a-b20f-7ac7dc898a08_1280x1557.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!2JXY!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fade64c59-2758-469a-b20f-7ac7dc898a08_1280x1557.jpeg" width="1280" height="1557" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/ade64c59-2758-469a-b20f-7ac7dc898a08_1280x1557.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1557,&quot;width&quot;:1280,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:297382,&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://read.futureproofds.com/i/188429179?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fade64c59-2758-469a-b20f-7ac7dc898a08_1280x1557.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_!2JXY!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fade64c59-2758-469a-b20f-7ac7dc898a08_1280x1557.jpeg 424w, https://substackcdn.com/image/fetch/$s_!2JXY!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fade64c59-2758-469a-b20f-7ac7dc898a08_1280x1557.jpeg 848w, https://substackcdn.com/image/fetch/$s_!2JXY!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fade64c59-2758-469a-b20f-7ac7dc898a08_1280x1557.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!2JXY!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fade64c59-2758-469a-b20f-7ac7dc898a08_1280x1557.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>That&#8217;s not because I&#8217;m ignoring where the field is going. I&#8217;m already building AI systems to automate parts of my work and have built AI-driven products on the side, and <a href="http://futureproofds.com">teaching practical AI workflows</a> has become a core part of what I do.</p><p>The reason is simpler: I genuinely enjoy staying close to the business layer. Shaping metrics, designing experiments, and connecting analysis to strategy is what feels most meaningful to me.</p><p>If I moved too far into full-time infrastructure and architecture, I&#8217;d lose the proximity to decision-making that makes the work fulfilling.</p><h1>Final Thoughts</h1><p>The real risk isn&#8217;t choosing the wrong title. The real risk is drifting into a role that doesn&#8217;t align with your strengths simply because the market shifted.</p><p>There is good money in AI Engineering, and working with emerging technology can be genuinely exciting. But alignment with your interests and the kind of work that actually energizes you is what sustains a career over time.</p><p>That&#8217;s what truly future-proofs you.</p><div><hr></div><h2>A couple of other great resources:</h2><ul><li><p><strong>&#128640; Ready to take the next step? </strong>Build real <a href="https://futureproofds.com/">AI workflows</a> and sharpen the skills that keep data scientists ahead.</p></li><li><p><strong>&#129302; Struggling to keep up with AI/ML?</strong> <a href="https://neuralpulse.io/subscribe">Neural Pulse</a> is a 5-minute, human-curated newsletter delivering the best in AI, ML, and data science.</p></li></ul><div><hr></div><p><em>Thank you for reading! I hope this guide helps you decide what is the best path for you.</em></p><p><em>- Andres Vourakis</em></p><div><hr></div><p>Before you go, please hit the like &#10084;&#65039; button at the bottom of this email to help support me. It truly makes a difference!</p>]]></content:encoded></item><item><title><![CDATA[7 Open-Source AI Tools Every Data Scientist Needs in 2026]]></title><description><![CDATA[It's never been easier to level-up]]></description><link>https://read.futureproofds.com/p/10-open-source-ai-tools-every-data</link><guid isPermaLink="false">https://read.futureproofds.com/p/10-open-source-ai-tools-every-data</guid><dc:creator><![CDATA[Andres Vourakis]]></dc:creator><pubDate>Sat, 07 Feb 2026 16:02:50 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!YsSr!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2bcf2495-8a1e-4755-9f1c-b24d6e0443d8_3840x2158.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Over the past year, I&#8217;ve been coming across a growing number of open source AI tools that actually move the needle for data scientists.</p><p>Many of them I&#8217;ve run into while working on projects, experimenting on my own, or simply paying attention to what the community is building. Some stood out because they help with very concrete parts of the job, like exploration, feature work, forecasting, and working with messy inputs.</p><p>Here are my absolute favorites so far.</p><h1>1. AI Sheets</h1><p><a href="https://huggingface.co/blog/aisheets">AI Sheets</a> lets you enrich, label, and transform tabular data using LLMs directly inside a spreadsheet-like interface.</p><p>In practice, this is useful for things like generating features, classifying text columns, or adding weak labels to datasets before training a model.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!KHk0!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9a5f9e11-1b42-4bee-9bab-75e60c73ee6d_2844x1478.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!KHk0!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9a5f9e11-1b42-4bee-9bab-75e60c73ee6d_2844x1478.png 424w, https://substackcdn.com/image/fetch/$s_!KHk0!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9a5f9e11-1b42-4bee-9bab-75e60c73ee6d_2844x1478.png 848w, https://substackcdn.com/image/fetch/$s_!KHk0!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9a5f9e11-1b42-4bee-9bab-75e60c73ee6d_2844x1478.png 1272w, https://substackcdn.com/image/fetch/$s_!KHk0!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9a5f9e11-1b42-4bee-9bab-75e60c73ee6d_2844x1478.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!KHk0!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9a5f9e11-1b42-4bee-9bab-75e60c73ee6d_2844x1478.png" width="1456" height="757" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/9a5f9e11-1b42-4bee-9bab-75e60c73ee6d_2844x1478.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:757,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:228570,&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://read.futureproofds.com/i/187190422?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9a5f9e11-1b42-4bee-9bab-75e60c73ee6d_2844x1478.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_!KHk0!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9a5f9e11-1b42-4bee-9bab-75e60c73ee6d_2844x1478.png 424w, https://substackcdn.com/image/fetch/$s_!KHk0!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9a5f9e11-1b42-4bee-9bab-75e60c73ee6d_2844x1478.png 848w, https://substackcdn.com/image/fetch/$s_!KHk0!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9a5f9e11-1b42-4bee-9bab-75e60c73ee6d_2844x1478.png 1272w, https://substackcdn.com/image/fetch/$s_!KHk0!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9a5f9e11-1b42-4bee-9bab-75e60c73ee6d_2844x1478.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><figcaption class="image-caption">Preview of AI Sheets.</figcaption></figure></div><h1>2. Data Formulator</h1><p><a href="https://data-formulator.ai">Data Formulator</a> turns natural-language descriptions into concrete data transformations and visualizations.</p><p>It&#8217;s especially useful during early EDA, when you&#8217;re iterating on how to slice the data and don&#8217;t want to hand-write transformations you might throw away five minutes later.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!YsSr!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2bcf2495-8a1e-4755-9f1c-b24d6e0443d8_3840x2158.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!YsSr!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2bcf2495-8a1e-4755-9f1c-b24d6e0443d8_3840x2158.png 424w, https://substackcdn.com/image/fetch/$s_!YsSr!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2bcf2495-8a1e-4755-9f1c-b24d6e0443d8_3840x2158.png 848w, https://substackcdn.com/image/fetch/$s_!YsSr!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2bcf2495-8a1e-4755-9f1c-b24d6e0443d8_3840x2158.png 1272w, https://substackcdn.com/image/fetch/$s_!YsSr!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2bcf2495-8a1e-4755-9f1c-b24d6e0443d8_3840x2158.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!YsSr!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2bcf2495-8a1e-4755-9f1c-b24d6e0443d8_3840x2158.png" width="1456" height="818" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/2bcf2495-8a1e-4755-9f1c-b24d6e0443d8_3840x2158.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:818,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:843753,&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://read.futureproofds.com/i/187190422?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2bcf2495-8a1e-4755-9f1c-b24d6e0443d8_3840x2158.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_!YsSr!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2bcf2495-8a1e-4755-9f1c-b24d6e0443d8_3840x2158.png 424w, https://substackcdn.com/image/fetch/$s_!YsSr!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2bcf2495-8a1e-4755-9f1c-b24d6e0443d8_3840x2158.png 848w, https://substackcdn.com/image/fetch/$s_!YsSr!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2bcf2495-8a1e-4755-9f1c-b24d6e0443d8_3840x2158.png 1272w, https://substackcdn.com/image/fetch/$s_!YsSr!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2bcf2495-8a1e-4755-9f1c-b24d6e0443d8_3840x2158.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><h1>3. Jupyter AI</h1><p><a href="https://github.com/jupyterlab/jupyter-ai">Jupyter AI</a> brings LLM assistance directly into Jupyter notebooks, tightly coupled with your code and variables.</p><p>This works well for refactoring analysis code, explaining unfamiliar notebooks, or quickly prototyping modeling steps without breaking the notebook workflow.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!dr4L!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F310be7c0-4825-476b-bc44-9381d9e7bfc9_1456x825.webp" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!dr4L!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F310be7c0-4825-476b-bc44-9381d9e7bfc9_1456x825.webp 424w, https://substackcdn.com/image/fetch/$s_!dr4L!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F310be7c0-4825-476b-bc44-9381d9e7bfc9_1456x825.webp 848w, https://substackcdn.com/image/fetch/$s_!dr4L!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F310be7c0-4825-476b-bc44-9381d9e7bfc9_1456x825.webp 1272w, https://substackcdn.com/image/fetch/$s_!dr4L!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F310be7c0-4825-476b-bc44-9381d9e7bfc9_1456x825.webp 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!dr4L!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F310be7c0-4825-476b-bc44-9381d9e7bfc9_1456x825.webp" width="1456" height="825" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/310be7c0-4825-476b-bc44-9381d9e7bfc9_1456x825.webp&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:825,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:61874,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/webp&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://read.futureproofds.com/i/187190422?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F310be7c0-4825-476b-bc44-9381d9e7bfc9_1456x825.webp&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!dr4L!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F310be7c0-4825-476b-bc44-9381d9e7bfc9_1456x825.webp 424w, https://substackcdn.com/image/fetch/$s_!dr4L!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F310be7c0-4825-476b-bc44-9381d9e7bfc9_1456x825.webp 848w, https://substackcdn.com/image/fetch/$s_!dr4L!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F310be7c0-4825-476b-bc44-9381d9e7bfc9_1456x825.webp 1272w, https://substackcdn.com/image/fetch/$s_!dr4L!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F310be7c0-4825-476b-bc44-9381d9e7bfc9_1456x825.webp 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>If you want a more in-depth view of this tool, check out this <a href="https://read.futureproofds.com/p/jupyter-ai-how-to-do-ai-coding-directly">article</a>.</p><h1>4. PandasAI</h1><p><a href="https://github.com/sinaptik-ai/pandas-ai">PandasAI</a> lets you ask questions about a DataFrame in natural language and executes the corresponding pandas operations.</p><p>It&#8217;s not a replacement for pandas, but it&#8217;s very effective for speeding up EDA and sanity checks when you already know <em>what</em> you want to inspect.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!2hIF!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F835f7099-16e8-478a-baa4-2c41534b9088_1456x925.webp" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!2hIF!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F835f7099-16e8-478a-baa4-2c41534b9088_1456x925.webp 424w, https://substackcdn.com/image/fetch/$s_!2hIF!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F835f7099-16e8-478a-baa4-2c41534b9088_1456x925.webp 848w, https://substackcdn.com/image/fetch/$s_!2hIF!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F835f7099-16e8-478a-baa4-2c41534b9088_1456x925.webp 1272w, https://substackcdn.com/image/fetch/$s_!2hIF!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F835f7099-16e8-478a-baa4-2c41534b9088_1456x925.webp 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!2hIF!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F835f7099-16e8-478a-baa4-2c41534b9088_1456x925.webp" width="1456" height="925" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/835f7099-16e8-478a-baa4-2c41534b9088_1456x925.webp&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:925,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:66080,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/webp&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://read.futureproofds.com/i/187190422?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F835f7099-16e8-478a-baa4-2c41534b9088_1456x925.webp&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!2hIF!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F835f7099-16e8-478a-baa4-2c41534b9088_1456x925.webp 424w, https://substackcdn.com/image/fetch/$s_!2hIF!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F835f7099-16e8-478a-baa4-2c41534b9088_1456x925.webp 848w, https://substackcdn.com/image/fetch/$s_!2hIF!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F835f7099-16e8-478a-baa4-2c41534b9088_1456x925.webp 1272w, https://substackcdn.com/image/fetch/$s_!2hIF!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F835f7099-16e8-478a-baa4-2c41534b9088_1456x925.webp 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>I wrote a two-part series on how to get the most out of PandasAI. Here is the <a href="https://read.futureproofds.com/p/testing-the-limits-of-pandasai-part">article</a>.</p><h1>5. ChartDB</h1><p><a href="https://github.com/marketplace/chartdb">ChartDB</a> automatically generates visual representations of database schemas and table relationships.</p><p>This is particularly helpful when onboarding onto a new data warehouse and trying to understand how raw tables connect before writing models or features.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!sMjr!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7b8bac25-2365-4dbc-8b5b-41914c06a455_3104x1826.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!sMjr!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7b8bac25-2365-4dbc-8b5b-41914c06a455_3104x1826.png 424w, https://substackcdn.com/image/fetch/$s_!sMjr!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7b8bac25-2365-4dbc-8b5b-41914c06a455_3104x1826.png 848w, https://substackcdn.com/image/fetch/$s_!sMjr!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7b8bac25-2365-4dbc-8b5b-41914c06a455_3104x1826.png 1272w, https://substackcdn.com/image/fetch/$s_!sMjr!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7b8bac25-2365-4dbc-8b5b-41914c06a455_3104x1826.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!sMjr!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7b8bac25-2365-4dbc-8b5b-41914c06a455_3104x1826.png" width="1456" height="857" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/7b8bac25-2365-4dbc-8b5b-41914c06a455_3104x1826.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:857,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:902860,&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://read.futureproofds.com/i/187190422?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7b8bac25-2365-4dbc-8b5b-41914c06a455_3104x1826.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_!sMjr!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7b8bac25-2365-4dbc-8b5b-41914c06a455_3104x1826.png 424w, https://substackcdn.com/image/fetch/$s_!sMjr!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7b8bac25-2365-4dbc-8b5b-41914c06a455_3104x1826.png 848w, https://substackcdn.com/image/fetch/$s_!sMjr!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7b8bac25-2365-4dbc-8b5b-41914c06a455_3104x1826.png 1272w, https://substackcdn.com/image/fetch/$s_!sMjr!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7b8bac25-2365-4dbc-8b5b-41914c06a455_3104x1826.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><h1>6. MCP Toolbox for Databases</h1><p><a href="https://github.com/googleapis/genai-toolbox">MCP Toolbox</a> exposes databases as structured, permissioned tools that LLM agents can query safely.</p><p>This is a foundational piece if you&#8217;re building agentic analytics systems that need database access without giving an LLM free-form SQL over production data.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!W-lu!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8eb7abff-f225-4ddf-b763-2c1e7d9518c4_1248x1056.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!W-lu!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8eb7abff-f225-4ddf-b763-2c1e7d9518c4_1248x1056.png 424w, https://substackcdn.com/image/fetch/$s_!W-lu!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8eb7abff-f225-4ddf-b763-2c1e7d9518c4_1248x1056.png 848w, https://substackcdn.com/image/fetch/$s_!W-lu!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8eb7abff-f225-4ddf-b763-2c1e7d9518c4_1248x1056.png 1272w, https://substackcdn.com/image/fetch/$s_!W-lu!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8eb7abff-f225-4ddf-b763-2c1e7d9518c4_1248x1056.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!W-lu!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8eb7abff-f225-4ddf-b763-2c1e7d9518c4_1248x1056.png" width="1248" height="1056" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/8eb7abff-f225-4ddf-b763-2c1e7d9518c4_1248x1056.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1056,&quot;width&quot;:1248,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:246935,&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://read.futureproofds.com/i/187190422?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8eb7abff-f225-4ddf-b763-2c1e7d9518c4_1248x1056.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_!W-lu!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8eb7abff-f225-4ddf-b763-2c1e7d9518c4_1248x1056.png 424w, https://substackcdn.com/image/fetch/$s_!W-lu!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8eb7abff-f225-4ddf-b763-2c1e7d9518c4_1248x1056.png 848w, https://substackcdn.com/image/fetch/$s_!W-lu!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8eb7abff-f225-4ddf-b763-2c1e7d9518c4_1248x1056.png 1272w, https://substackcdn.com/image/fetch/$s_!W-lu!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8eb7abff-f225-4ddf-b763-2c1e7d9518c4_1248x1056.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>If you are ready to start building MCP servers, read this <a href="https://read.futureproofds.com/p/testing-the-limits-of-pandasai-part">article</a>.</p><h1>7. TimeGPT</h1><p><a href="https://github.com/Nixtla/nixtla?tab=readme-ov-file">TimeGPT</a> is a pretrained foundation model for time-series forecasting that works out of the box via an API.</p><p>It&#8217;s a strong baseline when you want fast, reasonable forecasts without spending days on feature engineering and model tuning.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!ctQm!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5ad1d304-5079-4c8b-a2e7-533895878904_2638x994.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!ctQm!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5ad1d304-5079-4c8b-a2e7-533895878904_2638x994.png 424w, https://substackcdn.com/image/fetch/$s_!ctQm!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5ad1d304-5079-4c8b-a2e7-533895878904_2638x994.png 848w, https://substackcdn.com/image/fetch/$s_!ctQm!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5ad1d304-5079-4c8b-a2e7-533895878904_2638x994.png 1272w, https://substackcdn.com/image/fetch/$s_!ctQm!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5ad1d304-5079-4c8b-a2e7-533895878904_2638x994.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!ctQm!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5ad1d304-5079-4c8b-a2e7-533895878904_2638x994.png" width="1456" height="549" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/5ad1d304-5079-4c8b-a2e7-533895878904_2638x994.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:549,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:238179,&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://read.futureproofds.com/i/187190422?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5ad1d304-5079-4c8b-a2e7-533895878904_2638x994.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_!ctQm!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5ad1d304-5079-4c8b-a2e7-533895878904_2638x994.png 424w, https://substackcdn.com/image/fetch/$s_!ctQm!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5ad1d304-5079-4c8b-a2e7-533895878904_2638x994.png 848w, https://substackcdn.com/image/fetch/$s_!ctQm!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5ad1d304-5079-4c8b-a2e7-533895878904_2638x994.png 1272w, https://substackcdn.com/image/fetch/$s_!ctQm!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5ad1d304-5079-4c8b-a2e7-533895878904_2638x994.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>If you want to learn more about foundation models, check out this <a href="https://read.futureproofds.com/p/what-are-foundation-models-and-why-data-scientists-should-care">article</a>.</p><h1>Bonus: MarkItDown</h1><p><a href="https://github.com/microsoft/markitdown">MarkItDown</a> converts PDFs, Word files, and presentations into clean, structured Markdown.</p><p>For data scientists, this is especially useful when preparing documents for retrieval pipelines, evaluation datasets, or any RAG-style setup.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!mB7A!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F515cd806-f2a7-47b9-967b-0b9bba845571_1640x1382.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!mB7A!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F515cd806-f2a7-47b9-967b-0b9bba845571_1640x1382.png 424w, https://substackcdn.com/image/fetch/$s_!mB7A!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F515cd806-f2a7-47b9-967b-0b9bba845571_1640x1382.png 848w, https://substackcdn.com/image/fetch/$s_!mB7A!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F515cd806-f2a7-47b9-967b-0b9bba845571_1640x1382.png 1272w, https://substackcdn.com/image/fetch/$s_!mB7A!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F515cd806-f2a7-47b9-967b-0b9bba845571_1640x1382.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!mB7A!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F515cd806-f2a7-47b9-967b-0b9bba845571_1640x1382.png" width="1456" height="1227" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/515cd806-f2a7-47b9-967b-0b9bba845571_1640x1382.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1227,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:407293,&quot;alt&quot;:&quot;&quot;,&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://read.futureproofds.com/i/187190422?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F515cd806-f2a7-47b9-967b-0b9bba845571_1640x1382.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!mB7A!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F515cd806-f2a7-47b9-967b-0b9bba845571_1640x1382.png 424w, https://substackcdn.com/image/fetch/$s_!mB7A!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F515cd806-f2a7-47b9-967b-0b9bba845571_1640x1382.png 848w, https://substackcdn.com/image/fetch/$s_!mB7A!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F515cd806-f2a7-47b9-967b-0b9bba845571_1640x1382.png 1272w, https://substackcdn.com/image/fetch/$s_!mB7A!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F515cd806-f2a7-47b9-967b-0b9bba845571_1640x1382.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><div><hr></div><h2>A couple of other great resources:</h2><ul><li><p><strong>&#128640; Ready to take the next step? </strong>Build real <a href="https://futureproofds.com/">AI workflows</a> and sharpen the skills that keep data scientists ahead.</p></li><li><p>&#128188; <strong>Job searching?</strong> <a href="https://applio.ai/">Applio</a> helps your resume stand out and land more interviews.</p></li><li><p><strong>&#129302; Struggling to keep up with AI/ML?</strong> <a href="https://neuralpulse.io/subscribe">Neural Pulse</a> is a 5-minute, human-curated newsletter delivering the best in AI, ML, and data science.</p></li></ul><div><hr></div><p><em>Thank you for reading! I hope this guide helps you get the most out of your AI tools.</em></p><p><em>- Andres Vourakis</em></p><div><hr></div><p>Before you go, please hit the like &#10084;&#65039; button at the bottom of this email to help support me. It truly makes a difference!</p>]]></content:encoded></item><item><title><![CDATA[The Best Way to Deploy Data Science Projects with Streamlit]]></title><description><![CDATA[Hint: It's not Streamlit Cloud]]></description><link>https://read.futureproofds.com/p/the-best-way-to-deploy-data-science</link><guid isPermaLink="false">https://read.futureproofds.com/p/the-best-way-to-deploy-data-science</guid><dc:creator><![CDATA[Andres Vourakis]]></dc:creator><pubDate>Thu, 29 Jan 2026 13:31:43 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!RRk6!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcbab0a41-566e-4527-810b-376e05c69ae0_3024x1642.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><em>Impact.</em></p><p>It&#8217;s what separates good data scientists from great ones.</p><p>It&#8217;s what every employer is looking for in their next hire.</p><p>And it&#8217;s what defines your value as a data scientist.</p><p>But creating impact takes more than just technical skills. It&#8217;s not enough to build great models; you need to make them accessible and usable.</p><p>That&#8217;s why <strong>deployment</strong> is so important.</p><p>A model sitting in a Jupyter notebook isn&#8217;t doing anything. To create real value, you need to deploy it.</p><p>So today, I want to show you how to do just that using Streamlit</p><p>But going beyond the basic Streamlit Cloud.</p><p>This is the same method I&#8217;ve used to coach many of my mentees in the past, helping them build projects that impress hiring managers and get hired.</p><div><hr></div><p><strong>Here is what we&#8217;ll cover:</strong></p><ol><li><p>Why Streamlit Cloud isn&#8217;t enough</p></li><li><p>How to Dockerize your Streamlit app (practical guide)</p></li><li><p>Deploying a Dockerized Streamlit app</p></li></ol><div><hr></div><h1>1. Why Streamlit Cloud Isn&#8217;t Enough</h1><p>Nowadays, using Streamlit to bring your portfolio projects to life is a must. It&#8217;s a great way to show your ability to build projects end-to-end.</p><p>Well, sort of.</p><p>Most projects default to deploying using Streamlit Cloud. Just a few clicks, and it&#8217;s live for anyone to use. Easy! Great for quick prototypes.</p><p>But easy comes at a cost.</p><p>The technical skills don&#8217;t always transfer beyond Streamlit&#8217;s ecosystem. And the idea here is to show we can go beyond simple prototypes.</p><p>This is where <strong>Docker</strong> comes in.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!IHDN!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7690af7c-387c-455f-89e3-a95bf42cad46_612x408.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!IHDN!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7690af7c-387c-455f-89e3-a95bf42cad46_612x408.jpeg 424w, https://substackcdn.com/image/fetch/$s_!IHDN!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7690af7c-387c-455f-89e3-a95bf42cad46_612x408.jpeg 848w, https://substackcdn.com/image/fetch/$s_!IHDN!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7690af7c-387c-455f-89e3-a95bf42cad46_612x408.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!IHDN!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7690af7c-387c-455f-89e3-a95bf42cad46_612x408.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!IHDN!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7690af7c-387c-455f-89e3-a95bf42cad46_612x408.jpeg" width="612" height="408" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/7690af7c-387c-455f-89e3-a95bf42cad46_612x408.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:408,&quot;width&quot;:612,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:52920,&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://tobeadatascientist.substack.com/i/157758674?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7690af7c-387c-455f-89e3-a95bf42cad46_612x408.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_!IHDN!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7690af7c-387c-455f-89e3-a95bf42cad46_612x408.jpeg 424w, https://substackcdn.com/image/fetch/$s_!IHDN!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7690af7c-387c-455f-89e3-a95bf42cad46_612x408.jpeg 848w, https://substackcdn.com/image/fetch/$s_!IHDN!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7690af7c-387c-455f-89e3-a95bf42cad46_612x408.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!IHDN!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7690af7c-387c-455f-89e3-a95bf42cad46_612x408.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><figcaption class="image-caption">Image by Author</figcaption></figure></div><p>With Docker, you&#8217;re no longer just deploying an app; you&#8217;re packaging it in a way that works anywhere.</p><p>And guess what? It&#8217;s the industry standard for containerizing in software development, including data science and machine learning workflows.</p><p>If you are new to Docker, I recommend you first read this article to familiarise yourself with the key concepts:</p><div class="digest-post-embed" data-attrs="{&quot;nodeId&quot;:&quot;5c4588da-e09e-47f2-9a40-a0aecf8b2a6e&quot;,&quot;caption&quot;:&quot;That&#8217;s great, but&#8230;&quot;,&quot;cta&quot;:&quot;Read full story&quot;,&quot;showBylines&quot;:true,&quot;showDescription&quot;:true,&quot;showImage&quot;:true,&quot;size&quot;:&quot;sm&quot;,&quot;isEditorNode&quot;:true,&quot;title&quot;:&quot;Docker For Data Scientists (Part 1): A Gentle Introduction&quot;,&quot;publishedBylines&quot;:[{&quot;id&quot;:135808578,&quot;name&quot;:&quot;Andres Vourakis&quot;,&quot;bio&quot;:&quot;Senior Data Scientist (and ex-hiring manager) with 7+ years in tech and applied AI/ML&quot;,&quot;photo_url&quot;:&quot;https://substackcdn.com/image/fetch/f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd9ebf6fc-4ed6-47e1-938e-a1fa37a2347e_1601x1646.jpeg&quot;,&quot;is_guest&quot;:false,&quot;bestseller_tier&quot;:null}],&quot;post_date&quot;:&quot;2025-10-02T12:31:12.747Z&quot;,&quot;cover_image&quot;:&quot;https://substackcdn.com/image/fetch/$s_!AKUO!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9308d607-fd56-4cc1-9917-c0d4abd221f7_2342x1320.png&quot;,&quot;cover_image_alt&quot;:null,&quot;canonical_url&quot;:&quot;https://read.futureproofds.com/p/docker-for-data-scientists-part-1&quot;,&quot;section_name&quot;:null,&quot;video_upload_id&quot;:null,&quot;id&quot;:174555931,&quot;type&quot;:&quot;newsletter&quot;,&quot;reaction_count&quot;:84,&quot;comment_count&quot;:9,&quot;publication_id&quot;:2749479,&quot;publication_name&quot;:&quot;Future Proof Data Science&quot;,&quot;publication_logo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!yGDz!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F87022f87-5553-4f08-b339-8b197aa4e908_1280x1280.png&quot;,&quot;belowTheFold&quot;:true,&quot;youtube_url&quot;:null,&quot;show_links&quot;:null,&quot;feed_url&quot;:null}"></div><p>Otherwise, here is a quick look at our strategy:</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!9Gu0!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6402199c-c0d3-469a-83d8-a47399e23010_2354x634.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!9Gu0!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6402199c-c0d3-469a-83d8-a47399e23010_2354x634.png 424w, https://substackcdn.com/image/fetch/$s_!9Gu0!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6402199c-c0d3-469a-83d8-a47399e23010_2354x634.png 848w, https://substackcdn.com/image/fetch/$s_!9Gu0!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6402199c-c0d3-469a-83d8-a47399e23010_2354x634.png 1272w, https://substackcdn.com/image/fetch/$s_!9Gu0!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6402199c-c0d3-469a-83d8-a47399e23010_2354x634.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!9Gu0!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6402199c-c0d3-469a-83d8-a47399e23010_2354x634.png" width="727" height="195.73076923076923" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/6402199c-c0d3-469a-83d8-a47399e23010_2354x634.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:392,&quot;width&quot;:1456,&quot;resizeWidth&quot;:727,&quot;bytes&quot;:460455,&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://tobeadatascientist.substack.com/i/157758674?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6402199c-c0d3-469a-83d8-a47399e23010_2354x634.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_!9Gu0!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6402199c-c0d3-469a-83d8-a47399e23010_2354x634.png 424w, https://substackcdn.com/image/fetch/$s_!9Gu0!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6402199c-c0d3-469a-83d8-a47399e23010_2354x634.png 848w, https://substackcdn.com/image/fetch/$s_!9Gu0!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6402199c-c0d3-469a-83d8-a47399e23010_2354x634.png 1272w, https://substackcdn.com/image/fetch/$s_!9Gu0!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6402199c-c0d3-469a-83d8-a47399e23010_2354x634.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><p>Let&#8217;s break it down.</p><h1>2. How to Dockerize Your Streamlit App (Practical Guide)</h1><p>Deploying with <strong>Docker</strong> means you&#8217;re not just launching an app, you&#8217;re creating something that <strong>works anywhere</strong>.</p><p>But to do that, you need a Dockerfile, which works as a simple script that tells Docker how to package your app:</p><ul><li><p>What dependencies to install</p></li><li><p>What files to include</p></li><li><p>How to run it.</p></li></ul><p>Let&#8217;s see what that looks like</p><h2>Minimal Dockerfile template (ready-to-use)</h2><p>Here&#8217;s a simple Dockerfile that works for Streamlit.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!WZfb!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2daffc94-974d-4679-91a7-4809eb1aef6a_3127x2280.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!WZfb!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2daffc94-974d-4679-91a7-4809eb1aef6a_3127x2280.png 424w, https://substackcdn.com/image/fetch/$s_!WZfb!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2daffc94-974d-4679-91a7-4809eb1aef6a_3127x2280.png 848w, https://substackcdn.com/image/fetch/$s_!WZfb!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2daffc94-974d-4679-91a7-4809eb1aef6a_3127x2280.png 1272w, https://substackcdn.com/image/fetch/$s_!WZfb!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2daffc94-974d-4679-91a7-4809eb1aef6a_3127x2280.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!WZfb!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2daffc94-974d-4679-91a7-4809eb1aef6a_3127x2280.png" width="1456" height="1062" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/2daffc94-974d-4679-91a7-4809eb1aef6a_3127x2280.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1062,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:526029,&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://tobeadatascientist.substack.com/i/157758674?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2daffc94-974d-4679-91a7-4809eb1aef6a_3127x2280.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_!WZfb!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2daffc94-974d-4679-91a7-4809eb1aef6a_3127x2280.png 424w, https://substackcdn.com/image/fetch/$s_!WZfb!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2daffc94-974d-4679-91a7-4809eb1aef6a_3127x2280.png 848w, https://substackcdn.com/image/fetch/$s_!WZfb!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2daffc94-974d-4679-91a7-4809eb1aef6a_3127x2280.png 1272w, https://substackcdn.com/image/fetch/$s_!WZfb!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2daffc94-974d-4679-91a7-4809eb1aef6a_3127x2280.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><figcaption class="image-caption">Template Dockerfile that works with Streamlit</figcaption></figure></div><p>That&#8217;s it. Minimal, efficient, and does the job.</p><p>But of course, this is just a starting point. You can always tweak it to meet your specific needs (e.g., you can use a later version of Python).</p><p><em>You can download the exact template <a href="https://github.com/andresvourakis/tbds-demos/blob/main/deploying_with_strealit_and_docker/Dockerfile">here</a>.</em></p><h2>Running your Docker container locally</h2><p>Now, let&#8217;s test it before deployment.</p><p><strong>Step 1</strong>: Build the Docker image (only needs to be done once):</p><pre><code><code>docker build -t my-streamlit-app .</code></code></pre><p><strong>Step 2:</strong> Run the container (this starts your app inside Docker):</p><pre><code><code>docker run -p 8501:8501 my-streamlit-app</code></code></pre><p><strong>Step 3</strong>: Visit <code>http://localhost:8501 </code>and boom, your app is running inside Docker.</p><p>At this point, you&#8217;ve Dockerized your Streamlit app. Now, let&#8217;s get it live.</p><h1>3. Deploying a Dockerized Streamlit App on Render</h1><p>Now that your app runs locally, it&#8217;s time to deploy it properly.</p><p>I recommend using Render.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!_o59!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa81930d3-a670-4055-927a-126a53ba7db0_3018x1520.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!_o59!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa81930d3-a670-4055-927a-126a53ba7db0_3018x1520.png 424w, https://substackcdn.com/image/fetch/$s_!_o59!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa81930d3-a670-4055-927a-126a53ba7db0_3018x1520.png 848w, https://substackcdn.com/image/fetch/$s_!_o59!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa81930d3-a670-4055-927a-126a53ba7db0_3018x1520.png 1272w, https://substackcdn.com/image/fetch/$s_!_o59!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa81930d3-a670-4055-927a-126a53ba7db0_3018x1520.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!_o59!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa81930d3-a670-4055-927a-126a53ba7db0_3018x1520.png" width="1456" height="733" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a81930d3-a670-4055-927a-126a53ba7db0_3018x1520.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:733,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:299516,&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://tobeadatascientist.substack.com/i/157758674?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa81930d3-a670-4055-927a-126a53ba7db0_3018x1520.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_!_o59!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa81930d3-a670-4055-927a-126a53ba7db0_3018x1520.png 424w, https://substackcdn.com/image/fetch/$s_!_o59!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa81930d3-a670-4055-927a-126a53ba7db0_3018x1520.png 848w, https://substackcdn.com/image/fetch/$s_!_o59!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa81930d3-a670-4055-927a-126a53ba7db0_3018x1520.png 1272w, https://substackcdn.com/image/fetch/$s_!_o59!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa81930d3-a670-4055-927a-126a53ba7db0_3018x1520.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><figcaption class="image-caption">Preview of the Render website</figcaption></figure></div><p>Why Render?</p><ul><li><p>Free tier (so you don&#8217;t burn cash while testing).</p></li><li><p>Supports Docker natively (which means no weird config issues).</p></li><li><p>Simple setup (no Kubernetes, no headaches).</p></li></ul><p>Let&#8217;s deploy.</p><h2>Simple steps to deploy a Dockerized app</h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!RRk6!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcbab0a41-566e-4527-810b-376e05c69ae0_3024x1642.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!RRk6!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcbab0a41-566e-4527-810b-376e05c69ae0_3024x1642.png 424w, https://substackcdn.com/image/fetch/$s_!RRk6!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcbab0a41-566e-4527-810b-376e05c69ae0_3024x1642.png 848w, https://substackcdn.com/image/fetch/$s_!RRk6!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcbab0a41-566e-4527-810b-376e05c69ae0_3024x1642.png 1272w, https://substackcdn.com/image/fetch/$s_!RRk6!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcbab0a41-566e-4527-810b-376e05c69ae0_3024x1642.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!RRk6!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcbab0a41-566e-4527-810b-376e05c69ae0_3024x1642.png" width="1456" height="791" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/cbab0a41-566e-4527-810b-376e05c69ae0_3024x1642.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:791,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:337768,&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://tobeadatascientist.substack.com/i/157758674?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcbab0a41-566e-4527-810b-376e05c69ae0_3024x1642.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_!RRk6!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcbab0a41-566e-4527-810b-376e05c69ae0_3024x1642.png 424w, https://substackcdn.com/image/fetch/$s_!RRk6!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcbab0a41-566e-4527-810b-376e05c69ae0_3024x1642.png 848w, https://substackcdn.com/image/fetch/$s_!RRk6!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcbab0a41-566e-4527-810b-376e05c69ae0_3024x1642.png 1272w, https://substackcdn.com/image/fetch/$s_!RRk6!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcbab0a41-566e-4527-810b-376e05c69ae0_3024x1642.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><figcaption class="image-caption">Example of one of my projects (using Docker) being deployed with Render.</figcaption></figure></div><ol><li><p>Push your project (with the <code>Dockerfile</code>) to GitHub (if it&#8217;s not there already).</p></li><li><p>Sign up on <a href="https://render.com/">Render</a> and create a new Web Service.</p></li><li><p>Connect your GitHub repo and select the branch with your <code>Dockerfile</code>.</p></li><li><p>Under &#8220;Language,&#8221; choose &#8220;Docker.&#8221;</p></li><li><p>Click &#8220;Deploy.&#8221;</p></li></ol><blockquote><p>&#128161; Render will automatically build your Docker image from your <code>Dockerfile</code>, you do not need to push an image to a container registry.</p></blockquote><p>Once it&#8217;s live, you&#8217;ll get a public URL to share your deployed project.</p><p>And just like that, you&#8217;ve taken your Streamlit project beyond just a &#8220;quick&#8221; prototype.</p><h2>But&#8230;what if you already have a Docker image?</h2><p>Alternatively, you can also use Render to deploy a prebuilt Docker image from a registry such as Docker Hub.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!VIU0!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6f5ff2ba-3646-43a7-bfd8-9b5a3e32cc77_1438x818.webp" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!VIU0!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6f5ff2ba-3646-43a7-bfd8-9b5a3e32cc77_1438x818.webp 424w, https://substackcdn.com/image/fetch/$s_!VIU0!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6f5ff2ba-3646-43a7-bfd8-9b5a3e32cc77_1438x818.webp 848w, https://substackcdn.com/image/fetch/$s_!VIU0!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6f5ff2ba-3646-43a7-bfd8-9b5a3e32cc77_1438x818.webp 1272w, https://substackcdn.com/image/fetch/$s_!VIU0!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6f5ff2ba-3646-43a7-bfd8-9b5a3e32cc77_1438x818.webp 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!VIU0!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6f5ff2ba-3646-43a7-bfd8-9b5a3e32cc77_1438x818.webp" width="1438" height="818" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/6f5ff2ba-3646-43a7-bfd8-9b5a3e32cc77_1438x818.webp&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:818,&quot;width&quot;:1438,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:25600,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/webp&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://read.futureproofds.com/i/184934181?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6f5ff2ba-3646-43a7-bfd8-9b5a3e32cc77_1438x818.webp&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!VIU0!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6f5ff2ba-3646-43a7-bfd8-9b5a3e32cc77_1438x818.webp 424w, https://substackcdn.com/image/fetch/$s_!VIU0!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6f5ff2ba-3646-43a7-bfd8-9b5a3e32cc77_1438x818.webp 848w, https://substackcdn.com/image/fetch/$s_!VIU0!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6f5ff2ba-3646-43a7-bfd8-9b5a3e32cc77_1438x818.webp 1272w, https://substackcdn.com/image/fetch/$s_!VIU0!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6f5ff2ba-3646-43a7-bfd8-9b5a3e32cc77_1438x818.webp 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><figcaption class="image-caption">Deploying a web service from an existing image. Image by Render</figcaption></figure></div><blockquote><p>&#128161; This is useful when you want faster deployments or when the image is already built as part of a CI pipeline. In production teams, this is often the standard setup: build once, deploy many times.</p></blockquote><p>Here is the full <a href="https://render.com/docs/deploying-an-image">documentation</a> for this approach.</p><p>Just know that both approaches are valid. The difference is where the image is built and how that build step is managed.</p><p>Ultimately, the real goal is to use Docker to make your application portable and reproducible, turning a local project into something that can be reliably deployed in a real environment.</p><div><hr></div><h2>A couple of other great resources:</h2><ul><li><p><strong>&#128640; Ready to take the next step? </strong>Build real <a href="https://futureproofds.com/">AI workflows</a> and sharpen the skills that keep data scientists ahead.</p></li><li><p>&#128188; <strong>Job searching?</strong> <a href="https://applio.ai/">Applio</a> helps your resume stand out and land more interviews.</p></li><li><p><strong>&#129302; Struggling to keep up with AI/ML?</strong> <a href="https://neuralpulse.io/subscribe">Neural Pulse</a> is a 5-minute, human-curated newsletter delivering the best in AI, ML, and data science.</p></li></ul><div><hr></div><p><em>Thank you for reading! I hope you found these tips insightful.</em></p><p><em>See you next week!</em></p><p><em>- Andres</em></p><div><hr></div><p>Before you go, please hit the like &#10084;&#65039; button at the bottom of this email to help support me. It truly makes a difference!</p>]]></content:encoded></item><item><title><![CDATA[AI + Data Scientist Job Market in 2026: Analysis, Trends, Opportunities (Early Year Report)]]></title><description><![CDATA[Analyzed over 700 job postings to understand how AI is shaping the data science job market as we enter 2026]]></description><link>https://read.futureproofds.com/p/ai-and-data-scientist-job-market-in-2026</link><guid isPermaLink="false">https://read.futureproofds.com/p/ai-and-data-scientist-job-market-in-2026</guid><dc:creator><![CDATA[Andres Vourakis]]></dc:creator><pubDate>Thu, 15 Jan 2026 14:01:17 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!Ki6z!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd5347fc9-b5f5-4f51-942a-8c1318728cb8_3144x960.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Late last year, I published an article analyzing the data science job market, drawing primarily on two independent studies: one from Harvard University and another from the labor market analytics company Lightcast.</p><p>The main takeaways from those two studies were as follows:</p><h3>1. The need for data scientists is not disappearing; in fact, there is an increasing demand for data talent that knows AI</h3><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Drj6!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F56a29385-7470-4685-b292-71bac47241a6_1622x1534.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Drj6!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F56a29385-7470-4685-b292-71bac47241a6_1622x1534.png 424w, https://substackcdn.com/image/fetch/$s_!Drj6!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F56a29385-7470-4685-b292-71bac47241a6_1622x1534.png 848w, https://substackcdn.com/image/fetch/$s_!Drj6!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F56a29385-7470-4685-b292-71bac47241a6_1622x1534.png 1272w, https://substackcdn.com/image/fetch/$s_!Drj6!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F56a29385-7470-4685-b292-71bac47241a6_1622x1534.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Drj6!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F56a29385-7470-4685-b292-71bac47241a6_1622x1534.png" width="1456" height="1377" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/56a29385-7470-4685-b292-71bac47241a6_1622x1534.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1377,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:224041,&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://read.futureproofds.com/i/184348336?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F56a29385-7470-4685-b292-71bac47241a6_1622x1534.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_!Drj6!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F56a29385-7470-4685-b292-71bac47241a6_1622x1534.png 424w, https://substackcdn.com/image/fetch/$s_!Drj6!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F56a29385-7470-4685-b292-71bac47241a6_1622x1534.png 848w, https://substackcdn.com/image/fetch/$s_!Drj6!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F56a29385-7470-4685-b292-71bac47241a6_1622x1534.png 1272w, https://substackcdn.com/image/fetch/$s_!Drj6!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F56a29385-7470-4685-b292-71bac47241a6_1622x1534.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><figcaption class="image-caption">Top job titles for postings referencing Generative AI. Image by Lightcast</figcaption></figure></div><h3>2. Senior roles are benefiting the most from AI adoption</h3><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!0NYG!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa61c8c2d-e9d9-444f-8633-247ff2c25177_1456x942.webp" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!0NYG!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa61c8c2d-e9d9-444f-8633-247ff2c25177_1456x942.webp 424w, https://substackcdn.com/image/fetch/$s_!0NYG!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa61c8c2d-e9d9-444f-8633-247ff2c25177_1456x942.webp 848w, https://substackcdn.com/image/fetch/$s_!0NYG!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa61c8c2d-e9d9-444f-8633-247ff2c25177_1456x942.webp 1272w, https://substackcdn.com/image/fetch/$s_!0NYG!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa61c8c2d-e9d9-444f-8633-247ff2c25177_1456x942.webp 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!0NYG!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa61c8c2d-e9d9-444f-8633-247ff2c25177_1456x942.webp" width="1456" height="942" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a61c8c2d-e9d9-444f-8633-247ff2c25177_1456x942.webp&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:942,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:66052,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/webp&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://read.futureproofds.com/i/184348336?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa61c8c2d-e9d9-444f-8633-247ff2c25177_1456x942.webp&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!0NYG!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa61c8c2d-e9d9-444f-8633-247ff2c25177_1456x942.webp 424w, https://substackcdn.com/image/fetch/$s_!0NYG!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa61c8c2d-e9d9-444f-8633-247ff2c25177_1456x942.webp 848w, https://substackcdn.com/image/fetch/$s_!0NYG!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa61c8c2d-e9d9-444f-8633-247ff2c25177_1456x942.webp 1272w, https://substackcdn.com/image/fetch/$s_!0NYG!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa61c8c2d-e9d9-444f-8633-247ff2c25177_1456x942.webp 1456w" sizes="100vw"></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><figcaption class="image-caption">Employment differences between adopters and non-adopters over time. Image by Harvard.</figcaption></figure></div><p><em>You can read more about how those conclusions were drawn <a href="https://read.futureproofds.com/p/ai-and-the-data-science-job-market">here</a>.</em></p><p>Those findings were directionally clear, but they were also high-level.</p><p>They told us <em>what</em> was happening, not necessarily <em>how</em> it was showing up in actual hiring. And given how fast AI tools and expectations have evolved over the past year, I didn&#8217;t feel comfortable assuming the story had stayed the same.</p><p>That&#8217;s why I wanted to look closer.</p><p>So I scraped and analyzed 700+ Data Scientist job postings in the US, spanning November through January 2026. <strong>This report is not meant to be definitive, but it provides a strong early signal into how demand for AI skills is actually shaping up as we enter the year.</strong></p><p>I will cover:</p><ul><li><p>What&#8217;s changed since the last analysis?</p></li><li><p>Which AI skills are actually being asked for in data scientist roles today?</p></li><li><p>Who is feeling the impact of AI demand the most?</p></li></ul><blockquote><p>&#128204; And at the end, I&#8217;ll share some strategies for how data scientists can adapt their skill sets and stay competitive.</p></blockquote><p>Let&#8217;s get to it!</p><h2>The core skill stack for data scientists hasn&#8217;t changed, but AI adoption has accelerated</h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!-YcK!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F997d5333-df2d-4dd2-b28b-f230f948b558_1792x1166.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!-YcK!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F997d5333-df2d-4dd2-b28b-f230f948b558_1792x1166.png 424w, https://substackcdn.com/image/fetch/$s_!-YcK!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F997d5333-df2d-4dd2-b28b-f230f948b558_1792x1166.png 848w, https://substackcdn.com/image/fetch/$s_!-YcK!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F997d5333-df2d-4dd2-b28b-f230f948b558_1792x1166.png 1272w, https://substackcdn.com/image/fetch/$s_!-YcK!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F997d5333-df2d-4dd2-b28b-f230f948b558_1792x1166.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!-YcK!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F997d5333-df2d-4dd2-b28b-f230f948b558_1792x1166.png" width="1456" height="947" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/997d5333-df2d-4dd2-b28b-f230f948b558_1792x1166.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:947,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:159448,&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://read.futureproofds.com/i/184348336?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F997d5333-df2d-4dd2-b28b-f230f948b558_1792x1166.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_!-YcK!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F997d5333-df2d-4dd2-b28b-f230f948b558_1792x1166.png 424w, https://substackcdn.com/image/fetch/$s_!-YcK!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F997d5333-df2d-4dd2-b28b-f230f948b558_1792x1166.png 848w, https://substackcdn.com/image/fetch/$s_!-YcK!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F997d5333-df2d-4dd2-b28b-f230f948b558_1792x1166.png 1272w, https://substackcdn.com/image/fetch/$s_!-YcK!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F997d5333-df2d-4dd2-b28b-f230f948b558_1792x1166.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><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Ki6z!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd5347fc9-b5f5-4f51-942a-8c1318728cb8_3144x960.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Ki6z!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd5347fc9-b5f5-4f51-942a-8c1318728cb8_3144x960.png 424w, https://substackcdn.com/image/fetch/$s_!Ki6z!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd5347fc9-b5f5-4f51-942a-8c1318728cb8_3144x960.png 848w, https://substackcdn.com/image/fetch/$s_!Ki6z!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd5347fc9-b5f5-4f51-942a-8c1318728cb8_3144x960.png 1272w, https://substackcdn.com/image/fetch/$s_!Ki6z!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd5347fc9-b5f5-4f51-942a-8c1318728cb8_3144x960.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Ki6z!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd5347fc9-b5f5-4f51-942a-8c1318728cb8_3144x960.png" width="728" height="222.5" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d5347fc9-b5f5-4f51-942a-8c1318728cb8_3144x960.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:445,&quot;width&quot;:1456,&quot;resizeWidth&quot;:728,&quot;bytes&quot;:164902,&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://read.futureproofds.com/i/184348336?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd5347fc9-b5f5-4f51-942a-8c1318728cb8_3144x960.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_!Ki6z!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd5347fc9-b5f5-4f51-942a-8c1318728cb8_3144x960.png 424w, https://substackcdn.com/image/fetch/$s_!Ki6z!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd5347fc9-b5f5-4f51-942a-8c1318728cb8_3144x960.png 848w, https://substackcdn.com/image/fetch/$s_!Ki6z!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd5347fc9-b5f5-4f51-942a-8c1318728cb8_3144x960.png 1272w, https://substackcdn.com/image/fetch/$s_!Ki6z!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd5347fc9-b5f5-4f51-942a-8c1318728cb8_3144x960.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a><figcaption class="image-caption">Side-by-side comparison of the most in-demand skills. Baseline covers job postings from May-Aug 2024 since the exact YoY data wasn&#8217;t available.</figcaption></figure></div><p>Looking at the most mentioned skills across <em>all</em> data science job postings, the fundamentals remain stable: Python, machine learning, and SQL still dominate.</p><p><strong>What stands out is that AI has increased in demand</strong>, referenced in more than half of all postings. And most notably, LLMs have entered the top 10 when compared to the previous year. This suggests that AI is no longer framed as a niche specialization, but as an expected extension of the standard data science toolkit.</p><blockquote><p>That said, not every mention of the keyword &#8220;AI&#8221; implies deep technical ownership, many roles reference AI in a broader sense, such as collaborating on or supporting AI-related work.</p></blockquote><h2>Within AI-focused data science roles, LLMs clearly lead skill demand.</h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!honK!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdc648428-c6ec-4a1d-aba1-6c891f77ac72_1692x962.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!honK!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdc648428-c6ec-4a1d-aba1-6c891f77ac72_1692x962.png 424w, https://substackcdn.com/image/fetch/$s_!honK!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdc648428-c6ec-4a1d-aba1-6c891f77ac72_1692x962.png 848w, https://substackcdn.com/image/fetch/$s_!honK!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdc648428-c6ec-4a1d-aba1-6c891f77ac72_1692x962.png 1272w, https://substackcdn.com/image/fetch/$s_!honK!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdc648428-c6ec-4a1d-aba1-6c891f77ac72_1692x962.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!honK!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdc648428-c6ec-4a1d-aba1-6c891f77ac72_1692x962.png" width="1456" height="828" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/dc648428-c6ec-4a1d-aba1-6c891f77ac72_1692x962.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:828,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:114291,&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://read.futureproofds.com/i/184348336?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdc648428-c6ec-4a1d-aba1-6c891f77ac72_1692x962.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_!honK!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdc648428-c6ec-4a1d-aba1-6c891f77ac72_1692x962.png 424w, https://substackcdn.com/image/fetch/$s_!honK!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdc648428-c6ec-4a1d-aba1-6c891f77ac72_1692x962.png 848w, https://substackcdn.com/image/fetch/$s_!honK!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdc648428-c6ec-4a1d-aba1-6c891f77ac72_1692x962.png 1272w, https://substackcdn.com/image/fetch/$s_!honK!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdc648428-c6ec-4a1d-aba1-6c891f77ac72_1692x962.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><figcaption class="image-caption"></figcaption></figure></div><p>Zooming in on jobs that explicitly mention AI, <strong>LLMs emerge as the most requested AI skill</strong>, followed closely by GenAI and NLP.</p><p>Beyond these top three, demand shifts toward more applied capabilities such as RAG, AI agents, prompt engineering, and orchestration, indicating that companies are increasingly looking for data scientists who can work with AI systems in practice, not just conceptually.</p><h2>AI-heavy roles skew toward mid-to-senior Data Scientists</h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!bXgq!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2595cbde-ae42-48d5-9b8b-416b13915706_1684x756.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!bXgq!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2595cbde-ae42-48d5-9b8b-416b13915706_1684x756.png 424w, https://substackcdn.com/image/fetch/$s_!bXgq!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2595cbde-ae42-48d5-9b8b-416b13915706_1684x756.png 848w, https://substackcdn.com/image/fetch/$s_!bXgq!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2595cbde-ae42-48d5-9b8b-416b13915706_1684x756.png 1272w, https://substackcdn.com/image/fetch/$s_!bXgq!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2595cbde-ae42-48d5-9b8b-416b13915706_1684x756.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!bXgq!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2595cbde-ae42-48d5-9b8b-416b13915706_1684x756.png" width="1456" height="654" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/2595cbde-ae42-48d5-9b8b-416b13915706_1684x756.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:654,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:80871,&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://read.futureproofds.com/i/184348336?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2595cbde-ae42-48d5-9b8b-416b13915706_1684x756.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_!bXgq!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2595cbde-ae42-48d5-9b8b-416b13915706_1684x756.png 424w, https://substackcdn.com/image/fetch/$s_!bXgq!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2595cbde-ae42-48d5-9b8b-416b13915706_1684x756.png 848w, https://substackcdn.com/image/fetch/$s_!bXgq!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2595cbde-ae42-48d5-9b8b-416b13915706_1684x756.png 1272w, https://substackcdn.com/image/fetch/$s_!bXgq!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2595cbde-ae42-48d5-9b8b-416b13915706_1684x756.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>When we look at where these AI requirements appear across seniority levels, the demand is far from evenly distributed.</p><p><strong>The majority of AI-focused postings target mid and senior data scientists</strong>, reinforcing the idea that companies expect experienced practitioners to translate AI capabilities into real systems and business outcomes.</p><blockquote><p>By the way, this aligns closely with the earlier Harvard findings, where the benefits of AI adoption are most concentrated in more senior roles</p></blockquote><h2>Some data scientist roles want AI literacy, others want hands-on builders</h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Q7uO!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdab8a142-2f62-4c8f-9ccb-62200e210c91_1786x558.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Q7uO!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdab8a142-2f62-4c8f-9ccb-62200e210c91_1786x558.png 424w, https://substackcdn.com/image/fetch/$s_!Q7uO!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdab8a142-2f62-4c8f-9ccb-62200e210c91_1786x558.png 848w, https://substackcdn.com/image/fetch/$s_!Q7uO!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdab8a142-2f62-4c8f-9ccb-62200e210c91_1786x558.png 1272w, https://substackcdn.com/image/fetch/$s_!Q7uO!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdab8a142-2f62-4c8f-9ccb-62200e210c91_1786x558.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Q7uO!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdab8a142-2f62-4c8f-9ccb-62200e210c91_1786x558.png" width="1456" height="455" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/dab8a142-2f62-4c8f-9ccb-62200e210c91_1786x558.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:455,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:65379,&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://read.futureproofds.com/i/184348336?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdab8a142-2f62-4c8f-9ccb-62200e210c91_1786x558.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_!Q7uO!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdab8a142-2f62-4c8f-9ccb-62200e210c91_1786x558.png 424w, https://substackcdn.com/image/fetch/$s_!Q7uO!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdab8a142-2f62-4c8f-9ccb-62200e210c91_1786x558.png 848w, https://substackcdn.com/image/fetch/$s_!Q7uO!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdab8a142-2f62-4c8f-9ccb-62200e210c91_1786x558.png 1272w, https://substackcdn.com/image/fetch/$s_!Q7uO!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdab8a142-2f62-4c8f-9ccb-62200e210c91_1786x558.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>The distribution of AI skill requirements shows a split in how companies think about AI capability. Many roles still ask for a small number of broadly defined AI skills, but <strong>a significant portion now require experience across multiple concrete areas</strong>, such as LLMs, RAG, prompt engineering, and vector databases.</p><p>Here we can see a snippet of what this looks like across different job postings:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!_5K2!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fabf9c31f-0c86-4f83-9cb1-6c1ac87d5562_2248x826.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!_5K2!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fabf9c31f-0c86-4f83-9cb1-6c1ac87d5562_2248x826.png 424w, https://substackcdn.com/image/fetch/$s_!_5K2!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fabf9c31f-0c86-4f83-9cb1-6c1ac87d5562_2248x826.png 848w, https://substackcdn.com/image/fetch/$s_!_5K2!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fabf9c31f-0c86-4f83-9cb1-6c1ac87d5562_2248x826.png 1272w, https://substackcdn.com/image/fetch/$s_!_5K2!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fabf9c31f-0c86-4f83-9cb1-6c1ac87d5562_2248x826.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!_5K2!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fabf9c31f-0c86-4f83-9cb1-6c1ac87d5562_2248x826.png" width="1456" height="535" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/abf9c31f-0c86-4f83-9cb1-6c1ac87d5562_2248x826.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:535,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:254875,&quot;alt&quot;:&quot;&quot;,&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://read.futureproofds.com/i/184348336?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fabf9c31f-0c86-4f83-9cb1-6c1ac87d5562_2248x826.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!_5K2!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fabf9c31f-0c86-4f83-9cb1-6c1ac87d5562_2248x826.png 424w, https://substackcdn.com/image/fetch/$s_!_5K2!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fabf9c31f-0c86-4f83-9cb1-6c1ac87d5562_2248x826.png 848w, https://substackcdn.com/image/fetch/$s_!_5K2!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fabf9c31f-0c86-4f83-9cb1-6c1ac87d5562_2248x826.png 1272w, https://substackcdn.com/image/fetch/$s_!_5K2!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fabf9c31f-0c86-4f83-9cb1-6c1ac87d5562_2248x826.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 points to growing demand for data scientists who can actually build and deploy AI-driven systems, not just understand them conceptually.</p><h2>AI skills are mostly embedded in standard Data Scientist roles</h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!fhbq!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F10971b25-2555-47cb-8a0d-a984aa51deb6_1614x558.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!fhbq!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F10971b25-2555-47cb-8a0d-a984aa51deb6_1614x558.png 424w, https://substackcdn.com/image/fetch/$s_!fhbq!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F10971b25-2555-47cb-8a0d-a984aa51deb6_1614x558.png 848w, https://substackcdn.com/image/fetch/$s_!fhbq!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F10971b25-2555-47cb-8a0d-a984aa51deb6_1614x558.png 1272w, https://substackcdn.com/image/fetch/$s_!fhbq!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F10971b25-2555-47cb-8a0d-a984aa51deb6_1614x558.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!fhbq!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F10971b25-2555-47cb-8a0d-a984aa51deb6_1614x558.png" width="1456" height="503" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/10971b25-2555-47cb-8a0d-a984aa51deb6_1614x558.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;:null,&quot;bytes&quot;:56655,&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://read.futureproofds.com/i/184348336?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F10971b25-2555-47cb-8a0d-a984aa51deb6_1614x558.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_!fhbq!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F10971b25-2555-47cb-8a0d-a984aa51deb6_1614x558.png 424w, https://substackcdn.com/image/fetch/$s_!fhbq!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F10971b25-2555-47cb-8a0d-a984aa51deb6_1614x558.png 848w, https://substackcdn.com/image/fetch/$s_!fhbq!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F10971b25-2555-47cb-8a0d-a984aa51deb6_1614x558.png 1272w, https://substackcdn.com/image/fetch/$s_!fhbq!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F10971b25-2555-47cb-8a0d-a984aa51deb6_1614x558.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>Even when AI skills are explicitly required, <strong>the majority of postings still use standard titles like &#8220;Data Scientist&#8221; </strong>(which only specify seniority, location, or traditional domains), with AI referenced in the skill requirements rather than the role name.</p><p>Only a smaller share of roles explicitly call out AI, GenAI, or LLMs in the title, indicating that, at least in the current data, AI expectations are primarily expressed through requirements, not naming conventions.</p><h2>Preliminary findings: AI-focused data science roles are beginning to show a salary lift</h2><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!p7aj!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe25efd95-b00c-431b-8801-23127b0aa536_2180x502.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!p7aj!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe25efd95-b00c-431b-8801-23127b0aa536_2180x502.png 424w, https://substackcdn.com/image/fetch/$s_!p7aj!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe25efd95-b00c-431b-8801-23127b0aa536_2180x502.png 848w, https://substackcdn.com/image/fetch/$s_!p7aj!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe25efd95-b00c-431b-8801-23127b0aa536_2180x502.png 1272w, https://substackcdn.com/image/fetch/$s_!p7aj!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe25efd95-b00c-431b-8801-23127b0aa536_2180x502.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!p7aj!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe25efd95-b00c-431b-8801-23127b0aa536_2180x502.png" width="1456" height="335" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/e25efd95-b00c-431b-8801-23127b0aa536_2180x502.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:335,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:123527,&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://read.futureproofds.com/i/184348336?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe25efd95-b00c-431b-8801-23127b0aa536_2180x502.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_!p7aj!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe25efd95-b00c-431b-8801-23127b0aa536_2180x502.png 424w, https://substackcdn.com/image/fetch/$s_!p7aj!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe25efd95-b00c-431b-8801-23127b0aa536_2180x502.png 848w, https://substackcdn.com/image/fetch/$s_!p7aj!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe25efd95-b00c-431b-8801-23127b0aa536_2180x502.png 1272w, https://substackcdn.com/image/fetch/$s_!p7aj!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe25efd95-b00c-431b-8801-23127b0aa536_2180x502.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><p>Across most seniority levels, data science roles that explicitly mention AI tend to show higher median salaries than comparable roles that do not. This suggests an emerging AI-related salary premium within data science, but the signal is still early.</p><blockquote><p>Salary data is only available for roughly a third of postings, and some seniority bands have limited samples, so this should be interpreted as directional rather than conclusive.</p></blockquote><h1>Summary</h1><p>Here is a recap of the key findings:</p><ul><li><p><strong>Are AI skills in demand for data scientists?</strong> Yes, about 60% of postings expect AI capability, either broadly or through specific skills like LLMs, RAG, and AI agents.</p></li><li><p><strong>Which AI skills should I focus on?</strong> Experience with LLMs was the #1 AI skill requirement, appearing in ~20% of all job postings.</p><ul><li><p>About 1 in 3 AI-related postings (31%) require hands-on expertise across multiple specific AI skills: LLMs, RAG, Prompt Engineering, vector databases, and more. This signals growing demand for practitioners who can build and deploy AI systems, not just understand AI conceptually.</p></li></ul></li><li><p><strong>Which roles are the most impacted? </strong>AI demand concentrates at mid-to-senior levels: 73% of postings mentioning AI skills target mid (43%) and senior (30%) roles, while entry-level positions account for less than 6%.</p></li><li><p><strong>Are job titles evolving? </strong>Currently, 73% of Data Scientist postings with AI requirements use standard titles like &#8220;Data Scientist&#8221; (and only specify seniority, location, or traditional domains) while 27% explicitly call out AI/GenAI/LLM in the job title, suggesting AI skills are increasingly expected within traditional roles.</p></li><li><p><strong>Any other trends I should keep an eye on?</strong> Agentic Analytics, Semantic Layers, and ontologies are already being mentioned, although in just a handful of jobs. My bet is that this will only continue to increase as the year progresses.</p></li></ul><p>One thing is clear: AI is becoming a core part of the data scientist role, and it is already influencing expectations, scope, and career progression.</p><h2>Here is my proven roadmap to build these skills in 2026</h2><p>Everything I&#8217;ve shared so far reflects clear patterns already taking shape across the field and what they imply for data scientists going forward.</p><p>Over the past year, one way I&#8217;ve personally responded to these shifts is by building and refining <strong>a bootcamp focused on agentic analytics, AI workflows, and system-level thinking</strong>. It&#8217;s designed for data scientists who want to move beyond isolated analyses and start building end-to-end systems that actually scale their impact.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!LFNO!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7bad7e28-3e6e-4fa7-b5b3-56e060a671c2_2025x2531.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!LFNO!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7bad7e28-3e6e-4fa7-b5b3-56e060a671c2_2025x2531.png 424w, https://substackcdn.com/image/fetch/$s_!LFNO!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7bad7e28-3e6e-4fa7-b5b3-56e060a671c2_2025x2531.png 848w, https://substackcdn.com/image/fetch/$s_!LFNO!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7bad7e28-3e6e-4fa7-b5b3-56e060a671c2_2025x2531.png 1272w, https://substackcdn.com/image/fetch/$s_!LFNO!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7bad7e28-3e6e-4fa7-b5b3-56e060a671c2_2025x2531.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!LFNO!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7bad7e28-3e6e-4fa7-b5b3-56e060a671c2_2025x2531.png" width="1456" height="1820" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/7bad7e28-3e6e-4fa7-b5b3-56e060a671c2_2025x2531.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1820,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:496868,&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://read.futureproofds.com/i/184348336?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7bad7e28-3e6e-4fa7-b5b3-56e060a671c2_2025x2531.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_!LFNO!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7bad7e28-3e6e-4fa7-b5b3-56e060a671c2_2025x2531.png 424w, https://substackcdn.com/image/fetch/$s_!LFNO!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7bad7e28-3e6e-4fa7-b5b3-56e060a671c2_2025x2531.png 848w, https://substackcdn.com/image/fetch/$s_!LFNO!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7bad7e28-3e6e-4fa7-b5b3-56e060a671c2_2025x2531.png 1272w, https://substackcdn.com/image/fetch/$s_!LFNO!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7bad7e28-3e6e-4fa7-b5b3-56e060a671c2_2025x2531.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>So far, we have helped over 40 data professionals future proof their careers. This is what some of the alumni had to say:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!CEXE!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fff1acda3-554e-4746-9455-0e65d53f01c6_2019x1488.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!CEXE!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fff1acda3-554e-4746-9455-0e65d53f01c6_2019x1488.png 424w, https://substackcdn.com/image/fetch/$s_!CEXE!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fff1acda3-554e-4746-9455-0e65d53f01c6_2019x1488.png 848w, https://substackcdn.com/image/fetch/$s_!CEXE!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fff1acda3-554e-4746-9455-0e65d53f01c6_2019x1488.png 1272w, https://substackcdn.com/image/fetch/$s_!CEXE!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fff1acda3-554e-4746-9455-0e65d53f01c6_2019x1488.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!CEXE!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fff1acda3-554e-4746-9455-0e65d53f01c6_2019x1488.png" width="1456" height="1073" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/ff1acda3-554e-4746-9455-0e65d53f01c6_2019x1488.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1073,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:666757,&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://read.futureproofds.com/i/184348336?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fff1acda3-554e-4746-9455-0e65d53f01c6_2019x1488.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_!CEXE!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fff1acda3-554e-4746-9455-0e65d53f01c6_2019x1488.png 424w, https://substackcdn.com/image/fetch/$s_!CEXE!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fff1acda3-554e-4746-9455-0e65d53f01c6_2019x1488.png 848w, https://substackcdn.com/image/fetch/$s_!CEXE!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fff1acda3-554e-4746-9455-0e65d53f01c6_2019x1488.png 1272w, https://substackcdn.com/image/fetch/$s_!CEXE!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fff1acda3-554e-4746-9455-0e65d53f01c6_2019x1488.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>Enrollment for the April 2026 cohort is now open, but <strong>seats are limited</strong>:</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://futureproofds.com&quot;,&quot;text&quot;:&quot;Enroll today&quot;,&quot;action&quot;:null,&quot;class&quot;:&quot;button-wrapper&quot;}" data-component-name="ButtonCreateButton"><a class="button primary button-wrapper" href="https://futureproofds.com"><span>Enroll today</span></a></p><p><em>Enrollment closes in only 6 days. Keep in mind that if you miss this cohort, the next one won&#8217;t be available until later in the year.</em></p><div><hr></div><h1>Regarding the analysis approach</h1><p>My plan is to continue scraping job postings throughout the year and revisit this analysis again before the summer.</p><p>In the meantime, I&#8217;m going to clean up the Streamlit app I used for the analysis, deploy it, and make both the implementation and the scraped data open source so others can build on it or run their own analyses.</p><div class="poll-embed" data-attrs="{&quot;id&quot;:433647}" data-component-name="PollToDOM"></div><div><hr></div><p><em>Thank you for reading! I hope you found this article insightful. And don&#8217;t forget to look into the &#8220;AI Workflows&#8220; bootcamp, enrollment closes in just a few days.</em></p><p><em>- Andres Vourakis</em></p><div><hr></div><p>Before you go, please hit the like &#10084;&#65039; button at the bottom of this email to help support me. It truly makes a difference!</p>]]></content:encoded></item><item><title><![CDATA[My 2026 Bets for Data Science (And 3 Things You Should Focus On)]]></title><description><![CDATA[Full analysis by a Senior Data Scientist experienced in building AI workflows]]></description><link>https://read.futureproofds.com/p/my-2026-bets-for-data-science</link><guid isPermaLink="false">https://read.futureproofds.com/p/my-2026-bets-for-data-science</guid><dc:creator><![CDATA[Andres Vourakis]]></dc:creator><pubDate>Tue, 06 Jan 2026 13:45:26 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!OLMH!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc4780cda-7a0b-4d46-83a2-f6b11f7edac4_2494x980.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>2025 was a year filled with exciting advancements, but also lots of uncertainty.</p><p><strong>We saw AI truly disrupt the job market and the field itself</strong>, raising fundamental questions about the future of data science. At the same time, much of what we consumed online and in the news was wrapped in a thick layer of hype and misinformation.</p><p>No, data science is not &#8220;dying&#8220;. And no, AGI does not seem anywhere close, yet. But even though not every promise actually materialised, <strong>we did see a set of clear patterns emerge that are simply hard to ignore</strong>.</p><p>I know this, because I spent the better part of the year:</p><ul><li><p>Studying the data &amp; AI job market</p></li><li><p>Building AI workflows to automate and optimise my own work and future-proof my career</p></li><li><p>Attending conferences and having meaningful conversations across the industry</p></li><li><p>Running two data science and AI-focused newsletters that forced me to keep up with the news</p></li></ul><p>So instead of making wild predictions, <strong>I want to share my bets for 2026, grounded in what we are already seeing today.</strong></p><p>And at the end, I&#8217;ll share practical advice on what data scientists should focus on to accelerate their careers.</p><h2>Bet #1: Agentic analytics will take center stage over traditional analytics</h2><p>2026 will undoubtedly be the year when we start seeing these new types of data science workflows become normalized, where <strong>data scientists work alongside AI agents</strong> to automate and augment their work.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!UI1g!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8f3f64e8-1b5d-4efd-87fd-f798b8c4bb51_1456x820.webp" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!UI1g!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8f3f64e8-1b5d-4efd-87fd-f798b8c4bb51_1456x820.webp 424w, https://substackcdn.com/image/fetch/$s_!UI1g!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8f3f64e8-1b5d-4efd-87fd-f798b8c4bb51_1456x820.webp 848w, https://substackcdn.com/image/fetch/$s_!UI1g!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8f3f64e8-1b5d-4efd-87fd-f798b8c4bb51_1456x820.webp 1272w, https://substackcdn.com/image/fetch/$s_!UI1g!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8f3f64e8-1b5d-4efd-87fd-f798b8c4bb51_1456x820.webp 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!UI1g!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8f3f64e8-1b5d-4efd-87fd-f798b8c4bb51_1456x820.webp" width="1456" height="820" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/8f3f64e8-1b5d-4efd-87fd-f798b8c4bb51_1456x820.webp&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:820,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:50156,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/webp&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://read.futureproofds.com/i/182848596?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8f3f64e8-1b5d-4efd-87fd-f798b8c4bb51_1456x820.webp&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!UI1g!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8f3f64e8-1b5d-4efd-87fd-f798b8c4bb51_1456x820.webp 424w, https://substackcdn.com/image/fetch/$s_!UI1g!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8f3f64e8-1b5d-4efd-87fd-f798b8c4bb51_1456x820.webp 848w, https://substackcdn.com/image/fetch/$s_!UI1g!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8f3f64e8-1b5d-4efd-87fd-f798b8c4bb51_1456x820.webp 1272w, https://substackcdn.com/image/fetch/$s_!UI1g!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8f3f64e8-1b5d-4efd-87fd-f798b8c4bb51_1456x820.webp 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><figcaption class="image-caption">Agentic Analytics representation. Image by Leeway Herts.</figcaption></figure></div><p>This goes beyond using tools like ChatGPT or Cursor to write code faster. Instead, we are talking about AI-powered workflows that can:</p><ul><li><p>Explore data proactively</p></li><li><p>Detect patterns or anomalies</p></li><li><p>Run follow-up analyses</p></li><li><p>Make decisions with minimal human intervention</p></li></ul><p>This is what the industry is calling <a href="https://read.futureproofds.com/p/semantic-layers-and-the-future-of-agentic-analytics">Agentic Analytics</a>.</p><blockquote><p>To be clear, when I say agentic analytics will take center stage, I don&#8217;t mean that traditional analytics disappears. I mean that hand-written, step-by-step analysis stops being the default starting point, and instead becomes something we step into when judgment, nuance, or validation is required.</p></blockquote><p>As a result, data scientists will start acting more as system designers and architects, letting these systems do much of the heavy lifting and getting involved primarily in the parts that require judgment and context, as well as presenting work in a way that actually drives decisions.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!ppb4!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5a6f00a8-cd56-4ab5-96cd-20517c80d37e_5760x3392.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!ppb4!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5a6f00a8-cd56-4ab5-96cd-20517c80d37e_5760x3392.png 424w, https://substackcdn.com/image/fetch/$s_!ppb4!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5a6f00a8-cd56-4ab5-96cd-20517c80d37e_5760x3392.png 848w, https://substackcdn.com/image/fetch/$s_!ppb4!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5a6f00a8-cd56-4ab5-96cd-20517c80d37e_5760x3392.png 1272w, https://substackcdn.com/image/fetch/$s_!ppb4!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5a6f00a8-cd56-4ab5-96cd-20517c80d37e_5760x3392.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!ppb4!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5a6f00a8-cd56-4ab5-96cd-20517c80d37e_5760x3392.png" width="1456" height="857" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/5a6f00a8-cd56-4ab5-96cd-20517c80d37e_5760x3392.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:857,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:569715,&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://read.futureproofds.com/i/182848596?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5a6f00a8-cd56-4ab5-96cd-20517c80d37e_5760x3392.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_!ppb4!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5a6f00a8-cd56-4ab5-96cd-20517c80d37e_5760x3392.png 424w, https://substackcdn.com/image/fetch/$s_!ppb4!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5a6f00a8-cd56-4ab5-96cd-20517c80d37e_5760x3392.png 848w, https://substackcdn.com/image/fetch/$s_!ppb4!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5a6f00a8-cd56-4ab5-96cd-20517c80d37e_5760x3392.png 1272w, https://substackcdn.com/image/fetch/$s_!ppb4!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5a6f00a8-cd56-4ab5-96cd-20517c80d37e_5760x3392.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><figcaption class="image-caption">Preview of an end-to-end agentic pipeline using the tool Zerve.</figcaption></figure></div><p>This will not happen all at once, though&#8230;</p><p>We will continue to see a selective group of data scientists lead the way and truly become 10x at what they do. This will impact both performance and the amount of value companies will expect a single data scientist to provide.</p><p>Towards the end of 2026, as we prepare to step into 2027, we will see a large wave of data scientists feeling the urgency to catch up. Improving their ability to think more like system designers, build these systems themselves, and adapt to the new tools already establishing themselves in the market.</p><h2>Bet #2: We will witness the commoditization of the semantic layer</h2><p><em>The modern data stack is no longer enough.</em></p><p>Companies will increasingly feel the need to move toward a combined data and AI stack.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!OLMH!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc4780cda-7a0b-4d46-83a2-f6b11f7edac4_2494x980.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!OLMH!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc4780cda-7a0b-4d46-83a2-f6b11f7edac4_2494x980.png 424w, https://substackcdn.com/image/fetch/$s_!OLMH!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc4780cda-7a0b-4d46-83a2-f6b11f7edac4_2494x980.png 848w, https://substackcdn.com/image/fetch/$s_!OLMH!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc4780cda-7a0b-4d46-83a2-f6b11f7edac4_2494x980.png 1272w, https://substackcdn.com/image/fetch/$s_!OLMH!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc4780cda-7a0b-4d46-83a2-f6b11f7edac4_2494x980.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!OLMH!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc4780cda-7a0b-4d46-83a2-f6b11f7edac4_2494x980.png" width="1456" height="572" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c4780cda-7a0b-4d46-83a2-f6b11f7edac4_2494x980.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:572,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:252028,&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://read.futureproofds.com/i/182848596?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc4780cda-7a0b-4d46-83a2-f6b11f7edac4_2494x980.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_!OLMH!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc4780cda-7a0b-4d46-83a2-f6b11f7edac4_2494x980.png 424w, https://substackcdn.com/image/fetch/$s_!OLMH!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc4780cda-7a0b-4d46-83a2-f6b11f7edac4_2494x980.png 848w, https://substackcdn.com/image/fetch/$s_!OLMH!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc4780cda-7a0b-4d46-83a2-f6b11f7edac4_2494x980.png 1272w, https://substackcdn.com/image/fetch/$s_!OLMH!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc4780cda-7a0b-4d46-83a2-f6b11f7edac4_2494x980.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><figcaption class="image-caption">Representation of the semantic layer by the tool Cube.dev</figcaption></figure></div><p>As a result, <strong>having a <a href="https://read.futureproofds.com/p/semantic-layers-and-the-future-of-agentic-analytics">semantic layer</a> will become a standard</strong>. Not as a nice-to-have, but as a prerequisite for keeping up with the next wave of agentic analytics.</p><blockquote><p>This shift will highlight the value data engineers bring to the organization. But building and maintaining a semantic layer will not be a purely engineering problem. It will require the involvement and judgment of data scientists, especially when deciding how data should be interpreted, exposed, and used downstream.</p></blockquote><p>For those organizations that have already adopted a semantic layer to support their Business Intelligence, we will see them optimize it with AI systems in mind. In particular, systems that allow non-technical stakeholders to &#8220;talk to their data&#8221; and request insights using natural language.</p><p>This will give way to a new definition of self-service analytics. One where the semantic layer becomes the shared foundation not just for dashboards, but for AI-driven decision-making across the company.</p><h2>Bet #3: Foundation models will become central for tackling core data science problems more effectively</h2><p><em>Instead of building a new model for every task, more teams will start reaching for foundation models as the starting point.</em></p><p>The reason is simple: they unify solutions. You move away from a fragmented landscape of narrowly trained models and toward shared representations that can be adapted across multiple use cases.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!i2QA!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F26bcb2e1-1864-48ef-972d-b9535bb2deec_1456x817.webp" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!i2QA!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F26bcb2e1-1864-48ef-972d-b9535bb2deec_1456x817.webp 424w, https://substackcdn.com/image/fetch/$s_!i2QA!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F26bcb2e1-1864-48ef-972d-b9535bb2deec_1456x817.webp 848w, https://substackcdn.com/image/fetch/$s_!i2QA!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F26bcb2e1-1864-48ef-972d-b9535bb2deec_1456x817.webp 1272w, https://substackcdn.com/image/fetch/$s_!i2QA!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F26bcb2e1-1864-48ef-972d-b9535bb2deec_1456x817.webp 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!i2QA!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F26bcb2e1-1864-48ef-972d-b9535bb2deec_1456x817.webp" width="1456" height="817" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/26bcb2e1-1864-48ef-972d-b9535bb2deec_1456x817.webp&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:817,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:72200,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/webp&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://read.futureproofds.com/i/182848596?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F26bcb2e1-1864-48ef-972d-b9535bb2deec_1456x817.webp&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!i2QA!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F26bcb2e1-1864-48ef-972d-b9535bb2deec_1456x817.webp 424w, https://substackcdn.com/image/fetch/$s_!i2QA!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F26bcb2e1-1864-48ef-972d-b9535bb2deec_1456x817.webp 848w, https://substackcdn.com/image/fetch/$s_!i2QA!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F26bcb2e1-1864-48ef-972d-b9535bb2deec_1456x817.webp 1272w, https://substackcdn.com/image/fetch/$s_!i2QA!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F26bcb2e1-1864-48ef-972d-b9535bb2deec_1456x817.webp 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><figcaption class="image-caption">Traditional Machine Learning vs Foundation Models. Image by Armand Ruiz</figcaption></figure></div><p>We are already seeing <a href="https://read.futureproofds.com/p/what-are-foundation-models-and-why-data-scientists-should-care">impressive progress</a> in foundation models for anomaly detection and time-series forecasting. And while we will continue to see improvements there, I expect a lot of effort to go into foundation models for recommendation systems and ranking, along with other core areas where companies need models that generalize well and can be reused across products.</p><blockquote><p>We have already seen signs of this direction from Netflix, where the industry is moving away from building isolated recommenders and toward more unified approaches.</p></blockquote><p>What this means in practice is that the &#8220;modeling work&#8221; will change.</p><p><strong>More data scientists will spend time training, adapting, and evaluating foundation models, and less time building task-specific models from scratch</strong>. The competitive advantage shifts toward understanding how to apply these foundations to real product problems, and how to ground them in your data, constraints, and success metrics.</p><h2>Bet #4: The scope of data scientist roles will continue to widen</h2><p>Over the past few years, we have seen the rise of more specialised roles: MLOps, AI Engineer, and similar titles are becoming more common. Data science, however, is not moving in the same direction.</p><p>Rather than becoming more specialised, <strong>the role is becoming more full-stack</strong>.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!ebME!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F22dece1d-7686-497c-a4f5-35a584d3d91d_2788x1180.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!ebME!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F22dece1d-7686-497c-a4f5-35a584d3d91d_2788x1180.png 424w, https://substackcdn.com/image/fetch/$s_!ebME!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F22dece1d-7686-497c-a4f5-35a584d3d91d_2788x1180.png 848w, https://substackcdn.com/image/fetch/$s_!ebME!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F22dece1d-7686-497c-a4f5-35a584d3d91d_2788x1180.png 1272w, https://substackcdn.com/image/fetch/$s_!ebME!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F22dece1d-7686-497c-a4f5-35a584d3d91d_2788x1180.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!ebME!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F22dece1d-7686-497c-a4f5-35a584d3d91d_2788x1180.png" width="1456" height="616" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/22dece1d-7686-497c-a4f5-35a584d3d91d_2788x1180.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:616,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:217025,&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://read.futureproofds.com/i/182848596?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F22dece1d-7686-497c-a4f5-35a584d3d91d_2788x1180.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_!ebME!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F22dece1d-7686-497c-a4f5-35a584d3d91d_2788x1180.png 424w, https://substackcdn.com/image/fetch/$s_!ebME!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F22dece1d-7686-497c-a4f5-35a584d3d91d_2788x1180.png 848w, https://substackcdn.com/image/fetch/$s_!ebME!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F22dece1d-7686-497c-a4f5-35a584d3d91d_2788x1180.png 1272w, https://substackcdn.com/image/fetch/$s_!ebME!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F22dece1d-7686-497c-a4f5-35a584d3d91d_2788x1180.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><figcaption class="image-caption">Analysis of the top 20 skills mentioned in data science job descriptions during Q4 2025. </figcaption></figure></div><p>The reason is that data science sits at the intersection of business, engineering, and decision-making. That combination is simply hard to replace.</p><p>And now that AI has introduced new tools and techniques into the picture, we will see more data science roles pop up that require these types of responsibilities:</p><ul><li><p>Build ML/AI systems end-to-end.</p></li><li><p>Build RAG systems to handle unstructured data</p></li><li><p>Train and work with foundation models</p></li><li><p>Handle guardrails and AI evaluations</p></li></ul><blockquote><p>By the way, I&#8217;ve done a deep analysis of the job market to understand what new AI tools and techniques are emerging for data science, and I will be sharing my full analysis next week, stay tuned.</p></blockquote><p>And as the AI tools advance to facilitate the creation of these solutions, data scientists will evolve to think more like system designers. Designing, orchestrating, and maintaining their own workflows rather than working on isolated pieces.</p><p>Those who remain adaptable will thrive, while those who try to hold onto a narrowly defined version of the role will find it harder to keep up.</p><p>To clarify, I don&#8217;t believe specialised DS/Analytics roles will disappear. Product analytics, recommender systems, and other focused areas will continue to be in demand. But general data science roles will widen in scope, both by expectation and as a natural evolution for those who want to strengthen their skill set and remain future-proof</p><h2>Bet #5: AI will turn non-technical stakeholders into entry-level data analysts</h2><p><em>This shift is already underway.</em></p><p>Many non-technical stakeholders already have strong analytical instincts. What has been missing is not curiosity or problem framing, but the ability to handle the technical parts of the work. <strong>AI tools are increasingly filling that gap</strong> by taking care of tasks like querying data, writing code, and running basic analyses.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!nS_B!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6c393960-10dd-4442-9277-2907c5ffa865_2284x1440.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!nS_B!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6c393960-10dd-4442-9277-2907c5ffa865_2284x1440.jpeg 424w, https://substackcdn.com/image/fetch/$s_!nS_B!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6c393960-10dd-4442-9277-2907c5ffa865_2284x1440.jpeg 848w, https://substackcdn.com/image/fetch/$s_!nS_B!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6c393960-10dd-4442-9277-2907c5ffa865_2284x1440.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!nS_B!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6c393960-10dd-4442-9277-2907c5ffa865_2284x1440.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!nS_B!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6c393960-10dd-4442-9277-2907c5ffa865_2284x1440.jpeg" width="1456" height="918" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/6c393960-10dd-4442-9277-2907c5ffa865_2284x1440.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:918,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:508530,&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://read.futureproofds.com/i/182848596?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6c393960-10dd-4442-9277-2907c5ffa865_2284x1440.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_!nS_B!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6c393960-10dd-4442-9277-2907c5ffa865_2284x1440.jpeg 424w, https://substackcdn.com/image/fetch/$s_!nS_B!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6c393960-10dd-4442-9277-2907c5ffa865_2284x1440.jpeg 848w, https://substackcdn.com/image/fetch/$s_!nS_B!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6c393960-10dd-4442-9277-2907c5ffa865_2284x1440.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!nS_B!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6c393960-10dd-4442-9277-2907c5ffa865_2284x1440.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><figcaption class="image-caption">Doing a simple exploratory analysis using Claude.</figcaption></figure></div><blockquote><p>We have already seen this in product teams, where stakeholders are now able to build their own demos and proof of concepts. But it is not limited to product; we are starting to see the same pattern with data work. Stakeholders can upload CSVs or other structured data and have tools like ChatGPT or Claude analyze it for them, help them write basic SQL, or generate small scripts to answer concrete questions.</p></blockquote><p>As a result, they rely less on specialized roles like data analysts for simple, exploratory work.</p><p>This trend is reinforced by two parallel shifts:</p><ul><li><p><strong>Everyday tools are becoming analytical tools: </strong>Excel, Google Sheets, and similar environments are rapidly gaining AI-powered features that make working with data more accessible. As these tools evolve, so do the analytical capabilities of the people using them.</p></li><li><p><strong>BI tools are becoming conversational:</strong> With the rise of agentic analytics, non-technical users can increasingly talk to their data using natural language and get answers on demand.</p></li></ul><p>Taken together, this doesn&#8217;t necessarily eliminate the need for data analysts, but it does raise the baseline. Many stakeholders will start operating at an entry-level analyst level, which will change both expectations and how analytical work is distributed across organizations.</p><div><hr></div><h2>If you want to get ahead, bring this with you into 2026</h2><p>I know I mentioned quite a few changes coming into our field, and it might feel overwhelming to many of you, but at a high level, your strategy should be built around three areas, each helping you accelerate your career and stay relevant in the market:</p><ol><li><p><strong>Double down on human-centric skills</strong><br>As more of the execution gets automated, skills like judgment, communication, and the ability to turn insights into decisions will be what truly differentiate strong data scientists.</p></li><li><p><strong>Focus on understanding how to build end-to-end systems</strong><br>The biggest leverage will come from understanding how data, models, infrastructure, and decision-making fit together, not just from optimizing individual pieces.</p></li><li><p><strong>Don&#8217;t wait until it&#8217;s too late, start future-proofing your career today</strong><br>The gap between those who adapt early and those who wait will widen faster than most people expect.</p></li></ol><div><hr></div><h2>Here is my proven roadmap to build these skills in 2026</h2><p>Everything I&#8217;ve shared so far reflects clear patterns already taking shape across the field and what they imply for data scientists going forward.</p><p>Over the past year, one way I&#8217;ve personally responded to these shifts is by building and refining <strong>a bootcamp focused on agentic analytics, AI workflows, and system-level thinking</strong>. It&#8217;s designed for data scientists who want to move beyond isolated analyses and start building end-to-end systems that actually scale their impact.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://futureproofds.com" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!DlNo!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa0844dbf-3351-455b-8556-1c64c971f3ef_1890x2363.png 424w, https://substackcdn.com/image/fetch/$s_!DlNo!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa0844dbf-3351-455b-8556-1c64c971f3ef_1890x2363.png 848w, https://substackcdn.com/image/fetch/$s_!DlNo!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa0844dbf-3351-455b-8556-1c64c971f3ef_1890x2363.png 1272w, https://substackcdn.com/image/fetch/$s_!DlNo!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa0844dbf-3351-455b-8556-1c64c971f3ef_1890x2363.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!DlNo!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa0844dbf-3351-455b-8556-1c64c971f3ef_1890x2363.png" width="1456" height="1820" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a0844dbf-3351-455b-8556-1c64c971f3ef_1890x2363.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1820,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:439714,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:&quot;https://futureproofds.com&quot;,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://read.futureproofds.com/i/182848596?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa0844dbf-3351-455b-8556-1c64c971f3ef_1890x2363.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_!DlNo!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa0844dbf-3351-455b-8556-1c64c971f3ef_1890x2363.png 424w, https://substackcdn.com/image/fetch/$s_!DlNo!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa0844dbf-3351-455b-8556-1c64c971f3ef_1890x2363.png 848w, https://substackcdn.com/image/fetch/$s_!DlNo!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa0844dbf-3351-455b-8556-1c64c971f3ef_1890x2363.png 1272w, https://substackcdn.com/image/fetch/$s_!DlNo!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa0844dbf-3351-455b-8556-1c64c971f3ef_1890x2363.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>Last cohort, we welcomed 22 motivated students. This is what some of the alumni had to say:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!fZqp!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F333e25da-524b-47d9-b3ed-624ffd04f81b_1820x1340.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!fZqp!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F333e25da-524b-47d9-b3ed-624ffd04f81b_1820x1340.png 424w, https://substackcdn.com/image/fetch/$s_!fZqp!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F333e25da-524b-47d9-b3ed-624ffd04f81b_1820x1340.png 848w, https://substackcdn.com/image/fetch/$s_!fZqp!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F333e25da-524b-47d9-b3ed-624ffd04f81b_1820x1340.png 1272w, https://substackcdn.com/image/fetch/$s_!fZqp!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F333e25da-524b-47d9-b3ed-624ffd04f81b_1820x1340.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!fZqp!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F333e25da-524b-47d9-b3ed-624ffd04f81b_1820x1340.png" width="1456" height="1072" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/333e25da-524b-47d9-b3ed-624ffd04f81b_1820x1340.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1072,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:246027,&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://read.futureproofds.com/i/182848596?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F333e25da-524b-47d9-b3ed-624ffd04f81b_1820x1340.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_!fZqp!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F333e25da-524b-47d9-b3ed-624ffd04f81b_1820x1340.png 424w, https://substackcdn.com/image/fetch/$s_!fZqp!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F333e25da-524b-47d9-b3ed-624ffd04f81b_1820x1340.png 848w, https://substackcdn.com/image/fetch/$s_!fZqp!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F333e25da-524b-47d9-b3ed-624ffd04f81b_1820x1340.png 1272w, https://substackcdn.com/image/fetch/$s_!fZqp!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F333e25da-524b-47d9-b3ed-624ffd04f81b_1820x1340.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>Enrollment for the January 2026 cohort is now open, but <strong>seats are limited</strong>. Use the coupon code <code>JAN26-25-ANDRES</code> to receive 25% off (Only 10 left):</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://futureproofds.com&quot;,&quot;text&quot;:&quot;Enroll today&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://futureproofds.com"><span>Enroll today</span></a></p><p><em>Keep in mind that if you miss this cohort, the next one won&#8217;t be available until mid-year.</em></p><div><hr></div><p><em>Thank you for reading! I hope you found this article insightful. And share in the comments if you think there are any other trends I should&#8217;ve highlighted.</em></p><p><em>- Andres Vourakis</em></p><div><hr></div><p>Before you go, please hit the like &#10084;&#65039; button at the bottom of this email to help support me. It truly makes a difference!</p>]]></content:encoded></item><item><title><![CDATA[3 Updates That Made Google Colab 10x Better For Data Scientists]]></title><description><![CDATA[Is it time to say goodbye to Jupyter?]]></description><link>https://read.futureproofds.com/p/3-updates-that-made-google-colab-better</link><guid isPermaLink="false">https://read.futureproofds.com/p/3-updates-that-made-google-colab-better</guid><dc:creator><![CDATA[Andres Vourakis]]></dc:creator><pubDate>Tue, 16 Dec 2025 16:30:47 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!D1k_!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3bb7afa6-89be-492a-b987-9931167a4db7_2640x550.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><em>Is it time to say goodbye to Jupyter once and for all?</em></p><p>Although a lot of people still think of Colab as &#8220;Jupyter in the Cloud&#8220;, something they reach for when they need GPU power rather than a primary environment.</p><p>I genuinely think these latest updates are tipping the balance.</p><p>Colab is not only integrating much more naturally into our existing workflows, but also offering powerful features that are simply hard to match.</p><p>Let me show you exactly what I mean, and at the end of the article, I&#8217;ll share my opinion on which is my tool of choice.</p><div><hr></div><h1>Update 1: The VS Code Extension for Colab</h1><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!AcaB!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3e0b95b6-5be0-4be9-ae97-166c95c0b4c3_3248x2112.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!AcaB!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3e0b95b6-5be0-4be9-ae97-166c95c0b4c3_3248x2112.png 424w, https://substackcdn.com/image/fetch/$s_!AcaB!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3e0b95b6-5be0-4be9-ae97-166c95c0b4c3_3248x2112.png 848w, https://substackcdn.com/image/fetch/$s_!AcaB!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3e0b95b6-5be0-4be9-ae97-166c95c0b4c3_3248x2112.png 1272w, https://substackcdn.com/image/fetch/$s_!AcaB!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3e0b95b6-5be0-4be9-ae97-166c95c0b4c3_3248x2112.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!AcaB!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3e0b95b6-5be0-4be9-ae97-166c95c0b4c3_3248x2112.png" width="1456" height="947" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/3e0b95b6-5be0-4be9-ae97-166c95c0b4c3_3248x2112.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:947,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1300375,&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://read.futureproofds.com/i/181352098?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3e0b95b6-5be0-4be9-ae97-166c95c0b4c3_3248x2112.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_!AcaB!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3e0b95b6-5be0-4be9-ae97-166c95c0b4c3_3248x2112.png 424w, https://substackcdn.com/image/fetch/$s_!AcaB!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3e0b95b6-5be0-4be9-ae97-166c95c0b4c3_3248x2112.png 848w, https://substackcdn.com/image/fetch/$s_!AcaB!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3e0b95b6-5be0-4be9-ae97-166c95c0b4c3_3248x2112.png 1272w, https://substackcdn.com/image/fetch/$s_!AcaB!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3e0b95b6-5be0-4be9-ae97-166c95c0b4c3_3248x2112.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><figcaption class="image-caption">Google Colab extension for VSCode and any of it&#8217;s forks</figcaption></figure></div><p>Google released an official <a href="https://github.com/googlecolab/colab-vscode">VS Code extension</a> for Colab notebooks, allowing you to open, edit, and run Colab directly inside the VS Code interface, or one of its forks like Windsurf, Cursor AI, etc.</p><p>Why this matters:</p><ul><li><p>You get the full VS Code experience: richer editing, better linting, extensions, file navigation, Git integration, and more.</p></li><li><p>The execution still happens on Colab&#8217;s backend, meaning you keep the speed and GPU access, but with a real development environment on top.</p></li></ul><p>For analysts and data scientists who already use VS Code for Python development, this single update removes one of the biggest sources of friction.</p><div><hr></div><h1>Update 2: Free Access to Gemini and Gemma Models</h1><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!D1k_!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3bb7afa6-89be-492a-b987-9931167a4db7_2640x550.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!D1k_!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3bb7afa6-89be-492a-b987-9931167a4db7_2640x550.png 424w, https://substackcdn.com/image/fetch/$s_!D1k_!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3bb7afa6-89be-492a-b987-9931167a4db7_2640x550.png 848w, https://substackcdn.com/image/fetch/$s_!D1k_!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3bb7afa6-89be-492a-b987-9931167a4db7_2640x550.png 1272w, https://substackcdn.com/image/fetch/$s_!D1k_!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3bb7afa6-89be-492a-b987-9931167a4db7_2640x550.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!D1k_!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3bb7afa6-89be-492a-b987-9931167a4db7_2640x550.png" width="1456" height="303" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/3bb7afa6-89be-492a-b987-9931167a4db7_2640x550.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:303,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:376574,&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://read.futureproofds.com/i/181352098?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3bb7afa6-89be-492a-b987-9931167a4db7_2640x550.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_!D1k_!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3bb7afa6-89be-492a-b987-9931167a4db7_2640x550.png 424w, https://substackcdn.com/image/fetch/$s_!D1k_!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3bb7afa6-89be-492a-b987-9931167a4db7_2640x550.png 848w, https://substackcdn.com/image/fetch/$s_!D1k_!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3bb7afa6-89be-492a-b987-9931167a4db7_2640x550.png 1272w, https://substackcdn.com/image/fetch/$s_!D1k_!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3bb7afa6-89be-492a-b987-9931167a4db7_2640x550.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a><figcaption class="image-caption">Preview of google.colab.ai and AI prompt cell.</figcaption></figure></div><p>Google Colab just announced <a href="https://medium.com/google-colab/all-colab-users-now-get-access-to-gemini-and-gemma-models-via-colab-python-library-at-no-cost-a392599977c4">two updates</a> that make their generative AI features more accessible to everyone:</p><ol><li><p>The <strong>google.colab.ai</strong> Python library is available to <em>all</em> Colab users, including free-tier users, which gives you access to their Gemini and Gemma models.</p></li><li><p>The <strong>AI Prompt Cell</strong> for a more intuitive no/low code AI workflow. It is basically a dedicated cell type designed for low-code interaction with LLMs.</p></li></ol><p>Check out this <a href="https://colab.research.google.com/github/googlecolab/colabtools/blob/main/notebooks/Getting_started_with_google_colab_ai.ipynb">notebook</a> to get started.</p><div><hr></div><h1>Update 3: Colab Data Explorer: One-click access to Kaggle datasets and models</h1><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Ivsk!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fded0d8d6-e308-40b1-ad3a-7b2d4983fa8b_1728x1028.gif" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Ivsk!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fded0d8d6-e308-40b1-ad3a-7b2d4983fa8b_1728x1028.gif 424w, https://substackcdn.com/image/fetch/$s_!Ivsk!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fded0d8d6-e308-40b1-ad3a-7b2d4983fa8b_1728x1028.gif 848w, https://substackcdn.com/image/fetch/$s_!Ivsk!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fded0d8d6-e308-40b1-ad3a-7b2d4983fa8b_1728x1028.gif 1272w, https://substackcdn.com/image/fetch/$s_!Ivsk!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fded0d8d6-e308-40b1-ad3a-7b2d4983fa8b_1728x1028.gif 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Ivsk!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fded0d8d6-e308-40b1-ad3a-7b2d4983fa8b_1728x1028.gif" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/ded0d8d6-e308-40b1-ad3a-7b2d4983fa8b_1728x1028.gif&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:null,&quot;width&quot;:null,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2588103,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/gif&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://read.futureproofds.com/i/181352098?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fded0d8d6-e308-40b1-ad3a-7b2d4983fa8b_1728x1028.gif&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!Ivsk!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fded0d8d6-e308-40b1-ad3a-7b2d4983fa8b_1728x1028.gif 424w, https://substackcdn.com/image/fetch/$s_!Ivsk!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fded0d8d6-e308-40b1-ad3a-7b2d4983fa8b_1728x1028.gif 848w, https://substackcdn.com/image/fetch/$s_!Ivsk!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fded0d8d6-e308-40b1-ad3a-7b2d4983fa8b_1728x1028.gif 1272w, https://substackcdn.com/image/fetch/$s_!Ivsk!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fded0d8d6-e308-40b1-ad3a-7b2d4983fa8b_1728x1028.gif 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a><figcaption class="image-caption">Preview of browsing datasets in Data explorer.</figcaption></figure></div><p>Kaggle and Google have collaborated to introduce the <a href="https://www.kaggle.com/discussions/product-announcements/640546">Colab Data Explorer</a>, a new feature that allows users to seamlessly search and access Kaggle datasets and models directly within Google Colab.</p><p>You no longer have to introduce any code or leave your notebook, just browse from the sidebar, pick what you need, run the snippet, and start working.</p><p>This integration streamlines the workflow for data scientists and ML engineers by enabling them to find and incorporate relevant datasets and pre-trained models without leaving their Colab environment.</p><div><hr></div><h1>My opinion: Colab vs Jupyter</h1><p>Jupyter has been my default analysis environment since I graduated from university back in 2017. </p><p>And their recent updates to their <a href="https://read.futureproofds.com/p/jupyter-ai-how-to-do-ai-coding-directly">Jupyter AI extension</a> really felt like the right move forward in keeping up with how AI-assisted coding is becoming a natural part of how we explore data, iterate on ideas, and write production-ready analysis today.</p><p>But Colab is evolving fast, and these three updates, combined with its seamless integration of Gemini chat, put it at the clear top for fast experimentation, collaborative work, and AI-first workflows without friction.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!riie!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdad42f05-1ccb-49dd-b4c1-79bd3ccc7f47_3024x1890.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!riie!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdad42f05-1ccb-49dd-b4c1-79bd3ccc7f47_3024x1890.png 424w, https://substackcdn.com/image/fetch/$s_!riie!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdad42f05-1ccb-49dd-b4c1-79bd3ccc7f47_3024x1890.png 848w, https://substackcdn.com/image/fetch/$s_!riie!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdad42f05-1ccb-49dd-b4c1-79bd3ccc7f47_3024x1890.png 1272w, https://substackcdn.com/image/fetch/$s_!riie!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdad42f05-1ccb-49dd-b4c1-79bd3ccc7f47_3024x1890.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!riie!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdad42f05-1ccb-49dd-b4c1-79bd3ccc7f47_3024x1890.png" width="1456" height="910" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/dad42f05-1ccb-49dd-b4c1-79bd3ccc7f47_3024x1890.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:910,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:489416,&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://read.futureproofds.com/i/181352098?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdad42f05-1ccb-49dd-b4c1-79bd3ccc7f47_3024x1890.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_!riie!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdad42f05-1ccb-49dd-b4c1-79bd3ccc7f47_3024x1890.png 424w, https://substackcdn.com/image/fetch/$s_!riie!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdad42f05-1ccb-49dd-b4c1-79bd3ccc7f47_3024x1890.png 848w, https://substackcdn.com/image/fetch/$s_!riie!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdad42f05-1ccb-49dd-b4c1-79bd3ccc7f47_3024x1890.png 1272w, https://substackcdn.com/image/fetch/$s_!riie!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdad42f05-1ccb-49dd-b4c1-79bd3ccc7f47_3024x1890.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><figcaption class="image-caption">Preview of using Gemini chat in Google Colab</figcaption></figure></div><p>To me, the only reason Jupyter still ranks high is how naturally it fits into a properly set up data science project, where notebooks are the starting point rather than the end, with your environment, your dependencies, and no surprises when you reopen the notebook a week later.</p><p>But I&#8217;m curious to hear your thoughts&#8230;</p><div class="poll-embed" data-attrs="{&quot;id&quot;:418924}" data-component-name="PollToDOM"></div><div><hr></div><h2>A couple of other great resources:</h2><ul><li><p><strong>&#128640; Ready to take the next step? </strong>Build real <a href="https://futureproofds.com/">AI workflows</a> and sharpen the skills that keep data scientists ahead.</p></li><li><p>&#128188; <strong>Job searching?</strong> <a href="https://applio.ai/">Applio</a> helps your resume stand out and land more interviews.</p></li><li><p><strong>&#129302; Struggling to keep up with AI/ML?</strong> <a href="https://neuralpulse.io/subscribe">Neural Pulse</a> is a 5-minute, human-curated newsletter delivering the best in AI, ML, and data science.</p></li></ul><div><hr></div><p><em>Thank you for reading! I hope you found this breakdown useful.</em></p><p><em>- Andres Vourakis</em></p><div><hr></div><p>Before you go, please hit the like &#10084;&#65039; button at the bottom of this email to help support me. It truly makes a difference!</p><p></p><p></p><p></p>]]></content:encoded></item><item><title><![CDATA[Building a Data Cleaning Agent with LangGraph]]></title><description><![CDATA[Bringing AI into your data science workflow]]></description><link>https://read.futureproofds.com/p/building-a-data-cleaning-agent-with-langgraph</link><guid isPermaLink="false">https://read.futureproofds.com/p/building-a-data-cleaning-agent-with-langgraph</guid><dc:creator><![CDATA[Andres Vourakis]]></dc:creator><pubDate>Thu, 11 Dec 2025 13:28:30 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!J4VO!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd801dc07-a55c-4df3-a397-ca37d0e20488_4940x4540.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><em>Sadly, you know this story too well&#8230;</em></p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!uxFY!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff83f4600-2c0f-4c31-95d0-91c64188cf84_1093x245.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!uxFY!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff83f4600-2c0f-4c31-95d0-91c64188cf84_1093x245.jpeg 424w, https://substackcdn.com/image/fetch/$s_!uxFY!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff83f4600-2c0f-4c31-95d0-91c64188cf84_1093x245.jpeg 848w, https://substackcdn.com/image/fetch/$s_!uxFY!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff83f4600-2c0f-4c31-95d0-91c64188cf84_1093x245.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!uxFY!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff83f4600-2c0f-4c31-95d0-91c64188cf84_1093x245.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!uxFY!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff83f4600-2c0f-4c31-95d0-91c64188cf84_1093x245.jpeg" width="1093" height="245" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/f83f4600-2c0f-4c31-95d0-91c64188cf84_1093x245.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:245,&quot;width&quot;:1093,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:53746,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://read.futureproofds.com/i/180552371?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff83f4600-2c0f-4c31-95d0-91c64188cf84_1093x245.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_!uxFY!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff83f4600-2c0f-4c31-95d0-91c64188cf84_1093x245.jpeg 424w, https://substackcdn.com/image/fetch/$s_!uxFY!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff83f4600-2c0f-4c31-95d0-91c64188cf84_1093x245.jpeg 848w, https://substackcdn.com/image/fetch/$s_!uxFY!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff83f4600-2c0f-4c31-95d0-91c64188cf84_1093x245.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!uxFY!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff83f4600-2c0f-4c31-95d0-91c64188cf84_1093x245.jpeg 1456w" sizes="100vw" fetchpriority="high"></picture><div></div></div></a></figure></div><p>Data Scientists spend a disproportionate amount of time cleaning data rather than analysing it and extracting insights</p><p>Fortunately for us, this is one area where AI can actually be extremely useful in helping automate and provide huge productivity gains.</p><p>Which is why it was one of the first things I set out to build earlier this year as I began my journey with AI workflows and agents. I built an agent to handle the repetitive grunt work of fixing data types, removing outliers, handling missing values, etc, so I could focus more time on the analysis that matters.</p><p>Today, I will show you how to build a <em>lightweight</em> version of this system using LangGraph, so you can start bringing automation into your own analysis workflow.</p><p>But before that, let me show you the agent in action:</p><div class="native-video-embed" data-component-name="VideoPlaceholder" data-attrs="{&quot;mediaUploadId&quot;:&quot;003cdbe3-5a26-4ba1-bf7b-49e96c0ebf15&quot;,&quot;duration&quot;:null}"></div><p>Now, let&#8217;s get to the implementation&#8230;</p><div><hr></div><h1>The data cleaning workflow</h1><p>Before we get to the code, let&#8217;s visualise our workflow at a high level using <a href="https://docs.langchain.com/langsmith/home">LangSmith</a> Studio.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!4bK4!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe104d095-66b3-4fe5-9eeb-71883b399e0c_2054x1714.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!4bK4!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe104d095-66b3-4fe5-9eeb-71883b399e0c_2054x1714.png 424w, https://substackcdn.com/image/fetch/$s_!4bK4!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe104d095-66b3-4fe5-9eeb-71883b399e0c_2054x1714.png 848w, https://substackcdn.com/image/fetch/$s_!4bK4!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe104d095-66b3-4fe5-9eeb-71883b399e0c_2054x1714.png 1272w, https://substackcdn.com/image/fetch/$s_!4bK4!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe104d095-66b3-4fe5-9eeb-71883b399e0c_2054x1714.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!4bK4!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe104d095-66b3-4fe5-9eeb-71883b399e0c_2054x1714.png" width="1456" height="1215" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/e104d095-66b3-4fe5-9eeb-71883b399e0c_2054x1714.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1215,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:213638,&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://read.futureproofds.com/i/180552371?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe104d095-66b3-4fe5-9eeb-71883b399e0c_2054x1714.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_!4bK4!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe104d095-66b3-4fe5-9eeb-71883b399e0c_2054x1714.png 424w, https://substackcdn.com/image/fetch/$s_!4bK4!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe104d095-66b3-4fe5-9eeb-71883b399e0c_2054x1714.png 848w, https://substackcdn.com/image/fetch/$s_!4bK4!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe104d095-66b3-4fe5-9eeb-71883b399e0c_2054x1714.png 1272w, https://substackcdn.com/image/fetch/$s_!4bK4!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe104d095-66b3-4fe5-9eeb-71883b399e0c_2054x1714.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><figcaption class="image-caption">Preview of our graph using LangSmith Studio</figcaption></figure></div><p>As you can see, the graph itself is actually very simple. It only contains 3 functional nodes and a single conditional edge. Here is an overview of what each one of these nodes handles:</p><ol><li><p><strong>create_data_cleaner_code</strong>: Call an LLM and instruct it to generate data cleaning Python code based on a series of requirements and a preview of our dataset.</p></li><li><p><strong>execute_data_cleaner_code</strong>: Safely executing the Python code generated by the previous node.</p></li><li><p><strong>fix_data_cleaner_code</strong>: Provide automatic error correction using an LLM feedback loop.</p></li></ol><blockquote><p>&#128161; This is the minimum functional version of our workflow. It performs well as a baseline, but it is only the starting point. You can extend it with additional elements like a human-in-the-loop stage or a more advanced planning node.</p></blockquote><p>Alright, let&#8217;s see how the core logic works &#128071;</p><div><hr></div><h1>LLM-powered code generation node</h1><p>For our purposes, this is the &#8220;reasoning&#8220; node, the component that decides the most appropriate way to clean the data. Behind the scenes, it calls an LLM to generate Python code based on instructions and dataset characteristics.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!gZbL!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F424a6e4b-9623-4b81-9760-ea74910f989d_4803x5148.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!gZbL!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F424a6e4b-9623-4b81-9760-ea74910f989d_4803x5148.png 424w, https://substackcdn.com/image/fetch/$s_!gZbL!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F424a6e4b-9623-4b81-9760-ea74910f989d_4803x5148.png 848w, https://substackcdn.com/image/fetch/$s_!gZbL!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F424a6e4b-9623-4b81-9760-ea74910f989d_4803x5148.png 1272w, https://substackcdn.com/image/fetch/$s_!gZbL!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F424a6e4b-9623-4b81-9760-ea74910f989d_4803x5148.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!gZbL!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F424a6e4b-9623-4b81-9760-ea74910f989d_4803x5148.png" width="1456" height="1561" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/424a6e4b-9623-4b81-9760-ea74910f989d_4803x5148.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1561,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1540908,&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://read.futureproofds.com/i/180552371?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F424a6e4b-9623-4b81-9760-ea74910f989d_4803x5148.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_!gZbL!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F424a6e4b-9623-4b81-9760-ea74910f989d_4803x5148.png 424w, https://substackcdn.com/image/fetch/$s_!gZbL!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F424a6e4b-9623-4b81-9760-ea74910f989d_4803x5148.png 848w, https://substackcdn.com/image/fetch/$s_!gZbL!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F424a6e4b-9623-4b81-9760-ea74910f989d_4803x5148.png 1272w, https://substackcdn.com/image/fetch/$s_!gZbL!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F424a6e4b-9623-4b81-9760-ea74910f989d_4803x5148.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><figcaption class="image-caption">Generate data cleaner code</figcaption></figure></div><p>The prompt is handled using the <code>PromptTemplate</code> method by LangChain, which is great for defining a prompt with placeholders and filling them before sending it to an LLM. Here are the main parts of the prompt:</p><ul><li><p><strong>Main instructions</strong>: Define the cleaning policies the model should follow, describing <em>how to handle</em> common issues such as missing values or duplicates when they appear in the dataset.</p></li><li><p><strong>User instructions</strong>: Free-form directions provided by the user that allow the agent to customize the cleaning logic based on specific needs or preferences.</p></li><li><p><strong>Dataset summary</strong>: A structured overview of the dataframe, including column names, data types, and missing-value counts, which helps the model generate context-aware code.</p></li><li><p><strong>Python code format</strong>: A template that forces the model to return valid, executable Python wrapped inside a single function so the workflow can run reliably end-to-end.</p></li></ul><p>Now, let&#8217;s see what happens once we generate code!</p><div><hr></div><h2>Want to learn how to build this and similar AI workflows?</h2><p>Most data scientists know how to prompt AI tools. Very few know how to turn AI into real workflows that 10x their analysis, amplify their impact, and future-proof their career.</p><p>This bootcamp is designed with you in mind.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://futureproofds.com" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!waQX!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe078fb8e-33d3-43a6-b5d3-d337e558c08e_2400x1350.png 424w, https://substackcdn.com/image/fetch/$s_!waQX!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe078fb8e-33d3-43a6-b5d3-d337e558c08e_2400x1350.png 848w, https://substackcdn.com/image/fetch/$s_!waQX!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe078fb8e-33d3-43a6-b5d3-d337e558c08e_2400x1350.png 1272w, https://substackcdn.com/image/fetch/$s_!waQX!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe078fb8e-33d3-43a6-b5d3-d337e558c08e_2400x1350.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!waQX!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe078fb8e-33d3-43a6-b5d3-d337e558c08e_2400x1350.png" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/e078fb8e-33d3-43a6-b5d3-d337e558c08e_2400x1350.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:210440,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:&quot;https://futureproofds.com&quot;,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://read.futureproofds.com/i/180552371?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe078fb8e-33d3-43a6-b5d3-d337e558c08e_2400x1350.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_!waQX!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe078fb8e-33d3-43a6-b5d3-d337e558c08e_2400x1350.png 424w, https://substackcdn.com/image/fetch/$s_!waQX!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe078fb8e-33d3-43a6-b5d3-d337e558c08e_2400x1350.png 848w, https://substackcdn.com/image/fetch/$s_!waQX!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe078fb8e-33d3-43a6-b5d3-d337e558c08e_2400x1350.png 1272w, https://substackcdn.com/image/fetch/$s_!waQX!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe078fb8e-33d3-43a6-b5d3-d337e558c08e_2400x1350.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>For example, during week 3, you not only get a proper introduction to LangGraph, but also learn how to build a Data Cleaning agent and deploy it using Docker. </p><p>Every week, you build a project, and during the last week, you build a talk-to-your-data Slackbot that even your stakeholders can use immediately.</p><p>&#128204; Enrollment for the upcoming cohort is now open. Save your spot before it fills up: <strong><a href="https://futureproofds.com">futureproofds.com</a> </strong>(Use coupon code <code>JAN26&#8211;25-ANDRES</code> for 25% off)</p><div><hr></div><h1>Executing LLM-generated code</h1><p>Once we get the data cleaning Python code from the LLM, we need to execute it in an isolated namespace and catch any errors so that we can utilize the retry logic.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!J4VO!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd801dc07-a55c-4df3-a397-ca37d0e20488_4940x4540.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!J4VO!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd801dc07-a55c-4df3-a397-ca37d0e20488_4940x4540.png 424w, https://substackcdn.com/image/fetch/$s_!J4VO!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd801dc07-a55c-4df3-a397-ca37d0e20488_4940x4540.png 848w, https://substackcdn.com/image/fetch/$s_!J4VO!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd801dc07-a55c-4df3-a397-ca37d0e20488_4940x4540.png 1272w, https://substackcdn.com/image/fetch/$s_!J4VO!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd801dc07-a55c-4df3-a397-ca37d0e20488_4940x4540.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!J4VO!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd801dc07-a55c-4df3-a397-ca37d0e20488_4940x4540.png" width="1456" height="1338" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d801dc07-a55c-4df3-a397-ca37d0e20488_4940x4540.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1338,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1340736,&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://read.futureproofds.com/i/180552371?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd801dc07-a55c-4df3-a397-ca37d0e20488_4940x4540.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_!J4VO!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd801dc07-a55c-4df3-a397-ca37d0e20488_4940x4540.png 424w, https://substackcdn.com/image/fetch/$s_!J4VO!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd801dc07-a55c-4df3-a397-ca37d0e20488_4940x4540.png 848w, https://substackcdn.com/image/fetch/$s_!J4VO!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd801dc07-a55c-4df3-a397-ca37d0e20488_4940x4540.png 1272w, https://substackcdn.com/image/fetch/$s_!J4VO!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd801dc07-a55c-4df3-a397-ca37d0e20488_4940x4540.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><figcaption class="image-caption">Executing the code</figcaption></figure></div><p>Here are the key parts of this code:</p><ul><li><p><strong>Defines the function</strong>: We use the built-in Python function <code>exec()</code> to parse the LLM-generated code string and create the function definition in an isolated namespace.</p></li><li><p><strong>Retrieves function:  </strong>Using <code>local_vars.get()</code>, we extract the newly defined function object from the namespace so it can be called.</p></li><li><p><strong>Executes the function: </strong><code>agent_function(df)</code> runs the generated cleaning function on the actual data, returning either a cleaned dataframe or raising an error.</p></li></ul><p>Let&#8217;s see what happens if the function call raises an error&#8230;</p><div><hr></div><h1>Self-correcting with error feedback</h1><p>If the generated code fails, the agent automatically feeds the error message back into the LLM. This allows the model to diagnose the failure and produce a corrected version of the function without manual intervention.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!1fn_!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc3c867f2-8ae6-4ff3-bd2e-d437b9002a60_4707x2988.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!1fn_!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc3c867f2-8ae6-4ff3-bd2e-d437b9002a60_4707x2988.png 424w, https://substackcdn.com/image/fetch/$s_!1fn_!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc3c867f2-8ae6-4ff3-bd2e-d437b9002a60_4707x2988.png 848w, https://substackcdn.com/image/fetch/$s_!1fn_!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc3c867f2-8ae6-4ff3-bd2e-d437b9002a60_4707x2988.png 1272w, https://substackcdn.com/image/fetch/$s_!1fn_!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc3c867f2-8ae6-4ff3-bd2e-d437b9002a60_4707x2988.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!1fn_!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc3c867f2-8ae6-4ff3-bd2e-d437b9002a60_4707x2988.png" width="1456" height="924" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c3c867f2-8ae6-4ff3-bd2e-d437b9002a60_4707x2988.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:924,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:825088,&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://read.futureproofds.com/i/180552371?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc3c867f2-8ae6-4ff3-bd2e-d437b9002a60_4707x2988.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_!1fn_!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc3c867f2-8ae6-4ff3-bd2e-d437b9002a60_4707x2988.png 424w, https://substackcdn.com/image/fetch/$s_!1fn_!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc3c867f2-8ae6-4ff3-bd2e-d437b9002a60_4707x2988.png 848w, https://substackcdn.com/image/fetch/$s_!1fn_!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc3c867f2-8ae6-4ff3-bd2e-d437b9002a60_4707x2988.png 1272w, https://substackcdn.com/image/fetch/$s_!1fn_!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc3c867f2-8ae6-4ff3-bd2e-d437b9002a60_4707x2988.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><figcaption class="image-caption">Fixing the code</figcaption></figure></div><ul><li><p><strong>Define prompt</strong>: <code>prompt_template.format()</code> creates the prompt by inserting the broken code and error message into a template that instructs the LLM to fix the issue.</p></li><li><p><strong>Fix code</strong>: <code>llm.invoke()</code> sends the prompt to the LLM to generate corrected code, which is then parsed to extract clean Python from the response.</p></li></ul><p>This feedback loop gives the agent the ability to iteratively recover from common errors and continue improving the generated code.</p><div><hr></div><h1>Usage example</h1><p>Here is a simple example showing how to run the agent programmatically.</p><p>This pattern works well if you want to integrate the workflow directly into your existing codebase or automate it as part of a larger pipeline.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!2HeA!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6c4c2bad-3294-4200-ae5a-21630c0eb40a_3696x2388.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!2HeA!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6c4c2bad-3294-4200-ae5a-21630c0eb40a_3696x2388.png 424w, https://substackcdn.com/image/fetch/$s_!2HeA!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6c4c2bad-3294-4200-ae5a-21630c0eb40a_3696x2388.png 848w, https://substackcdn.com/image/fetch/$s_!2HeA!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6c4c2bad-3294-4200-ae5a-21630c0eb40a_3696x2388.png 1272w, https://substackcdn.com/image/fetch/$s_!2HeA!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6c4c2bad-3294-4200-ae5a-21630c0eb40a_3696x2388.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!2HeA!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6c4c2bad-3294-4200-ae5a-21630c0eb40a_3696x2388.png" width="1456" height="941" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/6c4c2bad-3294-4200-ae5a-21630c0eb40a_3696x2388.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:941,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:591799,&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://read.futureproofds.com/i/180552371?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6c4c2bad-3294-4200-ae5a-21630c0eb40a_3696x2388.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_!2HeA!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6c4c2bad-3294-4200-ae5a-21630c0eb40a_3696x2388.png 424w, https://substackcdn.com/image/fetch/$s_!2HeA!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6c4c2bad-3294-4200-ae5a-21630c0eb40a_3696x2388.png 848w, https://substackcdn.com/image/fetch/$s_!2HeA!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6c4c2bad-3294-4200-ae5a-21630c0eb40a_3696x2388.png 1272w, https://substackcdn.com/image/fetch/$s_!2HeA!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6c4c2bad-3294-4200-ae5a-21630c0eb40a_3696x2388.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><figcaption class="image-caption">Example of how to run the agent</figcaption></figure></div><p>You can also build an interface on top of this, for example, using Streamlit as in the earlier demo. But the best approach depends on how you plan to use the agent.</p><p>For example, if your goal is to call it during EDA or iterative analysis, you can package the agent as a module and import it directly into a notebook. This allows you to generate cleaning functions, inspect them, and reuse them across different datasets without leaving your analysis environment.</p><p>If you want to play around with the code, here is the <a href="https://github.com/andresvourakis/tbds-demos/tree/main/lightweigth-data-cleaning-agent">GitHub repo</a>.</p><div><hr></div><h1>Final thoughts</h1><p>What this agent demonstrates is not just a faster way to clean data, but a glimpse of a different way of working. We are moving from writing every transformation by hand to designing systems that generate, fix, and execute the code for us.</p><p>And when even a lightweight agent can remove hours of friction, it becomes clear how much of our time can be reclaimed for the parts of the job that actually require judgment, analysis, and creativity.</p><p>This is just the beginning, though. We can leverage AI for much more than just cleaning messy data!</p><div><hr></div><h2>A couple of other great resources:</h2><ul><li><p><strong>&#128640; Ready to take the next step? </strong>Build real <a href="https://futureproofds.com/">AI workflows</a> and sharpen the skills that keep data scientists ahead.</p></li><li><p>&#128188; <strong>Job searching?</strong> <a href="https://applio.ai/">Applio</a> helps your resume stand out and land more interviews.</p></li><li><p><strong>&#129302; Struggling to keep up with AI/ML?</strong> <a href="https://neuralpulse.io/subscribe">Neural Pulse</a> is a 5-minute, human-curated newsletter delivering the best in AI, ML, and data science.</p></li></ul><div><hr></div><p><em>Thank you for reading! I hope you found this guide valuable in showing how AI can be leveraged in one of the most time-consuming parts of our workflows.</em></p><p><em>- Andres Vourakis</em></p><div><hr></div><p>Before you go, please hit the like &#10084;&#65039; button at the bottom of this email to help support me. It truly makes a difference!</p><p></p>]]></content:encoded></item><item><title><![CDATA[What Are Foundation Models, and Why Should Data Scientists Care?]]></title><description><![CDATA[What the landscape looks like as we enter 2026]]></description><link>https://read.futureproofds.com/p/what-are-foundation-models-and-why-data-scientists-should-care</link><guid isPermaLink="false">https://read.futureproofds.com/p/what-are-foundation-models-and-why-data-scientists-should-care</guid><dc:creator><![CDATA[Andres Vourakis]]></dc:creator><pubDate>Thu, 04 Dec 2025 14:02:11 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!_rov!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6490d8ab-5d5f-4de4-a124-d0db808a6edb_963x450.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>If you only associate foundation models with chatbots and image generation, you are missing the bigger picture.</p><p>While the spotlight for the past few years has mostly been on LLMs and diffusion models, there&#8217;s been a quiet shift happening in core data science workflows, too.</p><p>Let me break it all down for you in easy terms and help you understand what the road ahead looks like.</p><h1>So, what are foundation models?</h1><p>Think about traditional ML models, where each model is custom-built for specific tasks. Foundation models, on the contrary, are trained on massive, varied datasets so they can generalize.</p><p>You don&#8217;t start from scratch.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!hSXI!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd5f2180f-23b0-49d4-8f5c-c2ab52fed778_1646x924.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!hSXI!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd5f2180f-23b0-49d4-8f5c-c2ab52fed778_1646x924.jpeg 424w, https://substackcdn.com/image/fetch/$s_!hSXI!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd5f2180f-23b0-49d4-8f5c-c2ab52fed778_1646x924.jpeg 848w, https://substackcdn.com/image/fetch/$s_!hSXI!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd5f2180f-23b0-49d4-8f5c-c2ab52fed778_1646x924.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!hSXI!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd5f2180f-23b0-49d4-8f5c-c2ab52fed778_1646x924.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!hSXI!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd5f2180f-23b0-49d4-8f5c-c2ab52fed778_1646x924.jpeg" width="1456" height="817" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d5f2180f-23b0-49d4-8f5c-c2ab52fed778_1646x924.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:817,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:123676,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://read.futureproofds.com/i/180523220?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd5f2180f-23b0-49d4-8f5c-c2ab52fed778_1646x924.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_!hSXI!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd5f2180f-23b0-49d4-8f5c-c2ab52fed778_1646x924.jpeg 424w, https://substackcdn.com/image/fetch/$s_!hSXI!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd5f2180f-23b0-49d4-8f5c-c2ab52fed778_1646x924.jpeg 848w, https://substackcdn.com/image/fetch/$s_!hSXI!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd5f2180f-23b0-49d4-8f5c-c2ab52fed778_1646x924.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!hSXI!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd5f2180f-23b0-49d4-8f5c-c2ab52fed778_1646x924.jpeg 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg 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><figcaption class="image-caption">Traditional Machine Learning vs Foundation Models. Image by Armand Ruiz</figcaption></figure></div><p>We&#8217;ve seen this change happen in NLP and computer vision. Now it&#8217;s spreading to core data science areas like time series, tabular prediction, anomaly detection, and recommendations.</p><h1>Why does this matter for data scientists?</h1><p>Because it shifts the way we build solutions.</p><p>Instead of training a separate model from scratch for each use case, these new models give us a starting point that&#8217;s already been trained on billions of datapoints across domains.</p><p>That means less fiddling with feature engineering, faster experimentation, and sometimes even better performance with fewer labeled samples.</p><p>Let me give you a concrete example&#8230;</p><h2>Use Case: Netflix foundation model for recommendations</h2><p>Earlier this year, Netflix <a href="https://medium.com/netflix-techblog/foundation-model-for-personalized-recommendation-1a0bd8e02d39">shared</a> how it is consolidating its recommendation stack with a foundation model trained on hundreds of billions of user interactions.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!rItl!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3b9eeee6-578b-4d87-8942-49626fb315c2_1347x748.webp" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!rItl!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3b9eeee6-578b-4d87-8942-49626fb315c2_1347x748.webp 424w, https://substackcdn.com/image/fetch/$s_!rItl!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3b9eeee6-578b-4d87-8942-49626fb315c2_1347x748.webp 848w, https://substackcdn.com/image/fetch/$s_!rItl!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3b9eeee6-578b-4d87-8942-49626fb315c2_1347x748.webp 1272w, https://substackcdn.com/image/fetch/$s_!rItl!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3b9eeee6-578b-4d87-8942-49626fb315c2_1347x748.webp 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!rItl!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3b9eeee6-578b-4d87-8942-49626fb315c2_1347x748.webp" width="1347" height="748" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/3b9eeee6-578b-4d87-8942-49626fb315c2_1347x748.webp&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:748,&quot;width&quot;:1347,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:30676,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/webp&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://read.futureproofds.com/i/180523220?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3b9eeee6-578b-4d87-8942-49626fb315c2_1347x748.webp&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!rItl!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3b9eeee6-578b-4d87-8942-49626fb315c2_1347x748.webp 424w, https://substackcdn.com/image/fetch/$s_!rItl!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3b9eeee6-578b-4d87-8942-49626fb315c2_1347x748.webp 848w, https://substackcdn.com/image/fetch/$s_!rItl!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3b9eeee6-578b-4d87-8942-49626fb315c2_1347x748.webp 1272w, https://substackcdn.com/image/fetch/$s_!rItl!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3b9eeee6-578b-4d87-8942-49626fb315c2_1347x748.webp 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><figcaption class="image-caption">The overall metadata-based embedding for the title. Image by Netflix</figcaption></figure></div><p>Traditionally, Netflix maintained many specialized models, each tuned for a specific surface: &#8220;Top Picks,&#8221; &#8220;Continue Watching,&#8221; &#8220;Trending Now,&#8221; and more. These models often used overlapping data but couldn&#8217;t share learnings easily, which slowed iteration and made scaling complex.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!hU-N!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fda82cfd8-3c77-4745-9fe8-e4cf36f0a3c9_2554x1190.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!hU-N!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fda82cfd8-3c77-4745-9fe8-e4cf36f0a3c9_2554x1190.png 424w, https://substackcdn.com/image/fetch/$s_!hU-N!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fda82cfd8-3c77-4745-9fe8-e4cf36f0a3c9_2554x1190.png 848w, https://substackcdn.com/image/fetch/$s_!hU-N!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fda82cfd8-3c77-4745-9fe8-e4cf36f0a3c9_2554x1190.png 1272w, https://substackcdn.com/image/fetch/$s_!hU-N!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fda82cfd8-3c77-4745-9fe8-e4cf36f0a3c9_2554x1190.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!hU-N!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fda82cfd8-3c77-4745-9fe8-e4cf36f0a3c9_2554x1190.png" width="1456" height="678" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/da82cfd8-3c77-4745-9fe8-e4cf36f0a3c9_2554x1190.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:678,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2501034,&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://read.futureproofds.com/i/180523220?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fda82cfd8-3c77-4745-9fe8-e4cf36f0a3c9_2554x1190.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_!hU-N!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fda82cfd8-3c77-4745-9fe8-e4cf36f0a3c9_2554x1190.png 424w, https://substackcdn.com/image/fetch/$s_!hU-N!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fda82cfd8-3c77-4745-9fe8-e4cf36f0a3c9_2554x1190.png 848w, https://substackcdn.com/image/fetch/$s_!hU-N!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fda82cfd8-3c77-4745-9fe8-e4cf36f0a3c9_2554x1190.png 1272w, https://substackcdn.com/image/fetch/$s_!hU-N!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fda82cfd8-3c77-4745-9fe8-e4cf36f0a3c9_2554x1190.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><figcaption class="image-caption">Tokenization of user interaction history by merging actions on the same title, preserving important information. Image by Netflix</figcaption></figure></div><p>With their foundation model, Netflix takes a unified approach:</p><ul><li><p>It learns user preferences across the full platform using a self-supervised next-token prediction setup, similar to GPT.</p></li><li><p>The model encodes entire interaction histories as sequences, using a custom tokenization process that preserves information like watch duration, device type, time of day, and more.</p></li><li><p>Sparse attention and sliding window sampling allow it to handle long user histories while keeping inference fast enough for real-time use.</p></li></ul><p>Now, every product team can:</p><ul><li><p>Generate user and content embeddings that encode long-term behavior and intent.</p></li><li><p>Use those embeddings for things like title-to-title similarity, personalized search, or candidate generation.</p></li><li><p>Fine-tune smaller heads for specific objectives (like ranking &#8220;Because you watched&#8230;&#8221;), without retraining the entire model.</p></li></ul><p>This isn&#8217;t just about model consolidation, it also solves hard problems like cold-start. By mixing metadata-based and ID-based embeddings through an attention mechanism, the system can meaningfully represent new titles, even before anyone watches them.</p><h1>Foundation models across domains (as of December 2025)</h1><p>Here&#8217;s a quick overview of some notable models available today, at least the ones I was able to find:</p><div id="datawrapper-iframe" class="datawrapper-wrap outer" data-attrs="{&quot;url&quot;:&quot;https://datawrapper.dwcdn.net/KgQ3u/1/&quot;,&quot;thumbnail_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/491a5f77-c8a0-46f9-b090-4889f18714ea_1220x1442.png&quot;,&quot;thumbnail_url_full&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a15a0114-932a-4178-a92a-9a2855455b24_1220x1566.png&quot;,&quot;height&quot;:787,&quot;title&quot;:&quot;Foundation Models for Data Science&quot;,&quot;description&quot;:&quot;List of open-source and proprietary models&quot;}" data-component-name="DatawrapperToDOM"><iframe id="iframe-datawrapper" class="datawrapper-iframe" src="https://datawrapper.dwcdn.net/KgQ3u/1/" width="730" height="787" frameborder="0" scrolling="no"></iframe><script type="text/javascript">!function(){"use strict";window.addEventListener("message",(function(e){if(void 0!==e.data["datawrapper-height"]){var t=document.querySelectorAll("iframe");for(var a in e.data["datawrapper-height"])for(var r=0;r<t.length;r++){if(t[r].contentWindow===e.source)t[r].style.height=e.data["datawrapper-height"][a]+"px"}}}))}();</script></div><h2>What the current landscape tells us</h2><p>From what I&#8217;ve found, most traction is happening in time series and sequential data. That makes sense since forecasting is painful to get right and even harder to scale across hundreds of products, SKUs, or sensors. Foundation models ease that pain.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!_rov!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6490d8ab-5d5f-4de4-a124-d0db808a6edb_963x450.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!_rov!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6490d8ab-5d5f-4de4-a124-d0db808a6edb_963x450.png 424w, https://substackcdn.com/image/fetch/$s_!_rov!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6490d8ab-5d5f-4de4-a124-d0db808a6edb_963x450.png 848w, https://substackcdn.com/image/fetch/$s_!_rov!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6490d8ab-5d5f-4de4-a124-d0db808a6edb_963x450.png 1272w, https://substackcdn.com/image/fetch/$s_!_rov!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6490d8ab-5d5f-4de4-a124-d0db808a6edb_963x450.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!_rov!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6490d8ab-5d5f-4de4-a124-d0db808a6edb_963x450.png" width="963" height="450" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/6490d8ab-5d5f-4de4-a124-d0db808a6edb_963x450.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:450,&quot;width&quot;:963,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:90067,&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://read.futureproofds.com/i/180523220?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6490d8ab-5d5f-4de4-a124-d0db808a6edb_963x450.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_!_rov!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6490d8ab-5d5f-4de4-a124-d0db808a6edb_963x450.png 424w, https://substackcdn.com/image/fetch/$s_!_rov!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6490d8ab-5d5f-4de4-a124-d0db808a6edb_963x450.png 848w, https://substackcdn.com/image/fetch/$s_!_rov!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6490d8ab-5d5f-4de4-a124-d0db808a6edb_963x450.png 1272w, https://substackcdn.com/image/fetch/$s_!_rov!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6490d8ab-5d5f-4de4-a124-d0db808a6edb_963x450.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><figcaption class="image-caption">TimeGPT performing time-series forecasting. Image by TimeGPT</figcaption></figure></div><p>Other than that:</p><ul><li><p>Tabular data is still underrepresented, but TabPFN is a promising start.</p></li><li><p>Recommendation systems are starting to get foundation-level treatment too, especially at large tech companies with massive interaction logs.</p></li></ul><p>What&#8217;s missing? Broad adoption. Many of these models are still in early-access APIs or internal use only. But the momentum is clear.</p><h1>Final thoughts</h1><p>You don&#8217;t need to bet your entire pipeline on these models, unless you&#8217;ve got the perfect use case, but they&#8217;re absolutely worth getting familiar with:</p><ul><li><p>Test TimeGPT or TimesFM via their APIs or SDKs</p></li><li><p>Try TabPFN on a small tabular dataset</p></li><li><p>Follow open-source projects like MOMENT or Moirai for broader use cases</p></li></ul><p>Foundation models are moving fast. Staying close to them now will pay off later.</p><div><hr></div><h2>A couple of other great resources:</h2><ul><li><p><strong>&#128640; Ready to take the next step? </strong>Build real <a href="https://futureproofds.com/">AI workflows</a> and sharpen the skills that keep data scientists ahead.</p></li><li><p>&#128188; <strong>Job searching?</strong> <a href="https://applio.ai/">Applio</a> helps your resume stand out and land more interviews.</p></li><li><p><strong>&#129302; Struggling to keep up with AI/ML?</strong> <a href="https://neuralpulse.io/subscribe">Neural Pulse</a> is a 5-minute, human-curated newsletter delivering the best in AI, ML, and data science.</p></li></ul><div><hr></div><p><em>Thank you for reading! I hope this gave you a clearer view of modern solutions to core data science problems.</em></p><p><em>- Andres Vourakis</em></p><div><hr></div><p>Before you go, please hit the like &#10084;&#65039; button at the bottom of this email to help support me. It truly makes a difference!</p>]]></content:encoded></item><item><title><![CDATA[Jupyter AI: How to Do AI Coding Directly In Jupyter Notebooks]]></title><description><![CDATA[Get started in 5 minutes]]></description><link>https://read.futureproofds.com/p/jupyter-ai-how-to-do-ai-coding-directly</link><guid isPermaLink="false">https://read.futureproofds.com/p/jupyter-ai-how-to-do-ai-coding-directly</guid><dc:creator><![CDATA[Andres Vourakis]]></dc:creator><pubDate>Sat, 29 Nov 2025 13:26:25 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!7tl8!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F964b93a0-16b2-4b30-b4c7-773db318808e_3024x1714.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>If you spend most of your time coding in Jupyter notebooks, you&#8217;ve probably wished for an easier way to leverage AI coding right where you work, instead of having to copy and paste from ChatGPT or similar tools.</p><p>That&#8217;s exactly what <strong>Jupyter AI</strong> offers: a native extension that lets you write, debug, and generate code directly inside your notebook with support for most models like GPT and Claude.</p><p>In this quick guide, I&#8217;ll show you what it can do, how to set it up, and a few thoughts on when it&#8217;s actually worth using.</p><p>Give me 5 minutes, and I&#8217;ll get you up and running!</p><h1>Quick overview</h1><p><a href="https://github.com/jupyterlab/jupyter-ai">Jupyter AI</a> is an open-source extension that adds LLM features on top of the standard Project Jupyter ecosystem</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!7tl8!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F964b93a0-16b2-4b30-b4c7-773db318808e_3024x1714.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!7tl8!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F964b93a0-16b2-4b30-b4c7-773db318808e_3024x1714.png 424w, https://substackcdn.com/image/fetch/$s_!7tl8!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F964b93a0-16b2-4b30-b4c7-773db318808e_3024x1714.png 848w, https://substackcdn.com/image/fetch/$s_!7tl8!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F964b93a0-16b2-4b30-b4c7-773db318808e_3024x1714.png 1272w, https://substackcdn.com/image/fetch/$s_!7tl8!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F964b93a0-16b2-4b30-b4c7-773db318808e_3024x1714.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!7tl8!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F964b93a0-16b2-4b30-b4c7-773db318808e_3024x1714.png" width="1456" height="825" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/964b93a0-16b2-4b30-b4c7-773db318808e_3024x1714.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:825,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:547686,&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://read.futureproofds.com/i/179666653?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F964b93a0-16b2-4b30-b4c7-773db318808e_3024x1714.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_!7tl8!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F964b93a0-16b2-4b30-b4c7-773db318808e_3024x1714.png 424w, https://substackcdn.com/image/fetch/$s_!7tl8!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F964b93a0-16b2-4b30-b4c7-773db318808e_3024x1714.png 848w, https://substackcdn.com/image/fetch/$s_!7tl8!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F964b93a0-16b2-4b30-b4c7-773db318808e_3024x1714.png 1272w, https://substackcdn.com/image/fetch/$s_!7tl8!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F964b93a0-16b2-4b30-b4c7-773db318808e_3024x1714.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><figcaption class="image-caption">Jupyternaut and %%ai magic command in Jupyter Lab. Image by Author</figcaption></figure></div><p>As of the time of writing this article, there are two ways to leverage these features:</p><ol><li><p> <strong>The</strong> <code>%%ai</code><strong> &#8220;magic&#8221; command</strong>: This allows you to prompt LLMs from inside notebook cells to generate code, explain code, fix bugs, or answer questions.</p></li><li><p><strong>Jupyternaut</strong>: This is their built-in chat UI (only available via JupyterLab) that lets you treat the model as a conversational assistant. You can feed pieces of your notebook or data and ask for suggestions, code generation, summarization, etc.</p></li></ol><p>Now let me show how to get started using it&#8230;</p><h1>1. Installing Jupyter AI</h1><p>There are two ways to install JupyterAI, depending on your preferences. Let me show you how to install them using the dependency manager <code>pip</code>.</p><h3>Quick install (with full features)</h3><pre><code><code>pip install jupyter-ai[all]</code></code></pre><p>This command installs both the chat extension for JupyterLab and the magic-command support.</p><h3>Magic-only install (if you don&#8217;t use JupyterLab or just want inline commands)</h3><pre><code><code>pip install jupyter-ai-magics[all]</code></code></pre><p>With this, you won&#8217;t get the chat UI, but you&#8217;ll still get the <code>%%ai</code> magic.</p><h3>Requirements</h3><ul><li><p>Python 3.9 or higher. (<a href="https://pypi.org/project/jupyter-ai/?utm_source=chatgpt.com">PyPI</a>)</p></li><li><p>If you want the JupyterLab UI, use <strong>JupyterLab 4.x</strong>. (Older JupyterLab 3 is supported in legacy mode but not recommended.)</p></li></ul><p>Once the package is installed, you can launch JupyterLab (or Notebook/VS Code if you only installed magics). If you installed the full extension, you&#8217;ll see a small <strong>chat icon</strong> in the sidebar.</p><h2>2. Connect Your Model</h2><p>Before you start asking the LLM anything, you need to give it a model provider. Jupyter AI supports many: OpenAI, Anthropic, AI21, Hugging Face, Mistral, SageMaker, and more.</p><p>If you are using Jupyter Lab, you can set it via the user interface:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!ZMdE!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff3583806-08c5-4dad-9208-c791a6eff91c_1250x1714.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!ZMdE!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff3583806-08c5-4dad-9208-c791a6eff91c_1250x1714.png 424w, https://substackcdn.com/image/fetch/$s_!ZMdE!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff3583806-08c5-4dad-9208-c791a6eff91c_1250x1714.png 848w, https://substackcdn.com/image/fetch/$s_!ZMdE!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff3583806-08c5-4dad-9208-c791a6eff91c_1250x1714.png 1272w, https://substackcdn.com/image/fetch/$s_!ZMdE!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff3583806-08c5-4dad-9208-c791a6eff91c_1250x1714.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!ZMdE!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff3583806-08c5-4dad-9208-c791a6eff91c_1250x1714.png" width="1250" height="1714" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/f3583806-08c5-4dad-9208-c791a6eff91c_1250x1714.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1714,&quot;width&quot;:1250,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:174205,&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://read.futureproofds.com/i/179666653?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff3583806-08c5-4dad-9208-c791a6eff91c_1250x1714.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_!ZMdE!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff3583806-08c5-4dad-9208-c791a6eff91c_1250x1714.png 424w, https://substackcdn.com/image/fetch/$s_!ZMdE!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff3583806-08c5-4dad-9208-c791a6eff91c_1250x1714.png 848w, https://substackcdn.com/image/fetch/$s_!ZMdE!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff3583806-08c5-4dad-9208-c791a6eff91c_1250x1714.png 1272w, https://substackcdn.com/image/fetch/$s_!ZMdE!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff3583806-08c5-4dad-9208-c791a6eff91c_1250x1714.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><figcaption class="image-caption">Preview of the setup for Jupyternaut. Image by Author</figcaption></figure></div><p>Otherwise, here&#8217;s what you&#8217;ll typically do via terminal if you want to expose your keys to your environment. For example, here is what that would look like when using OpenAI&#8217;s LLMs:</p><pre><code><code>export OPENAI_API_KEY=&#8221;your_api_key_here&#8221;</code></code></pre><p>Here is another method in case you want to keep the key contained within the notebook in a safe way:</p><pre><code>import getpass
import os
secret_access_key = getpass.getpass(&#8217;Enter your OPENAI Key: &#8216;)

# Set the environment variable without displaying the full key
os.environ[&#8217;OPENAI_API_KEY&#8217;] = secret_access_key</code></pre><h2>3. Using Jupyternaut</h2><p>If you installed the full extension, you&#8217;ll see a chat panel in JupyterLab.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!OoRT!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb6c88cdd-abda-42f0-aa82-0b73b46e88af_1252x1716.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!OoRT!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb6c88cdd-abda-42f0-aa82-0b73b46e88af_1252x1716.png 424w, https://substackcdn.com/image/fetch/$s_!OoRT!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb6c88cdd-abda-42f0-aa82-0b73b46e88af_1252x1716.png 848w, https://substackcdn.com/image/fetch/$s_!OoRT!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb6c88cdd-abda-42f0-aa82-0b73b46e88af_1252x1716.png 1272w, https://substackcdn.com/image/fetch/$s_!OoRT!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb6c88cdd-abda-42f0-aa82-0b73b46e88af_1252x1716.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!OoRT!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb6c88cdd-abda-42f0-aa82-0b73b46e88af_1252x1716.png" width="1252" height="1716" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/b6c88cdd-abda-42f0-aa82-0b73b46e88af_1252x1716.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1716,&quot;width&quot;:1252,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:222419,&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://read.futureproofds.com/i/179666653?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb6c88cdd-abda-42f0-aa82-0b73b46e88af_1252x1716.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_!OoRT!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb6c88cdd-abda-42f0-aa82-0b73b46e88af_1252x1716.png 424w, https://substackcdn.com/image/fetch/$s_!OoRT!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb6c88cdd-abda-42f0-aa82-0b73b46e88af_1252x1716.png 848w, https://substackcdn.com/image/fetch/$s_!OoRT!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb6c88cdd-abda-42f0-aa82-0b73b46e88af_1252x1716.png 1272w, https://substackcdn.com/image/fetch/$s_!OoRT!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb6c88cdd-abda-42f0-aa82-0b73b46e88af_1252x1716.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><figcaption class="image-caption">Preview of the Jupyternaut chat. Image by Author</figcaption></figure></div><p>You can ask it to:</p><ul><li><p>Explain what a code cell does</p></li><li><p>Write new functions for you</p></li><li><p>Debug a piece of code that throws an error</p></li><li><p>Summarise large outputs or notebook sections</p></li></ul><p>Here is a quick example:</p><div class="native-video-embed" data-component-name="VideoPlaceholder" data-attrs="{&quot;mediaUploadId&quot;:&quot;fbce8d43-e338-4e0a-9638-5a0bdb3766c8&quot;,&quot;duration&quot;:null}"></div><h2>4. Use the Magic Command <code>%%ai</code></h2><p>Want help inside a notebook cell directly? Use the magic command. It works in JupyterLab, Notebook, VS Code, and other IPython environments</p><p>This is what you do, specifying your model of choice, in this case, ChatGPT:</p><pre><code><code>%%ai chatgpt
Explain poisson distributions</code></code></pre><p>If you are asking for code and want to ensure it is directly executable:</p><pre><code><code>%%ai chatgpt --format code
Write a pandas query that filters customers who signed up in the last 30 days and returns their average spend.</code></code></pre><p>Here is a quick example:</p><div class="native-video-embed" data-component-name="VideoPlaceholder" data-attrs="{&quot;mediaUploadId&quot;:&quot;54fca339-3d66-4145-9617-1642d9b466c8&quot;,&quot;duration&quot;:null}"></div><h2>5. My Take</h2><p>I&#8217;ve tried a handful of AI coding assistants, and the reason Jupyter AI stands out is that it integrates directly where most data scientists actually work.</p><p>But I still think the features are too basic, and the integration needs more work to make it truly valuable. </p><p>For example, something extremely useful would be if Jupyternaut could actually scan your notebook and help you make changes or explain parts of it without requiring you to copy and paste context within every prompt:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!GiAx!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faef4d3d8-a28f-4f3a-9bd6-733e1a2e8d38_3024x1714.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!GiAx!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faef4d3d8-a28f-4f3a-9bd6-733e1a2e8d38_3024x1714.png 424w, https://substackcdn.com/image/fetch/$s_!GiAx!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faef4d3d8-a28f-4f3a-9bd6-733e1a2e8d38_3024x1714.png 848w, https://substackcdn.com/image/fetch/$s_!GiAx!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faef4d3d8-a28f-4f3a-9bd6-733e1a2e8d38_3024x1714.png 1272w, https://substackcdn.com/image/fetch/$s_!GiAx!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faef4d3d8-a28f-4f3a-9bd6-733e1a2e8d38_3024x1714.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!GiAx!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faef4d3d8-a28f-4f3a-9bd6-733e1a2e8d38_3024x1714.png" width="1456" height="825" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/aef4d3d8-a28f-4f3a-9bd6-733e1a2e8d38_3024x1714.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:825,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:559461,&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://read.futureproofds.com/i/179666653?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faef4d3d8-a28f-4f3a-9bd6-733e1a2e8d38_3024x1714.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_!GiAx!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faef4d3d8-a28f-4f3a-9bd6-733e1a2e8d38_3024x1714.png 424w, https://substackcdn.com/image/fetch/$s_!GiAx!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faef4d3d8-a28f-4f3a-9bd6-733e1a2e8d38_3024x1714.png 848w, https://substackcdn.com/image/fetch/$s_!GiAx!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faef4d3d8-a28f-4f3a-9bd6-733e1a2e8d38_3024x1714.png 1272w, https://substackcdn.com/image/fetch/$s_!GiAx!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faef4d3d8-a28f-4f3a-9bd6-733e1a2e8d38_3024x1714.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><figcaption class="image-caption">Preview of Jupyternaut not being able to see the contents of the notebook. Image by Author.</figcaption></figure></div><p>Nevertheless, if you live in notebooks and want an AI coding companion, this is definitely worth trying.</p><div><hr></div><h2>A couple of other great resources:</h2><ul><li><p><strong>&#128640; Ready to take the next step? </strong>Build real <a href="https://futureproofds.com/">AI workflows</a> and sharpen the skills that keep data scientists ahead.</p></li><li><p>&#128188; <strong>Job searching?</strong> <a href="https://applio.ai/">Applio</a> helps your resume stand out and land more interviews.</p></li><li><p><strong>&#129302; Struggling to keep up with AI/ML?</strong> <a href="https://neuralpulse.io/subscribe">Neural Pulse</a> is a 5-minute, human-curated newsletter delivering the best in AI, ML, and data science.</p></li></ul><div><hr></div><p><em>Thank you for reading! I hope this guide helps you streamline your analysis workflow.</em></p><p><em>- Andres Vourakis</em></p><div><hr></div><p>Before you go, please hit the like &#10084;&#65039; button at the bottom of this email to help support me. It truly makes a difference!</p>]]></content:encoded></item><item><title><![CDATA[Semantic Layers and the Future of Agentic Analytics]]></title><description><![CDATA[What data professionals should now about this pivotal shift]]></description><link>https://read.futureproofds.com/p/semantic-layers-and-the-future-of-agentic-analytics</link><guid isPermaLink="false">https://read.futureproofds.com/p/semantic-layers-and-the-future-of-agentic-analytics</guid><dc:creator><![CDATA[Andres Vourakis]]></dc:creator><pubDate>Thu, 13 Nov 2025 16:46:34 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!CJAh!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9429ee09-4ed0-4a18-ad39-96cf783662f7_2000x1126.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><em>Not enough people are paying attention!</em></p><p>But there is a huge shift happening behind the scenes &#8212; one that will shape the future of data analytics and artificial intelligence.</p><p>It&#8217;s what many are starting to call <em>Agentic Analytics.</em></p><p>You see, in 2026, we&#8217;ll see big changes in how data professionals work and all because of a little something called a &#8220;Semantic Layer&#8220; (and shout out to Ontologies)</p><p>If you don&#8217;t know what any of those terms mean, don&#8217;t worry, you are in the right place. I plan to break it all down for you.</p><p>Just know this: If you work in data and analytics, especially as a data scientist, this isn&#8217;t something to ignore. You have a huge opportunity on your hands to get ahead of the curve and actually shape how the next generation of analysts will work.</p><div><hr></div><p><strong>Here is what we&#8217;ll cover</strong></p><ul><li><p>What exactly do we mean by Agentic Analytics?</p></li><li><p>The Semantic Layer</p></li><li><p>Where is the industry headed? The OSI promise</p></li><li><p>My humble predictions for 2026</p></li></ul><div><hr></div><h1>What exactly do we mean by <em>Agentic Analytics</em>?</h1><p>I think it&#8217;s probably best we start by unpacking this term <em>Agentic Analytics</em>.</p><p><em>And no, it&#8217;s not just another buzzword; it actually represents a natural evolution of how analytics is done.</em></p><p>You see, for years, companies tried to solve the problem of <em>data access</em> through <strong>self-serve analytics</strong>. Dashboards, BI tools, and data catalogs were all great ideas, and to be fair, they worked to some extent.</p><p>Features like Looker&#8217;s <em>&#8220;Explore from here&#8221;</em> gave non-technical teams more autonomy than ever before.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!-HFH!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8106fdcc-6a1c-4bec-a470-486c899da0d3_710x434.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!-HFH!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8106fdcc-6a1c-4bec-a470-486c899da0d3_710x434.png 424w, https://substackcdn.com/image/fetch/$s_!-HFH!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8106fdcc-6a1c-4bec-a470-486c899da0d3_710x434.png 848w, https://substackcdn.com/image/fetch/$s_!-HFH!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8106fdcc-6a1c-4bec-a470-486c899da0d3_710x434.png 1272w, https://substackcdn.com/image/fetch/$s_!-HFH!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8106fdcc-6a1c-4bec-a470-486c899da0d3_710x434.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!-HFH!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8106fdcc-6a1c-4bec-a470-486c899da0d3_710x434.png" width="710" height="434" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/8106fdcc-6a1c-4bec-a470-486c899da0d3_710x434.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:434,&quot;width&quot;:710,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:42075,&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://read.futureproofds.com/i/178257811?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8106fdcc-6a1c-4bec-a470-486c899da0d3_710x434.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_!-HFH!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8106fdcc-6a1c-4bec-a470-486c899da0d3_710x434.png 424w, https://substackcdn.com/image/fetch/$s_!-HFH!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8106fdcc-6a1c-4bec-a470-486c899da0d3_710x434.png 848w, https://substackcdn.com/image/fetch/$s_!-HFH!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8106fdcc-6a1c-4bec-a470-486c899da0d3_710x434.png 1272w, https://substackcdn.com/image/fetch/$s_!-HFH!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8106fdcc-6a1c-4bec-a470-486c899da0d3_710x434.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><figcaption class="image-caption">The &#8220;Explore from Here&#8220; feature on Looker. Image by Looker</figcaption></figure></div><p>But even with all that progress, most teams still face the same bottlenecks:</p><ul><li><p>Business users depend on data teams for every new metric or definition.</p></li><li><p>Analysts spend time jumping between tools, context, and dashboards.</p></li><li><p>Insights still take too long to reach decision-makers.</p></li></ul><p>The promise of <em>&#8220;self-serve&#8221;</em> analytics became more about self-serve dashboards than self-serve insights.</p><p>That&#8217;s where <strong>AI agents</strong> change the equation.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!CJAh!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9429ee09-4ed0-4a18-ad39-96cf783662f7_2000x1126.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!CJAh!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9429ee09-4ed0-4a18-ad39-96cf783662f7_2000x1126.png 424w, https://substackcdn.com/image/fetch/$s_!CJAh!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9429ee09-4ed0-4a18-ad39-96cf783662f7_2000x1126.png 848w, https://substackcdn.com/image/fetch/$s_!CJAh!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9429ee09-4ed0-4a18-ad39-96cf783662f7_2000x1126.png 1272w, https://substackcdn.com/image/fetch/$s_!CJAh!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9429ee09-4ed0-4a18-ad39-96cf783662f7_2000x1126.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!CJAh!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9429ee09-4ed0-4a18-ad39-96cf783662f7_2000x1126.png" width="1456" height="820" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/9429ee09-4ed0-4a18-ad39-96cf783662f7_2000x1126.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;:null,&quot;bytes&quot;:58677,&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://read.futureproofds.com/i/178257811?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9429ee09-4ed0-4a18-ad39-96cf783662f7_2000x1126.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_!CJAh!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9429ee09-4ed0-4a18-ad39-96cf783662f7_2000x1126.png 424w, https://substackcdn.com/image/fetch/$s_!CJAh!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9429ee09-4ed0-4a18-ad39-96cf783662f7_2000x1126.png 848w, https://substackcdn.com/image/fetch/$s_!CJAh!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9429ee09-4ed0-4a18-ad39-96cf783662f7_2000x1126.png 1272w, https://substackcdn.com/image/fetch/$s_!CJAh!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9429ee09-4ed0-4a18-ad39-96cf783662f7_2000x1126.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><figcaption class="image-caption">Agentic Analytics representation. Image by Leeway Herts.</figcaption></figure></div><p>They can interpret intent, access data directly, and generate insights on demand, not in days or weeks, but in real-time.</p><p>And that&#8217;s exactly what the term <em>Agentic Analytics</em> captures: a new generation of analytics where intelligent systems do the heavy lifting, and humans focus on asking the right questions.</p><h2>That all sounds great, but&#8230;</h2><p>Yeah, I know, I&#8217;m thinking it and so are you: It can&#8217;t all be that easy, right?</p><p>You are right, and it&#8217;s not, there is one big challenge&#8230;</p><p>Even if AI agents can access your data, they still need to <strong>understand</strong> it. And that&#8217;s where most systems fall short.</p><p>Your database knows what tables and columns exist, but it doesn&#8217;t know what &#8220;active user,&#8221; &#8220;churn,&#8221; or &#8220;retention rate&#8221; actually mean for <em>your</em> business.</p><p>That knowledge lives in people&#8217;s heads, scattered documentation, or buried inside Slack threads that no one will ever find again.</p><p>In other words, your <em>data</em> has structure, but your <em>meaning</em> doesn&#8217;t.</p><div><hr></div><h1>Enter: The Semantic Layer</h1><p>A <strong>semantic layer</strong> creates a shared understanding of how data connects to business concepts.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!TVgk!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8e7a3ebb-1da4-4f50-b4ea-d2c7e77859fb_960x502.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!TVgk!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8e7a3ebb-1da4-4f50-b4ea-d2c7e77859fb_960x502.png 424w, https://substackcdn.com/image/fetch/$s_!TVgk!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8e7a3ebb-1da4-4f50-b4ea-d2c7e77859fb_960x502.png 848w, https://substackcdn.com/image/fetch/$s_!TVgk!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8e7a3ebb-1da4-4f50-b4ea-d2c7e77859fb_960x502.png 1272w, https://substackcdn.com/image/fetch/$s_!TVgk!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8e7a3ebb-1da4-4f50-b4ea-d2c7e77859fb_960x502.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!TVgk!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8e7a3ebb-1da4-4f50-b4ea-d2c7e77859fb_960x502.png" width="960" height="502" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/8e7a3ebb-1da4-4f50-b4ea-d2c7e77859fb_960x502.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:502,&quot;width&quot;:960,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:144517,&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://read.futureproofds.com/i/178257811?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1b344b1e-dafa-4976-a084-cc093beaa9e7_960x540.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_!TVgk!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8e7a3ebb-1da4-4f50-b4ea-d2c7e77859fb_960x502.png 424w, https://substackcdn.com/image/fetch/$s_!TVgk!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8e7a3ebb-1da4-4f50-b4ea-d2c7e77859fb_960x502.png 848w, https://substackcdn.com/image/fetch/$s_!TVgk!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8e7a3ebb-1da4-4f50-b4ea-d2c7e77859fb_960x502.png 1272w, https://substackcdn.com/image/fetch/$s_!TVgk!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8e7a3ebb-1da4-4f50-b4ea-d2c7e77859fb_960x502.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><figcaption class="image-caption">The &#8220;Semantic Layer&#8220;. Image by Tellius</figcaption></figure></div><p>It defines things like metrics, relationships, and entities in a consistent, machine-readable way.</p><p>What you&#8217;ll often find is that this layer is made up YAML files containing a structured definition of your tables and views. Here is a generic example:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!xJv6!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F30536a23-ebb4-409b-b619-9f732fa1c6df_4370x7188.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!xJv6!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F30536a23-ebb4-409b-b619-9f732fa1c6df_4370x7188.png 424w, https://substackcdn.com/image/fetch/$s_!xJv6!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F30536a23-ebb4-409b-b619-9f732fa1c6df_4370x7188.png 848w, https://substackcdn.com/image/fetch/$s_!xJv6!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F30536a23-ebb4-409b-b619-9f732fa1c6df_4370x7188.png 1272w, https://substackcdn.com/image/fetch/$s_!xJv6!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F30536a23-ebb4-409b-b619-9f732fa1c6df_4370x7188.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!xJv6!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F30536a23-ebb4-409b-b619-9f732fa1c6df_4370x7188.png" width="1456" height="2395" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/30536a23-ebb4-409b-b619-9f732fa1c6df_4370x7188.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:2395,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1763433,&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://read.futureproofds.com/i/178257811?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F30536a23-ebb4-409b-b619-9f732fa1c6df_4370x7188.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_!xJv6!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F30536a23-ebb4-409b-b619-9f732fa1c6df_4370x7188.png 424w, https://substackcdn.com/image/fetch/$s_!xJv6!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F30536a23-ebb4-409b-b619-9f732fa1c6df_4370x7188.png 848w, https://substackcdn.com/image/fetch/$s_!xJv6!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F30536a23-ebb4-409b-b619-9f732fa1c6df_4370x7188.png 1272w, https://substackcdn.com/image/fetch/$s_!xJv6!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F30536a23-ebb4-409b-b619-9f732fa1c6df_4370x7188.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><figcaption class="image-caption">Generic example of a semantic definition of a table in a YAML file. Image by Author.</figcaption></figure></div><p>So instead of an AI agent guessing what &#8220;daily active users&#8221; means, it can look it up and query the right data (with the correct metric calculations) automatically.</p><h2>A brief history lesson</h2><p>I need to do this short segue because I know many of you who&#8217;ve been in the data space for a while are probably screaming at your screens, saying: <em>This isn&#8217;t anything new!</em></p><p>And you&#8217;d be right!</p><p>We&#8217;re talking about this now because these concepts started spiking in popularity again in early 2025 for a few reasons: mainly the rise of AI agents, context-aware systems, and the push toward standardization through initiatives like OSI (more about this in the next section).</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!TtLD!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F33102f23-5953-4d66-9dfc-ae412061f963_1322x626.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!TtLD!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F33102f23-5953-4d66-9dfc-ae412061f963_1322x626.png 424w, https://substackcdn.com/image/fetch/$s_!TtLD!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F33102f23-5953-4d66-9dfc-ae412061f963_1322x626.png 848w, https://substackcdn.com/image/fetch/$s_!TtLD!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F33102f23-5953-4d66-9dfc-ae412061f963_1322x626.png 1272w, https://substackcdn.com/image/fetch/$s_!TtLD!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F33102f23-5953-4d66-9dfc-ae412061f963_1322x626.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!TtLD!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F33102f23-5953-4d66-9dfc-ae412061f963_1322x626.png" width="1322" height="626" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/33102f23-5953-4d66-9dfc-ae412061f963_1322x626.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:626,&quot;width&quot;:1322,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:78943,&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://read.futureproofds.com/i/178257811?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F33102f23-5953-4d66-9dfc-ae412061f963_1322x626.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_!TtLD!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F33102f23-5953-4d66-9dfc-ae412061f963_1322x626.png 424w, https://substackcdn.com/image/fetch/$s_!TtLD!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F33102f23-5953-4d66-9dfc-ae412061f963_1322x626.png 848w, https://substackcdn.com/image/fetch/$s_!TtLD!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F33102f23-5953-4d66-9dfc-ae412061f963_1322x626.png 1272w, https://substackcdn.com/image/fetch/$s_!TtLD!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F33102f23-5953-4d66-9dfc-ae412061f963_1322x626.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><figcaption class="image-caption">Google Trends for &#8220;Semantic layer&#8220; and &#8220;Ontology&#8220;. Image by Author</figcaption></figure></div><p>But the idea of the <strong>semantic layer</strong> in data analytics has actually been around since the 1990s. It first appeared in enterprise data warehouses as a way to translate raw tables into business-friendly views, something business users could actually understand.</p><p>Looker later revived this concept in a modern way with LookML, a true modeling layer that defined metrics, joins, and relationships in code. That approach became the foundation for how many teams think about semantic layers today.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!888l!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc9f37731-d016-4da1-8cca-13545fe906e1_1436x942.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!888l!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc9f37731-d016-4da1-8cca-13545fe906e1_1436x942.png 424w, https://substackcdn.com/image/fetch/$s_!888l!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc9f37731-d016-4da1-8cca-13545fe906e1_1436x942.png 848w, https://substackcdn.com/image/fetch/$s_!888l!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc9f37731-d016-4da1-8cca-13545fe906e1_1436x942.png 1272w, https://substackcdn.com/image/fetch/$s_!888l!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc9f37731-d016-4da1-8cca-13545fe906e1_1436x942.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!888l!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc9f37731-d016-4da1-8cca-13545fe906e1_1436x942.png" width="1436" height="942" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c9f37731-d016-4da1-8cca-13545fe906e1_1436x942.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:942,&quot;width&quot;:1436,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:333006,&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://read.futureproofds.com/i/178257811?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc9f37731-d016-4da1-8cca-13545fe906e1_1436x942.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_!888l!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc9f37731-d016-4da1-8cca-13545fe906e1_1436x942.png 424w, https://substackcdn.com/image/fetch/$s_!888l!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc9f37731-d016-4da1-8cca-13545fe906e1_1436x942.png 848w, https://substackcdn.com/image/fetch/$s_!888l!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc9f37731-d016-4da1-8cca-13545fe906e1_1436x942.png 1272w, https://substackcdn.com/image/fetch/$s_!888l!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc9f37731-d016-4da1-8cca-13545fe906e1_1436x942.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><figcaption class="image-caption">Preview of Looker&#8217;s semantic modeling. Image by Looker</figcaption></figure></div><p>What&#8217;s different now is that the same concept is being extended beyond BI. Instead of only powering dashboards, semantic layers are becoming the backbone of AI agents, letting them reason about data using shared business definitions.</p><div><hr></div><h1>Where is the industry headed? The OSI promise</h1><p>If there&#8217;s one thing history teaches us, it&#8217;s that every major shift in data has come from standardization.</p><p>The modern data stack gave us standard ways to store and transform data. Now, we&#8217;re moving toward standard ways to describe and share meaning across tools.</p><p>That&#8217;s exactly what&#8217;s happening right now with the <strong>Open Semantic Interface (OSI)</strong> initiative.</p><div class="pullquote"><p>This initiative reflects the industry coming together, not competing, to solve shared challenges and build a more connected, open ecosystem for all </p><p>&#8212; Snowflake</p></div><p>In September 2025, many of the biggest names in analytics and AI came together to <a href="https://www.snowflake.com/en/blog/open-semantic-interchange-ai-standard/">announce</a> a shared goal: creating an open standard for how systems define and communicate business context.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!U2dY!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa69c8454-f188-4be5-b186-8591c2e776df_1222x512.webp" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!U2dY!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa69c8454-f188-4be5-b186-8591c2e776df_1222x512.webp 424w, https://substackcdn.com/image/fetch/$s_!U2dY!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa69c8454-f188-4be5-b186-8591c2e776df_1222x512.webp 848w, https://substackcdn.com/image/fetch/$s_!U2dY!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa69c8454-f188-4be5-b186-8591c2e776df_1222x512.webp 1272w, https://substackcdn.com/image/fetch/$s_!U2dY!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa69c8454-f188-4be5-b186-8591c2e776df_1222x512.webp 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!U2dY!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa69c8454-f188-4be5-b186-8591c2e776df_1222x512.webp" width="1222" height="512" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a69c8454-f188-4be5-b186-8591c2e776df_1222x512.webp&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:512,&quot;width&quot;:1222,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:65808,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/webp&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://read.futureproofds.com/i/178257811?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa69c8454-f188-4be5-b186-8591c2e776df_1222x512.webp&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!U2dY!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa69c8454-f188-4be5-b186-8591c2e776df_1222x512.webp 424w, https://substackcdn.com/image/fetch/$s_!U2dY!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa69c8454-f188-4be5-b186-8591c2e776df_1222x512.webp 848w, https://substackcdn.com/image/fetch/$s_!U2dY!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa69c8454-f188-4be5-b186-8591c2e776df_1222x512.webp 1272w, https://substackcdn.com/image/fetch/$s_!U2dY!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa69c8454-f188-4be5-b186-8591c2e776df_1222x512.webp 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><figcaption class="image-caption">The OSI launch partners. Image by Snowflake.</figcaption></figure></div><p>We&#8217;re talking about companies like <strong>dbt Labs</strong>, <strong>Snowflake</strong>, <strong>Google</strong>, <strong>Cube</strong>, <strong>Transform</strong>, and others, all aligning behind a common specification.</p><p>The idea is simple: instead of every platform having its own definition of metrics and entities, the OSI provides a single shared interface that any tool or AI agent can understand.</p><p>If it works, the implications are huge:</p><ul><li><p>Any AI tool (like Cursor or Claude) could plug into your company&#8217;s semantic layer.</p></li><li><p>Metric definitions become reusable across dashboards, notebooks, and agents.</p></li><li><p>Context becomes portable instead of something that gets lost every time you switch tools.</p></li></ul><p>If the idea of keeping your business context vendor-agnostic resonates with you, this should give you real hope for the future.</p><div><hr></div><h1>My humble predictions for 2026</h1><p>Here&#8217;s where I think things are headed:</p><ol><li><p><strong>The commoditization of the semantic layer</strong></p><p>By the end of 2026, the idea of a semantic layer will start moving from cutting-edge to expected. It won&#8217;t be everywhere yet, but more companies will begin adopting it as part of their modern data stack, whether through open standards like OSI or proprietary versions built into existing analytics and AI tools.</p></li><li><p><strong>Agentic Analytics in practice</strong></p><p>We&#8217;ll also see the concept of Agentic Analytics take real shape, not as isolated AI add-ons, but as part of how data work gets done day-to-day. Expect more <em>&#8220;talk to your data&#8221;</em> capabilities across both lightweight integrations and enterprise platforms.</p></li></ol><p>Here&#8217;s my recommendation to data scientists: <strong>be part of that design process</strong>.</p><blockquote><p>You already understand how data connects to business value, which makes you uniquely positioned to shape this new layer of intelligence. Don&#8217;t wait for vendors or AI teams to define it for you.</p><p>Experiment, build prototypes, and think about how context, governance, and reasoning can live inside the tools you already use.</p></blockquote><p>This is why learning how to use the semantic layer inside real AI workflows has been a core part of my <a href="https://futureproofds.com/">AI Workflows Bootcamp</a>.</p><p>The 22 data scientists enrolled learned to build everything from lightweight data cleaning agents to MCP servers from scratch, custom GPTs, and their own talk-to-your-data Slackbots.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!wPls!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3fe27a08-1c03-435f-a275-321138ce7946_1280x720.gif" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!wPls!,w_424,c_limit,f_webp,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3fe27a08-1c03-435f-a275-321138ce7946_1280x720.gif 424w, https://substackcdn.com/image/fetch/$s_!wPls!,w_848,c_limit,f_webp,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3fe27a08-1c03-435f-a275-321138ce7946_1280x720.gif 848w, https://substackcdn.com/image/fetch/$s_!wPls!,w_1272,c_limit,f_webp,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3fe27a08-1c03-435f-a275-321138ce7946_1280x720.gif 1272w, https://substackcdn.com/image/fetch/$s_!wPls!,w_1456,c_limit,f_webp,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3fe27a08-1c03-435f-a275-321138ce7946_1280x720.gif 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!wPls!,w_1456,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3fe27a08-1c03-435f-a275-321138ce7946_1280x720.gif" width="1280" height="720" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/3fe27a08-1c03-435f-a275-321138ce7946_1280x720.gif&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:720,&quot;width&quot;:1280,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:6676982,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/gif&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://read.futureproofds.com/i/178257811?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3fe27a08-1c03-435f-a275-321138ce7946_1280x720.gif&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!wPls!,w_424,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3fe27a08-1c03-435f-a275-321138ce7946_1280x720.gif 424w, https://substackcdn.com/image/fetch/$s_!wPls!,w_848,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3fe27a08-1c03-435f-a275-321138ce7946_1280x720.gif 848w, https://substackcdn.com/image/fetch/$s_!wPls!,w_1272,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3fe27a08-1c03-435f-a275-321138ce7946_1280x720.gif 1272w, https://substackcdn.com/image/fetch/$s_!wPls!,w_1456,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3fe27a08-1c03-435f-a275-321138ce7946_1280x720.gif 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg 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>&#128073; If you&#8217;d like to join <strong>Cohort 2</strong>, you can add yourself to the waiting list at <a href="http://futureproofds.com">futureproofds.com</a></p><div><hr></div><h1>Closing thoughts</h1><p>There is no doubt in my mind that we&#8217;re entering a new phase in analytics.</p><p>For years, data scientists have focused on building models, uncovering insights, and helping teams make better decisions. That work isn&#8217;t going away. What&#8217;s changing is <strong>how</strong> we get there and how quickly we can democratize insights.</p><p>The rise of semantic layers, OSI, and Agentic Analytics marks a shift toward systems that can understand context and reason about data more like we do.</p><p>If you&#8217;ve read this far, take it as your cue to start exploring what&#8217;s possible.<br>Because the data scientists who learn to work with these new systems early on will be the ones shaping what analytics looks like in the years ahead.</p><div><hr></div><h2>A couple of other great resources:</h2><ul><li><p><strong>&#128640; Ready to take the next step? </strong>Build real <a href="https://futureproofds.com/">AI workflows</a> and sharpen the skills that keep data scientists ahead.</p></li><li><p>&#128188; <strong>Job searching?</strong> <a href="https://applio.ai/">Applio</a> helps your resume stand out and land more interviews.</p></li><li><p><strong>&#129302; Struggling to keep up with AI/ML?</strong> <a href="https://neuralpulse.io/subscribe">Neural Pulse</a> is a 5-minute, human-curated newsletter delivering the best in AI, ML, and data science.</p></li></ul><div><hr></div><p><em>Thank you for reading! I hope this article helps you look ahead and prepare accordingly</em></p><p><em>- Andres Vourakis</em></p><div><hr></div><p>Before you go, please hit the like &#10084;&#65039; button at the bottom of this email to help support me. It truly makes a difference!</p><p></p>]]></content:encoded></item></channel></rss>