<?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[Data Engineering & Analytics Systems Design]]></title><description><![CDATA[Engineer your data career with Surfalytics — master Data Engineering and Analytics System Design, build real systems, and land high-paying roles.]]></description><link>https://blog.surfalytics.com</link><image><url>https://substackcdn.com/image/fetch/$s_!0hZW!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd233226f-0d04-4676-8097-da497d9b1c00_1280x1280.png</url><title>Data Engineering &amp; Analytics Systems Design</title><link>https://blog.surfalytics.com</link></image><generator>Substack</generator><lastBuildDate>Sun, 12 Apr 2026 13:58:48 GMT</lastBuildDate><atom:link href="https://blog.surfalytics.com/feed" rel="self" type="application/rss+xml"/><copyright><![CDATA[Dmitry Anoshin]]></copyright><language><![CDATA[en]]></language><webMaster><![CDATA[surfalytics@substack.com]]></webMaster><itunes:owner><itunes:email><![CDATA[surfalytics@substack.com]]></itunes:email><itunes:name><![CDATA[Dmitry Anoshin]]></itunes:name></itunes:owner><itunes:author><![CDATA[Dmitry Anoshin]]></itunes:author><googleplay:owner><![CDATA[surfalytics@substack.com]]></googleplay:owner><googleplay:email><![CDATA[surfalytics@substack.com]]></googleplay:email><googleplay:author><![CDATA[Dmitry Anoshin]]></googleplay:author><itunes:block><![CDATA[Yes]]></itunes:block><item><title><![CDATA[Practical Data Modelling with SQL]]></title><description><![CDATA[From Bus Matrix to DuckDB (SpaceX Launches)]]></description><link>https://blog.surfalytics.com/p/practical-data-modelling-with-sql</link><guid isPermaLink="false">https://blog.surfalytics.com/p/practical-data-modelling-with-sql</guid><dc:creator><![CDATA[Dmitry Anoshin]]></dc:creator><pubDate>Wed, 25 Mar 2026 22:42:40 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!TduR!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa39c3cfc-988e-40d7-8758-8441d1cda53c_3070x1376.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_!TduR!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa39c3cfc-988e-40d7-8758-8441d1cda53c_3070x1376.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!TduR!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa39c3cfc-988e-40d7-8758-8441d1cda53c_3070x1376.png 424w, https://substackcdn.com/image/fetch/$s_!TduR!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa39c3cfc-988e-40d7-8758-8441d1cda53c_3070x1376.png 848w, https://substackcdn.com/image/fetch/$s_!TduR!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa39c3cfc-988e-40d7-8758-8441d1cda53c_3070x1376.png 1272w, https://substackcdn.com/image/fetch/$s_!TduR!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa39c3cfc-988e-40d7-8758-8441d1cda53c_3070x1376.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!TduR!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa39c3cfc-988e-40d7-8758-8441d1cda53c_3070x1376.png" width="1456" height="653" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a39c3cfc-988e-40d7-8758-8441d1cda53c_3070x1376.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:653,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:7627994,&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://blog.surfalytics.com/i/192144561?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa39c3cfc-988e-40d7-8758-8441d1cda53c_3070x1376.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_!TduR!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa39c3cfc-988e-40d7-8758-8441d1cda53c_3070x1376.png 424w, https://substackcdn.com/image/fetch/$s_!TduR!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa39c3cfc-988e-40d7-8758-8441d1cda53c_3070x1376.png 848w, https://substackcdn.com/image/fetch/$s_!TduR!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa39c3cfc-988e-40d7-8758-8441d1cda53c_3070x1376.png 1272w, https://substackcdn.com/image/fetch/$s_!TduR!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa39c3cfc-988e-40d7-8758-8441d1cda53c_3070x1376.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></p><p>If you ever sat in a data interview and heard &#8220;walk me through your star schema,&#8221; you already know the feeling. You can explain <strong>facts</strong> and <strong>dimensions</strong> in theory. But the next question is often: <strong>how did you get from a messy source to something people can actually query?</strong></p><p>This post is my attempt to bridge that gap without drowning you in slides. We will use <strong>real JSON from the public SpaceX API</strong>, load it into <strong>DuckDB</strong> on your laptop, and build a tiny <strong>star schema</strong>. Then we will play with <strong>slowly changing dimensions (SCD)</strong> &#8212; Type 1, 2, and 3 &#8212; because interviewers still love that topic, and because it is one of those ideas that only clicks when you <strong>run the SQL yourself</strong>.</p><blockquote><p><em>If you didn&#8217;t try DuckDB yet, check our lesson <a href="https://youtu.be/Wo82r-YLN-U?si=VX5Un4JfHU-lyHQ6">Just enough DuckDB for Data Analyst | Module 2.7</a></em></p></blockquote><p>No cloud account required. Just DuckDB and a network connection for the first fetch.</p><div><hr></div><h2>Why bother with dimensional modelling?</h2><p>Here is the honest version. Not every team models everything as a star schema. You will see wide tables, one big denormalized export, or a lakehouse with a dozen patterns at once. Fair enough.</p><p>But <strong>dimensional modelling</strong> is still the language a lot of BI tools, metrics layers, and hiring loops speak. When it fits, it fits well: you separate <strong>what happened</strong> (facts) from <strong>what we call things</strong> (dimensions), you pick a clear <strong>grain</strong>, and you stop arguing about whether &#8220;one row&#8221; means a launch or half a launch.</p><p>In practice you usually end up with:</p><ul><li><p><strong>Fact tables</strong> &#8212; events or measurements (one row per launch, one row per order line)</p></li><li><p><strong>Dimension tables</strong> &#8212; descriptions you join to facts (date, rocket, customer)</p></li></ul><p>A simple <strong>star schema</strong> &#8212; fact in the middle, dimensions around it &#8212; covers a large share of reporting work. It also shows up in interviews next to <strong>grain</strong>, <strong>keys</strong>, and <strong>SCDs</strong>. This post is not a promise that stars solve every problem. It is a <strong>practical default</strong> you can explain, sketch on a whiteboard, and back up with a file on disk.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Sq5v!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F36644b20-0b1e-473d-b0a0-15570b7b708c_1244x806.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Sq5v!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F36644b20-0b1e-473d-b0a0-15570b7b708c_1244x806.png 424w, https://substackcdn.com/image/fetch/$s_!Sq5v!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F36644b20-0b1e-473d-b0a0-15570b7b708c_1244x806.png 848w, https://substackcdn.com/image/fetch/$s_!Sq5v!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F36644b20-0b1e-473d-b0a0-15570b7b708c_1244x806.png 1272w, https://substackcdn.com/image/fetch/$s_!Sq5v!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F36644b20-0b1e-473d-b0a0-15570b7b708c_1244x806.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Sq5v!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F36644b20-0b1e-473d-b0a0-15570b7b708c_1244x806.png" width="1244" height="806" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/36644b20-0b1e-473d-b0a0-15570b7b708c_1244x806.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:806,&quot;width&quot;:1244,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Star Schema Guide: Data Warehouse Modeling Explained&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Star Schema Guide: Data Warehouse Modeling Explained" title="Star Schema Guide: Data Warehouse Modeling Explained" srcset="https://substackcdn.com/image/fetch/$s_!Sq5v!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F36644b20-0b1e-473d-b0a0-15570b7b708c_1244x806.png 424w, https://substackcdn.com/image/fetch/$s_!Sq5v!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F36644b20-0b1e-473d-b0a0-15570b7b708c_1244x806.png 848w, https://substackcdn.com/image/fetch/$s_!Sq5v!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F36644b20-0b1e-473d-b0a0-15570b7b708c_1244x806.png 1272w, https://substackcdn.com/image/fetch/$s_!Sq5v!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F36644b20-0b1e-473d-b0a0-15570b7b708c_1244x806.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 minute of history, then the words that matter</h2><p><strong>History in one breath:</strong> a lot of what people mean by &#8220;dimensional modelling&#8221; comes from <strong>Ralph Kimball</strong> and the books around <strong>The Data Warehouse Toolkit</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_!oYmC!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3619e3db-275d-422e-95b8-aac85b87a8e9_1190x1500.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!oYmC!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3619e3db-275d-422e-95b8-aac85b87a8e9_1190x1500.jpeg 424w, https://substackcdn.com/image/fetch/$s_!oYmC!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3619e3db-275d-422e-95b8-aac85b87a8e9_1190x1500.jpeg 848w, https://substackcdn.com/image/fetch/$s_!oYmC!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3619e3db-275d-422e-95b8-aac85b87a8e9_1190x1500.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!oYmC!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3619e3db-275d-422e-95b8-aac85b87a8e9_1190x1500.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!oYmC!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3619e3db-275d-422e-95b8-aac85b87a8e9_1190x1500.jpeg" width="1190" height="1500" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/3619e3db-275d-422e-95b8-aac85b87a8e9_1190x1500.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1500,&quot;width&quot;:1190,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!oYmC!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3619e3db-275d-422e-95b8-aac85b87a8e9_1190x1500.jpeg 424w, https://substackcdn.com/image/fetch/$s_!oYmC!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3619e3db-275d-422e-95b8-aac85b87a8e9_1190x1500.jpeg 848w, https://substackcdn.com/image/fetch/$s_!oYmC!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3619e3db-275d-422e-95b8-aac85b87a8e9_1190x1500.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!oYmC!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3619e3db-275d-422e-95b8-aac85b87a8e9_1190x1500.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>The pitch was simple: make tables that <strong>business people can name</strong>, and joins that <strong>analysts can repeat</strong> without a map of fifty normalized tables.</p><p>You will still meet <strong>Inmon-style</strong> warehouses and hybrid setups. That is fine. In many analytics shops, <strong>Kimball-style</strong> stars stayed popular because they match how reporting tools think.</p><p><strong>Definitions</strong> (keep this table nearby; it saves you in interviews):</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!I0Wh!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4cf341cc-8eae-42a5-9828-ad791e9850f2_639x483.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!I0Wh!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4cf341cc-8eae-42a5-9828-ad791e9850f2_639x483.png 424w, https://substackcdn.com/image/fetch/$s_!I0Wh!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4cf341cc-8eae-42a5-9828-ad791e9850f2_639x483.png 848w, https://substackcdn.com/image/fetch/$s_!I0Wh!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4cf341cc-8eae-42a5-9828-ad791e9850f2_639x483.png 1272w, https://substackcdn.com/image/fetch/$s_!I0Wh!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4cf341cc-8eae-42a5-9828-ad791e9850f2_639x483.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!I0Wh!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4cf341cc-8eae-42a5-9828-ad791e9850f2_639x483.png" width="639" height="483" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/4cf341cc-8eae-42a5-9828-ad791e9850f2_639x483.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:483,&quot;width&quot;:639,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:74297,&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://blog.surfalytics.com/i/192144561?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4cf341cc-8eae-42a5-9828-ad791e9850f2_639x483.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_!I0Wh!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4cf341cc-8eae-42a5-9828-ad791e9850f2_639x483.png 424w, https://substackcdn.com/image/fetch/$s_!I0Wh!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4cf341cc-8eae-42a5-9828-ad791e9850f2_639x483.png 848w, https://substackcdn.com/image/fetch/$s_!I0Wh!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4cf341cc-8eae-42a5-9828-ad791e9850f2_639x483.png 1272w, https://substackcdn.com/image/fetch/$s_!I0Wh!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4cf341cc-8eae-42a5-9828-ad791e9850f2_639x483.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 remember only one line for the room: <strong>grain first</strong>. Everything else gets easier after that.</p><div><hr></div><h2>From &#8220;what do we want to know?&#8221; to DDL</h2><p>You do not need a perfect methodology. You need a <strong>repeatable path</strong>. This is the one I still use when I start from zero.</p><h3>1) Business questions</h3><p>Before you name tables, write questions in plain language. Five is enough. Ten is great.</p><p>Example:</p><ul><li><p>How many launches per month?</p></li><li><p>What is the success rate by rocket name?</p></li><li><p>Which rocket flew most often in this sample?</p></li></ul><p>If you cannot phrase the questions, your grain is probably fuzzy. That is a feature, not a bug &#8212; fix it early.</p><h3>2) Bus matrix (simple version)</h3><p>A <strong>bus matrix</strong> is a small grid: <strong>facts</strong> (business processes) on one axis, <strong>dimensions</strong> on the other. It looks almost too simple. It is still useful because it forces you to ask: <strong>what do we measure, and what describes it?</strong></p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!wmGU!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fecee9b0d-772a-49a5-8901-f1e0141dcc58_660x94.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!wmGU!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fecee9b0d-772a-49a5-8901-f1e0141dcc58_660x94.png 424w, https://substackcdn.com/image/fetch/$s_!wmGU!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fecee9b0d-772a-49a5-8901-f1e0141dcc58_660x94.png 848w, https://substackcdn.com/image/fetch/$s_!wmGU!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fecee9b0d-772a-49a5-8901-f1e0141dcc58_660x94.png 1272w, https://substackcdn.com/image/fetch/$s_!wmGU!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fecee9b0d-772a-49a5-8901-f1e0141dcc58_660x94.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!wmGU!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fecee9b0d-772a-49a5-8901-f1e0141dcc58_660x94.png" width="660" height="94" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/ecee9b0d-772a-49a5-8901-f1e0141dcc58_660x94.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:94,&quot;width&quot;:660,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:10281,&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://blog.surfalytics.com/i/192144561?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fecee9b0d-772a-49a5-8901-f1e0141dcc58_660x94.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_!wmGU!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fecee9b0d-772a-49a5-8901-f1e0141dcc58_660x94.png 424w, https://substackcdn.com/image/fetch/$s_!wmGU!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fecee9b0d-772a-49a5-8901-f1e0141dcc58_660x94.png 848w, https://substackcdn.com/image/fetch/$s_!wmGU!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fecee9b0d-772a-49a5-8901-f1e0141dcc58_660x94.png 1272w, https://substackcdn.com/image/fetch/$s_!wmGU!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fecee9b0d-772a-49a5-8901-f1e0141dcc58_660x94.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><p>If you add more facts later (payload, booster reuse, whatever), the win is <strong>conformed dimensions</strong>: the same <code>dim_date</code>, the same <code>dim_rocket</code>, reused across facts. That is how analytics stops turning into twenty different definitions of &#8220;rocket.&#8221;</p><h3>3) Logical design (entities, relationships, attributes)</h3><p>This is the step people often skip in blog posts. They jump from questions to <code>dim_</code> / <code>fct_</code> tables. That works if you already think in stars. If you do not, add <strong>one short logical pass</strong> so the physical names are not magic.</p><p><strong>What &#8220;logical&#8221; means here:</strong> you agree on <strong>what exists in the business</strong>, <strong>how things connect</strong>, and <strong>what belongs on the fact row</strong> &#8212; still on paper or a whiteboard. You can stay away from SQL types, indexes, and <code>VARCHAR(200)</code> for a moment.</p><p><strong>Grain (again, on purpose):</strong> one row = <strong>one launch attempt</strong> (one mission event in our sample).</p><p><strong>Entities:</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_!5iWx!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd92f8416-081e-405a-b344-4d3af10353fa_645x275.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!5iWx!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd92f8416-081e-405a-b344-4d3af10353fa_645x275.png 424w, https://substackcdn.com/image/fetch/$s_!5iWx!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd92f8416-081e-405a-b344-4d3af10353fa_645x275.png 848w, https://substackcdn.com/image/fetch/$s_!5iWx!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd92f8416-081e-405a-b344-4d3af10353fa_645x275.png 1272w, https://substackcdn.com/image/fetch/$s_!5iWx!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd92f8416-081e-405a-b344-4d3af10353fa_645x275.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!5iWx!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd92f8416-081e-405a-b344-4d3af10353fa_645x275.png" width="645" height="275" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d92f8416-081e-405a-b344-4d3af10353fa_645x275.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:275,&quot;width&quot;:645,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:37204,&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://blog.surfalytics.com/i/192144561?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd92f8416-081e-405a-b344-4d3af10353fa_645x275.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_!5iWx!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd92f8416-081e-405a-b344-4d3af10353fa_645x275.png 424w, https://substackcdn.com/image/fetch/$s_!5iWx!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd92f8416-081e-405a-b344-4d3af10353fa_645x275.png 848w, https://substackcdn.com/image/fetch/$s_!5iWx!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd92f8416-081e-405a-b344-4d3af10353fa_645x275.png 1272w, https://substackcdn.com/image/fetch/$s_!5iWx!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd92f8416-081e-405a-b344-4d3af10353fa_645x275.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><strong>Relationships (plain language):</strong></p><ul><li><p>Each <strong>launch</strong> happens on <strong>one calendar day</strong> and uses <strong>one rocket</strong>.</p></li><li><p>Many launches can share the same rocket. That is a <strong>many-to-one</strong> from launch &#8594; rocket, and launch &#8594; date.</p></li></ul><p><strong>Tiny picture of the join path (star):</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_!4pIR!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbebd90a5-7361-4d6c-9948-353a7345519c_676x468.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!4pIR!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbebd90a5-7361-4d6c-9948-353a7345519c_676x468.png 424w, https://substackcdn.com/image/fetch/$s_!4pIR!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbebd90a5-7361-4d6c-9948-353a7345519c_676x468.png 848w, https://substackcdn.com/image/fetch/$s_!4pIR!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbebd90a5-7361-4d6c-9948-353a7345519c_676x468.png 1272w, https://substackcdn.com/image/fetch/$s_!4pIR!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbebd90a5-7361-4d6c-9948-353a7345519c_676x468.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!4pIR!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbebd90a5-7361-4d6c-9948-353a7345519c_676x468.png" width="676" height="468" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/bebd90a5-7361-4d6c-9948-353a7345519c_676x468.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:468,&quot;width&quot;:676,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:20590,&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://blog.surfalytics.com/i/192144561?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbebd90a5-7361-4d6c-9948-353a7345519c_676x468.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_!4pIR!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbebd90a5-7361-4d6c-9948-353a7345519c_676x468.png 424w, https://substackcdn.com/image/fetch/$s_!4pIR!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbebd90a5-7361-4d6c-9948-353a7345519c_676x468.png 848w, https://substackcdn.com/image/fetch/$s_!4pIR!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbebd90a5-7361-4d6c-9948-353a7345519c_676x468.png 1272w, https://substackcdn.com/image/fetch/$s_!4pIR!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbebd90a5-7361-4d6c-9948-353a7345519c_676x468.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></p><h3>4) Physical model (DDL)</h3><p>Now you map the logical picture to warehouse tables:</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!IWzS!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2d3bc620-7b25-4670-8495-2cf2bcf712e2_653x219.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!IWzS!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2d3bc620-7b25-4670-8495-2cf2bcf712e2_653x219.png 424w, https://substackcdn.com/image/fetch/$s_!IWzS!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2d3bc620-7b25-4670-8495-2cf2bcf712e2_653x219.png 848w, https://substackcdn.com/image/fetch/$s_!IWzS!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2d3bc620-7b25-4670-8495-2cf2bcf712e2_653x219.png 1272w, https://substackcdn.com/image/fetch/$s_!IWzS!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2d3bc620-7b25-4670-8495-2cf2bcf712e2_653x219.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!IWzS!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2d3bc620-7b25-4670-8495-2cf2bcf712e2_653x219.png" width="653" height="219" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/2d3bc620-7b25-4670-8495-2cf2bcf712e2_653x219.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:219,&quot;width&quot;:653,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:32325,&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://blog.surfalytics.com/i/192144561?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2d3bc620-7b25-4670-8495-2cf2bcf712e2_653x219.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_!IWzS!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2d3bc620-7b25-4670-8495-2cf2bcf712e2_653x219.png 424w, https://substackcdn.com/image/fetch/$s_!IWzS!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2d3bc620-7b25-4670-8495-2cf2bcf712e2_653x219.png 848w, https://substackcdn.com/image/fetch/$s_!IWzS!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2d3bc620-7b25-4670-8495-2cf2bcf712e2_653x219.png 1272w, https://substackcdn.com/image/fetch/$s_!IWzS!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2d3bc620-7b25-4670-8495-2cf2bcf712e2_653x219.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><p>Naming is a convention: <code>fct_</code> for facts, <code>dim_</code> for dimensions. The important part is that <strong>everyone</strong> on the team reads the same diagram.</p><p>At some point the whiteboard has to become SQL. Below we use <strong>DuckDB</strong> and a <strong>local database file</strong> so you can poke at the data without spinning up a warehouse.</p><div><hr></div><h2>DuckDB: fetch launches like you mean it</h2><p>I like DuckDB for posts like this because the feedback loop is fast. You run SQL, you see rows, you fix your mistake, you move on.</p><p><a href="https://duckdb.org/install/?platform=macos&amp;environment=cli">Install DuckDB</a> (CLI is enough). From this folder, create a small database and load <strong>20 recent launches</strong> with the helper script. </p><p>Create the new file <code>fetch_launches.sql:</code></p><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;sql&quot;,&quot;nodeId&quot;:&quot;c77d3257-4353-4a07-af5f-deaa20073a0f&quot;}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-sql">-- SpaceX public API (community-maintained). Requires network.
-- Run from this folder:
--   duckdb spacex_modelling.duckdb &lt; fetch_launches.sql

INSTALL httpfs;
LOAD httpfs;

-- Remote JSON can change between HTTP reads; DuckDB may error on ETag mismatch.
SET unsafe_disable_etag_checks = true;

DROP TABLE IF EXISTS stg_launches;

CREATE TABLE stg_launches AS
WITH l AS (
    SELECT *
    FROM read_json_auto('https://api.spacexdata.com/v4/launches')
),
r AS (
    SELECT *
    FROM read_json_auto('https://api.spacexdata.com/v4/rockets')
)
SELECT
    l.id AS launch_id,
    l.flight_number,
    l.name AS mission_name,
    CAST(l.date_utc AS TIMESTAMP) AS launch_ts,
    CAST(CAST(l.date_utc AS TIMESTAMP) AS DATE) AS launch_date,
    l.success AS launch_success,
    l.rocket AS rocket_id,
    r.name AS rocket_name,
    r.type AS rocket_type
FROM l
INNER JOIN r ON l.rocket = r.id
WHERE l.date_utc IS NOT NULL
ORDER BY launch_ts DESC
LIMIT 20;

SELECT 'stg_launches rows' AS check_name, COUNT(*) AS n FROM stg_launches;
</code></pre></div><blockquote><p><em>Learn more about SpaceX API and available data at</em></p><p><em>https://docs.spacexdata.com/#intro</em></p></blockquote><p>What <code>fetch_launches.sql</code> does under the hood:</p><ol><li><p>Loads the <strong>httpfs</strong> extension so DuckDB can read remote URLs.</p></li><li><p>Pulls <strong>launches</strong> and <strong>rockets</strong> as JSON from the SpaceX API.</p></li><li><p>Joins them and keeps the <strong>20 most recent</strong> launches that have a date.</p></li></ol><p>Run it:</p><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;bash&quot;,&quot;nodeId&quot;:&quot;c810d01a-6fbd-4e53-9fdb-a7c5242d3e01&quot;}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-bash">duckdb spacex_modelling.duckdb &lt; fetch_launches.sql

&#9484;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9516;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9488;
&#9474;    check_name     &#9474;   n   &#9474;
&#9474;      varchar      &#9474; int64 &#9474;
&#9500;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9532;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9508;
&#9474; stg_launches rows &#9474;  20   &#9474;
&#9492;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9524;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9496;
</code></pre></div><p><strong>Why SpaceX?</strong> The data is small, relatable, and a bit fun. Rockets beat generic &#8220;customer_id&#8221; examples when your brain is already tired after a long day.</p><p><strong>Reality check:</strong> the API is public and community-maintained. Data can shift. On top of that, DuckDB may complain about <strong>ETag</strong> changes when it reads the same URL twice. The script sets unsafe_disable_etag_checks = true so you can focus on modelling instead of HTTP trivia. If you want stricter behaviour later, read the DuckDB docs for <strong>httpfs</strong> and decide what fits your pipeline.</p><div><hr></div><h2>Build the star schema (SQL)</h2><p>Open the database:</p><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;bash&quot;,&quot;nodeId&quot;:&quot;5487af80-f5a7-4668-bf8a-8bdd20c7f80d&quot;}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-bash">duckdb spacex_modelling.duckdb</code></pre></div><p>We can quickly observe the data with simple SQL <code>SELECT * FROM stg_launches LIMIT 10;</code></p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!06t0!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F71db22a3-d833-4622-a751-88129474e0b1_1463x355.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!06t0!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F71db22a3-d833-4622-a751-88129474e0b1_1463x355.png 424w, https://substackcdn.com/image/fetch/$s_!06t0!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F71db22a3-d833-4622-a751-88129474e0b1_1463x355.png 848w, https://substackcdn.com/image/fetch/$s_!06t0!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F71db22a3-d833-4622-a751-88129474e0b1_1463x355.png 1272w, https://substackcdn.com/image/fetch/$s_!06t0!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F71db22a3-d833-4622-a751-88129474e0b1_1463x355.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!06t0!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F71db22a3-d833-4622-a751-88129474e0b1_1463x355.png" width="728" height="176.5" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/71db22a3-d833-4622-a751-88129474e0b1_1463x355.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:353,&quot;width&quot;:1456,&quot;resizeWidth&quot;:728,&quot;bytes&quot;:105325,&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://blog.surfalytics.com/i/192144561?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F71db22a3-d833-4622-a751-88129474e0b1_1463x355.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_!06t0!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F71db22a3-d833-4622-a751-88129474e0b1_1463x355.png 424w, https://substackcdn.com/image/fetch/$s_!06t0!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F71db22a3-d833-4622-a751-88129474e0b1_1463x355.png 848w, https://substackcdn.com/image/fetch/$s_!06t0!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F71db22a3-d833-4622-a751-88129474e0b1_1463x355.png 1272w, https://substackcdn.com/image/fetch/$s_!06t0!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F71db22a3-d833-4622-a751-88129474e0b1_1463x355.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><p>Let&#8217;s create our dimensions and facts to help us answer business questions. Run:</p><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;sql&quot;,&quot;nodeId&quot;:&quot;60221619-d3be-4d1c-83ff-2ac83a511243&quot;}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-sql">-- Calendar dimension from the launch dates in the sample
CREATE OR REPLACE TABLE dim_date AS
SELECT DISTINCT
    CAST(strftime(launch_date, '%Y%m%d') AS INTEGER) AS date_key,
    launch_date AS full_date,
    year(launch_date) AS year_nbr,
    month(launch_date) AS month_nbr,
    day(launch_date) AS day_of_month
FROM stg_launches;

-- One row per rocket (in this sample)
CREATE OR REPLACE TABLE dim_rocket AS
SELECT DISTINCT
    rocket_id,
    rocket_name,
    rocket_type
FROM stg_launches;

-- Fact: one row per launch
CREATE OR REPLACE TABLE fct_launches AS
SELECT
    s.launch_id,
    s.flight_number,
    s.mission_name,
    CAST(strftime(s.launch_date, '%Y%m%d') AS INTEGER) AS date_key,
    s.rocket_id,
    CAST(COALESCE(s.launch_success, FALSE) AS INTEGER) AS success_flag
FROM stg_launches s;</code></pre></div><p>At this point, you have something you can show: a fact table with keys, dimensions you can join, and a date table that makes time rollups boring in a good way.</p><p><strong>Sanity-check queries</strong> (they also feel good in a portfolio walkthrough):</p><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;sql&quot;,&quot;nodeId&quot;:&quot;c76dc94f-00a8-44c1-bb22-3994d3df2a39&quot;}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-sql">-- Launches per month in this 20-row sample
SELECT d.year_nbr, d.month_nbr, COUNT(*) AS launches
FROM fct_launches f
JOIN dim_date d ON f.date_key = d.date_key
GROUP BY 1, 2
ORDER BY 1, 2;

-- Success rate by rocket name
SELECT r.rocket_name,
       SUM(f.success_flag) AS successes,
       COUNT(*) AS launches
FROM fct_launches f
JOIN dim_rocket r ON f.rocket_id = r.rocket_id
GROUP BY 1
ORDER BY launches DESC;</code></pre></div><div><hr></div><h2>SCD: the part where dimensions refuse to sit still</h2><p>Facts are jealous of attention, but dimensions do the quiet damage. A rocket <strong>name</strong> in a catalogue can change. A product <strong>category</strong> can move. A customer <strong>tier</strong> can be renamed for marketing reasons.</p><p>The API gives you <strong>today&#8217;s</strong> label. In a real warehouse, you often need a policy: do we overwrite, do we keep history, do we keep one &#8220;previous&#8221; value?</p><p>We will use <strong>one rocket</strong> as the story &#8212; Falcon 9 in the API &#8212; because it shows up in the sample, and everyone recognizes the name.</p><p><strong>Falcon 9</strong> <code>id</code> in the SpaceX API (stable id):</p><p><code>5e9d0d95eda69973a809d1ec</code></p><p>Imagine the business <strong>renames</strong> the rocket from Falcon 9 to Falcon 9 Block 5 on <strong>2026-03-25</strong>. The <strong>launch facts</strong> do not move. Only the <strong>dimension</strong> does. That is the whole point of SCD: <strong>the fact table stayed true when the launch happened. The label is a separate problem.</strong></p><div><hr></div><h2>SCD Type 1 &#8212; overwrite</h2><p><strong>Idea:</strong> one row per rocket. New value replaces the old value. <strong>History is lost.</strong> Fast, simple, and sometimes exactly what the business wants (&#8220;we only care what it says now&#8221;).</p><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;sql&quot;,&quot;nodeId&quot;:&quot;03f4b922-6af8-41ad-9fd0-3258bd776c83&quot;}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-sql">CREATE OR REPLACE TABLE dim_rocket_scd1 AS
SELECT * FROM dim_rocket;

UPDATE dim_rocket_scd1
SET rocket_name = 'Falcon 9 Block 5'
WHERE rocket_id = '5e9d0d95eda69973a809d1ec';</code></pre></div><p><strong>Interview line:</strong> &#8220;Type 1 is good when the business only cares about the <strong>current</strong> label.&#8221;</p><div><hr></div><h2>SCD Type 2 &#8212; full history</h2><p><strong>Idea:</strong> multiple rows for the same natural key (<code>rocket_id</code>). You track <strong>valid_from</strong>, <strong>valid_to</strong>, and <strong>is_current</strong> (or equivalent). Facts join to the version that matches the <strong>launch date</strong>.</p><p>This is the pattern people draw on the whiteboard when someone says &#8220;as-of reporting.&#8221;</p><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;sql&quot;,&quot;nodeId&quot;:&quot;38235227-b387-4cf1-81eb-30c5826c5be3&quot;}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-sql">CREATE OR REPLACE TABLE dim_rocket_scd2 (
    rocket_sk BIGINT PRIMARY KEY,
    rocket_id VARCHAR NOT NULL,
    rocket_name VARCHAR NOT NULL,
    rocket_type VARCHAR,
    valid_from DATE NOT NULL,
    valid_to DATE NOT NULL,
    is_current BOOLEAN NOT NULL
);

INSERT INTO dim_rocket_scd2
SELECT
    ROW_NUMBER() OVER (ORDER BY rocket_id) AS rocket_sk,
    rocket_id,
    rocket_name,
    rocket_type,
    DATE '2010-01-01' AS valid_from,
    DATE '9999-12-31' AS valid_to,
    TRUE AS is_current
FROM dim_rocket;

-- Close the old row and open a new version for the rename
UPDATE dim_rocket_scd2
SET valid_to = DATE '2026-03-24', is_current = FALSE
WHERE rocket_id = '5e9d0d95eda69973a809d1ec'
  AND is_current = TRUE;

INSERT INTO dim_rocket_scd2 (rocket_sk, rocket_id, rocket_name, rocket_type, valid_from, valid_to, is_current)
SELECT
    COALESCE((SELECT MAX(rocket_sk) FROM dim_rocket_scd2), 0) + 1,
    '5e9d0d95eda69973a809d1ec',
    'Falcon 9 Block 5',
    rocket_type,
    DATE '2026-03-25',
    DATE '9999-12-31',
    TRUE
FROM dim_rocket
WHERE rocket_id = '5e9d0d95eda69973a809d1ec'
LIMIT 1;</code></pre></div><p><strong>Interview line:</strong> &#8220;Type 2 is the default answer when you must report <strong>as-of</strong> history.&#8221;</p><div><hr></div><h2>SCD Type 3 &#8212; current + previous columns</h2><p><strong>Idea:</strong> keep <strong>one row</strong> per dimension key, add <strong>previous</strong> and <strong>current</strong> columns. You only store <strong>one step</strong> of history. That sounds limited &#8212; it is &#8212; but it is easy to explain and sometimes enough for a dashboard footnote (&#8220;what did we call it last quarter?&#8221;).</p><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;sql&quot;,&quot;nodeId&quot;:&quot;fbcf4f12-03a1-4f91-8c63-f59306d5193c&quot;}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-sql">CREATE OR REPLACE TABLE dim_rocket_scd3 (
    rocket_id VARCHAR PRIMARY KEY,
    rocket_name_current VARCHAR NOT NULL,
    rocket_name_previous VARCHAR,
    name_change_effective_date DATE
);

INSERT INTO dim_rocket_scd3
SELECT
    rocket_id,
    rocket_name,
    NULL,
    NULL
FROM dim_rocket;

UPDATE dim_rocket_scd3
SET rocket_name_previous = rocket_name_current,
    rocket_name_current = 'Falcon 9 Block 5',
    name_change_effective_date = DATE '2026-03-25'
WHERE rocket_id = '5e9d0d95eda69973a809d1ec';</code></pre></div><p><strong>Interview line:</strong> &#8220;Type 3 is rare. It is useful when you only need <strong>one</strong> prior value, not full history.&#8221;</p><div><hr></div><h2>Quick comparison</h2><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!tzby!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F29ff6295-fb36-40fc-8f1b-cdd40338da2f_649x215.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!tzby!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F29ff6295-fb36-40fc-8f1b-cdd40338da2f_649x215.png 424w, https://substackcdn.com/image/fetch/$s_!tzby!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F29ff6295-fb36-40fc-8f1b-cdd40338da2f_649x215.png 848w, https://substackcdn.com/image/fetch/$s_!tzby!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F29ff6295-fb36-40fc-8f1b-cdd40338da2f_649x215.png 1272w, https://substackcdn.com/image/fetch/$s_!tzby!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F29ff6295-fb36-40fc-8f1b-cdd40338da2f_649x215.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!tzby!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F29ff6295-fb36-40fc-8f1b-cdd40338da2f_649x215.png" width="649" height="215" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/29ff6295-fb36-40fc-8f1b-cdd40338da2f_649x215.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:215,&quot;width&quot;:649,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:31383,&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://blog.surfalytics.com/i/192144561?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F29ff6295-fb36-40fc-8f1b-cdd40338da2f_649x215.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_!tzby!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F29ff6295-fb36-40fc-8f1b-cdd40338da2f_649x215.png 424w, https://substackcdn.com/image/fetch/$s_!tzby!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F29ff6295-fb36-40fc-8f1b-cdd40338da2f_649x215.png 848w, https://substackcdn.com/image/fetch/$s_!tzby!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F29ff6295-fb36-40fc-8f1b-cdd40338da2f_649x215.png 1272w, https://substackcdn.com/image/fetch/$s_!tzby!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F29ff6295-fb36-40fc-8f1b-cdd40338da2f_649x215.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><div><hr></div><h2>What I hope you take away</h2><ol><li><p><strong>Start from questions and grain.</strong> If that part is clear, the rest is mostly typing.</p></li><li><p>A <strong>bus matrix</strong> is a small tool that saves you from building twelve different &#8220;rocket&#8221; concepts.</p></li><li><p><strong>Logical design</strong> (entities, relationships, attributes) is the bridge between the matrix and <strong>dim_ / fct_</strong>. Skip it only when the team already shares the same picture.</p></li><li><p><strong>DuckDB + httpfs</strong> is a nice way to pull JSON from an API and get back to SQL fast.</p></li><li><p><strong>SCD</strong> is not magic. It is a <strong>policy</strong> for how dimension changes meet historical facts &#8212; Type 1, 2, and 3 are the usual interview set for a reason.</p></li></ol><p>If you run the scripts in this post, you will have more than slides. You will have a file you can open, query, and break on purpose. That is still one of the best ways to learn.</p><div><hr></div><h2>Resources</h2><ul><li><p><a href="https://github.com/r-spacex/SpaceX-API">SpaceX API</a> &#8212; community API for the data we use.</p></li><li><p><a href="https://duckdb.org/docs/extensions/httpfs">DuckDB httpfs</a> &#8212; reading remote files.</p></li><li><p><em>The Data Warehouse Toolkit</em> &#8212; Ralph Kimball and Margy Ross &#8212; a deeper reference on dimensional modelling.</p></li></ul><p></p>]]></content:encoded></item><item><title><![CDATA[Free course - Claude Code 101 for Data Professionals]]></title><description><![CDATA[Why Every Data Professional Should Know About AI Coding Agents]]></description><link>https://blog.surfalytics.com/p/free-course-claude-code-101-for-data</link><guid isPermaLink="false">https://blog.surfalytics.com/p/free-course-claude-code-101-for-data</guid><dc:creator><![CDATA[Dmitry Anoshin]]></dc:creator><pubDate>Mon, 16 Feb 2026 00:36:10 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!-yr_!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F68ee44a0-5545-4390-8459-d5ba97cb15a4_2760x974.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>If you&#8217;ve been anywhere near the data engineering or analytics space lately, you&#8217;ve heard the buzz: AI coding assistants are changing how we work. GitHub Copilot, Cursor, ChatGPT &#8212; they&#8217;re everywhere. But there&#8217;s one tool that has been quietly gaining serious traction among engineers and analysts, and it works differently from all of them.</p><p>It&#8217;s called <strong>Claude Code</strong>, and it runs right in your terminal.</p><h2>What is Claude Code?</h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!-yr_!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F68ee44a0-5545-4390-8459-d5ba97cb15a4_2760x974.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!-yr_!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F68ee44a0-5545-4390-8459-d5ba97cb15a4_2760x974.png 424w, https://substackcdn.com/image/fetch/$s_!-yr_!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F68ee44a0-5545-4390-8459-d5ba97cb15a4_2760x974.png 848w, https://substackcdn.com/image/fetch/$s_!-yr_!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F68ee44a0-5545-4390-8459-d5ba97cb15a4_2760x974.png 1272w, https://substackcdn.com/image/fetch/$s_!-yr_!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F68ee44a0-5545-4390-8459-d5ba97cb15a4_2760x974.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!-yr_!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F68ee44a0-5545-4390-8459-d5ba97cb15a4_2760x974.png" width="1456" height="514" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/68ee44a0-5545-4390-8459-d5ba97cb15a4_2760x974.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:514,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:368480,&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://blog.surfalytics.com/i/188065796?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F68ee44a0-5545-4390-8459-d5ba97cb15a4_2760x974.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_!-yr_!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F68ee44a0-5545-4390-8459-d5ba97cb15a4_2760x974.png 424w, https://substackcdn.com/image/fetch/$s_!-yr_!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F68ee44a0-5545-4390-8459-d5ba97cb15a4_2760x974.png 848w, https://substackcdn.com/image/fetch/$s_!-yr_!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F68ee44a0-5545-4390-8459-d5ba97cb15a4_2760x974.png 1272w, https://substackcdn.com/image/fetch/$s_!-yr_!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F68ee44a0-5545-4390-8459-d5ba97cb15a4_2760x974.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>Claude Code is an AI coding agent built by <a href="https://www.anthropic.com/">Anthropic</a>, the company behind the Claude family of large language models. Unlike a chatbot that gives you code snippets to copy-paste, or an autocomplete tool that guesses your next line, Claude Code has <strong>full access to your project</strong>. It can read your files, edit them, run commands, work with git, search the internet, and manage entire projects &#8212; all from the terminal.</p><p>Think of it as a very capable junior developer sitting next to you, except it never gets tired and it can process your entire codebase in seconds.</p><pre><code># Install Claude Code
curl -fsSL https://claude.ai/install.sh | bash

# Start it in your project
cd my-project
claude</code></pre><p>That&#8217;s it. You&#8217;re now talking to an AI agent that understands your project structure, your code, your dependencies &#8212; everything.</p><h2>Why is it so popular?</h2><p>Three reasons:</p><p><strong>1. It actually does things, not just suggests them.</strong> When you tell Claude Code to &#8220;add error handling to the data pipeline,&#8221; it reads the relevant files, writes the code, and can even run the tests to verify it works. Other tools give you a code block to copy. Claude Code makes the changes directly.</p><p><strong>2. It fits into how data professionals already work.</strong> We live in terminals. We run Python scripts, SQL queries, dbt commands, Spark jobs. Claude Code meets us where we are &#8212; no new IDE to learn, no browser tab to switch to. Just your terminal.</p><p><strong>3. The quality is genuinely good.</strong> Anthropic&#8217;s Claude models consistently rank at the top of coding benchmarks (SWE-bench). Claude 4 Opus solves ~72% of real-world GitHub issues autonomously. That&#8217;s not a toy &#8212; that&#8217;s a tool you can rely on for production work.</p><h2>A Quick Primer: How LLMs Power All of This</h2><p>To understand why Claude Code works the way it does, it helps to know the basics of what&#8217;s under the hood.</p><p><strong>Large Language Models (LLMs)</strong> are programs trained on billions of texts. They learn patterns &#8212; which words follow which, how code is structured, what logic connects ideas. When you ask a question, the model doesn&#8217;t look up an answer in a database. It <strong>generates text token by token</strong>, predicting the most likely next word based on everything it&#8217;s learned.</p><p>A few key concepts:</p><ul><li><p><strong>Tokens</strong> &#8212; LLMs work with chunks of text called tokens. &#8220;Hello&#8221; is 1 token. &#8220;authentication&#8221; is 3-4 tokens. Every model has a context limit &#8212; the max tokens it can process at once.</p></li><li><p><strong>Context window</strong> &#8212; Claude&#8217;s context window is 200K tokens (~500 pages). That&#8217;s enough to hold your entire project in &#8220;memory&#8221; during a conversation.</p></li><li><p><strong>The agentic loop</strong> &#8212; Claude Code doesn&#8217;t just answer once and stop. It works in a cycle: gather context (read files), take action (edit code, run commands), verify results (run tests), and repeat until the task is done.</p></li></ul><p>This is what makes Claude Code an <strong>agent</strong> rather than just a chatbot. It autonomously decides what to do next, uses tools, and iterates on its own work.</p><h2>What can you actually do with it?</h2><p>Here are some real scenarios from my daily work:</p><p><strong>Analyze data:</strong></p><blockquote><p>&gt; Download Microsoft stock data for the last year.</p><p>  Plot price with MA50 and MA200. Add trading volume below.</p><p>  Mark key events on the chart.</p></blockquote><p>Claude Code creates the Python script, installs dependencies, generates the chart, and saves it as a PNG. In about 2 minutes.</p><p><strong>Build an API:</strong></p><blockquote><p>&gt; Create a REST API on FastAPI for managing notes.</p><p>  CRUD operations, SQLite via SQLAlchemy, Dockerfile included.</p></blockquote><p><strong>Debug errors:</strong></p><blockquote><p>&gt; I get &#8220;TypeError: cannot unpack non-iterable NoneType object&#8221;</p><p>  in processor.py line 45. Fix it.</p></blockquote><p>It reads the file, finds the bug, fixes it, and runs the tests. If the tests fail, it fixes those too.</p><p><strong>Work with git:</strong></p><blockquote><p>&gt; Look at what changed, commit with a good description, and create a PR.</p></blockquote><p><strong>Run multiple agents in parallel:</strong></p><blockquote><p>&gt; Create a team: one agent handles the backend, one writes tests,</p><p>  one builds documentation. Coordinate through a shared task list.</p></blockquote><p>Yes, you can run an <strong>army of agents</strong> &#8212; multiple Claude Code instances working simultaneously on different parts of your project. This is where things get really powerful.</p><h2>What I built: Claude Code 101 for Data Professionals</h2><p>I&#8217;ve put together a <strong>free course</strong> that covers everything from LLM basics to running coordinated agent teams. It&#8217;s written specifically for data engineers, analysts, and BI developers &#8212; not web developers, not mobile developers, us.</p><p><strong>10 modules, from zero to advanced. </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_!LSNT!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5b4483ce-5fd3-438c-b670-66d3109a7f73_2184x1710.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!LSNT!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5b4483ce-5fd3-438c-b670-66d3109a7f73_2184x1710.png 424w, https://substackcdn.com/image/fetch/$s_!LSNT!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5b4483ce-5fd3-438c-b670-66d3109a7f73_2184x1710.png 848w, https://substackcdn.com/image/fetch/$s_!LSNT!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5b4483ce-5fd3-438c-b670-66d3109a7f73_2184x1710.png 1272w, https://substackcdn.com/image/fetch/$s_!LSNT!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5b4483ce-5fd3-438c-b670-66d3109a7f73_2184x1710.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!LSNT!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5b4483ce-5fd3-438c-b670-66d3109a7f73_2184x1710.png" width="1456" height="1140" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/5b4483ce-5fd3-438c-b670-66d3109a7f73_2184x1710.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1140,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:548951,&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://blog.surfalytics.com/i/188065796?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5b4483ce-5fd3-438c-b670-66d3109a7f73_2184x1710.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_!LSNT!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5b4483ce-5fd3-438c-b670-66d3109a7f73_2184x1710.png 424w, https://substackcdn.com/image/fetch/$s_!LSNT!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5b4483ce-5fd3-438c-b670-66d3109a7f73_2184x1710.png 848w, https://substackcdn.com/image/fetch/$s_!LSNT!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5b4483ce-5fd3-438c-b670-66d3109a7f73_2184x1710.png 1272w, https://substackcdn.com/image/fetch/$s_!LSNT!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5b4483ce-5fd3-438c-b670-66d3109a7f73_2184x1710.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><strong>What you&#8217;ll learn</strong></p><ol><li><p>LLM Fundamentals - How models work, tokens, context windows, the Claude family</p></li><li><p>What is Claude Code - Installation, authentication, commands, IDE setup</p></li><li><p>Capabilities - The agentic loop, multimodal input, headless automation</p></li><li><p>Hands-on: Stock Analysis - Build a real project step by step</p></li><li><p>More Examples - 9 practical tasks: scrapers, APIs, bots, testing, docs</p></li><li><p>Code Quality - Model benchmarks, quality checklists, when not to trust AI</p></li><li><p>Agent Army - Multi-agent orchestration, Agent Teams, git worktrees, tmux</p></li><li><p>MCP &amp; Extensions - Connect to GitHub, Sentry, PostgreSQL, Slack via MCP</p></li><li><p>Best Practices - Context management, prompting strategies, scaling patterns</p></li><li><p>Other Models - OpenRouter, Ollama, LiteLLM, Cline &amp; Kilo Code</p></li></ol><p><strong>The course is free on GitHub: </strong><a href="https://github.com/surfalytics/ClaudeCode101">github.com/surfalytics/ClaudeCode101</a></p><p>Each module is a self-contained markdown file with code examples, tables, and practical exercises. Start from Module 01 or jump to whatever interests you most.</p><h2>Want to go deeper?</h2><p>Here are some other great (also free) resources:</p><ul><li><p><a href="https://www.deeplearning.ai/short-courses/claude-code-a-highly-agentic-coding-assistant/">Claude Code: A Highly Agentic Coding Assistant</a> &#8212; DeepLearning.AI + Anthropic, ~2 hours</p></li><li><p><a href="https://anthropic.skilljar.com/claude-code-in-action">Claude Code in Action</a> &#8212; Official Anthropic course</p></li><li><p><a href="https://www.coursera.org/learn/claude-code">Claude Code on Coursera</a> &#8212; Vanderbilt University, ~5 hours</p></li><li><p><a href="https://ccforeveryone.com/">Claude Code for Everyone</a> &#8212; Community course</p></li></ul><h2>Getting started</h2><p>If you want to try Claude Code right now:</p><pre><code># 1. Install

curl -fsSL https://claude.ai/install.sh | bash

# 2. Navigate to any project

cd your-project

# 3. Start Claude Code

claude

# 4. Ask it anything

&gt; Explain what this project does and suggest improvements.</code></pre><p>You&#8217;ll need either an <a href="https://console.anthropic.com/">Anthropic API key</a> or a <a href="https://claude.ai/pricing">Claude Pro/Max subscription</a>. The Pro plan starts at $20/month. </p><div class="pullquote"><p>In module 10 I am sharing the option to use Claude Code with free models.</p></div><p>The future of data work isn&#8217;t about writing every line by hand &#8212; it&#8217;s about knowing how to direct AI agents effectively. The sooner you start building that muscle, the better.</p><p>You can use Claude Code in CLI or in IDE such as VS Code. If you are new, use with VSCode, if you are pro, feel free to run CLI only.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!DqbT!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2b0a95f9-1418-48d9-8535-275c618f7bc6_1823x1084.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!DqbT!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2b0a95f9-1418-48d9-8535-275c618f7bc6_1823x1084.png 424w, https://substackcdn.com/image/fetch/$s_!DqbT!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2b0a95f9-1418-48d9-8535-275c618f7bc6_1823x1084.png 848w, https://substackcdn.com/image/fetch/$s_!DqbT!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2b0a95f9-1418-48d9-8535-275c618f7bc6_1823x1084.png 1272w, https://substackcdn.com/image/fetch/$s_!DqbT!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2b0a95f9-1418-48d9-8535-275c618f7bc6_1823x1084.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!DqbT!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2b0a95f9-1418-48d9-8535-275c618f7bc6_1823x1084.png" width="724" height="430.6208791208791" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/2b0a95f9-1418-48d9-8535-275c618f7bc6_1823x1084.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:866,&quot;width&quot;:1456,&quot;resizeWidth&quot;:724,&quot;bytes&quot;:187887,&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://blog.surfalytics.com/i/188065796?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2b0a95f9-1418-48d9-8535-275c618f7bc6_1823x1084.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_!DqbT!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2b0a95f9-1418-48d9-8535-275c618f7bc6_1823x1084.png 424w, https://substackcdn.com/image/fetch/$s_!DqbT!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2b0a95f9-1418-48d9-8535-275c618f7bc6_1823x1084.png 848w, https://substackcdn.com/image/fetch/$s_!DqbT!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2b0a95f9-1418-48d9-8535-275c618f7bc6_1823x1084.png 1272w, https://substackcdn.com/image/fetch/$s_!DqbT!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2b0a95f9-1418-48d9-8535-275c618f7bc6_1823x1084.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><p><em>Connect with me on <a href="https://www.linkedin.com/in/dmitryanoshin/">LinkedIn</a> or visit <a href="https://surfalytics.com">surfalytics.com</a> for more data engineering content.</em></p><h3></h3>]]></content:encoded></item><item><title><![CDATA[Fleet of AI Agents Built My Azure Data Platform]]></title><description><![CDATA[Lessons from giving Claude Code agent teams full control over my Azure subscription]]></description><link>https://blog.surfalytics.com/p/fleet-of-ai-agents-built-my-azure</link><guid isPermaLink="false">https://blog.surfalytics.com/p/fleet-of-ai-agents-built-my-azure</guid><dc:creator><![CDATA[Dmitry Anoshin]]></dc:creator><pubDate>Sun, 08 Feb 2026 03:49:08 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/9f83393e-f884-4ff8-9d2b-4e4e41969159_1024x1024.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h2>The Age of Agent Factories</h2><p>We are entering a new era. Not just AI assistants that answer questions. Not just copilots that suggest code. We are talking about <strong>teams of AI agents</strong> that plan, split work, and build things in parallel.</p><p>Think about it. A year ago, we had one AI chat window. Today, we have agent factories.</p><p>Here is what the landscape looks like 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_!oY18!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd6946120-5692-4149-b068-8bd866fafad6_1272x1152.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!oY18!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd6946120-5692-4149-b068-8bd866fafad6_1272x1152.png 424w, https://substackcdn.com/image/fetch/$s_!oY18!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd6946120-5692-4149-b068-8bd866fafad6_1272x1152.png 848w, https://substackcdn.com/image/fetch/$s_!oY18!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd6946120-5692-4149-b068-8bd866fafad6_1272x1152.png 1272w, https://substackcdn.com/image/fetch/$s_!oY18!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd6946120-5692-4149-b068-8bd866fafad6_1272x1152.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!oY18!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd6946120-5692-4149-b068-8bd866fafad6_1272x1152.png" width="1272" height="1152" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d6946120-5692-4149-b068-8bd866fafad6_1272x1152.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1152,&quot;width&quot;:1272,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:246360,&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://blog.surfalytics.com/i/187248234?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd6946120-5692-4149-b068-8bd866fafad6_1272x1152.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_!oY18!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd6946120-5692-4149-b068-8bd866fafad6_1272x1152.png 424w, https://substackcdn.com/image/fetch/$s_!oY18!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd6946120-5692-4149-b068-8bd866fafad6_1272x1152.png 848w, https://substackcdn.com/image/fetch/$s_!oY18!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd6946120-5692-4149-b068-8bd866fafad6_1272x1152.png 1272w, https://substackcdn.com/image/fetch/$s_!oY18!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd6946120-5692-4149-b068-8bd866fafad6_1272x1152.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>The pattern is clear. Big vendors are not just building better chatbots. They are building <strong>factories of agents</strong>. One agent plans the work. Others execute. Some review. All of them talk to each other.</p><p>And the open-source community is catching up. Tools like <a href="https://dlorenc.medium.com/a-gentle-introduction-to-multiclaude-36491514ba89">Multi Claude</a> and <a href="https://steve-yegge.medium.com/welcome-to-gas-town-4f25ee16dd04">Gas Town</a> let you run your own fleet of agents right now.</p><p>This is not the future. This is February 2026.</p><p>I decided to test this with a real project. Not a toy. Not &#8220;build me a todo app.&#8221; I wanted to see what happens when you give agent teams a real Data Engineering infrastructure task.</p><h2>The Idea: Build an Azure Data Warehouse With AI Agents</h2><p>I run a project called <a href="https://surfalytics.com/">Surfalytics</a> where I teach data engineering. I just finished a 2-hour session about Azure reference architectures and building solutions with and without agents. The recording didn&#8217;t work out, so I decided to do the exercise myself and share the results. </p><div><hr></div><p>The idea was simple. Build a complete Azure Data Warehouse environment. 100% delegated to Claude Code Agent Teams. </p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!F_iZ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F02615926-ce2b-49a9-9513-a935e33f2157_1518x738.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!F_iZ!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F02615926-ce2b-49a9-9513-a935e33f2157_1518x738.png 424w, https://substackcdn.com/image/fetch/$s_!F_iZ!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F02615926-ce2b-49a9-9513-a935e33f2157_1518x738.png 848w, https://substackcdn.com/image/fetch/$s_!F_iZ!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F02615926-ce2b-49a9-9513-a935e33f2157_1518x738.png 1272w, https://substackcdn.com/image/fetch/$s_!F_iZ!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F02615926-ce2b-49a9-9513-a935e33f2157_1518x738.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!F_iZ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F02615926-ce2b-49a9-9513-a935e33f2157_1518x738.png" width="1456" height="708" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/02615926-ce2b-49a9-9513-a935e33f2157_1518x738.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:708,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:112503,&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://blog.surfalytics.com/i/187248234?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F02615926-ce2b-49a9-9513-a935e33f2157_1518x738.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_!F_iZ!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F02615926-ce2b-49a9-9513-a935e33f2157_1518x738.png 424w, https://substackcdn.com/image/fetch/$s_!F_iZ!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F02615926-ce2b-49a9-9513-a935e33f2157_1518x738.png 848w, https://substackcdn.com/image/fetch/$s_!F_iZ!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F02615926-ce2b-49a9-9513-a935e33f2157_1518x738.png 1272w, https://substackcdn.com/image/fetch/$s_!F_iZ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F02615926-ce2b-49a9-9513-a935e33f2157_1518x738.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></p><p>My role: give the prompt and watch.</p><p>Here is what I asked for:</p><blockquote><p>I want to use the team to build a kind of Azure Data Warehouse using:</p><ul><li><p>Azure SQL Server as my source database</p></li><li><p>Azure CosmosDB as my source NoSQL database</p></li><li><p>Azure Postgres as my data warehouse</p></li><li><p>Azure Data Factory to load data from sources to Postgres (destination)</p></li><li><p>Azure DevOps Repos for the code</p></li></ul><p>You can start from a new resource group <code>rg-surfalytics-ai-agents</code></p><p>and create all resources. Make sure they are in one Region.</p><p>You can generate sample data in SQL Server (OLTP) and Documents for CosmosDB.</p><p>We did az (Azure CLI) and it is logged into the Azure Subscription.</p><p>You can use team of agents to split the work and make sure we have a working solution in Azure.</p></blockquote><p>That&#8217;s it. A napkin-level description. No detailed spec. No architecture diagram. No step-by-step plan.</p><p>Let&#8217;s see what happened.</p><div><hr></div><h2>Azure Reference Architecture</h2><p>Before spending millions of tokens, it is worth checking A<a href="https://learn.microsoft.com/en-us/azure/architecture/browse/?azure_categories=analytics">zure Reference Architectures</a> to get an idea of typical analytics solution design on Azure</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!DoX1!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1ed56cdd-51af-4925-96db-0da07df2e246_1792x1727.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!DoX1!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1ed56cdd-51af-4925-96db-0da07df2e246_1792x1727.png 424w, https://substackcdn.com/image/fetch/$s_!DoX1!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1ed56cdd-51af-4925-96db-0da07df2e246_1792x1727.png 848w, https://substackcdn.com/image/fetch/$s_!DoX1!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1ed56cdd-51af-4925-96db-0da07df2e246_1792x1727.png 1272w, https://substackcdn.com/image/fetch/$s_!DoX1!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1ed56cdd-51af-4925-96db-0da07df2e246_1792x1727.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!DoX1!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1ed56cdd-51af-4925-96db-0da07df2e246_1792x1727.png" width="1456" height="1403" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/1ed56cdd-51af-4925-96db-0da07df2e246_1792x1727.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1403,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:579678,&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://blog.surfalytics.com/i/187248234?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1ed56cdd-51af-4925-96db-0da07df2e246_1792x1727.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_!DoX1!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1ed56cdd-51af-4925-96db-0da07df2e246_1792x1727.png 424w, https://substackcdn.com/image/fetch/$s_!DoX1!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1ed56cdd-51af-4925-96db-0da07df2e246_1792x1727.png 848w, https://substackcdn.com/image/fetch/$s_!DoX1!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1ed56cdd-51af-4925-96db-0da07df2e246_1792x1727.png 1272w, https://substackcdn.com/image/fetch/$s_!DoX1!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1ed56cdd-51af-4925-96db-0da07df2e246_1792x1727.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>Obviously, it is still a standard System Design framework, but full of Azure icons. Typical use cases are:</p><ul><li><p>Data Warehouse</p></li><li><p>Streaming Analytics</p></li><li><p>Lakehouse</p></li><li><p>BI Dashboards</p></li><li><p>ML solutions</p></li><li><p>Generative Apps</p></li><li><p>etc.</p></li></ul><p>Obviously, AI can write code for you, but it is not good at judgment, and that&#8217;s why the most important skill now is System Design. You can&#8217;t fake it, so invest your time.</p><div class="digest-post-embed" data-attrs="{&quot;nodeId&quot;:&quot;a8bd65f7-fc42-42e3-ae47-4e1c621e0fb6&quot;,&quot;caption&quot;:&quot;The 45-Minute Challenge&quot;,&quot;cta&quot;:&quot;Read full story&quot;,&quot;showBylines&quot;:true,&quot;size&quot;:&quot;lg&quot;,&quot;isEditorNode&quot;:true,&quot;title&quot;:&quot;&#127919;Ultimate cheatsheet for Data Engineering System Design interview. &quot;,&quot;publishedBylines&quot;:[{&quot;id&quot;:176866058,&quot;name&quot;:&quot;Dmitry Anoshin&quot;,&quot;bio&quot;:&quot;Surfalytics helps you to engineer your data career with focus on soft, hard and job interview skills.&quot;,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/2ecac0cb-80bb-49c6-b9a8-f2b9e8b15bca_1684x1684.jpeg&quot;,&quot;is_guest&quot;:false,&quot;bestseller_tier&quot;:null}],&quot;post_date&quot;:&quot;2025-10-06T07:02:46.452Z&quot;,&quot;cover_image&quot;:&quot;https://substackcdn.com/image/fetch/$s_!kTZi!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcd741a6c-a6f7-49c3-baaa-9081d8f384a8_1672x1102.heic&quot;,&quot;cover_image_alt&quot;:null,&quot;canonical_url&quot;:&quot;https://blog.surfalytics.com/p/ultimate-cheatsheet-for-data-engineering&quot;,&quot;section_name&quot;:null,&quot;video_upload_id&quot;:null,&quot;id&quot;:175400466,&quot;type&quot;:&quot;newsletter&quot;,&quot;reaction_count&quot;:54,&quot;comment_count&quot;:2,&quot;publication_id&quot;:2051160,&quot;publication_name&quot;:&quot;Data Engineering &amp; Analytics Systems Design&quot;,&quot;publication_logo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!0hZW!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd233226f-0d04-4676-8097-da497d9b1c00_1280x1280.png&quot;,&quot;belowTheFold&quot;:true,&quot;youtube_url&quot;:null,&quot;show_links&quot;:null,&quot;feed_url&quot;:null}"></div><p>In addition, you can check our self-paced projects in the Surfalytics repo https://github.com/surfalytics/data-projects</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!rtEZ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F34f932b6-b320-48e3-9ec9-3f520cda71c3_515x637.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!rtEZ!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F34f932b6-b320-48e3-9ec9-3f520cda71c3_515x637.png 424w, https://substackcdn.com/image/fetch/$s_!rtEZ!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F34f932b6-b320-48e3-9ec9-3f520cda71c3_515x637.png 848w, https://substackcdn.com/image/fetch/$s_!rtEZ!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F34f932b6-b320-48e3-9ec9-3f520cda71c3_515x637.png 1272w, https://substackcdn.com/image/fetch/$s_!rtEZ!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F34f932b6-b320-48e3-9ec9-3f520cda71c3_515x637.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!rtEZ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F34f932b6-b320-48e3-9ec9-3f520cda71c3_515x637.png" width="515" height="637" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/34f932b6-b320-48e3-9ec9-3f520cda71c3_515x637.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:637,&quot;width&quot;:515,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:97152,&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://blog.surfalytics.com/i/187248234?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F34f932b6-b320-48e3-9ec9-3f520cda71c3_515x637.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_!rtEZ!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F34f932b6-b320-48e3-9ec9-3f520cda71c3_515x637.png 424w, https://substackcdn.com/image/fetch/$s_!rtEZ!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F34f932b6-b320-48e3-9ec9-3f520cda71c3_515x637.png 848w, https://substackcdn.com/image/fetch/$s_!rtEZ!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F34f932b6-b320-48e3-9ec9-3f520cda71c3_515x637.png 1272w, https://substackcdn.com/image/fetch/$s_!rtEZ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F34f932b6-b320-48e3-9ec9-3f520cda71c3_515x637.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>How It Went: Agents at Work</h2><h3>Team Creation and Task Planning</h3><p>Claude Code created a team of 3 agents and broke the work into 6 tasks with dependencies:</p><pre><code>#1 Infrastructure &#9472;&#9472;&#8594; #2 SQL Data    &#9472;&#9472;&#9488;
                  &#9472;&#9472;&#8594; #3 CosmosDB Data &#9472;&#9472;&#8594; #5 ADF Pipelines &#9472;&#9472;&#8594; #6 DevOps + CI/CD
                  &#9472;&#9472;&#8594; #4 DWH Schema  &#9472;&#9472;&#9496;</code></pre><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!nuRR!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff9af6cc0-aa8c-49b6-ab61-14dd3c4cc058_1280x412.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!nuRR!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff9af6cc0-aa8c-49b6-ab61-14dd3c4cc058_1280x412.png 424w, https://substackcdn.com/image/fetch/$s_!nuRR!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff9af6cc0-aa8c-49b6-ab61-14dd3c4cc058_1280x412.png 848w, https://substackcdn.com/image/fetch/$s_!nuRR!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff9af6cc0-aa8c-49b6-ab61-14dd3c4cc058_1280x412.png 1272w, https://substackcdn.com/image/fetch/$s_!nuRR!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff9af6cc0-aa8c-49b6-ab61-14dd3c4cc058_1280x412.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!nuRR!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff9af6cc0-aa8c-49b6-ab61-14dd3c4cc058_1280x412.png" width="1280" height="412" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/f9af6cc0-aa8c-49b6-ab61-14dd3c4cc058_1280x412.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:412,&quot;width&quot;:1280,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:75594,&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://blog.surfalytics.com/i/187248234?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff9af6cc0-aa8c-49b6-ab61-14dd3c4cc058_1280x412.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_!nuRR!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff9af6cc0-aa8c-49b6-ab61-14dd3c4cc058_1280x412.png 424w, https://substackcdn.com/image/fetch/$s_!nuRR!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff9af6cc0-aa8c-49b6-ab61-14dd3c4cc058_1280x412.png 848w, https://substackcdn.com/image/fetch/$s_!nuRR!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff9af6cc0-aa8c-49b6-ab61-14dd3c4cc058_1280x412.png 1272w, https://substackcdn.com/image/fetch/$s_!nuRR!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff9af6cc0-aa8c-49b6-ab61-14dd3c4cc058_1280x412.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 lead agent coordinated everything. When the infra-agent finished task #1, the lead reassigned it to help with task #4 (warehouse schema) and later task #3 (CosmosDB data). Smart delegation.</p><h3>What the Agents Actually Built</h3><p>The whole session took <strong>4 hours 9 minutes</strong> of agent work time. </p><p>Here is what I got in Claude Code:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!YnK1!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F79b0167e-8010-4b13-b95f-599194d9cb2c_3192x1398.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!YnK1!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F79b0167e-8010-4b13-b95f-599194d9cb2c_3192x1398.png 424w, https://substackcdn.com/image/fetch/$s_!YnK1!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F79b0167e-8010-4b13-b95f-599194d9cb2c_3192x1398.png 848w, https://substackcdn.com/image/fetch/$s_!YnK1!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F79b0167e-8010-4b13-b95f-599194d9cb2c_3192x1398.png 1272w, https://substackcdn.com/image/fetch/$s_!YnK1!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F79b0167e-8010-4b13-b95f-599194d9cb2c_3192x1398.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!YnK1!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F79b0167e-8010-4b13-b95f-599194d9cb2c_3192x1398.png" width="1456" height="638" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/79b0167e-8010-4b13-b95f-599194d9cb2c_3192x1398.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;:1144152,&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://blog.surfalytics.com/i/187248234?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F79b0167e-8010-4b13-b95f-599194d9cb2c_3192x1398.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_!YnK1!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F79b0167e-8010-4b13-b95f-599194d9cb2c_3192x1398.png 424w, https://substackcdn.com/image/fetch/$s_!YnK1!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F79b0167e-8010-4b13-b95f-599194d9cb2c_3192x1398.png 848w, https://substackcdn.com/image/fetch/$s_!YnK1!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F79b0167e-8010-4b13-b95f-599194d9cb2c_3192x1398.png 1272w, https://substackcdn.com/image/fetch/$s_!YnK1!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F79b0167e-8010-4b13-b95f-599194d9cb2c_3192x1398.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 agents used <strong>only Azure CLI</strong> for everything. No Terraform. No ARM templates. No Portal clicks. Just <code>az</code> commands. And they didn&#8217;t need any MCP server or special plugins.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Y-Rb!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe81a84be-ece3-4ec8-a5dc-ccae2bd34169_2754x1546.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Y-Rb!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe81a84be-ece3-4ec8-a5dc-ccae2bd34169_2754x1546.png 424w, https://substackcdn.com/image/fetch/$s_!Y-Rb!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe81a84be-ece3-4ec8-a5dc-ccae2bd34169_2754x1546.png 848w, https://substackcdn.com/image/fetch/$s_!Y-Rb!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe81a84be-ece3-4ec8-a5dc-ccae2bd34169_2754x1546.png 1272w, https://substackcdn.com/image/fetch/$s_!Y-Rb!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe81a84be-ece3-4ec8-a5dc-ccae2bd34169_2754x1546.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Y-Rb!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe81a84be-ece3-4ec8-a5dc-ccae2bd34169_2754x1546.png" width="1456" height="817" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/e81a84be-ece3-4ec8-a5dc-ccae2bd34169_2754x1546.png&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;:406993,&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://blog.surfalytics.com/i/187248234?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe81a84be-ece3-4ec8-a5dc-ccae2bd34169_2754x1546.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!Y-Rb!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe81a84be-ece3-4ec8-a5dc-ccae2bd34169_2754x1546.png 424w, https://substackcdn.com/image/fetch/$s_!Y-Rb!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe81a84be-ece3-4ec8-a5dc-ccae2bd34169_2754x1546.png 848w, https://substackcdn.com/image/fetch/$s_!Y-Rb!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe81a84be-ece3-4ec8-a5dc-ccae2bd34169_2754x1546.png 1272w, https://substackcdn.com/image/fetch/$s_!Y-Rb!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe81a84be-ece3-4ec8-a5dc-ccae2bd34169_2754x1546.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">Resource Group with resources</figcaption></figure></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!RlCy!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F38844e98-f8d7-4375-bf2d-81495dcb2317_3622x950.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!RlCy!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F38844e98-f8d7-4375-bf2d-81495dcb2317_3622x950.png 424w, https://substackcdn.com/image/fetch/$s_!RlCy!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F38844e98-f8d7-4375-bf2d-81495dcb2317_3622x950.png 848w, https://substackcdn.com/image/fetch/$s_!RlCy!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F38844e98-f8d7-4375-bf2d-81495dcb2317_3622x950.png 1272w, https://substackcdn.com/image/fetch/$s_!RlCy!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F38844e98-f8d7-4375-bf2d-81495dcb2317_3622x950.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!RlCy!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F38844e98-f8d7-4375-bf2d-81495dcb2317_3622x950.png" width="1456" height="382" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/38844e98-f8d7-4375-bf2d-81495dcb2317_3622x950.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:382,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:359553,&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://blog.surfalytics.com/i/187248234?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F38844e98-f8d7-4375-bf2d-81495dcb2317_3622x950.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_!RlCy!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F38844e98-f8d7-4375-bf2d-81495dcb2317_3622x950.png 424w, https://substackcdn.com/image/fetch/$s_!RlCy!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F38844e98-f8d7-4375-bf2d-81495dcb2317_3622x950.png 848w, https://substackcdn.com/image/fetch/$s_!RlCy!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F38844e98-f8d7-4375-bf2d-81495dcb2317_3622x950.png 1272w, https://substackcdn.com/image/fetch/$s_!RlCy!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F38844e98-f8d7-4375-bf2d-81495dcb2317_3622x950.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">Azure Data Factory Pipelines</figcaption></figure></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!AdQh!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F91037464-7963-4e32-94d5-36fa9e915e61_2500x1476.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!AdQh!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F91037464-7963-4e32-94d5-36fa9e915e61_2500x1476.png 424w, https://substackcdn.com/image/fetch/$s_!AdQh!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F91037464-7963-4e32-94d5-36fa9e915e61_2500x1476.png 848w, https://substackcdn.com/image/fetch/$s_!AdQh!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F91037464-7963-4e32-94d5-36fa9e915e61_2500x1476.png 1272w, https://substackcdn.com/image/fetch/$s_!AdQh!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F91037464-7963-4e32-94d5-36fa9e915e61_2500x1476.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!AdQh!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F91037464-7963-4e32-94d5-36fa9e915e61_2500x1476.png" width="1456" height="860" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/91037464-7963-4e32-94d5-36fa9e915e61_2500x1476.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:860,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:539982,&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://blog.surfalytics.com/i/187248234?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F91037464-7963-4e32-94d5-36fa9e915e61_2500x1476.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_!AdQh!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F91037464-7963-4e32-94d5-36fa9e915e61_2500x1476.png 424w, https://substackcdn.com/image/fetch/$s_!AdQh!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F91037464-7963-4e32-94d5-36fa9e915e61_2500x1476.png 848w, https://substackcdn.com/image/fetch/$s_!AdQh!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F91037464-7963-4e32-94d5-36fa9e915e61_2500x1476.png 1272w, https://substackcdn.com/image/fetch/$s_!AdQh!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F91037464-7963-4e32-94d5-36fa9e915e61_2500x1476.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>Agents even started pipelines to validate the 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_!M9W-!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8bb8370b-03e1-4291-a812-4c834af32b1d_2776x1466.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!M9W-!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8bb8370b-03e1-4291-a812-4c834af32b1d_2776x1466.png 424w, https://substackcdn.com/image/fetch/$s_!M9W-!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8bb8370b-03e1-4291-a812-4c834af32b1d_2776x1466.png 848w, https://substackcdn.com/image/fetch/$s_!M9W-!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8bb8370b-03e1-4291-a812-4c834af32b1d_2776x1466.png 1272w, https://substackcdn.com/image/fetch/$s_!M9W-!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8bb8370b-03e1-4291-a812-4c834af32b1d_2776x1466.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!M9W-!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8bb8370b-03e1-4291-a812-4c834af32b1d_2776x1466.png" width="1456" height="769" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/8bb8370b-03e1-4291-a812-4c834af32b1d_2776x1466.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:769,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:537751,&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://blog.surfalytics.com/i/187248234?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8bb8370b-03e1-4291-a812-4c834af32b1d_2776x1466.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_!M9W-!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8bb8370b-03e1-4291-a812-4c834af32b1d_2776x1466.png 424w, https://substackcdn.com/image/fetch/$s_!M9W-!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8bb8370b-03e1-4291-a812-4c834af32b1d_2776x1466.png 848w, https://substackcdn.com/image/fetch/$s_!M9W-!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8bb8370b-03e1-4291-a812-4c834af32b1d_2776x1466.png 1272w, https://substackcdn.com/image/fetch/$s_!M9W-!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8bb8370b-03e1-4291-a812-4c834af32b1d_2776x1466.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">Azure Data Factory Monitoring Tab</figcaption></figure></div><p>I evaluated the work on a scale from 1 to 5, where 1 is very bad:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!1n0W!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F300f38e0-04be-4162-bacd-28a46b2d9944_1296x1032.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!1n0W!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F300f38e0-04be-4162-bacd-28a46b2d9944_1296x1032.png 424w, https://substackcdn.com/image/fetch/$s_!1n0W!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F300f38e0-04be-4162-bacd-28a46b2d9944_1296x1032.png 848w, https://substackcdn.com/image/fetch/$s_!1n0W!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F300f38e0-04be-4162-bacd-28a46b2d9944_1296x1032.png 1272w, https://substackcdn.com/image/fetch/$s_!1n0W!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F300f38e0-04be-4162-bacd-28a46b2d9944_1296x1032.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!1n0W!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F300f38e0-04be-4162-bacd-28a46b2d9944_1296x1032.png" width="1296" height="1032" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/300f38e0-04be-4162-bacd-28a46b2d9944_1296x1032.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1032,&quot;width&quot;:1296,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:180448,&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://blog.surfalytics.com/i/187248234?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F300f38e0-04be-4162-bacd-28a46b2d9944_1296x1032.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_!1n0W!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F300f38e0-04be-4162-bacd-28a46b2d9944_1296x1032.png 424w, https://substackcdn.com/image/fetch/$s_!1n0W!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F300f38e0-04be-4162-bacd-28a46b2d9944_1296x1032.png 848w, https://substackcdn.com/image/fetch/$s_!1n0W!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F300f38e0-04be-4162-bacd-28a46b2d9944_1296x1032.png 1272w, https://substackcdn.com/image/fetch/$s_!1n0W!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F300f38e0-04be-4162-bacd-28a46b2d9944_1296x1032.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>Now, we can go into details.</p><div><hr></div><h2>Where Things Broke: The Honest Review</h2><h3>Problem 1: Pipelines Didn&#8217;t Work</h3><p>When everything was finished, I opened Azure Data Factory. The pipelines were there. But they didn&#8217;t run.</p><p>The datasets were created as empty shells with no linked service references. The pipeline error was clear:</p><blockquote><p>The linked service referenced by the source data set is not found in the copy activity</p></blockquote><p>I asked the agents to fix it. They did. It took several rounds because of:</p><ul><li><p>Column name mismatches between the source and the warehouse</p></li><li><p>Missing source columns referenced in queries</p></li><li><p>Surrogate key alignment issues</p></li><li><p>Sequence reset problems after TRUNCATE</p></li></ul><p><strong>8 separate fixes</strong> before the master pipeline ran green:</p><pre><code>Master Pipeline &#8212; Succeeded (158s)
&#9484;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9516;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9516;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9488;
&#9474;            Activity             &#9474; Rows Read &#9474; Rows Written &#9474;
&#9500;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9532;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9532;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9508;
&#9474; CopyCustomersToDimCustomers     &#9474; 120       &#9474; 120          &#9474;
&#9474; CopyProductsToDimProducts       &#9474; 60        &#9474; 60           &#9474;
&#9474; CopyOrdersToFactOrders          &#9474; 1,668     &#9474; 1,668        &#9474;
&#9474; CopyProductReviewsToFactReviews &#9474; 250       &#9474; 250          &#9474;
&#9474; CopyWebEventsToFactWebEvents    &#9474; 600       &#9474; 600          &#9474;
&#9492;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9524;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9524;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9496;
Total: 2,698 rows loaded</code></pre><p><strong>Lesson:</strong> I didn&#8217;t mention testing in my prompt. The agents built things but didn&#8217;t validate that the end-to-end flow actually works. Always define success criteria upfront.</p><h3>Problem 2: Passwords in Plain Text</h3><p>All passwords ended up right in the pipeline code. Connection strings with plain text credentials.</p><p>I asked the agents to use Azure Key Vault. They created the Key Vault and stored all secrets. But they didn&#8217;t update the ADF linked services to read from Key Vault.</p><pre><code>Component: Azure Key Vault
Details: surfalytics-kv &#8212; 4 secrets stored
But: ADF still used hardcoded passwords</code></pre><p><strong>Lesson:</strong> My fault. I didn&#8217;t specify security requirements. The agents did exactly what I asked. Nothing more.</p><h3>Problem 3: Dimensional Modelling Was Bad</h3><p>This was the worst part.</p><p>CosmosDB had 3 collections. SQL Server had 4 tables. I expected some kind of dimensional model. What I got: 3 pipelines with simple COPY activities. No real transformations. No business logic. No proper fact-dimension relationships.</p><p>Even after I asked for watermark tables, incremental loading, and SCD Type 2, the results were weak:</p><ul><li><p>The agents added logging pipelines (not how I would do it)</p></li><li><p>For SCD they created INSERT/UPDATE blocks but labeled the INSERT as MERGE</p></li><li><p>The data flow DSL was created but the actual transformation logic was simplistic</p></li></ul><p><strong>Score for Dimensional Modelling: 1 out of 5.</strong> Even with hints and corrections, the agents couldn&#8217;t deliver what a data engineer with DWH experience would build.</p><h2>What I Added After the Initial Build</h2><p>After the first round, I asked for three more things:</p><h3>1. Watermark Table for Pipeline Logging</h3><p>The agents created a <code>pipeline_watermark</code> table that tracks every execution:</p><pre><code>CREATE TABLE IF NOT EXISTS warehouse.pipeline_watermark (
    watermark_id        SERIAL          PRIMARY KEY,
    pipeline_name       VARCHAR(200)    NOT NULL,
    activity_name       VARCHAR(200),
    source_system       VARCHAR(100),
    start_time          TIMESTAMP,
    end_time            TIMESTAMP,
    rows_read           BIGINT,
    rows_written        BIGINT,
    status              VARCHAR(50)
);</code></pre><p>After a full pipeline run, the watermark table showed:</p><pre><code>ID  Pipeline               Activity          Rows   Status
9   sql-to-postgres        CopyCustomers     120    Succeeded
10  sql-to-postgres        CopyProducts      60     Succeeded
11  sql-to-postgres        CopyOrders        1,668  Succeeded
13  cosmosdb-to-postgres   CopyReviews       250    Succeeded
14  cosmosdb-to-postgres   CopyWebEvents     600    Succeeded</code></pre><p>This took some back-and-forth. The first version had SQL syntax errors in the logging queries. But after a few fixes, it worked.</p><h3><strong>2. SCD Type 2 Data Flow</strong></h3><p>The agents created a Data Flow for Slowly Changing Dimensions on the <code>dim_customers</code> table. The idea was right:</p><ul><li><p>Stage incoming records</p></li><li><p>Compare with existing dimension using MD5 hash</p></li><li><p>Expire changed records (set <code>is_current = false</code>)</p></li><li><p>Insert new versions</p></li></ul><p>But the actual implementation was basic. A real data engineer would design this differently.</p><h3><strong>3. Daily Trigger</strong></h3><p>A schedule trigger running the master pipeline at 6:00 AM UTC every day. This one worked perfectly out of the box.</p><pre><code>Trigger: DailyWarehouseRefresh
Status: Started
Schedule: Every day at 6:00 AM UTC
Pipeline: master-pipeline</code></pre><div><hr></div><h2><strong>Lessons Learned</strong></h2><h3><strong>1. Prompt Engineering Is Everything</strong></h3><p>Look at my original prompt again. It was a napkin sketch. And that&#8217;s exactly what I got back: a napkin-level solution.</p><p>The infrastructure part was great because infrastructure is well-defined. &#8220;Create a SQL Server&#8221; has a clear outcome. But &#8220;build a dimensional model&#8221; is vague. The agents filled in the blanks with the simplest possible approach.</p><p><strong>What I should have done:</strong> Take my napkin prompt, feed it to an LLM, and ask for a detailed spec with:</p><ul><li><p>Exact table schemas for the warehouse</p></li><li><p>Transformation logic for each pipeline</p></li><li><p>Data quality rules</p></li><li><p>Testing criteria</p></li></ul><p>If I had spent 30 minutes on a proper spec, the result would have been completely different.</p><h3><strong>2. Always Define Success Criteria</strong></h3><p>I never said &#8220;make sure the pipelines actually run.&#8221; I never said &#8220;validate data lands in the warehouse.&#8221; I never said &#8220;test the end-to-end flow.&#8221;</p><p>The agents treated &#8220;create a pipeline&#8221; as success. They didn&#8217;t test if it works.</p><p><strong>Rule:</strong> Every task needs acceptance criteria. &#8220;Create ADF pipeline&#8221; is not enough. &#8220;Create ADF pipeline that copies 120 customers from SQL Server to dim_customers in PostgreSQL, verify row counts match&#8221; is what you need.</p><h3><strong>3. Security Is Not Automatic</strong></h3><p>AI agents will take the shortest path. If you don&#8217;t mention Key Vault, they will hardcode passwords. If you don&#8217;t mention RBAC, they will use admin accounts. If you don&#8217;t mention encryption, they won&#8217;t enable it.</p><p><strong>Rule:</strong> Always include security requirements in your prompt. Treat it as a first-class requirement, not an afterthought.</p><h3><strong>4. Infrastructure: Excellent. Business Logic: Weak.</strong></h3><p>The pattern was clear:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!isg_!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F738ffef8-d51b-4a3f-a323-9e3ada9eb539_652x261.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!isg_!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F738ffef8-d51b-4a3f-a323-9e3ada9eb539_652x261.png 424w, https://substackcdn.com/image/fetch/$s_!isg_!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F738ffef8-d51b-4a3f-a323-9e3ada9eb539_652x261.png 848w, https://substackcdn.com/image/fetch/$s_!isg_!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F738ffef8-d51b-4a3f-a323-9e3ada9eb539_652x261.png 1272w, https://substackcdn.com/image/fetch/$s_!isg_!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F738ffef8-d51b-4a3f-a323-9e3ada9eb539_652x261.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!isg_!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F738ffef8-d51b-4a3f-a323-9e3ada9eb539_652x261.png" width="652" height="261" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/738ffef8-d51b-4a3f-a323-9e3ada9eb539_652x261.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:261,&quot;width&quot;:652,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:28490,&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://blog.surfalytics.com/i/187248234?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F738ffef8-d51b-4a3f-a323-9e3ada9eb539_652x261.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_!isg_!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F738ffef8-d51b-4a3f-a323-9e3ada9eb539_652x261.png 424w, https://substackcdn.com/image/fetch/$s_!isg_!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F738ffef8-d51b-4a3f-a323-9e3ada9eb539_652x261.png 848w, https://substackcdn.com/image/fetch/$s_!isg_!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F738ffef8-d51b-4a3f-a323-9e3ada9eb539_652x261.png 1272w, https://substackcdn.com/image/fetch/$s_!isg_!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F738ffef8-d51b-4a3f-a323-9e3ada9eb539_652x261.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>Agents are great at well-defined, documented tasks. They struggle with tasks that need domain knowledge and design thinking.</p><h3><strong>5. YOLO Mode Would Save Time</strong></h3><p>I didn&#8217;t use <code>--dangerously-skip-permissions</code> mode. Every <code>az</code> command needed approval. I pressed &#8220;accept&#8221; about 100 times during the session.</p><p>For a controlled environment like this (pet project, no production data), YOLO mode would have saved a lot of time.</p><div><hr></div><h2><strong>What I Would Do Differently</strong></h2><h3><strong>Before the Session</strong></h3><ol><li><p><strong>Write a detailed spec</strong> with exact schemas, transformations, and acceptance criteria</p></li><li><p><strong>Define security requirements</strong> upfront (Key Vault, managed identities, no plain text secrets)</p></li><li><p><strong>Include testing instructions</strong> (&#8221;after creating pipelines, run them and verify row counts&#8221;)</p></li><li><p><strong>Use YOLO mode</strong> for pet projects to avoid 100+ manual approvals</p></li></ol><h3><strong>During the Session</strong></h3><ol><li><p><strong>Check intermediate results</strong> instead of waiting for everything to finish</p></li><li><p><strong>Be specific about data modelling</strong> &#8212; provide the star schema design yourself</p></li><li><p><strong>Ask agents to validate</strong> their own work before reporting &#8220;done&#8221;</p></li></ol><h3><strong>The Spec I Would Write Today</strong></h3><pre><code>Build an Azure Data Warehouse with these exact specifications:

## Infrastructure
- Resource Group: rg-surfalytics-ai-agents (East US)
- Azure SQL Server with AdventureWorks-style OLTP schema
- Azure CosmosDB with UserProfiles, ProductReviews, WebEvents
- Azure PostgreSQL as data warehouse
- Azure Data Factory for orchestration
- Azure Key Vault for ALL credentials (no plain text anywhere)

## Data Warehouse Schema (PostgreSQL)
- dim_customers (customer_key, customer_id, name, email, 
                 loyalty_tier, is_current, effective_from, effective_to)
- dim_products (product_key, product_id, name, category, price)
- dim_dates (date_key INT YYYYMMDD, full_date, year, quarter, month)
- fact_orders (order_key, customer_key, product_key, 
              order_date_key, quantity, amount)
- fact_reviews (review_key, customer_key, product_key, 
               review_date_key, rating, review_text)
- fact_web_events (event_key, customer_key, event_date_key, 
                   event_type, page_url)

## Pipelines
- sql-to-postgres: Load dims first, then facts with proper key lookups
- cosmosdb-to-postgres: Load reviews and web events with key lookups
- master-pipeline: Orchestrate with logging to pipeline_watermark table
- SCD Type 2 for dim_customers using ADF Data Flow

## Testing
- After creating each pipeline, RUN it and verify row counts
- After full load, query warehouse and confirm data integrity
- Test the daily trigger fires correctly

## Security
- All credentials in Azure Key Vault
- ADF uses managed identity to access Key Vault
- No passwords in code, config files, or pipeline definitions</code></pre><p>This spec would give the agents clear direction. No ambiguity. Clear success criteria.</p><div><hr></div><h2><strong>The Cost</strong></h2><p>I ran Claude Code with Opus 4.6 model on the Anthropic API. No subscription limits. Pure token-based billing.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Q6gT!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F486f939e-7d18-4ce5-945d-d1940a24099b_660x189.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Q6gT!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F486f939e-7d18-4ce5-945d-d1940a24099b_660x189.png 424w, https://substackcdn.com/image/fetch/$s_!Q6gT!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F486f939e-7d18-4ce5-945d-d1940a24099b_660x189.png 848w, https://substackcdn.com/image/fetch/$s_!Q6gT!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F486f939e-7d18-4ce5-945d-d1940a24099b_660x189.png 1272w, https://substackcdn.com/image/fetch/$s_!Q6gT!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F486f939e-7d18-4ce5-945d-d1940a24099b_660x189.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Q6gT!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F486f939e-7d18-4ce5-945d-d1940a24099b_660x189.png" width="660" height="189" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/486f939e-7d18-4ce5-945d-d1940a24099b_660x189.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:189,&quot;width&quot;:660,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:22002,&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://blog.surfalytics.com/i/187248234?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F486f939e-7d18-4ce5-945d-d1940a24099b_660x189.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_!Q6gT!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F486f939e-7d18-4ce5-945d-d1940a24099b_660x189.png 424w, https://substackcdn.com/image/fetch/$s_!Q6gT!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F486f939e-7d18-4ce5-945d-d1940a24099b_660x189.png 848w, https://substackcdn.com/image/fetch/$s_!Q6gT!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F486f939e-7d18-4ce5-945d-d1940a24099b_660x189.png 1272w, https://substackcdn.com/image/fetch/$s_!Q6gT!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F486f939e-7d18-4ce5-945d-d1940a24099b_660x189.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><p>The $40 also included some work tasks I ran that evening, so the actual cost for this exercise was probably around $25-30.</p><p>For context: setting up the same environment manually would take me 2-3 hours. The agents did it in about 4 hours with my supervision. But I was mostly watching, not working. The effort on my side was maybe 30 minutes of actual input.</p><p>If I had a better spec, the agent time would likely drop to 2 hours with fewer fix cycles.</p><h2><strong>The Risk for New Engineers</strong></h2><p>Here is the part I want you to read carefully.</p><p><strong>If you are a junior engineer, you are in danger.</strong></p><p>Not because AI will replace you. Because AI makes it too easy to get a &#8220;good&#8221; result without understanding what happened.</p><p>The agents stored passwords in plain text. They created pipelines that looked right but didn&#8217;t work. They built a &#8220;dimensional model&#8221; that was just COPY activities. They labeled an INSERT block as MERGE.</p><p>If you have experience, you catch these things immediately. I saw the hardcoded passwords and said &#8220;put them in Key Vault.&#8221; I saw the broken pipelines and knew what to fix. I looked at the &#8220;dimensional model&#8221; and knew it was wrong.</p><p>But a junior engineer? They would see:</p><ul><li><p>Green checkmarks on all tasks</p></li><li><p>Resources created in Azure</p></li><li><p>Pipelines in ADF</p></li><li><p>A &#8220;data warehouse&#8221; with tables</p></li></ul><p>And they would think: &#8220;It works. I&#8217;m done.&#8221;</p><p>They would deploy this to production. They would not know about:</p><ul><li><p>Security best practices</p></li><li><p>Proper dimensional modelling</p></li><li><p>Data quality testing</p></li><li><p>Incremental loading patterns</p></li><li><p>Error handling</p></li></ul><p><strong>You can work for months with AI doing your job. Your resume will show years of experience. But those years won&#8217;t count as real experience.</strong> You won&#8217;t understand the fundamentals. You won&#8217;t catch the mistakes.</p><h3><strong>Why Am I Effective With AI?</strong></h3><p>It&#8217;s not because AI is amazing (it is). It&#8217;s because I have 15 years of experience. The first 12-13 years, I did everything by hand. I googled every error. I debugged every pipeline. I learned why things break.</p><p>Now AI helps me do faster what I already know how to do. And that&#8217;s the key difference. I can review the AI&#8217;s output because I know what &#8220;good&#8221; looks like.</p><p>So be careful with AI. Use it as a tool. But learn the fundamentals first. Understand what the AI builds for you. Don&#8217;t just accept green checkmarks.</p><div><hr></div><h2><strong>What You Can Do With This Approach</strong></h2><p>This exercise shows that agent teams can build real infrastructure. Here are some ideas:</p><ul><li><p><strong>Azure / AWS / GCP learning environments</strong> &#8212; Let agents build the infrastructure, then study and modify it</p></li><li><p><strong>Pet projects for your portfolio</strong> &#8212; Get a working stack quickly, then improve it manually</p></li><li><p><strong>Testing new architectures</strong> &#8212; Want to try a lakehouse? Give agents the spec and see what happens</p></li><li><p><strong>Batch and streaming pipelines</strong> &#8212; Create both patterns and compare</p></li><li><p><strong>Data modelling exercises</strong> &#8212; Build the warehouse schema yourself, let agents handle the infrastructure</p></li></ul><h3><strong>My Next Exercise</strong></h3><p>I want to do the same thing but with open-source tools. Everything running on local Docker or Kubernetes. PostgreSQL instead of Azure SQL. MinIO instead of Azure Blob. Apache Airflow instead of ADF.</p><p>But this time, I will feed the agents a proper spec. Let&#8217;s see the difference.</p><div><hr></div><h2><strong>Key Takeaways</strong></h2><ol><li><p><strong>Agent teams are real.</strong> Claude Code, Cursor, and others can coordinate multiple agents on complex tasks. This is not a demo. This works today.</p></li><li><p><strong>Infrastructure tasks are a sweet spot.</strong> Agents excel at creating cloud resources, setting up CI/CD, and generating sample data.</p></li><li><p><strong>Business logic is still hard for agents.</strong> Dimensional modelling, complex transformations, and domain-specific design need human guidance.</p></li><li><p><strong>Your prompt is your spec.</strong> Napkin sketch in, napkin solution out. Detailed spec in, production-quality solution out.</p></li><li><p><strong>Always define success criteria.</strong> &#8220;Create a pipeline&#8221; is not enough. &#8220;Create a pipeline, run it, verify 120 rows land in dim_customers&#8221; is what works.</p></li><li><p><strong>Security is your responsibility.</strong> Agents won&#8217;t add security unless you ask for it.</p></li><li><p><strong>The cost is reasonable.</strong> $25-30 for a complete Azure environment setup. $2/day for running resources.</p></li><li><p><strong>For experienced engineers: golden time.</strong> AI amplifies what you already know. Use it.</p></li><li><p><strong>For new engineers: learn the basics first.</strong> Don&#8217;t let AI skip your learning. Understand what you&#8217;re building before you delegate.</p></li></ol><div><hr></div><p><em>PS: I genuinely enjoyed this process. In some way, sessions with Claude Code replaced my need for doom scrolling. Building things with AI agents is more fun than social media.</em></p><p><em>PPS: The entire Azure environment is in one resource group. When you&#8217;re done exploring, one command cleans everything up:</em></p><pre><code>az group delete --name rg-surfalytics-ai-agents --yes --no-wait</code></pre><div><hr></div>]]></content:encoded></item><item><title><![CDATA[AI Tools for Data Engineers and Data Analysts]]></title><description><![CDATA[A practical guide to key concepts, use cases, and tools for using AI assistants in at work.]]></description><link>https://blog.surfalytics.com/p/ai-tools-for-data-engineers-and-data</link><guid isPermaLink="false">https://blog.surfalytics.com/p/ai-tools-for-data-engineers-and-data</guid><dc:creator><![CDATA[Dmitry Anoshin]]></dc:creator><pubDate>Thu, 05 Feb 2026 00:27:22 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/fe24c142-f6fb-4d5a-928b-951a30d422d0_967x861.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Working with different data teams, I&#8217;ve observed three distinct groups:</p><ol><li><p><strong>AI avoiders:</strong> Those who rely only on traditional development practices and ignore AI tools entirely</p></li><li><p><strong>Over-reliant users:</strong> Those who copy-paste everything into ChatGPT for all their tasks</p></li><li><p><strong>AI enthusiasts:</strong> Those too deep in AI development&#8212;constantly experimenting with the latest models and techniques</p></li></ol><p>The optimal approach lies between groups 2 and 3. Developers/Engineers and analysts should:</p><ul><li><p>Understand AI capabilities and limitations</p></li><li><p>Apply AI strategically to appropriate tasks</p></li><li><p>Stay informed without getting distracted by every new release</p></li></ul><p>This balanced approach maximizes both speed and quality gains.</p><p>In this blogpost, I want to highlight the available list of tools and cover some of the definitions.</p><blockquote><p>TL;DR: </p><ul><li><p>Get Cursor IDE.</p></li><li><p>Use Auto mode.</p></li><li><p>Add rules per repo.</p></li><li><p>Add MCP integration for tools you are using.</p></li></ul><p>Don&#8217;t worry if something unclear, just use it daily and you will be fine.</p></blockquote><h2>1. Key Terms (Before Diving into AI Dev Assistants)</h2><p>Understanding these terms will help you choose the right tools, control costs, and get better results.</p><h3>1.1 LLM (Large Language Model)</h3><p>An <strong>LLM</strong> is a model trained on huge amounts of text (and sometimes code) that can generate text, answer questions, and follow instructions. When you chat with an AI assistant or ask it to write code, you are talking to an LLM.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!xdif!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F24c13c8b-4559-4645-8800-6a9ba91f0a9e_936x504.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!xdif!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F24c13c8b-4559-4645-8800-6a9ba91f0a9e_936x504.png 424w, https://substackcdn.com/image/fetch/$s_!xdif!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F24c13c8b-4559-4645-8800-6a9ba91f0a9e_936x504.png 848w, https://substackcdn.com/image/fetch/$s_!xdif!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F24c13c8b-4559-4645-8800-6a9ba91f0a9e_936x504.png 1272w, https://substackcdn.com/image/fetch/$s_!xdif!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F24c13c8b-4559-4645-8800-6a9ba91f0a9e_936x504.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!xdif!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F24c13c8b-4559-4645-8800-6a9ba91f0a9e_936x504.png" width="936" height="504" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/24c13c8b-4559-4645-8800-6a9ba91f0a9e_936x504.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:504,&quot;width&quot;:936,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:220343,&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://blog.surfalytics.com/i/186887470?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F24c13c8b-4559-4645-8800-6a9ba91f0a9e_936x504.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_!xdif!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F24c13c8b-4559-4645-8800-6a9ba91f0a9e_936x504.png 424w, https://substackcdn.com/image/fetch/$s_!xdif!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F24c13c8b-4559-4645-8800-6a9ba91f0a9e_936x504.png 848w, https://substackcdn.com/image/fetch/$s_!xdif!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F24c13c8b-4559-4645-8800-6a9ba91f0a9e_936x504.png 1272w, https://substackcdn.com/image/fetch/$s_!xdif!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F24c13c8b-4559-4645-8800-6a9ba91f0a9e_936x504.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></p><p><strong>Simple example:</strong> You type &#8220;Write a SQL query to get the last 7 days of orders.&#8221; The model reads your text and generates SQL. It does not run the query; it only produces the text.</p><div><hr></div><h3>1.2 LLM Model Providers and Models</h3><p>A <strong>model provider</strong> is the company or service that hosts and serves the models. You send your prompt to their API and get a response.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!LREc!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F770e0324-05f1-4df4-94a5-9145d209bb13_650x210.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!LREc!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F770e0324-05f1-4df4-94a5-9145d209bb13_650x210.png 424w, https://substackcdn.com/image/fetch/$s_!LREc!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F770e0324-05f1-4df4-94a5-9145d209bb13_650x210.png 848w, https://substackcdn.com/image/fetch/$s_!LREc!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F770e0324-05f1-4df4-94a5-9145d209bb13_650x210.png 1272w, https://substackcdn.com/image/fetch/$s_!LREc!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F770e0324-05f1-4df4-94a5-9145d209bb13_650x210.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!LREc!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F770e0324-05f1-4df4-94a5-9145d209bb13_650x210.png" width="650" height="210" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/770e0324-05f1-4df4-94a5-9145d209bb13_650x210.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:210,&quot;width&quot;:650,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:37205,&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://blog.surfalytics.com/i/186887470?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F770e0324-05f1-4df4-94a5-9145d209bb13_650x210.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_!LREc!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F770e0324-05f1-4df4-94a5-9145d209bb13_650x210.png 424w, https://substackcdn.com/image/fetch/$s_!LREc!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F770e0324-05f1-4df4-94a5-9145d209bb13_650x210.png 848w, https://substackcdn.com/image/fetch/$s_!LREc!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F770e0324-05f1-4df4-94a5-9145d209bb13_650x210.png 1272w, https://substackcdn.com/image/fetch/$s_!LREc!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F770e0324-05f1-4df4-94a5-9145d209bb13_650x210.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><p>Models from the same provider can differ in:</p><ul><li><p><strong>Speed</strong> &#8211; faster models are usually cheaper and sometimes less capable.</p></li><li><p><strong>Context window</strong> &#8211; how much text (and code) they can read at once (e.g. 32K, 200K tokens).</p></li><li><p><strong>Reasoning vs non-reasoning</strong> &#8211; see below.</p></li></ul><div><hr></div><h3>1.3 Reasoning vs Non-Reasoning Models</h3><p><strong>Non-reasoning (standard) models</strong><br>They read your prompt and generate a response in one pass. They are fast and cost less per request. Good for: short answers, simple code, edits, and most day-to-day tasks.</p><p><strong>Reasoning models</strong> (e.g. OpenAI o1, o3; some &#8220;thinking&#8221; modes)<br>They spend extra &#8220;thinking&#8221; steps before answering. They can be better for hard logic, math, or multi-step planning, but they are slower and <strong>use more tokens</strong> (so they cost more). Use them when you need deeper reasoning, not for every request.</p><p><strong>Practical tip:</strong> For most data work (SQL, dbt, Python, docs), a good non-reasoning model (e.g. Claude 3.5 Sonnet, GPT-4o) is enough. Switch to a reasoning model only when you hit a genuinely hard problem.</p><div><hr></div><h3>1.4 Tokens</h3><p></p><p><strong>Tokens</strong> are the units the model uses to read and write text. Roughly:</p><ul><li><p>1 token &#8776; 4 characters in English, or about &#190; of a word.</p></li><li><p>Code and symbols often use more tokens per character.</p></li></ul><p>Example of model cost from Antropic API:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!h9uG!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F02a65b4a-c017-4fed-9ec1-209beab96e96_459x299.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!h9uG!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F02a65b4a-c017-4fed-9ec1-209beab96e96_459x299.png 424w, https://substackcdn.com/image/fetch/$s_!h9uG!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F02a65b4a-c017-4fed-9ec1-209beab96e96_459x299.png 848w, https://substackcdn.com/image/fetch/$s_!h9uG!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F02a65b4a-c017-4fed-9ec1-209beab96e96_459x299.png 1272w, https://substackcdn.com/image/fetch/$s_!h9uG!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F02a65b4a-c017-4fed-9ec1-209beab96e96_459x299.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!h9uG!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F02a65b4a-c017-4fed-9ec1-209beab96e96_459x299.png" width="459" height="299" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/02a65b4a-c017-4fed-9ec1-209beab96e96_459x299.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:299,&quot;width&quot;:459,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:38079,&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://blog.surfalytics.com/i/186887470?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F02a65b4a-c017-4fed-9ec1-209beab96e96_459x299.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_!h9uG!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F02a65b4a-c017-4fed-9ec1-209beab96e96_459x299.png 424w, https://substackcdn.com/image/fetch/$s_!h9uG!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F02a65b4a-c017-4fed-9ec1-209beab96e96_459x299.png 848w, https://substackcdn.com/image/fetch/$s_!h9uG!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F02a65b4a-c017-4fed-9ec1-209beab96e96_459x299.png 1272w, https://substackcdn.com/image/fetch/$s_!h9uG!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F02a65b4a-c017-4fed-9ec1-209beab96e96_459x299.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><strong>Why it matters:</strong><br>Providers charge by token (input and sometimes output). Long prompts, long replies, and big context windows increase token usage and cost. Team or enterprise plans often have token quotas or dollar-based limits.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!7lZh!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F305ff652-0c69-4bf5-baca-9498d9710e95_729x236.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!7lZh!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F305ff652-0c69-4bf5-baca-9498d9710e95_729x236.png 424w, https://substackcdn.com/image/fetch/$s_!7lZh!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F305ff652-0c69-4bf5-baca-9498d9710e95_729x236.png 848w, https://substackcdn.com/image/fetch/$s_!7lZh!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F305ff652-0c69-4bf5-baca-9498d9710e95_729x236.png 1272w, https://substackcdn.com/image/fetch/$s_!7lZh!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F305ff652-0c69-4bf5-baca-9498d9710e95_729x236.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!7lZh!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F305ff652-0c69-4bf5-baca-9498d9710e95_729x236.png" width="729" height="236" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/305ff652-0c69-4bf5-baca-9498d9710e95_729x236.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:236,&quot;width&quot;:729,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:30757,&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://blog.surfalytics.com/i/186887470?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F305ff652-0c69-4bf5-baca-9498d9710e95_729x236.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_!7lZh!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F305ff652-0c69-4bf5-baca-9498d9710e95_729x236.png 424w, https://substackcdn.com/image/fetch/$s_!7lZh!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F305ff652-0c69-4bf5-baca-9498d9710e95_729x236.png 848w, https://substackcdn.com/image/fetch/$s_!7lZh!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F305ff652-0c69-4bf5-baca-9498d9710e95_729x236.png 1272w, https://substackcdn.com/image/fetch/$s_!7lZh!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F305ff652-0c69-4bf5-baca-9498d9710e95_729x236.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><p><strong>Simple example:</strong></p><ul><li><p>Prompt: <em>&#8220;Write a SELECT that returns the top 10 customers by revenue.&#8221;</em> &#8594; on the order of 10&#8211;20 tokens.</p></li><li><p>Response: a 20-line SQL query &#8594; maybe 100&#8211;200 tokens.</p></li><li><p>If you paste a 500-line dbt model into the prompt, that can be thousands of tokens per request.</p></li></ul><div><hr></div><h3>1.5 Embedding and Indexing</h3><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!IIIA!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F14e11f45-bfbf-4853-b7db-be8598806593_585x251.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!IIIA!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F14e11f45-bfbf-4853-b7db-be8598806593_585x251.png 424w, https://substackcdn.com/image/fetch/$s_!IIIA!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F14e11f45-bfbf-4853-b7db-be8598806593_585x251.png 848w, https://substackcdn.com/image/fetch/$s_!IIIA!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F14e11f45-bfbf-4853-b7db-be8598806593_585x251.png 1272w, https://substackcdn.com/image/fetch/$s_!IIIA!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F14e11f45-bfbf-4853-b7db-be8598806593_585x251.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!IIIA!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F14e11f45-bfbf-4853-b7db-be8598806593_585x251.png" width="585" height="251" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/14e11f45-bfbf-4853-b7db-be8598806593_585x251.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:251,&quot;width&quot;:585,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:100070,&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://blog.surfalytics.com/i/186887470?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F14e11f45-bfbf-4853-b7db-be8598806593_585x251.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_!IIIA!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F14e11f45-bfbf-4853-b7db-be8598806593_585x251.png 424w, https://substackcdn.com/image/fetch/$s_!IIIA!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F14e11f45-bfbf-4853-b7db-be8598806593_585x251.png 848w, https://substackcdn.com/image/fetch/$s_!IIIA!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F14e11f45-bfbf-4853-b7db-be8598806593_585x251.png 1272w, https://substackcdn.com/image/fetch/$s_!IIIA!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F14e11f45-bfbf-4853-b7db-be8598806593_585x251.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><strong>Embedding</strong><br>An <strong>embedding</strong> is a numerical representation of a piece of text (or code). Similar meaning &#8594; similar numbers. Models use embeddings to search and compare text.</p><p><strong>Indexing (in the context of AI IDEs)</strong><br><strong>Indexing</strong> means the tool (e.g. Cursor) builds a searchable &#8220;map&#8221; of your repo or docs using embeddings. When you ask a question, the tool finds the most relevant files or snippets and sends them to the model as context. So the model can &#8220;see&#8221; your codebase or documentation without you pasting everything manually.</p><p><strong>Simple example:</strong><br>You have a dbt project and external API docs. You index the repo and the docs. You then ask: &#8220;Create a bronze dbt model for the Amplitude events table using our project style.&#8221; The tool finds the right source file, existing models, and relevant docs, and the model generates the new model using that context.</p><div><hr></div><h3>1.6 MCP (Model Context Protocol)</h3><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!EjYm!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff1032e75-fac7-4be6-9785-8f8d48435127_1280x720.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!EjYm!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff1032e75-fac7-4be6-9785-8f8d48435127_1280x720.png 424w, https://substackcdn.com/image/fetch/$s_!EjYm!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff1032e75-fac7-4be6-9785-8f8d48435127_1280x720.png 848w, https://substackcdn.com/image/fetch/$s_!EjYm!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff1032e75-fac7-4be6-9785-8f8d48435127_1280x720.png 1272w, https://substackcdn.com/image/fetch/$s_!EjYm!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff1032e75-fac7-4be6-9785-8f8d48435127_1280x720.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!EjYm!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff1032e75-fac7-4be6-9785-8f8d48435127_1280x720.png" width="1280" height="720" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/f1032e75-fac7-4be6-9785-8f8d48435127_1280x720.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:720,&quot;width&quot;:1280,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;What is MCP (Model Context Protocol)? | by Vijayasekhar Deepak | Artificial  Intelligence in Plain English&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="What is MCP (Model Context Protocol)? | by Vijayasekhar Deepak | Artificial  Intelligence in Plain English" title="What is MCP (Model Context Protocol)? | by Vijayasekhar Deepak | Artificial  Intelligence in Plain English" srcset="https://substackcdn.com/image/fetch/$s_!EjYm!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff1032e75-fac7-4be6-9785-8f8d48435127_1280x720.png 424w, https://substackcdn.com/image/fetch/$s_!EjYm!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff1032e75-fac7-4be6-9785-8f8d48435127_1280x720.png 848w, https://substackcdn.com/image/fetch/$s_!EjYm!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff1032e75-fac7-4be6-9785-8f8d48435127_1280x720.png 1272w, https://substackcdn.com/image/fetch/$s_!EjYm!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff1032e75-fac7-4be6-9785-8f8d48435127_1280x720.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg 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><strong>MCP</strong> is an open protocol that lets an AI assistant (in an IDE or CLI) call <strong>external tools</strong> on your behalf. For example:</p><ul><li><p>Query a database (e.g. list schemas, get DDL, run a SELECT).</p></li><li><p>Call cloud APIs (e.g. AWS, Snowflake).</p></li><li><p>Read from files, run CLI commands (when allowed by the tool).</p></li></ul><p>So instead of you running the query and pasting the result, you tell the assistant &#8220;list tables in schema X&#8221; or &#8220;get the DDL for table Y&#8221;; it uses MCP to run the right command and use the result in the answer.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!ggoq!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4fa22f2d-0980-42be-b59a-1dd31eed4fbf_1311x425.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!ggoq!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4fa22f2d-0980-42be-b59a-1dd31eed4fbf_1311x425.png 424w, https://substackcdn.com/image/fetch/$s_!ggoq!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4fa22f2d-0980-42be-b59a-1dd31eed4fbf_1311x425.png 848w, https://substackcdn.com/image/fetch/$s_!ggoq!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4fa22f2d-0980-42be-b59a-1dd31eed4fbf_1311x425.png 1272w, https://substackcdn.com/image/fetch/$s_!ggoq!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4fa22f2d-0980-42be-b59a-1dd31eed4fbf_1311x425.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!ggoq!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4fa22f2d-0980-42be-b59a-1dd31eed4fbf_1311x425.png" width="1311" height="425" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/4fa22f2d-0980-42be-b59a-1dd31eed4fbf_1311x425.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:425,&quot;width&quot;:1311,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:65635,&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://blog.surfalytics.com/i/186887470?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4fa22f2d-0980-42be-b59a-1dd31eed4fbf_1311x425.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_!ggoq!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4fa22f2d-0980-42be-b59a-1dd31eed4fbf_1311x425.png 424w, https://substackcdn.com/image/fetch/$s_!ggoq!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4fa22f2d-0980-42be-b59a-1dd31eed4fbf_1311x425.png 848w, https://substackcdn.com/image/fetch/$s_!ggoq!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4fa22f2d-0980-42be-b59a-1dd31eed4fbf_1311x425.png 1272w, https://substackcdn.com/image/fetch/$s_!ggoq!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4fa22f2d-0980-42be-b59a-1dd31eed4fbf_1311x425.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">MCP in Cursor</figcaption></figure></div><p>Or similar MCP for Claude Code in JSON file <code>.mcp.json</code>:</p><pre><code>{
  "mcpServers": {
    "snowflake_solo": {
      "command": "/Users/github/dbt/.venv/bin/python3",
      "args": [
        "/Users/github/dbt/start_solo_mcp_simple.py"
      ]
    }
  }
}</code></pre><p><strong>Why it matters for data work:</strong><br>You can ask the AI to inspect Redshift/Snowflake (schemas, tables, DDL), pull CloudWatch logs, or list AWS resources. It can then generate SQL, dbt, or docs using live metadata. <strong>Caution:</strong> MCP can use many tokens (lots of context and tool results), so watch usage and cost when you enable it.</p><div><hr></div><h3>1.7 Rules for Agents (Why They Matter and What to Put in Them)</h3><p><strong>Rules</strong> (or &#8220;agent rules&#8221;, &#8220;project rules&#8221;) are instructions that the IDE or agent applies to every (or chosen) conversations. They steer style, conventions, and safety without you repeating the same instructions in each 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_!3bBl!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1eb640d6-5cf4-4f68-b468-40100b444587_900x705.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!3bBl!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1eb640d6-5cf4-4f68-b468-40100b444587_900x705.png 424w, https://substackcdn.com/image/fetch/$s_!3bBl!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1eb640d6-5cf4-4f68-b468-40100b444587_900x705.png 848w, https://substackcdn.com/image/fetch/$s_!3bBl!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1eb640d6-5cf4-4f68-b468-40100b444587_900x705.png 1272w, https://substackcdn.com/image/fetch/$s_!3bBl!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1eb640d6-5cf4-4f68-b468-40100b444587_900x705.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!3bBl!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1eb640d6-5cf4-4f68-b468-40100b444587_900x705.png" width="900" height="705" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/1eb640d6-5cf4-4f68-b468-40100b444587_900x705.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:705,&quot;width&quot;:900,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:164008,&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://blog.surfalytics.com/i/186887470?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1eb640d6-5cf4-4f68-b468-40100b444587_900x705.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_!3bBl!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1eb640d6-5cf4-4f68-b468-40100b444587_900x705.png 424w, https://substackcdn.com/image/fetch/$s_!3bBl!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1eb640d6-5cf4-4f68-b468-40100b444587_900x705.png 848w, https://substackcdn.com/image/fetch/$s_!3bBl!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1eb640d6-5cf4-4f68-b468-40100b444587_900x705.png 1272w, https://substackcdn.com/image/fetch/$s_!3bBl!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1eb640d6-5cf4-4f68-b468-40100b444587_900x705.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">Rules example from Cursor</figcaption></figure></div><p><strong>Why they are important:</strong></p><ul><li><p><strong>Consistency</strong> &#8211; same SQL style (e.g. lowercase keywords), same dbt structure, same doc format.</p></li><li><p><strong>Quality</strong> &#8211; enforce lint rules, testing, or &#8220;always add a short comment for complex logic.&#8221;</p></li><li><p><strong>Efficiency</strong> &#8211; you don&#8217;t re-explain your stack or standards every time.</p></li></ul><p><strong>What you can put in rules (examples for data engineers/analysts):</strong></p><ul><li><p><strong>SQL:</strong> lowercase keywords, table aliases, CTE naming, no SELECT * in production models.</p></li><li><p><strong>dbt:</strong> layer naming (e.g. bronze/silver/gold), source and model naming, always add schema.yml and tests where needed.</p></li><li><p><strong>Python:</strong> style (e.g. Black), type hints for public functions, docstrings for pipelines.</p></li><li><p><strong>Docs:</strong> format (e.g. Markdown), what to document (sources, columns, refresh logic).</p></li><li><p><strong>Stack:</strong> &#8220;We use Airflow for orchestration, dbt for transformations, Snowflake/Redshift as the warehouse.&#8221;</p></li><li><p><strong>Security:</strong> &#8220;Never put credentials in code&#8221;; &#8220;Use key-pair auth for Snowflake when possible.&#8221;</p></li></ul><p>You can have global rules (all projects) and project-specific rules (e.g. only for the &#8220;analytics-dbt&#8221; repo). In Cursor these live in .cursor/rules; in Claude Code you can use an AGENTS.md or similar file and reference it in the project.</p><div><hr></div><h2>2. Use Cases for Data Engineers and Data Analysts</h2><p>These are concrete ways teams use AI assistants in data 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_!X0lf!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F80dc98f3-45bc-45bb-90f6-71dbc9e7bb81_650x683.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!X0lf!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F80dc98f3-45bc-45bb-90f6-71dbc9e7bb81_650x683.png 424w, https://substackcdn.com/image/fetch/$s_!X0lf!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F80dc98f3-45bc-45bb-90f6-71dbc9e7bb81_650x683.png 848w, https://substackcdn.com/image/fetch/$s_!X0lf!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F80dc98f3-45bc-45bb-90f6-71dbc9e7bb81_650x683.png 1272w, https://substackcdn.com/image/fetch/$s_!X0lf!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F80dc98f3-45bc-45bb-90f6-71dbc9e7bb81_650x683.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!X0lf!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F80dc98f3-45bc-45bb-90f6-71dbc9e7bb81_650x683.png" width="650" height="683" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/80dc98f3-45bc-45bb-90f6-71dbc9e7bb81_650x683.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:683,&quot;width&quot;:650,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:120163,&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://blog.surfalytics.com/i/186887470?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F80dc98f3-45bc-45bb-90f6-71dbc9e7bb81_650x683.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_!X0lf!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F80dc98f3-45bc-45bb-90f6-71dbc9e7bb81_650x683.png 424w, https://substackcdn.com/image/fetch/$s_!X0lf!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F80dc98f3-45bc-45bb-90f6-71dbc9e7bb81_650x683.png 848w, https://substackcdn.com/image/fetch/$s_!X0lf!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F80dc98f3-45bc-45bb-90f6-71dbc9e7bb81_650x683.png 1272w, https://substackcdn.com/image/fetch/$s_!X0lf!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F80dc98f3-45bc-45bb-90f6-71dbc9e7bb81_650x683.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><strong>Important:</strong> Treat the AI as a junior assistant. You should understand the problem, the design, and the data; use the AI to speed up implementation, drafts, and troubleshooting, not to replace your judgment.</p><div><hr></div><h2>3. Tools Overview</h2><p>From the simplest and most convenient to the more configurable or organization-managed options.</p><div><hr></div><h3>3.1 Cursor</h3><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!kXH9!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F15cd8604-73ba-4071-9c77-c60459834059_2231x1175.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!kXH9!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F15cd8604-73ba-4071-9c77-c60459834059_2231x1175.png 424w, https://substackcdn.com/image/fetch/$s_!kXH9!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F15cd8604-73ba-4071-9c77-c60459834059_2231x1175.png 848w, https://substackcdn.com/image/fetch/$s_!kXH9!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F15cd8604-73ba-4071-9c77-c60459834059_2231x1175.png 1272w, https://substackcdn.com/image/fetch/$s_!kXH9!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F15cd8604-73ba-4071-9c77-c60459834059_2231x1175.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!kXH9!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F15cd8604-73ba-4071-9c77-c60459834059_2231x1175.png" width="1456" height="767" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/15cd8604-73ba-4071-9c77-c60459834059_2231x1175.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:767,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:343022,&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://blog.surfalytics.com/i/186887470?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F15cd8604-73ba-4071-9c77-c60459834059_2231x1175.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_!kXH9!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F15cd8604-73ba-4071-9c77-c60459834059_2231x1175.png 424w, https://substackcdn.com/image/fetch/$s_!kXH9!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F15cd8604-73ba-4071-9c77-c60459834059_2231x1175.png 848w, https://substackcdn.com/image/fetch/$s_!kXH9!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F15cd8604-73ba-4071-9c77-c60459834059_2231x1175.png 1272w, https://substackcdn.com/image/fetch/$s_!kXH9!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F15cd8604-73ba-4071-9c77-c60459834059_2231x1175.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><strong>What it is:</strong><br>An AI-first IDE built on VS Code. It focuses on ease of use: rules, codebase indexing, and MCP are integrated in one place.</p><p><strong>Why it&#8217;s convenient:</strong></p><ul><li><p><strong>Rules</strong> &#8211; Project and global rules so the model follows your SQL/dbt/Python conventions without repeating them.</p></li><li><p><strong>Indexing</strong> &#8211; Index repos and external docs (e.g. API docs via URL); the model uses this for context automatically.</p></li><li><p><strong>MCP</strong> &#8211; Configure MCP servers (e.g. Snowflake, Redshift, AWS) once; use them from chat or Composer.</p></li><li><p><strong>Models</strong> &#8211; You can use several providers; many users find <strong>Anthropic models</strong> (e.g. Claude 3.5 Sonnet/Opus) very good for coding.</p></li><li><p><strong>Composer and Auto</strong> &#8211; Cursor&#8217;s own &#8220;Composer&#8221; and Auto mode are optimized for multi-file edits and long tasks; they often feel generous on quotas and can feel &#8220;unlimited&#8221; for typical use compared to strict per-request limits elsewhere.</p></li></ul><p><strong>Pricing (highlight):</strong></p><ul><li><p><strong>Personal:</strong> Paid plan around <strong>$20/month</strong> (e.g. $20 for Pro); often includes a set of &#8220;fast&#8221; requests and then usage-based.</p></li><li><p><strong>Teams / Business:</strong> Per-seat; higher limits and team management.</p></li><li><p>Check <a href="https://cursor.com">cursor.com</a> for current tiers and token/request limits. Composer and Auto may have different quota rules than standard chat.</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_!krLc!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1aac7f58-f0f7-4996-8ac4-d076cc1ecdcf_1407x931.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!krLc!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1aac7f58-f0f7-4996-8ac4-d076cc1ecdcf_1407x931.png 424w, https://substackcdn.com/image/fetch/$s_!krLc!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1aac7f58-f0f7-4996-8ac4-d076cc1ecdcf_1407x931.png 848w, https://substackcdn.com/image/fetch/$s_!krLc!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1aac7f58-f0f7-4996-8ac4-d076cc1ecdcf_1407x931.png 1272w, https://substackcdn.com/image/fetch/$s_!krLc!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1aac7f58-f0f7-4996-8ac4-d076cc1ecdcf_1407x931.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!krLc!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1aac7f58-f0f7-4996-8ac4-d076cc1ecdcf_1407x931.png" width="1407" height="931" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/1aac7f58-f0f7-4996-8ac4-d076cc1ecdcf_1407x931.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:931,&quot;width&quot;:1407,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:152089,&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://blog.surfalytics.com/i/186887470?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1aac7f58-f0f7-4996-8ac4-d076cc1ecdcf_1407x931.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_!krLc!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1aac7f58-f0f7-4996-8ac4-d076cc1ecdcf_1407x931.png 424w, https://substackcdn.com/image/fetch/$s_!krLc!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1aac7f58-f0f7-4996-8ac4-d076cc1ecdcf_1407x931.png 848w, https://substackcdn.com/image/fetch/$s_!krLc!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1aac7f58-f0f7-4996-8ac4-d076cc1ecdcf_1407x931.png 1272w, https://substackcdn.com/image/fetch/$s_!krLc!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1aac7f58-f0f7-4996-8ac4-d076cc1ecdcf_1407x931.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><h3>3.2 Claude Code (Anthropic)</h3><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!c0Js!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd4197e70-651d-4f8c-b8b0-575035853302_1312x619.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!c0Js!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd4197e70-651d-4f8c-b8b0-575035853302_1312x619.png 424w, https://substackcdn.com/image/fetch/$s_!c0Js!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd4197e70-651d-4f8c-b8b0-575035853302_1312x619.png 848w, https://substackcdn.com/image/fetch/$s_!c0Js!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd4197e70-651d-4f8c-b8b0-575035853302_1312x619.png 1272w, https://substackcdn.com/image/fetch/$s_!c0Js!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd4197e70-651d-4f8c-b8b0-575035853302_1312x619.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!c0Js!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd4197e70-651d-4f8c-b8b0-575035853302_1312x619.png" width="1312" height="619" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d4197e70-651d-4f8c-b8b0-575035853302_1312x619.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:619,&quot;width&quot;:1312,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:223660,&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://blog.surfalytics.com/i/186887470?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd4197e70-651d-4f8c-b8b0-575035853302_1312x619.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_!c0Js!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd4197e70-651d-4f8c-b8b0-575035853302_1312x619.png 424w, https://substackcdn.com/image/fetch/$s_!c0Js!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd4197e70-651d-4f8c-b8b0-575035853302_1312x619.png 848w, https://substackcdn.com/image/fetch/$s_!c0Js!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd4197e70-651d-4f8c-b8b0-575035853302_1312x619.png 1272w, https://substackcdn.com/image/fetch/$s_!c0Js!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd4197e70-651d-4f8c-b8b0-575035853302_1312x619.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><strong>What it is:</strong><br>Anthropic&#8217;s coding agent. You can use it from the <strong>CLI</strong> (terminal) or via the <strong>Claude extension in VS Code</strong>. It&#8217;s the same &#8220;Claude&#8221; chat experience, with the ability to run commands, read/write files, and use MCP when configured.</p><p><strong>How people use it:</strong></p><ul><li><p><strong>CLI</strong> &#8211; Run Claude (or similar) in a terminal; chat and give tasks in a project folder. No IDE required.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!fCYs!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe8f3a206-6d3b-4bea-9f52-46884a77658e_1312x619.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!fCYs!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe8f3a206-6d3b-4bea-9f52-46884a77658e_1312x619.png 424w, https://substackcdn.com/image/fetch/$s_!fCYs!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe8f3a206-6d3b-4bea-9f52-46884a77658e_1312x619.png 848w, https://substackcdn.com/image/fetch/$s_!fCYs!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe8f3a206-6d3b-4bea-9f52-46884a77658e_1312x619.png 1272w, https://substackcdn.com/image/fetch/$s_!fCYs!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe8f3a206-6d3b-4bea-9f52-46884a77658e_1312x619.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!fCYs!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe8f3a206-6d3b-4bea-9f52-46884a77658e_1312x619.png" width="1312" height="619" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/e8f3a206-6d3b-4bea-9f52-46884a77658e_1312x619.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:619,&quot;width&quot;:1312,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:223660,&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://blog.surfalytics.com/i/186887470?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe8f3a206-6d3b-4bea-9f52-46884a77658e_1312x619.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_!fCYs!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe8f3a206-6d3b-4bea-9f52-46884a77658e_1312x619.png 424w, https://substackcdn.com/image/fetch/$s_!fCYs!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe8f3a206-6d3b-4bea-9f52-46884a77658e_1312x619.png 848w, https://substackcdn.com/image/fetch/$s_!fCYs!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe8f3a206-6d3b-4bea-9f52-46884a77658e_1312x619.png 1272w, https://substackcdn.com/image/fetch/$s_!fCYs!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe8f3a206-6d3b-4bea-9f52-46884a77658e_1312x619.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></li><li><p><strong>VS Code</strong> &#8211; Install the Claude Code / Anthropic extension; get a chat panel and agent behavior inside VS Code.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!MA2R!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F02e5e5fd-ef23-4620-bd6e-8d180e4865d2_2027x707.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!MA2R!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F02e5e5fd-ef23-4620-bd6e-8d180e4865d2_2027x707.png 424w, https://substackcdn.com/image/fetch/$s_!MA2R!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F02e5e5fd-ef23-4620-bd6e-8d180e4865d2_2027x707.png 848w, https://substackcdn.com/image/fetch/$s_!MA2R!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F02e5e5fd-ef23-4620-bd6e-8d180e4865d2_2027x707.png 1272w, https://substackcdn.com/image/fetch/$s_!MA2R!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F02e5e5fd-ef23-4620-bd6e-8d180e4865d2_2027x707.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!MA2R!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F02e5e5fd-ef23-4620-bd6e-8d180e4865d2_2027x707.png" width="1456" height="508" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/02e5e5fd-ef23-4620-bd6e-8d180e4865d2_2027x707.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:508,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:276624,&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://blog.surfalytics.com/i/186887470?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F02e5e5fd-ef23-4620-bd6e-8d180e4865d2_2027x707.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_!MA2R!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F02e5e5fd-ef23-4620-bd6e-8d180e4865d2_2027x707.png 424w, https://substackcdn.com/image/fetch/$s_!MA2R!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F02e5e5fd-ef23-4620-bd6e-8d180e4865d2_2027x707.png 848w, https://substackcdn.com/image/fetch/$s_!MA2R!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F02e5e5fd-ef23-4620-bd6e-8d180e4865d2_2027x707.png 1272w, https://substackcdn.com/image/fetch/$s_!MA2R!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F02e5e5fd-ef23-4620-bd6e-8d180e4865d2_2027x707.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></p></li></ul><p><strong>Benefits:</strong></p><ul><li><p>Strong models (e.g. Claude 3.5 Sonnet/Opus, Claude 4.5) that many developers like for code.</p></li><li><p>Same account and behavior in CLI and VS Code.</p></li><li><p>MCP and custom instructions (like rules) are supported.</p></li></ul><p><strong>Models:</strong><br>Claude Code uses <strong>Anthropic models only</strong> (it does not switch to OpenAI or others). You can choose model size in settings (e.g. Sonnet vs Opus).</p><p><strong>Tokens and pricing:</strong></p><ul><li><p>Usage is <strong>token-based</strong>; you have daily/monthly quotas depending on plan.</p></li><li><p><strong>Teams</strong> (and Enterprise) have <strong>dollar-based or higher token quotas</strong> &#8211; it&#8217;s easy to hit limits if many people use it heavily (e.g. PR reviews, large context).</p></li><li><p><strong>Tip:</strong> Monitor usage; there are known cases of teams burning through large monthly quotas (e.g. in CI or with MCP), so set alerts if your org uses Teams.</p></li></ul><div><hr></div><h3>3.3 Third-Party Plugins: Kilo Code and Cline (VS Code)</h3><p><strong>What they are:</strong><br>Extensions for <strong>VS Code</strong> that give you an AI chat/agent experience and can use <strong>multiple model providers</strong> (e.g. OpenAI, Anthropic, Open Router).</p><p><strong>Kilo Code (e.g. from kilo.ai):</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_!jrIH!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3fc67f78-bf96-4aa5-af64-de32b5878eba_561x1634.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!jrIH!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3fc67f78-bf96-4aa5-af64-de32b5878eba_561x1634.png 424w, https://substackcdn.com/image/fetch/$s_!jrIH!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3fc67f78-bf96-4aa5-af64-de32b5878eba_561x1634.png 848w, https://substackcdn.com/image/fetch/$s_!jrIH!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3fc67f78-bf96-4aa5-af64-de32b5878eba_561x1634.png 1272w, https://substackcdn.com/image/fetch/$s_!jrIH!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3fc67f78-bf96-4aa5-af64-de32b5878eba_561x1634.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!jrIH!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3fc67f78-bf96-4aa5-af64-de32b5878eba_561x1634.png" width="561" height="1634" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/3fc67f78-bf96-4aa5-af64-de32b5878eba_561x1634.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1634,&quot;width&quot;:561,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:194620,&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://blog.surfalytics.com/i/186887470?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3fc67f78-bf96-4aa5-af64-de32b5878eba_561x1634.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_!jrIH!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3fc67f78-bf96-4aa5-af64-de32b5878eba_561x1634.png 424w, https://substackcdn.com/image/fetch/$s_!jrIH!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3fc67f78-bf96-4aa5-af64-de32b5878eba_561x1634.png 848w, https://substackcdn.com/image/fetch/$s_!jrIH!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3fc67f78-bf96-4aa5-af64-de32b5878eba_561x1634.png 1272w, https://substackcdn.com/image/fetch/$s_!jrIH!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3fc67f78-bf96-4aa5-af64-de32b5878eba_561x1634.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><ul><li><p>Connects to your API keys (Anthropic, OpenAI, or Open Router).</p></li><li><p>Open Router acts as a gateway to many models (Claude, GPT, Gemini, DeepSeek, etc.) with one key.</p></li><li><p>Good when Claude Code is blocked or you want to switch providers without changing IDEs.</p></li><li><p>Shows cost per request (e.g. &#8220;$0.74 for this request&#8221;), which helps with token awareness.</p></li></ul><p><strong>Cline (formerly Claude Dev):</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_!x0Oa!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4ed3d2a3-aae2-4edd-9653-85a58d043846_561x1009.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!x0Oa!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4ed3d2a3-aae2-4edd-9653-85a58d043846_561x1009.png 424w, https://substackcdn.com/image/fetch/$s_!x0Oa!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4ed3d2a3-aae2-4edd-9653-85a58d043846_561x1009.png 848w, https://substackcdn.com/image/fetch/$s_!x0Oa!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4ed3d2a3-aae2-4edd-9653-85a58d043846_561x1009.png 1272w, https://substackcdn.com/image/fetch/$s_!x0Oa!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4ed3d2a3-aae2-4edd-9653-85a58d043846_561x1009.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!x0Oa!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4ed3d2a3-aae2-4edd-9653-85a58d043846_561x1009.png" width="561" height="1009" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/4ed3d2a3-aae2-4edd-9653-85a58d043846_561x1009.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1009,&quot;width&quot;:561,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:99739,&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://blog.surfalytics.com/i/186887470?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4ed3d2a3-aae2-4edd-9653-85a58d043846_561x1009.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_!x0Oa!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4ed3d2a3-aae2-4edd-9653-85a58d043846_561x1009.png 424w, https://substackcdn.com/image/fetch/$s_!x0Oa!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4ed3d2a3-aae2-4edd-9653-85a58d043846_561x1009.png 848w, https://substackcdn.com/image/fetch/$s_!x0Oa!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4ed3d2a3-aae2-4edd-9653-85a58d043846_561x1009.png 1272w, https://substackcdn.com/image/fetch/$s_!x0Oa!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4ed3d2a3-aae2-4edd-9653-85a58d043846_561x1009.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><ul><li><p>Another VS Code agent that can use different backends (e.g. OpenAI, Anthropic).</p></li><li><p>Similar idea: chat, code generation, sometimes MCP; you bring your own API key.</p></li></ul><p><strong>Benefits:</strong></p><ul><li><p>Stay in <strong>VS Code</strong> with your existing extensions.</p></li><li><p><strong>Any supported provider</strong> &#8211; not tied to one vendor.</p></li><li><p><strong>Open Router</strong> (with Kilo or similar) &#8211; one API key, many models; useful for comparing models or using what your org allows.</p></li></ul><div><hr></div><h3>3.4 AWS Bedrock</h3><p><strong>What it is:</strong><br>AWS&#8217;s managed service for foundation models. You don&#8217;t talk to OpenAI or Anthropic directly; you call Bedrock APIs and choose from the models AWS offers (including some from Anthropic, Meta, Mistral, etc.).</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!qz8b!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1f5f2adb-634d-43b6-b6ff-b9f3929a6fd8_1899x935.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!qz8b!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1f5f2adb-634d-43b6-b6ff-b9f3929a6fd8_1899x935.png 424w, https://substackcdn.com/image/fetch/$s_!qz8b!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1f5f2adb-634d-43b6-b6ff-b9f3929a6fd8_1899x935.png 848w, https://substackcdn.com/image/fetch/$s_!qz8b!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1f5f2adb-634d-43b6-b6ff-b9f3929a6fd8_1899x935.png 1272w, https://substackcdn.com/image/fetch/$s_!qz8b!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1f5f2adb-634d-43b6-b6ff-b9f3929a6fd8_1899x935.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!qz8b!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1f5f2adb-634d-43b6-b6ff-b9f3929a6fd8_1899x935.png" width="1456" height="717" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/1f5f2adb-634d-43b6-b6ff-b9f3929a6fd8_1899x935.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:717,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:321643,&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://blog.surfalytics.com/i/186887470?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1f5f2adb-634d-43b6-b6ff-b9f3929a6fd8_1899x935.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_!qz8b!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1f5f2adb-634d-43b6-b6ff-b9f3929a6fd8_1899x935.png 424w, https://substackcdn.com/image/fetch/$s_!qz8b!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1f5f2adb-634d-43b6-b6ff-b9f3929a6fd8_1899x935.png 848w, https://substackcdn.com/image/fetch/$s_!qz8b!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1f5f2adb-634d-43b6-b6ff-b9f3929a6fd8_1899x935.png 1272w, https://substackcdn.com/image/fetch/$s_!qz8b!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1f5f2adb-634d-43b6-b6ff-b9f3929a6fd8_1899x935.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><strong>Why it matters for teams on AWS:</strong></p><ul><li><p><strong>Data and compliance</strong> &#8211; Data stays in your AWS account and region; useful for data governance.</p></li><li><p><strong>Unified billing</strong> &#8211; Model usage on one AWS bill.</p></li><li><p><strong>Enterprise controls</strong> &#8211; IAM, VPC, logging.</p></li></ul><p><strong>How it can work with VS Code:</strong></p><ul><li><p>Some extensions or custom integrations allow &#8220;Bedrock&#8221; as a model backend (e.g. via API endpoint and AWS auth). You may need to check the marketplace or your internal tools.</p></li><li><p>Alternatively, you use Bedrock from your own scripts or internal tools; the &#8220;IDE&#8221; part might still be Cursor, Claude Code, or a VS Code plugin that supports a Bedrock-compatible API.</p></li></ul><p><strong>Models:</strong><br>Bedrock offers a <strong>subset</strong> of models (e.g. Claude, Llama, Mistral, others). Not every model from every provider is available; check the current <a href="https://docs.aws.amazon.com/bedrock/">Bedrock model list</a> for your region.</p><div><hr></div><h3>3.5 Azure (Azure OpenAI / Azure AI Studio)</h3><p><strong>What it is:</strong><br>Microsoft&#8217;s managed service for foundation models in Azure. Similar in role to AWS Bedrock: you call Azure APIs instead of talking to OpenAI or other providers directly. <strong>Azure OpenAI Service</strong> offers OpenAI models (GPT-4o, etc.) in your tenant; <strong>Azure AI Studio</strong> provides a single place to use Azure OpenAI and other models (including some open and third-party models).</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!VL6d!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F36d5ea9c-4985-4ed0-bbf5-ce39bd7b667d_1698x926.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!VL6d!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F36d5ea9c-4985-4ed0-bbf5-ce39bd7b667d_1698x926.png 424w, https://substackcdn.com/image/fetch/$s_!VL6d!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F36d5ea9c-4985-4ed0-bbf5-ce39bd7b667d_1698x926.png 848w, https://substackcdn.com/image/fetch/$s_!VL6d!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F36d5ea9c-4985-4ed0-bbf5-ce39bd7b667d_1698x926.png 1272w, https://substackcdn.com/image/fetch/$s_!VL6d!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F36d5ea9c-4985-4ed0-bbf5-ce39bd7b667d_1698x926.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!VL6d!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F36d5ea9c-4985-4ed0-bbf5-ce39bd7b667d_1698x926.png" width="1456" height="794" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/36d5ea9c-4985-4ed0-bbf5-ce39bd7b667d_1698x926.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;:521430,&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://blog.surfalytics.com/i/186887470?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F36d5ea9c-4985-4ed0-bbf5-ce39bd7b667d_1698x926.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_!VL6d!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F36d5ea9c-4985-4ed0-bbf5-ce39bd7b667d_1698x926.png 424w, https://substackcdn.com/image/fetch/$s_!VL6d!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F36d5ea9c-4985-4ed0-bbf5-ce39bd7b667d_1698x926.png 848w, https://substackcdn.com/image/fetch/$s_!VL6d!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F36d5ea9c-4985-4ed0-bbf5-ce39bd7b667d_1698x926.png 1272w, https://substackcdn.com/image/fetch/$s_!VL6d!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F36d5ea9c-4985-4ed0-bbf5-ce39bd7b667d_1698x926.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><strong>Why it matters for teams on Azure:</strong></p><ul><li><p><strong>Data and compliance</strong> &#8211; Data stays in your Azure tenant and region; fits Microsoft-centric governance and enterprise agreements.</p></li><li><p><strong>Unified billing</strong> &#8211; Model usage on your Azure bill.</p></li><li><p><strong>Enterprise controls</strong> &#8211; Azure AD, RBAC, private endpoints, audit logs.</p></li></ul><p><strong>How it can work with VS Code:</strong></p><ul><li><p><strong>GitHub Copilot</strong> (when backed by your org&#8217;s subscription) can use Azure OpenAI where configured.</p></li><li><p>Extensions or internal tools can call Azure OpenAI (or Azure AI) APIs with Azure auth; you use your usual IDE with a Bedrock-like &#8220;bring your own cloud&#8221; backend.</p></li></ul><p><strong>Models:</strong><br>Azure OpenAI offers <strong>OpenAI models</strong> (e.g. GPT-4o, GPT-4o mini, o1). Azure AI Studio may offer additional models; check the <a href="https://ai.azure.com">Azure AI Studio</a> and <a href="https://learn.microsoft.com/en-us/azure/ai-services/openai/">Azure OpenAI</a> docs for the current list in your region.</p><div><hr></div><h3>3.6 GCP (Vertex 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_!zxl9!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F542715df-c2aa-4cb9-8ad6-0ec6f9d64876_1713x1299.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!zxl9!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F542715df-c2aa-4cb9-8ad6-0ec6f9d64876_1713x1299.png 424w, https://substackcdn.com/image/fetch/$s_!zxl9!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F542715df-c2aa-4cb9-8ad6-0ec6f9d64876_1713x1299.png 848w, https://substackcdn.com/image/fetch/$s_!zxl9!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F542715df-c2aa-4cb9-8ad6-0ec6f9d64876_1713x1299.png 1272w, https://substackcdn.com/image/fetch/$s_!zxl9!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F542715df-c2aa-4cb9-8ad6-0ec6f9d64876_1713x1299.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!zxl9!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F542715df-c2aa-4cb9-8ad6-0ec6f9d64876_1713x1299.png" width="1456" height="1104" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/542715df-c2aa-4cb9-8ad6-0ec6f9d64876_1713x1299.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1104,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Image of web page for Vertex AI Studio&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Image of web page for Vertex AI Studio" title="Image of web page for Vertex AI Studio" srcset="https://substackcdn.com/image/fetch/$s_!zxl9!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F542715df-c2aa-4cb9-8ad6-0ec6f9d64876_1713x1299.png 424w, https://substackcdn.com/image/fetch/$s_!zxl9!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F542715df-c2aa-4cb9-8ad6-0ec6f9d64876_1713x1299.png 848w, https://substackcdn.com/image/fetch/$s_!zxl9!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F542715df-c2aa-4cb9-8ad6-0ec6f9d64876_1713x1299.png 1272w, https://substackcdn.com/image/fetch/$s_!zxl9!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F542715df-c2aa-4cb9-8ad6-0ec6f9d64876_1713x1299.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><strong>What it is:</strong><br>Google Cloud&#8217;s managed platform for foundation models. <strong>Vertex AI</strong> lets you use Gemini, and often other models (e.g. open or partner models), via Google&#8217;s APIs. Like Bedrock and Azure, your data and usage stay in your GCP project.</p><p><strong>Why it matters for teams on GCP:</strong></p><ul><li><p><strong>Data and compliance</strong> &#8211; Data stays in your GCP project and region; useful for Google-centric data governance.</p></li><li><p><strong>Unified billing</strong> &#8211; Model usage on your GCP bill.</p></li><li><p><strong>Enterprise controls</strong> &#8211; IAM, VPC-SC, audit logging.</p></li></ul><p><strong>How it can work with VS Code:</strong></p><ul><li><p>Some extensions or internal tools support Vertex AI as a model backend (e.g. via REST or SDK with GCP auth). You code in VS Code while the model runs in your project.</p></li><li><p>Alternatively, you call Vertex AI from scripts or pipelines; the &#8220;IDE&#8221; part stays in Cursor, Claude Code, or a plugin that can target a compatible API.</p></li></ul><p><strong>Models:</strong><br>Vertex AI offers <strong>Gemini</strong> (e.g. Gemini 1.5 Pro/Flash, Gemini 2.0) and often other models. Check the <a href="https://cloud.google.com/vertex-ai/docs/start/use-managed-models">Vertex AI model garden</a> for the current list and regions.</p><div><hr></div><h3>3.7 Google Antigravity (IDE alternative)</h3><p><strong>What it is:</strong><br><strong>Google Antigravity</strong> is Google&#8217;s AI-first IDE and agentic development platform (launched in preview in 2025). Unlike &#8220;AI inside VS Code,&#8221; it is a dedicated environment where AI agents can plan work, edit multiple files, run and debug code, and be monitored from an Editor view and a Manager surface. It is positioned as an <strong>alternative to Cursor or Claude Code</strong> for teams open to a Google-native, Gemini-based 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_!ARoi!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9e23c68f-fc9d-4e4d-8fbc-7afae18b725e_5120x2880.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!ARoi!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9e23c68f-fc9d-4e4d-8fbc-7afae18b725e_5120x2880.png 424w, https://substackcdn.com/image/fetch/$s_!ARoi!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9e23c68f-fc9d-4e4d-8fbc-7afae18b725e_5120x2880.png 848w, https://substackcdn.com/image/fetch/$s_!ARoi!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9e23c68f-fc9d-4e4d-8fbc-7afae18b725e_5120x2880.png 1272w, https://substackcdn.com/image/fetch/$s_!ARoi!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9e23c68f-fc9d-4e4d-8fbc-7afae18b725e_5120x2880.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!ARoi!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9e23c68f-fc9d-4e4d-8fbc-7afae18b725e_5120x2880.png" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/9e23c68f-fc9d-4e4d-8fbc-7afae18b725e_5120x2880.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;:4507559,&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://blog.surfalytics.com/i/186887470?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9e23c68f-fc9d-4e4d-8fbc-7afae18b725e_5120x2880.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_!ARoi!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9e23c68f-fc9d-4e4d-8fbc-7afae18b725e_5120x2880.png 424w, https://substackcdn.com/image/fetch/$s_!ARoi!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9e23c68f-fc9d-4e4d-8fbc-7afae18b725e_5120x2880.png 848w, https://substackcdn.com/image/fetch/$s_!ARoi!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9e23c68f-fc9d-4e4d-8fbc-7afae18b725e_5120x2880.png 1272w, https://substackcdn.com/image/fetch/$s_!ARoi!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9e23c68f-fc9d-4e4d-8fbc-7afae18b725e_5120x2880.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><strong>Why consider it:</strong></p><ul><li><p><strong>Free in preview</strong> &#8211; Currently available at no charge for personal Gmail accounts (preview).</p></li><li><p><strong>Gemini-powered</strong> &#8211; Uses Google&#8217;s latest models (e.g. Gemini 3 Pro) tuned for code and multi-step tasks.</p></li><li><p><strong>Agent-centric</strong> &#8211; Task-based agents, artifacts, verification, and optional multi-agent orchestration.</p></li><li><p><strong>Two modes</strong> &#8211; Editor view for hands-on coding with inline AI; Manager surface to spawn and observe agents across workspaces.</p></li></ul><p><strong>Relevance for data engineers/analysts:</strong></p><ul><li><p>Same use cases as other AI IDEs: SQL, dbt, Python, docs, refactors. Quality will depend on Gemini&#8217;s code and reasoning support and how well your stack (e.g. dbt, Airflow, cloud) is represented in context.</p></li><li><p>Good to evaluate if your org is already on GCP or considering Gemini; can complement or substitute Cursor/Claude Code for day-to-day coding.</p></li></ul><p><strong>Caveats:</strong></p><ul><li><p>Preview product; roadmap and enterprise/team plans may change. Check <a href="https://antigravity.google/">antigravity.google</a> and Google&#8217;s developer docs for current availability and terms.</p></li></ul><div><hr></div><h3>3.8 GitHub Copilot</h3><p><strong>What it is:</strong><br>Microsoft&#8217;s AI pair programmer: inline completions, chat, and (in Copilot+) more agent-like features. It integrates with <strong>VS Code</strong> (and other editors) and is widely used in organizations that already have Microsoft/GitHub agreements.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!ernP!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F018f8428-c420-4bce-85a3-541ad8df6712_563x1072.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!ernP!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F018f8428-c420-4bce-85a3-541ad8df6712_563x1072.png 424w, https://substackcdn.com/image/fetch/$s_!ernP!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F018f8428-c420-4bce-85a3-541ad8df6712_563x1072.png 848w, https://substackcdn.com/image/fetch/$s_!ernP!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F018f8428-c420-4bce-85a3-541ad8df6712_563x1072.png 1272w, https://substackcdn.com/image/fetch/$s_!ernP!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F018f8428-c420-4bce-85a3-541ad8df6712_563x1072.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!ernP!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F018f8428-c420-4bce-85a3-541ad8df6712_563x1072.png" width="563" height="1072" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/018f8428-c420-4bce-85a3-541ad8df6712_563x1072.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1072,&quot;width&quot;:563,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:66153,&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://blog.surfalytics.com/i/186887470?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F018f8428-c420-4bce-85a3-541ad8df6712_563x1072.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_!ernP!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F018f8428-c420-4bce-85a3-541ad8df6712_563x1072.png 424w, https://substackcdn.com/image/fetch/$s_!ernP!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F018f8428-c420-4bce-85a3-541ad8df6712_563x1072.png 848w, https://substackcdn.com/image/fetch/$s_!ernP!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F018f8428-c420-4bce-85a3-541ad8df6712_563x1072.png 1272w, https://substackcdn.com/image/fetch/$s_!ernP!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F018f8428-c420-4bce-85a3-541ad8df6712_563x1072.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><strong>Why include it:</strong></p><ul><li><p>Many organizations <strong>already have Copilot</strong> (per-seat or as part of a deal). It&#8217;s the default &#8220;AI in the editor&#8221; for a lot of developers.</p></li><li><p><strong>Tight VS Code integration</strong> &#8211; Completions as you type, chat in the sidebar, and (where available) agent features.</p></li></ul><p><strong>Relevance for data engineers/analysts:</strong></p><ul><li><p>Good for <strong>inline code</strong> (SQL, dbt, Python, YAML for Airflow/Terraform) and short explanations.</p></li><li><p>Less emphasis (today) on deep &#8220;index whole repo + MCP + rules&#8221; in the way Cursor or Claude Code do; often used as a daily driver for suggestions and quick chat, with other tools for heavy lifting.</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_!jWeg!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8a0f89a6-a451-48c9-b23d-2df3db9cd3a7_1370x945.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!jWeg!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8a0f89a6-a451-48c9-b23d-2df3db9cd3a7_1370x945.png 424w, https://substackcdn.com/image/fetch/$s_!jWeg!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8a0f89a6-a451-48c9-b23d-2df3db9cd3a7_1370x945.png 848w, https://substackcdn.com/image/fetch/$s_!jWeg!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8a0f89a6-a451-48c9-b23d-2df3db9cd3a7_1370x945.png 1272w, https://substackcdn.com/image/fetch/$s_!jWeg!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8a0f89a6-a451-48c9-b23d-2df3db9cd3a7_1370x945.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!jWeg!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8a0f89a6-a451-48c9-b23d-2df3db9cd3a7_1370x945.png" width="1370" height="945" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/8a0f89a6-a451-48c9-b23d-2df3db9cd3a7_1370x945.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:945,&quot;width&quot;:1370,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:263204,&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://blog.surfalytics.com/i/186887470?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8a0f89a6-a451-48c9-b23d-2df3db9cd3a7_1370x945.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_!jWeg!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8a0f89a6-a451-48c9-b23d-2df3db9cd3a7_1370x945.png 424w, https://substackcdn.com/image/fetch/$s_!jWeg!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8a0f89a6-a451-48c9-b23d-2df3db9cd3a7_1370x945.png 848w, https://substackcdn.com/image/fetch/$s_!jWeg!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8a0f89a6-a451-48c9-b23d-2df3db9cd3a7_1370x945.png 1272w, https://substackcdn.com/image/fetch/$s_!jWeg!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8a0f89a6-a451-48c9-b23d-2df3db9cd3a7_1370x945.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></p><div><hr></div><h2>4. Summary Table</h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!blfH!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2f186368-e450-4209-80e1-d9672f3f9a00_655x486.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!blfH!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2f186368-e450-4209-80e1-d9672f3f9a00_655x486.png 424w, https://substackcdn.com/image/fetch/$s_!blfH!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2f186368-e450-4209-80e1-d9672f3f9a00_655x486.png 848w, https://substackcdn.com/image/fetch/$s_!blfH!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2f186368-e450-4209-80e1-d9672f3f9a00_655x486.png 1272w, https://substackcdn.com/image/fetch/$s_!blfH!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2f186368-e450-4209-80e1-d9672f3f9a00_655x486.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!blfH!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2f186368-e450-4209-80e1-d9672f3f9a00_655x486.png" width="655" height="486" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/2f186368-e450-4209-80e1-d9672f3f9a00_655x486.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:486,&quot;width&quot;:655,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:87697,&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://blog.surfalytics.com/i/186887470?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2f186368-e450-4209-80e1-d9672f3f9a00_655x486.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_!blfH!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2f186368-e450-4209-80e1-d9672f3f9a00_655x486.png 424w, https://substackcdn.com/image/fetch/$s_!blfH!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2f186368-e450-4209-80e1-d9672f3f9a00_655x486.png 848w, https://substackcdn.com/image/fetch/$s_!blfH!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2f186368-e450-4209-80e1-d9672f3f9a00_655x486.png 1272w, https://substackcdn.com/image/fetch/$s_!blfH!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2f186368-e450-4209-80e1-d9672f3f9a00_655x486.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h2>Summary</h2><p>As I mentioned in the beginning, you need to have an IDE that allows you to leverage the power of one of the top LLM models from OpenAI, Gemini, or Antropic and just start to use them in your daily routine.</p><p>If you want to see a real demo of how we are using AI, I have a session for you:</p><div id="youtube2-85uegQCr6Ww" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;85uegQCr6Ww&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/85uegQCr6Ww?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><p></p>]]></content:encoded></item><item><title><![CDATA[Your First Data Engineering Project: Build an End-to-End Solution for Free with best tools]]></title><description><![CDATA[What If I Told You This SQL-Only Project Is What $200K Data Engineers Build Every Day?]]></description><link>https://blog.surfalytics.com/p/your-first-data-engineering-project</link><guid isPermaLink="false">https://blog.surfalytics.com/p/your-first-data-engineering-project</guid><dc:creator><![CDATA[Dmitry Anoshin]]></dc:creator><pubDate>Mon, 02 Feb 2026 01:06:23 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!BuT2!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc57cf00b-1cf0-4f62-b421-6541f8fdfe5f_1200x632.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h2>The Challenge</h2><p>You want to learn data engineering. But where do you start?</p><p>Courses teach theory. YouTube videos show demos. But you need hands-on experience. You need to build something real.</p><p>Here&#8217;s the problem. Cloud accounts need credit cards. Tools cost money. And most tutorial projects feel fake. They don&#8217;t match what companies actually do.</p><p>What if you could build a real data engineering project for free? Using the same tools that companies use? Without a credit card?</p><p>That&#8217;s what this guide will help you do.</p><h2>What You Will Build</h2><p>By the end of this guide, you will have:</p><ul><li><p>A working data pipeline that runs every day</p></li><li><p>Real data from GitHub in your data warehouse</p></li><li><p>Transformed data ready for dashboards</p></li><li><p>A BI dashboard showing insights</p></li><li><p>A portfolio project you can show and tell in interviews</p></li></ul><p>This is not a toy project. This is how many companies build their data solutions. The tools we use (Fivetran, Snowflake, dbt) are industry standards. You will learn patterns used in production systems.</p><p>Let&#8217;s get started.</p><div><hr></div><h2>Part 1: The Architecture</h2><p>Before we build, let&#8217;s design. Good data engineers think about the big picture first.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!MXG3!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa222c01f-ddd5-4d00-afb7-8f6c7c538dc6_1423x639.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!MXG3!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa222c01f-ddd5-4d00-afb7-8f6c7c538dc6_1423x639.png 424w, https://substackcdn.com/image/fetch/$s_!MXG3!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa222c01f-ddd5-4d00-afb7-8f6c7c538dc6_1423x639.png 848w, https://substackcdn.com/image/fetch/$s_!MXG3!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa222c01f-ddd5-4d00-afb7-8f6c7c538dc6_1423x639.png 1272w, https://substackcdn.com/image/fetch/$s_!MXG3!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa222c01f-ddd5-4d00-afb7-8f6c7c538dc6_1423x639.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!MXG3!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa222c01f-ddd5-4d00-afb7-8f6c7c538dc6_1423x639.png" width="1423" height="639" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a222c01f-ddd5-4d00-afb7-8f6c7c538dc6_1423x639.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:639,&quot;width&quot;:1423,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:101203,&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://blog.surfalytics.com/i/186558220?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa222c01f-ddd5-4d00-afb7-8f6c7c538dc6_1423x639.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_!MXG3!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa222c01f-ddd5-4d00-afb7-8f6c7c538dc6_1423x639.png 424w, https://substackcdn.com/image/fetch/$s_!MXG3!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa222c01f-ddd5-4d00-afb7-8f6c7c538dc6_1423x639.png 848w, https://substackcdn.com/image/fetch/$s_!MXG3!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa222c01f-ddd5-4d00-afb7-8f6c7c538dc6_1423x639.png 1272w, https://substackcdn.com/image/fetch/$s_!MXG3!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa222c01f-ddd5-4d00-afb7-8f6c7c538dc6_1423x639.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><h3>The System Design Framework</h3><p>Every data solution has the same basic parts:</p><ol><li><p><strong>Source</strong> - Where data comes from</p></li><li><p><strong>Ingestion</strong> - How data moves to storage</p></li><li><p><strong>Storage</strong> - Where data lives</p></li><li><p><strong>Transformation</strong> - How data gets cleaned and shaped</p></li><li><p><strong>Consumption</strong> - How people use the data</p></li></ol><p>I&#8217;ve covered this in detail in another blog post: </p><div class="digest-post-embed" data-attrs="{&quot;nodeId&quot;:&quot;f6d44435-cbe4-44b7-a7a5-5bb95a5ddd08&quot;,&quot;caption&quot;:&quot;The 45-Minute Challenge&quot;,&quot;cta&quot;:&quot;Read full story&quot;,&quot;showBylines&quot;:true,&quot;size&quot;:&quot;sm&quot;,&quot;isEditorNode&quot;:true,&quot;title&quot;:&quot;&#127919;Ultimate cheatsheet for Data Engineering System Design interview. &quot;,&quot;publishedBylines&quot;:[{&quot;id&quot;:176866058,&quot;name&quot;:&quot;Dmitry Anoshin&quot;,&quot;bio&quot;:&quot;Surfalytics helps you to engineer your data career with focus on soft, hard and job interview skills.&quot;,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/2ecac0cb-80bb-49c6-b9a8-f2b9e8b15bca_1684x1684.jpeg&quot;,&quot;is_guest&quot;:false,&quot;bestseller_tier&quot;:null}],&quot;post_date&quot;:&quot;2025-10-06T07:02:46.452Z&quot;,&quot;cover_image&quot;:&quot;https://substackcdn.com/image/fetch/$s_!kTZi!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcd741a6c-a6f7-49c3-baaa-9081d8f384a8_1672x1102.heic&quot;,&quot;cover_image_alt&quot;:null,&quot;canonical_url&quot;:&quot;https://blog.surfalytics.com/p/ultimate-cheatsheet-for-data-engineering&quot;,&quot;section_name&quot;:null,&quot;video_upload_id&quot;:null,&quot;id&quot;:175400466,&quot;type&quot;:&quot;newsletter&quot;,&quot;reaction_count&quot;:53,&quot;comment_count&quot;:2,&quot;publication_id&quot;:2051160,&quot;publication_name&quot;:&quot;Data Engineering &amp; Analytics Systems Design&quot;,&quot;publication_logo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!0hZW!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd233226f-0d04-4676-8097-da497d9b1c00_1280x1280.png&quot;,&quot;belowTheFold&quot;:true,&quot;youtube_url&quot;:null,&quot;show_links&quot;:null,&quot;feed_url&quot;:null}"></div><p>For our project, we will use the same approach as we would like to use (and know) for any data analytics project:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!BuT2!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc57cf00b-1cf0-4f62-b421-6541f8fdfe5f_1200x632.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!BuT2!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc57cf00b-1cf0-4f62-b421-6541f8fdfe5f_1200x632.png 424w, https://substackcdn.com/image/fetch/$s_!BuT2!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc57cf00b-1cf0-4f62-b421-6541f8fdfe5f_1200x632.png 848w, https://substackcdn.com/image/fetch/$s_!BuT2!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc57cf00b-1cf0-4f62-b421-6541f8fdfe5f_1200x632.png 1272w, https://substackcdn.com/image/fetch/$s_!BuT2!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc57cf00b-1cf0-4f62-b421-6541f8fdfe5f_1200x632.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!BuT2!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc57cf00b-1cf0-4f62-b421-6541f8fdfe5f_1200x632.png" width="1200" height="632" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c57cf00b-1cf0-4f62-b421-6541f8fdfe5f_1200x632.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:632,&quot;width&quot;:1200,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:81687,&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://blog.surfalytics.com/i/186558220?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc57cf00b-1cf0-4f62-b421-6541f8fdfe5f_1200x632.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_!BuT2!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc57cf00b-1cf0-4f62-b421-6541f8fdfe5f_1200x632.png 424w, https://substackcdn.com/image/fetch/$s_!BuT2!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc57cf00b-1cf0-4f62-b421-6541f8fdfe5f_1200x632.png 848w, https://substackcdn.com/image/fetch/$s_!BuT2!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc57cf00b-1cf0-4f62-b421-6541f8fdfe5f_1200x632.png 1272w, https://substackcdn.com/image/fetch/$s_!BuT2!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc57cf00b-1cf0-4f62-b421-6541f8fdfe5f_1200x632.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><h3>Why These Tools?</h3><p><strong>Source:</strong> GitHub API</p><ul><li><p>Free to use</p></li><li><p>Rich data available</p></li><li><p>No business account needed</p></li></ul><p><strong>Ingestion:</strong> Fivetran</p><ul><li><p>No code required</p></li><li><p>Reliable</p></li><li><p>14-day free trial</p></li></ul><p><strong>Storage:</strong> Snowflake</p><ul><li><p>Most popular data warehouse</p></li><li><p>$400 in free credits</p></li></ul><p><strong>Transformation:</strong> dbt Cloud</p><ul><li><p>Industry standard tool</p></li><li><p>Free developer plan</p></li></ul><p><strong>BI:</strong> Looker Studio</p><ul><li><p>Free forever</p></li><li><p>Easy to learn</p></li></ul><div><hr></div><h2>Part 2: The Data Source - GitHub API</h2><h3>What Data Will We Get?</h3><p>GitHub stores data about code projects. The <a href="http://ttps://docs.github.com/en/rest">GitHub API</a> lets us access this data. Fivetran has a connector that pulls this data for us.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!bQSi!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9027d6ce-c32d-496f-b35c-1b4f5891cac2_756x674.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!bQSi!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9027d6ce-c32d-496f-b35c-1b4f5891cac2_756x674.png 424w, https://substackcdn.com/image/fetch/$s_!bQSi!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9027d6ce-c32d-496f-b35c-1b4f5891cac2_756x674.png 848w, https://substackcdn.com/image/fetch/$s_!bQSi!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9027d6ce-c32d-496f-b35c-1b4f5891cac2_756x674.png 1272w, https://substackcdn.com/image/fetch/$s_!bQSi!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9027d6ce-c32d-496f-b35c-1b4f5891cac2_756x674.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!bQSi!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9027d6ce-c32d-496f-b35c-1b4f5891cac2_756x674.png" width="756" height="674" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/9027d6ce-c32d-496f-b35c-1b4f5891cac2_756x674.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:674,&quot;width&quot;:756,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:64837,&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://blog.surfalytics.com/i/186558220?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9027d6ce-c32d-496f-b35c-1b4f5891cac2_756x674.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_!bQSi!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9027d6ce-c32d-496f-b35c-1b4f5891cac2_756x674.png 424w, https://substackcdn.com/image/fetch/$s_!bQSi!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9027d6ce-c32d-496f-b35c-1b4f5891cac2_756x674.png 848w, https://substackcdn.com/image/fetch/$s_!bQSi!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9027d6ce-c32d-496f-b35c-1b4f5891cac2_756x674.png 1272w, https://substackcdn.com/image/fetch/$s_!bQSi!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9027d6ce-c32d-496f-b35c-1b4f5891cac2_756x674.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>We will get tables like:</p><ul><li><p><strong>Repositories</strong> - Project name, description, language, stars, forks</p></li><li><p><strong>Commits</strong> - Code changes, authors, dates</p></li><li><p><strong>Issues</strong> - Bug reports, feature requests</p></li><li><p><strong>Pull Requests</strong> - Code review requests</p></li><li><p><strong>Users</strong> - People who contribute</p></li></ul><h3>What Questions Can We Answer?</h3><p>With this data, we can build dashboards that answer:</p><ol><li><p>Which programming languages are most popular?</p></li><li><p>Which repos have the most stars?</p></li><li><p>How fast are repos growing?</p></li><li><p>Who are the most active contributors?</p></li><li><p>How many issues get closed vs stay open?</p></li></ol><p>These are real business questions. Companies ask similar questions about their own data.</p><h3>Alternative Data Sources</h3><p>Don&#8217;t want GitHub data? You can use other free sources:</p><ul><li><p>Relational database such as Postgres (Neon, RDS), SQL Server</p></li><li><p>Cloud Storage (S3, Azure Blob, Google Storage)</p></li><li><p>NoSQL database (MongoDB)</p></li><li><p>Numerous other APIs</p></li></ul><blockquote><p><strong>What is an API?</strong></p><p>An <strong>API (Application Programming Interface)</strong> is a messenger that lets different software applications talk to each other. Think of it as a waiter who takes your order to the kitchen and brings back your food.</p><p><strong>Just think about it as a way to get the data from the external application.</strong></p><p><strong>How It Works</strong></p><ol><li><p>You make a request &#8594; Ask for data</p></li><li><p>API processes it &#8594; Finds what you need</p></li><li><p>You get a response &#8594; Receives the data</p></li></ol><p><strong>Basic Components</strong></p><p>Endpoint: The URL where you access the API</p><p>https://api.example.com/users</p><p><strong>Request Methods</strong>:</p><ul><li><p>GET - Retrieve data</p></li><li><p>POST - Create new data</p></li><li><p>PUT - Update data</p></li><li><p>DELETE - Remove data</p></li></ul><p>Response: Data returned (usually JSON format)</p><p>{</p><p>&#8220;name&#8221;: &#8220;John&#8221;,</p><p>&#8220;age&#8221;: 30</p><p>}</p></blockquote><div><hr></div><h2>Part 3: Ingestion with Fivetran</h2><h3>What is Fivetran?</h3><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!f1Xo!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F08045f6c-a86c-4544-8bd6-01cb2dcccc60_1600x936.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!f1Xo!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F08045f6c-a86c-4544-8bd6-01cb2dcccc60_1600x936.png 424w, https://substackcdn.com/image/fetch/$s_!f1Xo!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F08045f6c-a86c-4544-8bd6-01cb2dcccc60_1600x936.png 848w, https://substackcdn.com/image/fetch/$s_!f1Xo!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F08045f6c-a86c-4544-8bd6-01cb2dcccc60_1600x936.png 1272w, https://substackcdn.com/image/fetch/$s_!f1Xo!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F08045f6c-a86c-4544-8bd6-01cb2dcccc60_1600x936.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!f1Xo!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F08045f6c-a86c-4544-8bd6-01cb2dcccc60_1600x936.png" width="1456" height="852" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/08045f6c-a86c-4544-8bd6-01cb2dcccc60_1600x936.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:852,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!f1Xo!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F08045f6c-a86c-4544-8bd6-01cb2dcccc60_1600x936.png 424w, https://substackcdn.com/image/fetch/$s_!f1Xo!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F08045f6c-a86c-4544-8bd6-01cb2dcccc60_1600x936.png 848w, https://substackcdn.com/image/fetch/$s_!f1Xo!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F08045f6c-a86c-4544-8bd6-01cb2dcccc60_1600x936.png 1272w, https://substackcdn.com/image/fetch/$s_!f1Xo!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F08045f6c-a86c-4544-8bd6-01cb2dcccc60_1600x936.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>Fivetran is a data ingestion tool. It connects to data sources and copies data to your data warehouse. You don&#8217;t write code. You just click buttons.</p><p>Fivetran handles the hard parts:</p><ul><li><p>Connecting to APIs</p></li><li><p>Handling errors and retries</p></li><li><p>Tracking what changed (incremental loading)</p></li><li><p>Keeping schemas in sync</p></li></ul><h3>How Often Should Data Sync?</h3><p>This is an important decision. If you sync more often, it costs more money. If you sync less often, your data may be old.</p><p><strong>Common sync options:</strong></p><ul><li><p>Every 15 minutes. Because Fivetran can.</p></li><li><p>Every hour: Best for business-critical dashboards. </p></li><li><p>Every 6 hours: Good for daily operations. Medium cost.</p></li><li><p>Every 24 hours: For historical analysis. Lowest cost.</p></li></ul><p>For our project, we will sync once per day. This works well with the free trial. Daily syncs are usually enough for analytics dashboards.</p><p>The biggest disadvantage for Fivetran is its pricing model. Unlike traditional per-user or flat-rate subscriptions, Fivetran charges based on <strong>MAR (Monthly Active Rows)</strong>, which can quickly become unpredictable and expensive as your data scales.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!MFGW!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5978dc23-f12e-46ae-95e3-dd3ffcefd29e_311x162.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!MFGW!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5978dc23-f12e-46ae-95e3-dd3ffcefd29e_311x162.png 424w, https://substackcdn.com/image/fetch/$s_!MFGW!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5978dc23-f12e-46ae-95e3-dd3ffcefd29e_311x162.png 848w, https://substackcdn.com/image/fetch/$s_!MFGW!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5978dc23-f12e-46ae-95e3-dd3ffcefd29e_311x162.png 1272w, https://substackcdn.com/image/fetch/$s_!MFGW!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5978dc23-f12e-46ae-95e3-dd3ffcefd29e_311x162.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!MFGW!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5978dc23-f12e-46ae-95e3-dd3ffcefd29e_311x162.png" width="311" height="162" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/5978dc23-f12e-46ae-95e3-dd3ffcefd29e_311x162.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:162,&quot;width&quot;:311,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Fivetran pricing spike #dataengineering&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Fivetran pricing spike #dataengineering" title="Fivetran pricing spike #dataengineering" srcset="https://substackcdn.com/image/fetch/$s_!MFGW!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5978dc23-f12e-46ae-95e3-dd3ffcefd29e_311x162.png 424w, https://substackcdn.com/image/fetch/$s_!MFGW!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5978dc23-f12e-46ae-95e3-dd3ffcefd29e_311x162.png 848w, https://substackcdn.com/image/fetch/$s_!MFGW!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5978dc23-f12e-46ae-95e3-dd3ffcefd29e_311x162.png 1272w, https://substackcdn.com/image/fetch/$s_!MFGW!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5978dc23-f12e-46ae-95e3-dd3ffcefd29e_311x162.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><blockquote><p><strong>What is MAR?</strong></p><p><strong>Monthly Active Rows</strong> counts every row of data that Fivetran modifies, creates, or updates during a billing period. This includes:</p><ul><li><p>New rows added to your tables</p></li><li><p>Existing rows that get updated</p></li><li><p>Rows that are re-synced or backfilled</p></li></ul><p><strong>Why MAR Pricing is Problematic</strong></p><ul><li><p><strong>Unpredictable Costs</strong>: If your data changes frequently, your bill can spike unexpectedly. A single table with daily updates can generate millions of MARs.</p></li><li><p><strong>Penalizes Data Growth</strong>: As your business grows and generates more data, your Fivetran costs grow exponentially&#8212;not linearly.</p></li><li><p><strong>Hidden Complexity</strong>: Calculating MAR isn&#8217;t straightforward. Different connectors count rows differently, making it hard to forecast expenses.</p></li><li><p><strong>Backfill Nightmares</strong>: Need to re-sync historical data? Every row counts toward your MAR, potentially doubling or tripling your monthly bill.</p></li><li><p><strong>No Cost Control</strong>: Unlike compute-based pricing where you can pause resources, with MAR you&#8217;re charged for data movement whether you&#8217;re actively using it or not.</p></li></ul><p><strong>The Bottom Line</strong></p><p>While Fivetran offers excellent reliability and ease of use, their MAR pricing model can lead to <strong>budget overruns</strong> and makes it difficult for growing companies to predict their data infrastructure costs. Many teams find themselves paying thousands more than anticipated once their data volume scales.</p></blockquote><h3>Alternatives to Fivetran</h3><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Z6O8!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F74a39357-155a-4a91-bc01-d271acafc89f_1980x1172.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Z6O8!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F74a39357-155a-4a91-bc01-d271acafc89f_1980x1172.jpeg 424w, https://substackcdn.com/image/fetch/$s_!Z6O8!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F74a39357-155a-4a91-bc01-d271acafc89f_1980x1172.jpeg 848w, https://substackcdn.com/image/fetch/$s_!Z6O8!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F74a39357-155a-4a91-bc01-d271acafc89f_1980x1172.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!Z6O8!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F74a39357-155a-4a91-bc01-d271acafc89f_1980x1172.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Z6O8!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F74a39357-155a-4a91-bc01-d271acafc89f_1980x1172.jpeg" width="1456" height="862" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/74a39357-155a-4a91-bc01-d271acafc89f_1980x1172.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:862,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Top Fivetran Alternatives &amp; Competitors in 2026&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Top Fivetran Alternatives &amp; Competitors in 2026" title="Top Fivetran Alternatives &amp; Competitors in 2026" srcset="https://substackcdn.com/image/fetch/$s_!Z6O8!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F74a39357-155a-4a91-bc01-d271acafc89f_1980x1172.jpeg 424w, https://substackcdn.com/image/fetch/$s_!Z6O8!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F74a39357-155a-4a91-bc01-d271acafc89f_1980x1172.jpeg 848w, https://substackcdn.com/image/fetch/$s_!Z6O8!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F74a39357-155a-4a91-bc01-d271acafc89f_1980x1172.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!Z6O8!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F74a39357-155a-4a91-bc01-d271acafc89f_1980x1172.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>Fivetran is not the only tool you can use. Here are some other choices:</p><ul><li><p><strong>Fivetran:</strong> Managed and no-code. Good if you want to start quickly and don&#8217;t want to code.</p></li><li><p><strong>Airbyte:</strong> Open source. Choose this if you want more control over the process.</p></li><li><p><strong>Meltano:</strong> Open source and uses the command line. Best for developers who like working with CLI tools.</p></li><li><p><strong>Custom Python:</strong> Write code to handle data syncing. Good for special situations or unique needs. Usually run by Airflow.</p></li></ul><p>For learning, Fivetran is the easiest. Start here. Try alternatives later.</p><div><hr></div><h2>Part 4: Storage with Snowflake</h2><h3>What is Snowflake?</h3><p>Snowflake is a cloud data warehouse. Think of it as a big database designed for analytics. It&#8217;s where all your data lives.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!FBlq!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F88c0ccfe-7a0a-4c17-baae-3de569b8e5f1_858x485.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!FBlq!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F88c0ccfe-7a0a-4c17-baae-3de569b8e5f1_858x485.png 424w, https://substackcdn.com/image/fetch/$s_!FBlq!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F88c0ccfe-7a0a-4c17-baae-3de569b8e5f1_858x485.png 848w, https://substackcdn.com/image/fetch/$s_!FBlq!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F88c0ccfe-7a0a-4c17-baae-3de569b8e5f1_858x485.png 1272w, https://substackcdn.com/image/fetch/$s_!FBlq!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F88c0ccfe-7a0a-4c17-baae-3de569b8e5f1_858x485.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!FBlq!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F88c0ccfe-7a0a-4c17-baae-3de569b8e5f1_858x485.png" width="858" height="485" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/88c0ccfe-7a0a-4c17-baae-3de569b8e5f1_858x485.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:485,&quot;width&quot;:858,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Snowflake's Elastic Cloud Services&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Snowflake's Elastic Cloud Services" title="Snowflake's Elastic Cloud Services" srcset="https://substackcdn.com/image/fetch/$s_!FBlq!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F88c0ccfe-7a0a-4c17-baae-3de569b8e5f1_858x485.png 424w, https://substackcdn.com/image/fetch/$s_!FBlq!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F88c0ccfe-7a0a-4c17-baae-3de569b8e5f1_858x485.png 848w, https://substackcdn.com/image/fetch/$s_!FBlq!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F88c0ccfe-7a0a-4c17-baae-3de569b8e5f1_858x485.png 1272w, https://substackcdn.com/image/fetch/$s_!FBlq!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F88c0ccfe-7a0a-4c17-baae-3de569b8e5f1_858x485.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>Snowflake is popular for good reasons:</p><ul><li><p>Easy to use (SQL-based)</p></li><li><p>Scales automatically</p></li><li><p>Separates storage from compute (you pay for what you use)</p></li><li><p>Great documentation</p></li><li><p>Used by thousands of companies</p></li></ul><p>Want to learn more? Check my last book -<a href="https://www.amazon.ca/Jumpstart-Snowflake-Step-Step-Analytics/dp/1484253272"> Jumpstart Snowflake: A Step-by-Step Guide to Modern Cloud Analytics</a></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!VeMs!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbaf50e48-00d0-4517-ac25-468af2ae191b_328x466.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!VeMs!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbaf50e48-00d0-4517-ac25-468af2ae191b_328x466.png 424w, https://substackcdn.com/image/fetch/$s_!VeMs!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbaf50e48-00d0-4517-ac25-468af2ae191b_328x466.png 848w, https://substackcdn.com/image/fetch/$s_!VeMs!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbaf50e48-00d0-4517-ac25-468af2ae191b_328x466.png 1272w, https://substackcdn.com/image/fetch/$s_!VeMs!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbaf50e48-00d0-4517-ac25-468af2ae191b_328x466.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!VeMs!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbaf50e48-00d0-4517-ac25-468af2ae191b_328x466.png" width="328" height="466" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/baf50e48-00d0-4517-ac25-468af2ae191b_328x466.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:466,&quot;width&quot;:328,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:168523,&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://blog.surfalytics.com/i/186558220?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbaf50e48-00d0-4517-ac25-468af2ae191b_328x466.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_!VeMs!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbaf50e48-00d0-4517-ac25-468af2ae191b_328x466.png 424w, https://substackcdn.com/image/fetch/$s_!VeMs!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbaf50e48-00d0-4517-ac25-468af2ae191b_328x466.png 848w, https://substackcdn.com/image/fetch/$s_!VeMs!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbaf50e48-00d0-4517-ac25-468af2ae191b_328x466.png 1272w, https://substackcdn.com/image/fetch/$s_!VeMs!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbaf50e48-00d0-4517-ac25-468af2ae191b_328x466.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><h3>Setting Up Snowflake</h3><p><strong>Step 1: Create an account</strong> at https://signup.snowflake.com/</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!mnsu!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcf1dc38b-f11d-4231-9913-4bad6475cf80_1649x874.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!mnsu!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcf1dc38b-f11d-4231-9913-4bad6475cf80_1649x874.png 424w, https://substackcdn.com/image/fetch/$s_!mnsu!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcf1dc38b-f11d-4231-9913-4bad6475cf80_1649x874.png 848w, https://substackcdn.com/image/fetch/$s_!mnsu!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcf1dc38b-f11d-4231-9913-4bad6475cf80_1649x874.png 1272w, https://substackcdn.com/image/fetch/$s_!mnsu!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcf1dc38b-f11d-4231-9913-4bad6475cf80_1649x874.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!mnsu!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcf1dc38b-f11d-4231-9913-4bad6475cf80_1649x874.png" width="1456" height="772" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/cf1dc38b-f11d-4231-9913-4bad6475cf80_1649x874.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:772,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:798138,&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://blog.surfalytics.com/i/186558220?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcf1dc38b-f11d-4231-9913-4bad6475cf80_1649x874.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_!mnsu!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcf1dc38b-f11d-4231-9913-4bad6475cf80_1649x874.png 424w, https://substackcdn.com/image/fetch/$s_!mnsu!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcf1dc38b-f11d-4231-9913-4bad6475cf80_1649x874.png 848w, https://substackcdn.com/image/fetch/$s_!mnsu!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcf1dc38b-f11d-4231-9913-4bad6475cf80_1649x874.png 1272w, https://substackcdn.com/image/fetch/$s_!mnsu!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcf1dc38b-f11d-4231-9913-4bad6475cf80_1649x874.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></p><p><strong>Step 2: Create the database structure</strong></p><p>Open a SQL worksheet in Snowflake. Run these commands:</p><pre><code>-- Create databases for each layer
CREATE DATABASE GITHUB_RAW;
CREATE DATABASE GITHUB_STAGING;
CREATE DATABASE GITHUB_ANALYTICS;

-- Create schemas
CREATE SCHEMA GITHUB_RAW.FIVETRAN;
CREATE SCHEMA GITHUB_STAGING.STAGING;
CREATE SCHEMA GITHUB_ANALYTICS.MARTS;

-- Create a warehouse (compute) for running queries
CREATE WAREHOUSE TRANSFORM_WH 
  WAREHOUSE_SIZE = 'X-SMALL'
  AUTO_SUSPEND = 60
  AUTO_RESUME = TRUE;
</code></pre><p><strong>What did we just create?</strong></p><ul><li><p><strong>GITHUB_RAW</strong> - Where Fivetran puts raw data</p></li><li><p><strong>GITHUB_STAGING</strong> - Where we clean data</p></li><li><p><strong>GITHUB_ANALYTICS</strong> - Where we put final tables for dashboards</p></li><li><p><strong>TRANSFORM_WH</strong> - A small compute instance to run queries</p></li></ul><p><strong>Step 3: Create users for tools</strong></p><p>Each tool needs its own login. This is good security practice.</p><pre><code>-- Create a user for Fivetran
CREATE ROLE FIVETRAN_ROLE;
CREATE USER FIVETRAN_USER 
  PASSWORD = 'ChooseAStrongPassword123!'
  DEFAULT_ROLE = FIVETRAN_ROLE;

GRANT ROLE FIVETRAN_ROLE TO USER FIVETRAN_USER;
GRANT USAGE ON WAREHOUSE TRANSFORM_WH TO ROLE FIVETRAN_ROLE;
GRANT ALL ON DATABASE GITHUB_RAW TO ROLE FIVETRAN_ROLE;

-- Create a user for dbt
CREATE ROLE DBT_ROLE;
CREATE USER DBT_USER 
  PASSWORD = 'ChooseAnotherStrongPassword456!'
  DEFAULT_ROLE = DBT_ROLE;

GRANT ROLE DBT_ROLE TO USER DBT_USER;
GRANT USAGE ON WAREHOUSE TRANSFORM_WH TO ROLE DBT_ROLE;
GRANT USAGE ON DATABASE GITHUB_RAW TO ROLE DBT_ROLE;
GRANT SELECT ON ALL TABLES IN DATABASE GITHUB_RAW TO ROLE DBT_ROLE;
GRANT SELECT ON FUTURE TABLES IN DATABASE GITHUB_RAW TO ROLE DBT_ROLE;
GRANT ALL ON DATABASE GITHUB_STAGING TO ROLE DBT_ROLE;
GRANT ALL ON DATABASE GITHUB_ANALYTICS TO ROLE DBT_ROLE;</code></pre><p>Save these passwords. You will need them later.</p><h3>Data Layers Explained</h3><p>We created three databases. This is called a &#8220;layered architecture.&#8221; Each layer has a job.</p><p><strong>RAW Layer (Bronze)</strong></p><ul><li><p>Exact copy of source data</p></li><li><p>Fivetran manages this</p></li><li><p>We never change this data</p></li><li><p>If something breaks, we can always go back here</p></li></ul><p><strong>STAGING Layer (Silver)</strong></p><ul><li><p>Cleaned and typed data</p></li><li><p>Column names are consistent</p></li><li><p>Bad data is filtered out</p></li><li><p>dbt manages this</p></li></ul><p><strong>ANALYTICS Layer (Gold)</strong></p><ul><li><p>Business-ready tables</p></li><li><p>Aggregations and metrics</p></li><li><p>Ready for dashboards</p></li><li><p>dbt manages this</p></li></ul><p>Some people call this &#8220;Medallion Architecture&#8221; (Bronze, Silver, Gold). Some call it &#8220;Raw, Stage, Marts.&#8221; The names don&#8217;t matter. The concept does. </p><div class="pullquote"><p>Pro tip: You can skip the middle layer.</p></div><h3>Alternatives to Snowflake</h3><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!9xAK!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0e2a5005-3f4d-4a69-b35a-7f4aecec0f37_1024x576.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!9xAK!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0e2a5005-3f4d-4a69-b35a-7f4aecec0f37_1024x576.png 424w, https://substackcdn.com/image/fetch/$s_!9xAK!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0e2a5005-3f4d-4a69-b35a-7f4aecec0f37_1024x576.png 848w, https://substackcdn.com/image/fetch/$s_!9xAK!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0e2a5005-3f4d-4a69-b35a-7f4aecec0f37_1024x576.png 1272w, https://substackcdn.com/image/fetch/$s_!9xAK!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0e2a5005-3f4d-4a69-b35a-7f4aecec0f37_1024x576.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!9xAK!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0e2a5005-3f4d-4a69-b35a-7f4aecec0f37_1024x576.png" width="1024" height="576" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/0e2a5005-3f4d-4a69-b35a-7f4aecec0f37_1024x576.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:576,&quot;width&quot;:1024,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Top 10 Snowflake Competitors and Alternatives (2026)&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Top 10 Snowflake Competitors and Alternatives (2026)" title="Top 10 Snowflake Competitors and Alternatives (2026)" srcset="https://substackcdn.com/image/fetch/$s_!9xAK!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0e2a5005-3f4d-4a69-b35a-7f4aecec0f37_1024x576.png 424w, https://substackcdn.com/image/fetch/$s_!9xAK!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0e2a5005-3f4d-4a69-b35a-7f4aecec0f37_1024x576.png 848w, https://substackcdn.com/image/fetch/$s_!9xAK!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0e2a5005-3f4d-4a69-b35a-7f4aecec0f37_1024x576.png 1272w, https://substackcdn.com/image/fetch/$s_!9xAK!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0e2a5005-3f4d-4a69-b35a-7f4aecec0f37_1024x576.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>Snowflake, BigQuery, Redshift, and Synapse (now called Microsoft Fabric) are the most popular warehouse options. It means you can try another platform:</p><ul><li><p><strong>BigQuery</strong>: Good if you use Google Cloud Platform (GCP). GCP gives you $300 in credits.</p></li><li><p><strong>Redshift</strong>: Ideal for people using Amazon Web Services (AWS). There is an AWS free tier.</p></li><li><p><strong>Synapse</strong>: Best for Azure users. Azure gives free credits.</p></li></ul><p>For learning the modern data stack, Snowflake is the best choice. Most job postings mention it.</p><div><hr></div><h2>Part 5: Finish Fivetran Setup</h2><p>Now that Snowflake is ready, let&#8217;s finish Fivetran.</p><p><strong>Step 1: Add Snowflake as a destination</strong></p><ol><li><p>In Fivetran, go to Destinations</p></li><li><p>Click &#8220;Add Destination&#8221;</p></li><li><p>Choose &#8220;Snowflake&#8221;</p></li><li><p>Enter your Snowflake details:</p><ul><li><p>Account: Your Snowflake account URL</p></li><li><p>User: FIVETRAN_USER</p></li><li><p>Password: The password you created</p></li><li><p>Database: GITHUB_RAW</p></li><li><p>Schema: FIVETRAN</p></li><li><p>Warehouse: TRANSFORM_WH</p></li></ul></li><li><p>Test the connection</p></li></ol><p><strong>Step 2: Add GitHub connector</strong></p><ol><li><p>Go to Connectors</p></li><li><p>Click &#8220;Add Connector&#8221;</p></li><li><p>Search for &#8220;GitHub&#8221;</p></li><li><p>Click &#8220;Set Up&#8221;</p></li><li><p>Authenticate with your GitHub account</p></li><li><p>Select which repos or organizations to sync</p></li><li><p>Choose sync frequency: Daily</p></li><li><p>Start the sync</p></li></ol><p>Fivetran will now pull data from GitHub and put it in Snowflake. The first sync takes a few minutes. After that, it runs daily.</p><div><hr></div><h2>Part 6: Data Modelling Concepts</h2><p>Before we build dbt models, let&#8217;s learn two important concepts. These come up in every data engineering interview.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!FyhW!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff95af2bf-4f5a-4614-9127-fcadbd784f18_960x540.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!FyhW!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff95af2bf-4f5a-4614-9127-fcadbd784f18_960x540.png 424w, https://substackcdn.com/image/fetch/$s_!FyhW!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff95af2bf-4f5a-4614-9127-fcadbd784f18_960x540.png 848w, https://substackcdn.com/image/fetch/$s_!FyhW!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff95af2bf-4f5a-4614-9127-fcadbd784f18_960x540.png 1272w, https://substackcdn.com/image/fetch/$s_!FyhW!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff95af2bf-4f5a-4614-9127-fcadbd784f18_960x540.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!FyhW!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff95af2bf-4f5a-4614-9127-fcadbd784f18_960x540.png" width="960" height="540" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/f95af2bf-4f5a-4614-9127-fcadbd784f18_960x540.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:540,&quot;width&quot;:960,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Dimensional Modeling and Feature Stores - MLOps Dictionary | Hopsworks&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Dimensional Modeling and Feature Stores - MLOps Dictionary | Hopsworks" title="Dimensional Modeling and Feature Stores - MLOps Dictionary | Hopsworks" srcset="https://substackcdn.com/image/fetch/$s_!FyhW!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff95af2bf-4f5a-4614-9127-fcadbd784f18_960x540.png 424w, https://substackcdn.com/image/fetch/$s_!FyhW!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff95af2bf-4f5a-4614-9127-fcadbd784f18_960x540.png 848w, https://substackcdn.com/image/fetch/$s_!FyhW!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff95af2bf-4f5a-4614-9127-fcadbd784f18_960x540.png 1272w, https://substackcdn.com/image/fetch/$s_!FyhW!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff95af2bf-4f5a-4614-9127-fcadbd784f18_960x540.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><h3>Dimensional Modelling</h3><p>Dimensional modelling is how we organize data for analytics. It&#8217;s the most common approach for data warehouses.</p><p>The idea is simple. We have two types of tables:</p><p><strong>Fact Tables</strong> - Store events and measurements</p><ul><li><p>Things that happen: orders, clicks, commits</p></li><li><p>Have numbers you can add up: revenue, count, duration</p></li><li><p>Named with the prefix <code>fct_</code></p></li></ul><p><strong>Dimension Tables</strong> - Store descriptions</p><ul><li><p>Things that describe facts: customers, products, dates</p></li><li><p>Have text and categories: name, type, status</p></li><li><p>Named with prefix <code>dim_</code></p></li></ul><p>For our GitHub project:</p><ul><li><p><strong>fct_repo_activity</strong> (Fact table): Stores daily counts of commits, pull requests, and issues for each repository.</p></li><li><p><strong>dim_repositories</strong> (Dimension table): Stores details about each repository, like name, language, owner, and description.</p></li><li><p><strong>dim_users</strong> (Dimension table): Stores user information, such as username, name, and profile details.</p></li><li><p><strong>dim_dates</strong> (Dimension table): Stores date-related details, such as the date, month, quarter, and year.</p></li></ul><p><strong>Star Schema</strong></p><p>When you draw this, the fact table sits in the middle. Dimension tables connect to it like points of a star.</p><p>              </p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!sV4p!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe08d9e64-22be-4a5a-99a4-22c348af5519_683x559.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!sV4p!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe08d9e64-22be-4a5a-99a4-22c348af5519_683x559.png 424w, https://substackcdn.com/image/fetch/$s_!sV4p!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe08d9e64-22be-4a5a-99a4-22c348af5519_683x559.png 848w, https://substackcdn.com/image/fetch/$s_!sV4p!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe08d9e64-22be-4a5a-99a4-22c348af5519_683x559.png 1272w, https://substackcdn.com/image/fetch/$s_!sV4p!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe08d9e64-22be-4a5a-99a4-22c348af5519_683x559.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!sV4p!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe08d9e64-22be-4a5a-99a4-22c348af5519_683x559.png" width="683" height="559" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/e08d9e64-22be-4a5a-99a4-22c348af5519_683x559.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:559,&quot;width&quot;:683,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:300365,&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://blog.surfalytics.com/i/186558220?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe08d9e64-22be-4a5a-99a4-22c348af5519_683x559.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_!sV4p!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe08d9e64-22be-4a5a-99a4-22c348af5519_683x559.png 424w, https://substackcdn.com/image/fetch/$s_!sV4p!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe08d9e64-22be-4a5a-99a4-22c348af5519_683x559.png 848w, https://substackcdn.com/image/fetch/$s_!sV4p!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe08d9e64-22be-4a5a-99a4-22c348af5519_683x559.png 1272w, https://substackcdn.com/image/fetch/$s_!sV4p!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe08d9e64-22be-4a5a-99a4-22c348af5519_683x559.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">Just an example that I generated in Nano Banana</figcaption></figure></div><p> This design makes queries fast. BI tools love it.</p><h3>Slowly Changing Dimensions (SCD)</h3><p>Here&#8217;s a problem. What happens when data changes over time?</p><p>A GitHub user changes their username. A repo changes owner. How do we handle this?</p><p>This is called &#8220;Slowly Changing Dimensions&#8221; or SCD. There are different approaches:</p><p><strong>SCD Type 1 - Overwrite</strong></p><p>Just replace the old value with the new one.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!qeor!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F838ce849-142c-464d-b3a2-2ce7ac74891a_673x94.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!qeor!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F838ce849-142c-464d-b3a2-2ce7ac74891a_673x94.png 424w, https://substackcdn.com/image/fetch/$s_!qeor!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F838ce849-142c-464d-b3a2-2ce7ac74891a_673x94.png 848w, https://substackcdn.com/image/fetch/$s_!qeor!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F838ce849-142c-464d-b3a2-2ce7ac74891a_673x94.png 1272w, https://substackcdn.com/image/fetch/$s_!qeor!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F838ce849-142c-464d-b3a2-2ce7ac74891a_673x94.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!qeor!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F838ce849-142c-464d-b3a2-2ce7ac74891a_673x94.png" width="673" height="94" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/838ce849-142c-464d-b3a2-2ce7ac74891a_673x94.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:94,&quot;width&quot;:673,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:8336,&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://blog.surfalytics.com/i/186558220?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F838ce849-142c-464d-b3a2-2ce7ac74891a_673x94.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_!qeor!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F838ce849-142c-464d-b3a2-2ce7ac74891a_673x94.png 424w, https://substackcdn.com/image/fetch/$s_!qeor!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F838ce849-142c-464d-b3a2-2ce7ac74891a_673x94.png 848w, https://substackcdn.com/image/fetch/$s_!qeor!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F838ce849-142c-464d-b3a2-2ce7ac74891a_673x94.png 1272w, https://substackcdn.com/image/fetch/$s_!qeor!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F838ce849-142c-464d-b3a2-2ce7ac74891a_673x94.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><p>Simple. But we lose history. We can&#8217;t see what the old username was.</p><p><strong>SCD Type 2 - Keep History</strong></p><p>Add new rows for changes. Track when each version was valid.</p><p></p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!a9gE!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1cfc2fe9-85d3-4486-9b85-197f1d05ef95_659x126.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!a9gE!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1cfc2fe9-85d3-4486-9b85-197f1d05ef95_659x126.png 424w, https://substackcdn.com/image/fetch/$s_!a9gE!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1cfc2fe9-85d3-4486-9b85-197f1d05ef95_659x126.png 848w, https://substackcdn.com/image/fetch/$s_!a9gE!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1cfc2fe9-85d3-4486-9b85-197f1d05ef95_659x126.png 1272w, https://substackcdn.com/image/fetch/$s_!a9gE!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1cfc2fe9-85d3-4486-9b85-197f1d05ef95_659x126.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!a9gE!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1cfc2fe9-85d3-4486-9b85-197f1d05ef95_659x126.png" width="659" height="126" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/1cfc2fe9-85d3-4486-9b85-197f1d05ef95_659x126.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:126,&quot;width&quot;:659,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:16989,&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://blog.surfalytics.com/i/186558220?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1cfc2fe9-85d3-4486-9b85-197f1d05ef95_659x126.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_!a9gE!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1cfc2fe9-85d3-4486-9b85-197f1d05ef95_659x126.png 424w, https://substackcdn.com/image/fetch/$s_!a9gE!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1cfc2fe9-85d3-4486-9b85-197f1d05ef95_659x126.png 848w, https://substackcdn.com/image/fetch/$s_!a9gE!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1cfc2fe9-85d3-4486-9b85-197f1d05ef95_659x126.png 1272w, https://substackcdn.com/image/fetch/$s_!a9gE!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1cfc2fe9-85d3-4486-9b85-197f1d05ef95_659x126.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><p>More complex. But we keep the full history. We can see what the username was at any point in time.</p><p><strong>Which to choose?</strong></p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!D4o_!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa3e31d66-50a1-4062-bd11-234131422933_660x118.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!D4o_!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa3e31d66-50a1-4062-bd11-234131422933_660x118.png 424w, https://substackcdn.com/image/fetch/$s_!D4o_!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa3e31d66-50a1-4062-bd11-234131422933_660x118.png 848w, https://substackcdn.com/image/fetch/$s_!D4o_!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa3e31d66-50a1-4062-bd11-234131422933_660x118.png 1272w, https://substackcdn.com/image/fetch/$s_!D4o_!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa3e31d66-50a1-4062-bd11-234131422933_660x118.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!D4o_!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa3e31d66-50a1-4062-bd11-234131422933_660x118.png" width="660" height="118" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a3e31d66-50a1-4062-bd11-234131422933_660x118.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:118,&quot;width&quot;:660,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:17483,&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://blog.surfalytics.com/i/186558220?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa3e31d66-50a1-4062-bd11-234131422933_660x118.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_!D4o_!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa3e31d66-50a1-4062-bd11-234131422933_660x118.png 424w, https://substackcdn.com/image/fetch/$s_!D4o_!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa3e31d66-50a1-4062-bd11-234131422933_660x118.png 848w, https://substackcdn.com/image/fetch/$s_!D4o_!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa3e31d66-50a1-4062-bd11-234131422933_660x118.png 1272w, https://substackcdn.com/image/fetch/$s_!D4o_!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa3e31d66-50a1-4062-bd11-234131422933_660x118.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><p>For our project, we&#8217;ll start with Type 1. It&#8217;s simpler. You can add Type 2 later using dbt snapshots.</p><p><strong>Interview Tip</strong>: Interviewers love asking about SCD. Be ready to explain Type 1 vs Type 2 and when to use each.</p><div><hr></div><h2>Part 7: Transformation with dbt</h2><h3>What is dbt?</h3><p>dbt stands for &#8220;data build tool.&#8221; It transforms data using SQL.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!hRRE!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd89e9691-a1b8-4378-9cac-33bd86bbd307_1200x439.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!hRRE!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd89e9691-a1b8-4378-9cac-33bd86bbd307_1200x439.png 424w, https://substackcdn.com/image/fetch/$s_!hRRE!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd89e9691-a1b8-4378-9cac-33bd86bbd307_1200x439.png 848w, https://substackcdn.com/image/fetch/$s_!hRRE!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd89e9691-a1b8-4378-9cac-33bd86bbd307_1200x439.png 1272w, https://substackcdn.com/image/fetch/$s_!hRRE!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd89e9691-a1b8-4378-9cac-33bd86bbd307_1200x439.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!hRRE!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd89e9691-a1b8-4378-9cac-33bd86bbd307_1200x439.png" width="1200" height="439" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d89e9691-a1b8-4378-9cac-33bd86bbd307_1200x439.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:439,&quot;width&quot;:1200,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;What exactly is dbt and how does it work? | dbt Labs&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="What exactly is dbt and how does it work? | dbt Labs" title="What exactly is dbt and how does it work? | dbt Labs" srcset="https://substackcdn.com/image/fetch/$s_!hRRE!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd89e9691-a1b8-4378-9cac-33bd86bbd307_1200x439.png 424w, https://substackcdn.com/image/fetch/$s_!hRRE!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd89e9691-a1b8-4378-9cac-33bd86bbd307_1200x439.png 848w, https://substackcdn.com/image/fetch/$s_!hRRE!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd89e9691-a1b8-4378-9cac-33bd86bbd307_1200x439.png 1272w, https://substackcdn.com/image/fetch/$s_!hRRE!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd89e9691-a1b8-4378-9cac-33bd86bbd307_1200x439.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 how it works:</p><ol><li><p>You write SQL SELECT statements</p></li><li><p>dbt runs them and creates tables</p></li><li><p>dbt tracks dependencies between tables</p></li><li><p>dbt tests your data for quality</p></li></ol><p>dbt is the industry standard for data transformation. Almost every modern data team uses it.</p><div class="pullquote"><p>Pro tip: SQL = dbt model</p></div><p>dbt is the most important part of this project. It ties together data warehouse, data ingestion, business logic, software engineering practices and so on. You definitely need to invest time in this tool and understand it well. </p><p>Check their learning page: https://learn.getdbt.com/catalog</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!sywd!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F397b9cf6-e5ef-4010-90ef-4f449f11a2c7_1484x1151.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!sywd!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F397b9cf6-e5ef-4010-90ef-4f449f11a2c7_1484x1151.png 424w, https://substackcdn.com/image/fetch/$s_!sywd!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F397b9cf6-e5ef-4010-90ef-4f449f11a2c7_1484x1151.png 848w, https://substackcdn.com/image/fetch/$s_!sywd!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F397b9cf6-e5ef-4010-90ef-4f449f11a2c7_1484x1151.png 1272w, https://substackcdn.com/image/fetch/$s_!sywd!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F397b9cf6-e5ef-4010-90ef-4f449f11a2c7_1484x1151.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!sywd!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F397b9cf6-e5ef-4010-90ef-4f449f11a2c7_1484x1151.png" width="1456" height="1129" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/397b9cf6-e5ef-4010-90ef-4f449f11a2c7_1484x1151.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1129,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:946667,&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://blog.surfalytics.com/i/186558220?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F397b9cf6-e5ef-4010-90ef-4f449f11a2c7_1484x1151.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_!sywd!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F397b9cf6-e5ef-4010-90ef-4f449f11a2c7_1484x1151.png 424w, https://substackcdn.com/image/fetch/$s_!sywd!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F397b9cf6-e5ef-4010-90ef-4f449f11a2c7_1484x1151.png 848w, https://substackcdn.com/image/fetch/$s_!sywd!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F397b9cf6-e5ef-4010-90ef-4f449f11a2c7_1484x1151.png 1272w, https://substackcdn.com/image/fetch/$s_!sywd!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F397b9cf6-e5ef-4010-90ef-4f449f11a2c7_1484x1151.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 probably need only the fundamentals course.</p><h3>Setting Up dbt Cloud</h3><p><strong>Step 1: Create an account at https://www.getdbt.com/signup</strong></p><p><strong>Step 2: Create a GitHub repository </strong></p><ol><li><p>Go to github.com</p></li><li><p>Create a new repository called &#8220;<strong>github-analytics-dbt&#8221;</strong></p></li><li><p>Make it public (easier for portfolio)</p></li><li><p>Initialize with a README</p></li></ol><p>We covered this in module 0:"</p><div id="youtube2-shco0WL69hU" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;shco0WL69hU&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/shco0WL69hU?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><p><strong>Step 3: Connect dbt to GitHub</strong></p><ol><li><p>In dbt Cloud, create a new project</p></li><li><p>Connect to your GitHub repository</p></li><li><p>dbt will sync code automatically</p></li></ol><p><strong>Step 4: Connect dbt to Snowflake</strong></p><ol><li><p>Add a Snowflake connection</p></li><li><p>Enter details:</p><ul><li><p>Account: Your Snowflake account</p></li><li><p>User: DBT_USER</p></li><li><p>Password: The password you created</p></li><li><p>Database: GITHUB_STAGING (default)</p></li><li><p>Warehouse: TRANSFORM_WH</p></li></ul></li><li><p>Test the connection</p></li></ol><h3>dbt Project Structure</h3><p>dbt projects have a standard structure:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!H6UX!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6bfa2849-b665-472f-9aea-95f83c21c094_693x410.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!H6UX!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6bfa2849-b665-472f-9aea-95f83c21c094_693x410.png 424w, https://substackcdn.com/image/fetch/$s_!H6UX!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6bfa2849-b665-472f-9aea-95f83c21c094_693x410.png 848w, https://substackcdn.com/image/fetch/$s_!H6UX!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6bfa2849-b665-472f-9aea-95f83c21c094_693x410.png 1272w, https://substackcdn.com/image/fetch/$s_!H6UX!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6bfa2849-b665-472f-9aea-95f83c21c094_693x410.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!H6UX!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6bfa2849-b665-472f-9aea-95f83c21c094_693x410.png" width="693" height="410" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/6bfa2849-b665-472f-9aea-95f83c21c094_693x410.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:410,&quot;width&quot;:693,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:72343,&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://blog.surfalytics.com/i/186558220?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6bfa2849-b665-472f-9aea-95f83c21c094_693x410.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_!H6UX!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6bfa2849-b665-472f-9aea-95f83c21c094_693x410.png 424w, https://substackcdn.com/image/fetch/$s_!H6UX!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6bfa2849-b665-472f-9aea-95f83c21c094_693x410.png 848w, https://substackcdn.com/image/fetch/$s_!H6UX!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6bfa2849-b665-472f-9aea-95f83c21c094_693x410.png 1272w, https://substackcdn.com/image/fetch/$s_!H6UX!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6bfa2849-b665-472f-9aea-95f83c21c094_693x410.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><h3>Creating dbt Models</h3><p>Let&#8217;s build the models. You have the options here. You can use the dbt labs studio and build all models in web browser. Or you can use IDEs uch as VSCode. We covered this as well:</p><div id="youtube2-bLmf98u0VuA" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;bLmf98u0VuA&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/bLmf98u0VuA?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><p>Or you may want to leverage AI in full swing:</p><div id="youtube2-85uegQCr6Ww" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;85uegQCr6Ww&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/85uegQCr6Ww?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><p>If you will use an IDE, you will need to define a connection to Snowflake and dbt Labs. I highly recommend using this. Moreover, you can use the IDE dbt core (open source) instead of dbt Labs. </p><p>Now, let&#8217;s add the models.</p><p><strong>First, define sources</strong></p><p>Create <code>models/staging/_staging.yml:</code></p><pre><code>version: 2

sources:
  - name: github_raw
    database: GITHUB_RAW
    schema: FIVETRAN
    tables:
      - name: repository
      - name: commit
      - name: user
      - name: issue
      - name: pull_request</code></pre><p>This tells dbt where the raw data lives.</p><p><strong>Create staging models</strong></p><p>Staging models, clean and rename data. They don&#8217;t change the grain (one row per source row).</p><p>Create <code>models/staging/stg_repositories.sql:</code></p><pre><code>WITH source AS (
    SELECT * FROM {{ source('github_raw', 'repository') }}
),

cleaned AS (
    SELECT
        -- Primary key
        id AS repository_id,
        
        -- Attributes
        name AS repository_name,
        full_name,
        owner_login AS owner_username,
        description,
        language,
        
        -- Metrics
        stargazers_count AS stars,
        forks_count AS forks,
        open_issues_count AS open_issues,
        
        -- Dates
        created_at,
        updated_at,
        pushed_at
    FROM source
    WHERE id IS NOT NULL
)

SELECT * FROM cleaned</code></pre><p>Create <code>models/staging/stg_users.sql</code>:</p><pre><code>WITH source AS (
    SELECT * FROM {{ source('github_raw', 'user') }}
),

cleaned AS (
    SELECT
        id AS user_id,
        login AS username,
        name AS display_name,
        email,
        company,
        location,
        bio,
        public_repos AS public_repo_count,
        followers AS follower_count,
        following AS following_count,
        created_at,
        updated_at
    FROM source
    WHERE id IS NOT NULL
)

SELECT * FROM cleaned</code></pre><p><strong>Create mart models</strong></p><p>Mart models are business-ready. They aggregate and join data. It means we would have only two layers in our data warehouse - Mart (Gold) and Staging (Bronze)</p><p>Create <code>models/marts/dim_repositories.sql</code>:</p><pre><code>WITH repositories AS (
    SELECT * FROM {{ ref('stg_repositories') }}
)

SELECT
    repository_id,
    repository_name,
    full_name,
    owner_username,
    description,
    language,
    stars,
    forks,
    open_issues,
    created_at AS repo_created_at,
    updated_at AS repo_updated_at,
    pushed_at AS last_push_at
FROM repositories</code></pre><p>Create <code>models/marts/dim_users.sql</code>:</p><pre><code>WITH users AS (
    SELECT * FROM {{ ref('stg_users') }}
)

SELECT
    user_id,
    username,
    display_name,
    email,
    company,
    location,
    bio,
    public_repo_count,
    follower_count,
    following_count,
    created_at AS user_created_at
FROM users</code></pre><p>Create <code>models/marts/fct_daily_stats.sql</code>:</p><pre><code>WITH repositories AS (
    SELECT * FROM {{ ref('stg_repositories') }}
),

daily_stats AS (
    SELECT
        DATE_TRUNC('day', updated_at) AS stat_date,
        language,
        COUNT(*) AS repo_count,
        SUM(stars) AS total_stars,
        SUM(forks) AS total_forks,
        ROUND(AVG(stars), 2) AS avg_stars,
        ROUND(AVG(forks), 2) AS avg_forks
    FROM repositories
    WHERE language IS NOT NULL
    GROUP BY 1, 2
)

SELECT * FROM daily_stats</code></pre><p></p><p><strong>Configure models</strong></p><pre><code>version: 2

sources:
  - name: github_raw
    database: GITHUB_RAW
    schema: FIVETRAN
    tables:
      - name: repository
      - name: commit
      - name: user
      - name: issue
      - name: pull_request

models:
  - name: stg_repositories
    description: "Cleaned repository data from GitHub"
    columns:
      - name: repository_id
        description: "Unique identifier for the repository"
        tests:
          - unique
          - not_null
      - name: repository_name
        description: "Name of the repository"
        tests:
          - not_null
      - name: language
        description: "Primary programming language"

  - name: stg_users
    description: "Cleaned user data from GitHub"
    columns:
      - name: user_id
        description: "Unique identifier for the user"
        tests:
          - unique
          - not_null</code></pre><p>Create <code>models/marts/_marts.yml</code>:</p><pre><code>version: 2

models:
  - name: dim_repositories
    description: "Dimension table for repositories"
    columns:
      - name: repository_id
        description: "Primary key"
        tests:
          - unique
          - not_null

  - name: dim_users
    description: "Dimension table for users"
    columns:
      - name: user_id
        description: "Primary key"
        tests:
          - unique
          - not_null

  - name: fct_daily_stats
    description: "Daily statistics by language"
    columns:
      - name: stat_date
        description: "Date of the statistics"
        tests:
          - not_null</code></pre><p>Update dbt_project.yml</p><pre><code>name: 'github_analytics'
version: '1.0.0'

profile: 'default'

model-paths: ["models"]
test-paths: ["tests"]

target-path: "target"
clean-targets:
  - "target"
  - "dbt_packages"

models:
  github_analytics:
    staging:
      +schema: staging
      +materialized: view
    marts:
      +schema: marts
      +materialized: table</code></pre><h3>Running dbt</h3><p>In dbt Cloud:</p><ol><li><p>Open the IDE</p></li><li><p>Click &#8220;Run&#8221; or type <code>dbt run</code></p></li><li><p>Watch the models build</p></li><li><p>Click &#8220;Test&#8221; or type <code>dbt test</code></p></li><li><p>Check for failures</p></li></ol><p>You can also create a job to run daily:</p><ol><li><p>Go to Jobs</p></li><li><p>Create a new job</p></li><li><p>Add command: <code>dbt run &amp;&amp; dbt test</code></p></li><li><p>Schedule: After Fivetran completes (e.g., 2 AM daily)</p></li><li><p>Enable notifications</p></li></ol><div><hr></div><h2>Part 8: Dashboards with Looker Studio</h2><h3>Why Looker Studio?</h3><p>Looker Studio (formerly Google Data Studio) is free. Forever. No trial period.</p><p>It connects directly to Snowflake. It&#8217;s easy to learn. And it looks professional. </p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!_Hfj!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4e100df7-7f2d-4a95-bf69-ce4ae78b69ee_1609x1160.webp" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!_Hfj!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4e100df7-7f2d-4a95-bf69-ce4ae78b69ee_1609x1160.webp 424w, https://substackcdn.com/image/fetch/$s_!_Hfj!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4e100df7-7f2d-4a95-bf69-ce4ae78b69ee_1609x1160.webp 848w, https://substackcdn.com/image/fetch/$s_!_Hfj!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4e100df7-7f2d-4a95-bf69-ce4ae78b69ee_1609x1160.webp 1272w, https://substackcdn.com/image/fetch/$s_!_Hfj!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4e100df7-7f2d-4a95-bf69-ce4ae78b69ee_1609x1160.webp 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!_Hfj!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4e100df7-7f2d-4a95-bf69-ce4ae78b69ee_1609x1160.webp" width="1456" height="1050" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/4e100df7-7f2d-4a95-bf69-ce4ae78b69ee_1609x1160.webp&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1050,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Looker Studio for Business - BI Analytics and Interactive Dashboards&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Looker Studio for Business - BI Analytics and Interactive Dashboards" title="Looker Studio for Business - BI Analytics and Interactive Dashboards" srcset="https://substackcdn.com/image/fetch/$s_!_Hfj!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4e100df7-7f2d-4a95-bf69-ce4ae78b69ee_1609x1160.webp 424w, https://substackcdn.com/image/fetch/$s_!_Hfj!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4e100df7-7f2d-4a95-bf69-ce4ae78b69ee_1609x1160.webp 848w, https://substackcdn.com/image/fetch/$s_!_Hfj!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4e100df7-7f2d-4a95-bf69-ce4ae78b69ee_1609x1160.webp 1272w, https://substackcdn.com/image/fetch/$s_!_Hfj!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4e100df7-7f2d-4a95-bf69-ce4ae78b69ee_1609x1160.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">Random example of a dashboard in Looker Studio</figcaption></figure></div><h3>Setting Up Looker Studio</h3><p><strong>Step 1: Open Looker Studio</strong></p><ol><li><p>Go to lookerstudio.google.com</p></li><li><p>Sign in with your Google account</p></li></ol><p><strong>Step 2: Connect to Snowflake</strong></p><ol><li><p>Click &#8220;Create&#8221; &#8594; &#8220;Data Source&#8221;</p></li><li><p>Search for &#8220;Snowflake&#8221;</p></li><li><p>Click &#8220;Authorize&#8221; to install the connector</p></li><li><p>Enter your Snowflake details:</p><ul><li><p>Account identifier: Your Snowflake account</p></li><li><p>Username: DBT_USER</p></li><li><p>Password: Your password</p></li><li><p>Warehouse: TRANSFORM_WH</p></li><li><p>Database: GITHUB_ANALYTICS</p></li><li><p>Schema: MARTS</p></li></ul></li><li><p>Choose a table (start with fct_daily_stats)</p></li><li><p>Click &#8220;Connect&#8221;</p></li></ol><p><strong>Step 3: Create a dashboard</strong></p><ol><li><p>Click &#8220;Create Report&#8221;</p></li><li><p>Add your data source</p></li><li><p>Start adding charts</p></li></ol><h3>Dashboard Ideas</h3><p><strong>Dashboard 1: Language Popularity</strong></p><p>Charts to include:</p><ul><li><p>Pie chart: Total repos by language</p></li><li><p>Bar chart: Total stars by language</p></li><li><p>Line chart: Stars over time</p></li><li><p>Scorecard: Total repositories</p></li></ul><p><strong>Dashboard 2: Top Repositories</strong></p><p>Charts to include:</p><ul><li><p>Table: Top 20 repos by stars</p></li><li><p>Bar chart: Repos with most forks</p></li><li><p>Scatter plot: Stars vs forks relationship</p></li></ul><p><strong>Dashboard 3: Activity Trends</strong></p><p>Charts to include:</p><ul><li><p>Line chart: New repos per week</p></li><li><p>Bar chart: Most active languages</p></li><li><p>Table: Recent updates</p></li></ul><h3>Tips for Good Dashboards</h3><ol><li><p>Keep it simple. Don&#8217;t add too many charts.</p></li><li><p>Use consistent colors.</p></li><li><p>Add titles that explain what the chart shows.</p></li><li><p>Put the most important insights at the top.</p></li><li><p>Add date filters so users can explore.</p></li></ol><div><hr></div><h2>Part 9: What You Built</h2><p>Let&#8217;s recap. You now have:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!BuT2!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc57cf00b-1cf0-4f62-b421-6541f8fdfe5f_1200x632.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!BuT2!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc57cf00b-1cf0-4f62-b421-6541f8fdfe5f_1200x632.png 424w, https://substackcdn.com/image/fetch/$s_!BuT2!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc57cf00b-1cf0-4f62-b421-6541f8fdfe5f_1200x632.png 848w, https://substackcdn.com/image/fetch/$s_!BuT2!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc57cf00b-1cf0-4f62-b421-6541f8fdfe5f_1200x632.png 1272w, https://substackcdn.com/image/fetch/$s_!BuT2!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc57cf00b-1cf0-4f62-b421-6541f8fdfe5f_1200x632.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!BuT2!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc57cf00b-1cf0-4f62-b421-6541f8fdfe5f_1200x632.png" width="1200" height="632" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c57cf00b-1cf0-4f62-b421-6541f8fdfe5f_1200x632.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:632,&quot;width&quot;:1200,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:81687,&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://blog.surfalytics.com/i/186558220?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc57cf00b-1cf0-4f62-b421-6541f8fdfe5f_1200x632.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_!BuT2!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc57cf00b-1cf0-4f62-b421-6541f8fdfe5f_1200x632.png 424w, https://substackcdn.com/image/fetch/$s_!BuT2!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc57cf00b-1cf0-4f62-b421-6541f8fdfe5f_1200x632.png 848w, https://substackcdn.com/image/fetch/$s_!BuT2!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc57cf00b-1cf0-4f62-b421-6541f8fdfe5f_1200x632.png 1272w, https://substackcdn.com/image/fetch/$s_!BuT2!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc57cf00b-1cf0-4f62-b421-6541f8fdfe5f_1200x632.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 is a real data engineering solution. Companies use the same architecture. The same tools. The same patterns.</p><p>And we didn&#8217;t touch a single line of Python! Imagine a Senior Data Engineer will earn 200k US or 180k CAD for the same setup. </p><p>The key is not the tools, but the system design basics.</p><div><hr></div><h2>Part 10: What&#8217;s Next?</h2><p>You have a working project. But there&#8217;s always more to learn. Here are the next steps to make your project better.</p><h3>Add Data Quality Tests</h3><p>dbt has built-in tests. Add more:</p><pre><code># In your yml files

columns:

  - name: stars

    tests:

      - not_null

      - dbt_utils.accepted_range:

          min_value: 0</code></pre><h3>Add Documentation</h3><p>dbt generates documentation automatically:</p><pre><code>dbt docs generate

dbt docs serve</code></pre><p>This creates a website showing all your models and their relationships.</p><h3>Implement SCD Type 2</h3><p>Use dbt snapshots to track history:</p><pre><code>{% snapshot repositories_snapshot %}

{{

    config(

      target_schema=&#8217;snapshots&#8217;,

      unique_key=&#8217;repository_id&#8217;,

      strategy=&#8217;timestamp&#8217;,

      updated_at=&#8217;updated_at&#8217;,

    )

}}

SELECT * FROM {{ source(&#8217;github_raw&#8217;, &#8216;repository&#8217;) }}

{% endsnapshot %}</code></pre><h3>Add CI/CD</h3><p>Set up GitHub Actions to test your dbt code on every pull request. </p><h3>Add Infrustructure as a Code</h3><p>Try to use Terraform for your Snowflake or cloud data infrastructure. </p><h3>Add the Orchestration tool</h3><p>Add Airflow or a similar tool, such as Dagster, Prefect or you can go all in on Python and run AWS Lambdas to ingest data.</p><h3>Monitor Costs</h3><p>Snowflake charges for compute time. Monitor your credits:</p><ol><li><p>Go to Admin &#8594; Cost Management</p></li><li><p>Set up alerts before credits run out</p></li><li><p>Use smaller warehouses when possible</p></li></ol><h3>Add More Data Sources</h3><p>Once you&#8217;re comfortable, add more sources:</p><ul><li><p>A PostgreSQL database</p></li><li><p>A Google Sheets file</p></li><li><p>A Jira or Notion integration</p></li></ul><p>Each new source teaches you something new.</p><div><hr></div><h2>Key Takeaways</h2><ol><li><p><strong>You can learn data engineering for free.</strong> Enterprise tools offer generous trials.</p></li></ol><ol start="2"><li><p><strong>You don&#8217;t need a cloud account.</strong> Snowflake, dbt Cloud, and Fivetran work on their own.</p></li></ol><ol start="3"><li><p><strong>This is production-ready architecture.</strong> Companies use the same patterns.</p></li></ol><ol start="4"><li><p><strong>Dimensional modelling matters.</strong> Learn facts, dimensions, and star schemas.</p></li></ol><ol start="5"><li><p><strong>Know your SCDs.</strong> Type 1 vs Type 2 is an interview favourite.</p></li></ol><ol start="6"><li><p><strong>Start simple.</strong> Get it working first. Optimize later.</p></li></ol><ol start="7"><li><p><strong>This project shows real skills.</strong> Put it on your resume. Talk about it in interviews.</p></li></ol><div><hr></div><h2>Final Words</h2><p>You now know how to build a real data engineering project. For free. Using enterprise tools.</p><p>This is how modern data teams work. Source data flows through ingestion, lands in storage, gets transformed, and powers dashboards. The same pattern. Every time.</p><p>Build this project. Put it on GitHub. Add it to your resume. Talk about it in interviews.</p><p>You&#8217;ve got this.</p>]]></content:encoded></item><item><title><![CDATA[Just Enough Python for Data Roles 🐍]]></title><description><![CDATA[Python is important, but don't let it overwhelm you. Focus on problem-solving first&#8212;especially in the early stages of your career.]]></description><link>https://blog.surfalytics.com/p/just-enough-python-for-data-roles</link><guid isPermaLink="false">https://blog.surfalytics.com/p/just-enough-python-for-data-roles</guid><dc:creator><![CDATA[Dmitry Anoshin]]></dc:creator><pubDate>Tue, 06 Jan 2026 23:31:40 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/54bfd497-97f9-4f8e-a391-fa615c4239f1_1024x1024.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h2>The Python Challenge</h2><p>Python is the number one language for data jobs. Whether you&#8217;re aiming for data engineering, data analytics, machine learning, or generative AI - Python is everywhere.</p><p>But here&#8217;s the thing: Python is big. Really big. And complicated.</p><p>Where do you even start?</p><p>If you&#8217;re new to Python, the amount of information can feel overwhelming. If you&#8217;re experienced, you might wonder: &#8220;Do I really need to know everything?&#8221;</p><p>The answer is no. You don&#8217;t need to master everything. You need <strong>just enough</strong> Python for data roles.</p><p>This guide will show you what to learn, how to learn it (hint: books, not just videos), and what you can skip. I&#8217;ll share my personal learning method that helped me build a 15+ year career in data engineering.</p><p>Let&#8217;s start with something important.</p><blockquote><p>&#8220;The single most important skill for a computer scientist is problem solving. Problem solving means the ability to formulate problems, think creatively about solutions, and express a solution clearly and accurately.&#8221; - Allen B. Downey</p></blockquote><p>This applies to data roles too. You might work as a data engineer, data analyst, or data scientist. But always focus on the problem first. The problem should come from the business. We shouldn&#8217;t just write code because we like it. We need to solve real business problems and add value.</p><p>Keep that in mind as you learn Python. The language is a tool. The problem-solving mindset is what matters.</p><div><hr></div><h2>&#128013; Why Python? (The Reality Check)</h2><h3>Python&#8217;s Dominance</h3><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!cw5-!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd8dceff9-6b7b-48ec-86e3-9e1bec233fbd_730x887.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!cw5-!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd8dceff9-6b7b-48ec-86e3-9e1bec233fbd_730x887.png 424w, https://substackcdn.com/image/fetch/$s_!cw5-!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd8dceff9-6b7b-48ec-86e3-9e1bec233fbd_730x887.png 848w, https://substackcdn.com/image/fetch/$s_!cw5-!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd8dceff9-6b7b-48ec-86e3-9e1bec233fbd_730x887.png 1272w, https://substackcdn.com/image/fetch/$s_!cw5-!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd8dceff9-6b7b-48ec-86e3-9e1bec233fbd_730x887.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!cw5-!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd8dceff9-6b7b-48ec-86e3-9e1bec233fbd_730x887.png" width="730" height="887" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d8dceff9-6b7b-48ec-86e3-9e1bec233fbd_730x887.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:887,&quot;width&quot;:730,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:202221,&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://blog.surfalytics.com/i/183729733?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd8dceff9-6b7b-48ec-86e3-9e1bec233fbd_730x887.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_!cw5-!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd8dceff9-6b7b-48ec-86e3-9e1bec233fbd_730x887.png 424w, https://substackcdn.com/image/fetch/$s_!cw5-!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd8dceff9-6b7b-48ec-86e3-9e1bec233fbd_730x887.png 848w, https://substackcdn.com/image/fetch/$s_!cw5-!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd8dceff9-6b7b-48ec-86e3-9e1bec233fbd_730x887.png 1272w, https://substackcdn.com/image/fetch/$s_!cw5-!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd8dceff9-6b7b-48ec-86e3-9e1bec233fbd_730x887.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>Python is everywhere in data. It&#8217;s the most popular language for data jobs. You can use it for:</p><ul><li><p>Data analytics and exploration</p></li><li><p>Data engineering pipelines</p></li><li><p>Machine learning models</p></li><li><p>Generative AI applications</p></li><li><p>Cloud infrastructure and automation</p></li></ul><p>The community is huge. There are thousands of packages and libraries ready to use. And with AI assistants like Cursor and Copilot, you can contribute to Python codebases even with basic knowledge.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!9X8c!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F74ac0839-6346-4f21-82b0-9d7d4dd2ddbc_714x695.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!9X8c!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F74ac0839-6346-4f21-82b0-9d7d4dd2ddbc_714x695.png 424w, https://substackcdn.com/image/fetch/$s_!9X8c!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F74ac0839-6346-4f21-82b0-9d7d4dd2ddbc_714x695.png 848w, https://substackcdn.com/image/fetch/$s_!9X8c!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F74ac0839-6346-4f21-82b0-9d7d4dd2ddbc_714x695.png 1272w, https://substackcdn.com/image/fetch/$s_!9X8c!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F74ac0839-6346-4f21-82b0-9d7d4dd2ddbc_714x695.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!9X8c!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F74ac0839-6346-4f21-82b0-9d7d4dd2ddbc_714x695.png" width="714" height="695" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/74ac0839-6346-4f21-82b0-9d7d4dd2ddbc_714x695.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:695,&quot;width&quot;:714,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:532745,&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://blog.surfalytics.com/i/183729733?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F74ac0839-6346-4f21-82b0-9d7d4dd2ddbc_714x695.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_!9X8c!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F74ac0839-6346-4f21-82b0-9d7d4dd2ddbc_714x695.png 424w, https://substackcdn.com/image/fetch/$s_!9X8c!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F74ac0839-6346-4f21-82b0-9d7d4dd2ddbc_714x695.png 848w, https://substackcdn.com/image/fetch/$s_!9X8c!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F74ac0839-6346-4f21-82b0-9d7d4dd2ddbc_714x695.png 1272w, https://substackcdn.com/image/fetch/$s_!9X8c!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F74ac0839-6346-4f21-82b0-9d7d4dd2ddbc_714x695.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></p><h3>When Python Isn&#8217;t Enough</h3><p>Python has limits. It&#8217;s not always the best choice for:</p><ul><li><p>Production applications at massive scale (millions of users)</p></li><li><p>Performance-critical systems</p></li><li><p>Some real-time applications</p></li></ul><p>But for data roles? Python is the standard. It&#8217;s what you need.</p><h3>Python Alternatives (Quick Reality Check)</h3><p>You might hear about other languages:</p><ul><li><p><strong>Scala</strong>: Popular for Spark and Hadoop. But you can use PySpark instead.</p></li><li><p><strong>R</strong>: Some legacy code exists. But Python is the modern choice.</p></li><li><p><strong>Rust/C++</strong>: High performance, but smaller data community.</p></li></ul><p><strong>Bottom line</strong>: Focus on Python first. Learn alternatives only if your company uses them. With AI assistants, you can adapt to other languages when needed.</p><div><hr></div><h2>&#128218; The Learning Method: Why Books Beat Tutorials</h2><p>Here&#8217;s my personal take: <strong>Books are better than video tutorials for learning Python.</strong></p><h3>The Problem with Video Tutorials</h3><p>Video tutorials are:</p><ul><li><p>Too fast-paced. Not enough time to digest concepts.</p></li><li><p>Hard to return to. Finding that one explanation you need is frustrating.</p></li><li><p>Limited practice. You watch, but don&#8217;t always do.</p></li><li><p>Often skip fundamentals. They rush to the &#8220;cool stuff.&#8221;</p></li></ul><h3>Why Books Work Better</h3><p>Books let you:</p><ul><li><p><strong>Learn at your own pace</strong>. Read, pause, re-read. No one is rushing you.</p></li><li><p><strong>Practice with exercises</strong>. Hands-on learning beats passive watching.</p></li><li><p><strong>Create notes and summaries</strong>. Active learning helps you remember.</p></li><li><p><strong>Return to concepts</strong>. Can&#8217;t remember something? Flip back a few pages.</p></li></ul><p>Here&#8217;s a technique that helped me: Write down Python scripts and learn them by heart. Try to understand what each line means. Then review them during your commute or breaks. This repetition builds understanding.</p><h3>Recommended Books</h3><p>I&#8217;ve read many Python books. Here are two I highly recommend:</p><h4>1. Think Python (Free!)</h4><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!3Aqs!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9a19bf28-6c4f-4649-876b-1dd7772fefc2_381x499.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!3Aqs!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9a19bf28-6c4f-4649-876b-1dd7772fefc2_381x499.png 424w, https://substackcdn.com/image/fetch/$s_!3Aqs!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9a19bf28-6c4f-4649-876b-1dd7772fefc2_381x499.png 848w, https://substackcdn.com/image/fetch/$s_!3Aqs!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9a19bf28-6c4f-4649-876b-1dd7772fefc2_381x499.png 1272w, https://substackcdn.com/image/fetch/$s_!3Aqs!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9a19bf28-6c4f-4649-876b-1dd7772fefc2_381x499.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!3Aqs!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9a19bf28-6c4f-4649-876b-1dd7772fefc2_381x499.png" width="381" height="499" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/9a19bf28-6c4f-4649-876b-1dd7772fefc2_381x499.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:499,&quot;width&quot;:381,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!3Aqs!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9a19bf28-6c4f-4649-876b-1dd7772fefc2_381x499.png 424w, https://substackcdn.com/image/fetch/$s_!3Aqs!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9a19bf28-6c4f-4649-876b-1dd7772fefc2_381x499.png 848w, https://substackcdn.com/image/fetch/$s_!3Aqs!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9a19bf28-6c4f-4649-876b-1dd7772fefc2_381x499.png 1272w, https://substackcdn.com/image/fetch/$s_!3Aqs!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9a19bf28-6c4f-4649-876b-1dd7772fefc2_381x499.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><strong>Why it&#8217;s great</strong>: Simple, clear, perfect starting point.</p><p><strong>Where to get it</strong>: Available for free online. Just search &#8220;Think Python free download.&#8221;</p><p><strong>Best for</strong>: Complete beginners who want a solid foundation.</p><p>Link: https://greenteapress.com/thinkpython2/thinkpython2.pdf</p><h4>2. Python Crash Course</h4><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!zkcu!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa3566037-11cf-40a9-915f-34dcdcf2b28d_1550x2048.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!zkcu!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa3566037-11cf-40a9-915f-34dcdcf2b28d_1550x2048.png 424w, https://substackcdn.com/image/fetch/$s_!zkcu!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa3566037-11cf-40a9-915f-34dcdcf2b28d_1550x2048.png 848w, https://substackcdn.com/image/fetch/$s_!zkcu!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa3566037-11cf-40a9-915f-34dcdcf2b28d_1550x2048.png 1272w, https://substackcdn.com/image/fetch/$s_!zkcu!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa3566037-11cf-40a9-915f-34dcdcf2b28d_1550x2048.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!zkcu!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa3566037-11cf-40a9-915f-34dcdcf2b28d_1550x2048.png" width="1456" height="1924" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a3566037-11cf-40a9-915f-34dcdcf2b28d_1550x2048.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1924,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!zkcu!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa3566037-11cf-40a9-915f-34dcdcf2b28d_1550x2048.png 424w, https://substackcdn.com/image/fetch/$s_!zkcu!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa3566037-11cf-40a9-915f-34dcdcf2b28d_1550x2048.png 848w, https://substackcdn.com/image/fetch/$s_!zkcu!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa3566037-11cf-40a9-915f-34dcdcf2b28d_1550x2048.png 1272w, https://substackcdn.com/image/fetch/$s_!zkcu!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa3566037-11cf-40a9-915f-34dcdcf2b28d_1550x2048.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><strong>Why it&#8217;s great</strong>: Two-part structure that&#8217;s brilliant.</p><ul><li><p><strong>Part 1</strong>: Fundamentals. Functions, classes, variables, data types. Everything you need to know.</p></li><li><p><strong>Part 2</strong>: Real-world projects. You build a website with Django, create a game, build a data analytics solution. You apply what you learned.</p></li></ul><p><strong>Best for</strong>: Learning fundamentals AND seeing how to build complete applications.</p><p><strong>Unique value</strong>: Most books teach concepts. This one shows you how to use them end-to-end.</p><h3>The &#8220;Three Books Rule&#8221;</h3><p>A friend gave me great advice: &#8220;If you want to learn something, read at least three books on that topic.&#8221;</p><p>Don&#8217;t waste time on endless video tutorials. Go to Amazon, check the best-reviewed Python books, and get them. Start with Think Python or Python Crash Course. Then find a third book that covers areas you want to dive deeper into.</p><div><hr></div><h2>&#127919; Core Python Fundamentals: The 5 Essentials</h2><p>You don&#8217;t need to learn everything about Python. You need to master these five things first.</p><h3>1. Variables &amp; Data Types</h3><p><strong>What</strong>: The basic building blocks.</p><p><strong>Types you need to know</strong>:</p><ul><li><p><code>int</code> - whole numbers (1, 2, 100)</p></li><li><p><code>float</code> - decimal numbers (3.14, 2.5)</p></li><li><p><code>string</code> - text (&#8221;hello&#8221;, &#8220;data&#8221;)</p></li><li><p><code>boolean</code> - True or False</p></li><li><p><code>None</code> - represents nothing</p></li></ul><p><strong>Why it matters</strong>: Everything in Python is built on these. You can&#8217;t skip this.</p><p><strong>Practice</strong>: Create variables. Convert between types. Understand what each type means.</p><h3>2. Data Structures</h3><p><strong>What</strong>: How you organize and store data.</p><p><strong>The four you need</strong>:</p><ul><li><p><strong>Lists</strong>: Ordered collections you can change. <code>[1, 2, 3]</code></p></li><li><p><strong>Tuples</strong>: Ordered collections you can&#8217;t change. <code>(1, 2, 3)</code></p></li><li><p><strong>Dictionaries</strong>: Key-value pairs. <code>{&#8221;name&#8221;: &#8220;John&#8221;, &#8220;age&#8221;: 30}</code> - <strong>Most important for data work</strong></p></li><li><p><strong>Sets</strong>: Collections of unique elements. <code>{1, 2, 3}</code></p></li></ul><p><strong>Why it matters</strong>: This is how you work with data. Lists and dictionaries are everywhere in data roles.</p><p><strong>Practice</strong>: Create each type. Add items, remove items, access values.</p><h3>3. Control Flow</h3><p><strong>What</strong>: How you make decisions and repeat actions.</p><p><strong>The basics</strong>:</p><ul><li><p><strong>if/else statements</strong>: Decision making. &#8220;If this is true, do that.&#8221;</p></li><li><p><strong>for loops</strong>: Repeat something for each item in a list.</p></li><li><p><strong>while loops</strong>: Repeat something while a condition is true.</p></li></ul><p><strong>Why it matters</strong>: This is the logic of your code. Without this, you can&#8217;t automate anything.</p><p><strong>Practice</strong>: Write if statements. Loop through lists. Combine conditions.</p><h3>4. Functions</h3><p><strong>What</strong>: Reusable blocks of code.</p><p><strong>Key concepts</strong>:</p><ul><li><p><code>def</code> keyword - how you create functions</p></li><li><p>Parameters and arguments - passing data into functions</p></li><li><p>Return values - getting results back</p></li><li><p>Lambda functions - quick one-liners</p></li></ul><p><strong>Why it matters</strong>: Functions let you write code once and use it many times. Essential for any real project.</p><p><strong>Practice</strong>: Write simple functions. Pass data in. Get results out. Use functions in other functions.</p><h3>5. Modules &amp; Packages + Virtual Environments</h3><p><strong>What</strong>: Using other people&#8217;s code and managing dependencies.</p><p><strong>Key concepts</strong>:</p><ul><li><p><code>import</code> statements - using existing code</p></li><li><p>Creating modules - organizing your own code</p></li><li><p>Virtual environments - isolating dependencies (avoiding &#8220;dependency hell&#8221;)</p></li></ul><p><strong>Why it matters</strong>: You&#8217;ll use libraries like pandas, requests, and boto3. You need to know how to import them. Virtual environments are critical for professional development.</p><p><strong>Practice</strong>: Import standard library modules. Install packages with pip. Create a virtual environment.</p><h3>Nice to Have (But Not Critical Yet)</h3><ul><li><p><strong>List Comprehensions</strong>: Elegant one-liners. Useful for interviews, but not essential for daily work.</p></li><li><p><strong>Exception Handling</strong>: try/except/finally blocks. Good practice, but you can learn this later.</p></li></ul><p><strong>Learning strategy</strong>: Master the 5 essentials first. If you don&#8217;t understand something, take a break and revisit it. Don&#8217;t rush. Understanding beats speed.</p><div><hr></div><h2>&#128202; Key Topics for Data Roles</h2><p>Now that you have the fundamentals, here are the seven areas that matter for data roles:</p><ol><li><p><strong>Data Manipulation</strong> - Working with data</p></li><li><p><strong>Data Processing</strong> - Processing large datasets</p></li><li><p><strong>Database Connectivity</strong> - Connecting to databases</p></li><li><p><strong>Data Validation &amp; Quality</strong> - Ensuring data is correct</p></li><li><p><strong>Cloud &amp; Infrastructure</strong> - Working with cloud services</p></li><li><p><strong>Data Formats &amp; Serialization</strong> - Reading and writing different file types</p></li><li><p><strong>Advanced Concepts</strong> - Optional but valuable</p></li></ol><p>Let&#8217;s dive into each one.</p><div><hr></div><h2>&#128200; 1. Data Manipulation</h2><h3>Pandas (The Workhorse)</h3><p><strong>What it is</strong>: Pandas lets you work with DataFrames and Series. Think of it as Excel or SQL tables, but in Python. </p><div class="pullquote"><p>It might be better to use DuckDB instead of Pandas ;) </p><p>&#129414;&#129414;&#129414;&#129414;&#129414;&#129414;&#129414;&#129414;&#129414;&#129414;&#129414;&#129414;&#129414;&#129414;&#129414;&#129414;&#129414;&#129414;&#129414;&#129414;&#129414;</p></div><p><strong>Key operations you&#8217;ll use</strong>:</p><ul><li><p><code>read_csv()</code> - Reading CSV files</p></li><li><p><code>groupby() </code>- Grouping and aggregating data</p></li><li><p><code>merge()</code> - Joining data (like SQL JOINs)</p></li><li><p><code>pivot_table() </code>- Reshaping data</p></li></ul><p><strong>Use cases</strong>: Data analysis, exploration, ad-hoc requests.</p><p><strong>Best for</strong>: Data Analysts and Data Scientists.</p><p><strong>Important limitation</strong>: Pandas is great for notebooks and local analysis. It&#8217;s not ideal for production pipelines. Data engineers often use SQL or Spark instead.</p><p><strong>Reality check</strong>: If you&#8217;re comfortable with SQL, you might use DuckDB and solve many problems without deep Pandas knowledge. But if your organization uses Python, you need to understand their code.</p><h3>NumPy</h3><p><strong>What it is</strong>: Arrays and mathematical operations.</p><p><strong>Why it matters</strong>: Pandas is built on NumPy. Many ML libraries use it too.</p><p><strong>Use cases</strong>: Mathematical computations, working with arrays.</p><h3>Polars</h3><p><strong>What it is</strong>: A faster alternative to Pandas.</p><p><strong>When to use it</strong>: If Pandas is too slow for your dataset.</p><p><strong>Reality</strong>: Most people start with Pandas. Learn Polars if you hit performance issues.</p><h3>PyArrow</h3><p><strong>What it is</strong>: Support for columnar data formats.</p><p><strong>Why it matters</strong>: Efficient data storage and transfer, especially for Parquet files.</p><div><hr></div><h2>&#9881;&#65039; 2. Data Processing</h2><h3>PySpark (The Big Data Tool)</h3><p><strong>What it is</strong>: Distributed data processing. Process data across multiple machines.</p><p><strong>Key concepts</strong>:</p><ul><li><p>RDDs (Resilient Distributed Datasets)</p></li><li><p>DataFrames</p></li><li><p>Transformations and actions</p></li></ul><p><strong>Platforms</strong>: Apache Spark, Databricks</p><p><strong>Reality check</strong>: Many companies use Spark SQL instead of PySpark. You might not need deep PySpark knowledge if SQL works for your use case.</p><p><strong>When you need it</strong>: If your company uses Spark and you need to contribute Python code.</p><h3>Dask</h3><p><strong>What it is</strong>: Parallel computing for larger-than-memory datasets.</p><p><strong>Reality</strong>: Less commonly used. Good to know it exists.</p><p><strong>When</strong>: If your organization uses it.</p><h3>Apache Airflow (The Orchestrator)</h3><p><strong>What it is</strong>: A framework for scheduling and running data pipelines.</p><p><strong>Key concepts</strong>:</p><ul><li><p>DAGs (Directed Acyclic Graphs) - your pipeline structure</p></li><li><p>Operators - tasks in your pipeline</p></li><li><p>Tasks - individual steps</p></li></ul><p><strong>Why it&#8217;s critical</strong>: Extremely popular in data engineering. You&#8217;ll likely encounter it.</p><p><strong>Python knowledge needed</strong>:</p><ul><li><p>You don&#8217;t need to be a Python expert</p></li><li><p>You need to understand code (read functions, understand variables)</p></li><li><p>Often template-based (copy, paste, modify parameters)</p></li></ul><p><strong>Covered in</strong>: <a href="https://www.youtube.com/channel/UCnO5iETX7Q72PCvafzlsoOg">Surfalytics</a> Module 4 of our course (if you&#8217;re following along).</p><div><hr></div><h2>&#128452;&#65039; 3. Database Connectivity</h2><h3>When You Need It</h3><p>You&#8217;ll need database connectivity when:</p><ul><li><p>Extracting data from databases</p></li><li><p>Writing data to databases</p></li><li><p>Building end-to-end data solutions</p></li></ul><h3>Key Libraries</h3><ul><li><p><strong>SQLAlchemy</strong>: ORM (Object-Relational Mapping). Works with many databases.</p></li><li><p><strong>psycopg2</strong>: PostgreSQL adapter. Direct connection to PostgreSQL.</p></li><li><p><strong>pymongo</strong>: MongoDB driver. For NoSQL databases.</p></li><li><p><strong>pyodbc</strong>: ODBC connections. Works with various databases.</p></li></ul><h3>The Reality</h3><p><strong>Alternative tools exist</strong>: Fivetran, Airbyte (no-code/low-code tools). You might not need Python for simple extractions.</p><p><strong>When to use Python</strong>:</p><ul><li><p>Custom extraction logic</p></li><li><p>No connector available</p></li><li><p>Contributing to the existing Python codebase</p></li></ul><p><strong>Practice</strong>: We&#8217;ll have examples with PostgreSQL in Module 2.</p><div><hr></div><h2>&#9989; 4. Data Validation &amp; Quality</h2><h3>Why It Matters</h3><p>Data quality is critical. Bad data leads to bad decisions. Production systems need validation.</p><h3>Key Tools</h3><ul><li><p><strong>Pydantic</strong>: Data validation using Python type hints. Great for API data.</p></li><li><p><strong>Great Expectations</strong>: Data quality testing framework. Comprehensive validation.</p></li><li><p><strong>Pandera</strong>: DataFrame validation. Check your pandas DataFrames.</p></li><li><p><strong>pytest/unittest</strong>: Unit testing. Test your functions.</p></li><li><p><strong>DBX</strong>: Databricks framework for data quality.</p></li></ul><h3>Advanced Concept: Test-Driven Development (TDD)</h3><p><strong>What it is</strong>: Write tests before writing functions.</p><p><strong>Why it helps</strong>: Ensures your code works correctly from the start.</p><p><strong>When</strong>: More advanced use case. Shows professional maturity.</p><div><hr></div><h2>&#9729;&#65039; 5. Cloud &amp; Infrastructure</h2><h3>AWS (boto3)</h3><p><strong>What it is</strong>: AWS SDK for Python. The official way to interact with AWS services.</p><p><strong>Use cases</strong>:</p><ul><li><p>S3 (storage)</p></li><li><p>Lambda (serverless functions)</p></li><li><p>Glue (ETL jobs)</p></li><li><p>Triggering jobs</p></li><li><p>Creating resources</p></li></ul><p><strong>Why it matters</strong>: AWS is the most popular cloud platform.</p><h3>Google Cloud</h3><p><strong>google-cloud-storage</strong>: GCP integration. Similar patterns to AWS.</p><h3>Azure</h3><p><strong>azure-storage-blob</strong>: Azure integration. Similar patterns to other clouds.</p><h3>Docker</h3><p><strong>What it is</strong>: Containerization. Package your application with all dependencies.</p><p><strong>Why it matters</strong>: Ensures your code runs the same way everywhere.</p><p><strong>Connection</strong>: Often used with Python applications in production.</p><h3>API Requests (Critical!)</h3><p><strong>requests library</strong>: Connecting to REST APIs.</p><p><strong>Why it&#8217;s critical</strong>: Many data sources come from APIs. You&#8217;ll use this a lot.</p><p><strong>Typical workflow</strong>:</p><ol><li><p>Connect to API endpoint</p></li><li><p>Get JSON data</p></li><li><p>Process and manipulate data</p></li><li><p>Save to database or files</p></li></ol><p><strong>Connection</strong>: Often requires database connectivity libraries too. It all connects.</p><h3>Learning Strategy</h3><p><strong>Build 5-6 pet projects</strong>. This covers 20% of knowledge but 80% of use cases.</p><p><strong>Project ideas</strong>:</p><ul><li><p>API &#8594; Process &#8594; Database</p></li><li><p>File processing pipeline</p></li><li><p>Data validation script</p></li><li><p>Cloud storage interaction</p></li><li><p>Simple Airflow DAG</p></li></ul><p><strong>Build end-to-end</strong>: Don&#8217;t just learn concepts. Build complete solutions.</p><div><hr></div><h2>&#128230; 6. Data Formats &amp; Serialization</h2><h3>Why It Matters</h3><p>Different systems use different formats. You need to read and write various file types.</p><h3>Key Formats</h3><ul><li><p><strong>JSON</strong>: <code>json.loads()</code>, <code>json.dumps()</code>. API responses, configuration files.</p></li><li><p><strong>CSV</strong>: csv module, <code>pandas.read_csv()</code>. Spreadsheet data.</p></li><li><p><strong>Parquet</strong>: Columnar format (pyarrow, fastparquet). Efficient storage. Very popular in data engineering.</p></li><li><p><strong>Avro</strong>: Data serialization. Used in big data systems.</p></li></ul><h3>Learning Approach</h3><ul><li><p>Understand when to use each format</p></li><li><p>Practice reading and writing each type</p></li><li><p>Know the trade-offs (size, speed, compatibility)</p></li></ul><div><hr></div><h2>&#128640; 7. Advanced Concepts (Optional but Valuable)</h2><h3>When to Learn</h3><ul><li><p>After mastering fundamentals</p></li><li><p>When you need them for specific use cases</p></li><li><p>To show depth in interviews</p></li></ul><h3>Key Concepts</h3><p><strong>Decorators</strong>: <code>@decorator</code> syntax, function wrappers.</p><p><strong>Reality</strong>: You rarely create your own. Tools provide them (Datadog, Duer, etc.). But understanding them helps.</p><p><strong>Generators</strong>: <code>yield</code> keyword, memory-efficient iteration.</p><p><strong>Context Managers</strong>: <code>with</code> statement, file handling. You&#8217;ve probably used this: <code>with open(&#8217;file.txt&#8217;) as f:</code></p><p><strong>Type Hints</strong>: Static typing for better code quality. Helps with IDE support and catching errors.</p><p><strong>Async/Await</strong>: Asynchronous programming for I/O operations. Advanced topic.</p><p><strong>Logging</strong>: <code>logging</code> module - <strong>CRITICAL for production</strong>.</p><p><strong>Why logging matters</strong>:</p><ul><li><p>Visibility into running programs</p></li><li><p>Debugging when things go wrong</p></li><li><p>Monitoring and alerting</p></li><li><p>Failure analysis</p></li></ul><p><strong>When you need it</strong>: Airflow DAGs, data transformation jobs, any production code.</p><p><strong>Value</strong>: Without logging, your code is a black box. With logging, you can see what&#8217;s happening.</p><div><hr></div><h2>&#127891; Best Practices (The Professional Touch)</h2><p>These show you&#8217;re a professional, not just someone who writes code.</p><h3>PEP 8 (Style Guide)</h3><p><strong>What it is</strong>: Python code style standards.</p><p><strong>Why it matters</strong>: Readability, consistency, professionalism.</p><p><strong>Tools</strong>: Linters can enforce this automatically.</p><h3>Version Control (Git)</h3><p><strong>Why it&#8217;s essential</strong>: Collaboration, history, rollback.</p><p><strong>Not Python-specific</strong>: But critical for data engineers.</p><p><strong>Best practice</strong>: Use Git for all code. Every project.</p><h3>CI/CD</h3><p><strong>What it is</strong>: Continuous Integration/Deployment. Automated testing and deployment.</p><p><strong>Why it matters</strong>: Catches errors early. Deploys consistently.</p><p><strong>Advantage</strong>: Software engineering practices in data = competitive edge.</p><p><strong>When</strong>: Start early. The sooner the better.</p><h3>Environment Variables</h3><p><strong>What</strong>: <code>os.environ</code>, <code>python-dotenv</code></p><p><strong>Why it&#8217;s CRITICAL</strong>: Secure credential management.</p><p><strong>Security rule</strong>: Never hardcode passwords in code. Never share credentials with LLMs.</p><p><strong>Best practice</strong>: Use environment variables for all secrets.</p><h3>Configuration Management</h3><p><strong>Formats</strong>: YAML, TOML, ConfigParser</p><p><strong>Why</strong>: Separate configuration from code.</p><p><strong>Benefit</strong>: Easy to change settings without code changes.</p><div><hr></div><h2>&#128230; Package Managers &amp; Environment Managers</h2><h3>The Problem: Dependency Hell</h3><p>Different packages can conflict. You need isolated environments per project. Teams need reproducible environments.</p><h3>Package Managers</h3><p><strong>What they do</strong>: Install, update, manage Python packages.</p><p><strong>Top 3</strong>:</p><ol><li><p><strong>pip</strong> - Default Python package installer (most common)</p></li><li><p><strong>uv</strong> - Ultra-fast, Rust-based (modern alternative)</p></li><li><p><strong>Poetry</strong> - Advanced dependency resolution (popular in data teams)</p></li></ol><h3>Environment Managers</h3><p><strong>What they do</strong>: Create isolated Python environments.</p><p><strong>Top 3</strong>:</p><ol><li><p><strong>venv</strong> - Built-in Python tool</p></li><li><p><strong>Conda</strong> - Cross-platform (environment + package manager)</p></li><li><p><strong>pyenv</strong> - Manages multiple Python versions</p></li></ol><h3>Combined Solutions</h3><ul><li><p><strong>Poetry</strong>: Package manager + environment manager</p></li><li><p><strong>uv</strong>: Package manager + environment manager</p></li></ul><p><strong>Strategy</strong>: Pick one. Learn it well. Use it consistently.</p><h3>Best Practice</h3><ul><li><p>Every project (GitHub repo) should have its own environment</p></li><li><p>Define package versions for reproducibility</p></li><li><p>Goal: Code runs on any machine (colleague&#8217;s, cloud, Airflow)</p></li></ul><div><hr></div><h2>&#127919; Learning Roadmap: The Practical Path</h2><p>Here&#8217;s a step-by-step path from beginner to job-ready.</p><h3>Phase 1: Foundations (Weeks 1-2)</h3><ol><li><p><strong>Read</strong>: Think Python or Python Crash Course (Part 1)</p></li><li><p><strong>Master</strong>: The 5 core fundamentals</p></li><li><p><strong>Practice</strong>: Write simple scripts. Do exercises from the book.</p></li><li><p><strong>Goal</strong>: Understand variables, data structures, control flow, functions</p></li></ol><p><strong>Don&#8217;t rush this phase</strong>. If you don&#8217;t understand something, take a break and revisit it.</p><h3>Phase 2: Data Basics (Weeks 3-4)</h3><ol><li><p><strong>Learn</strong>: Pandas basics (read, filter, group, merge)</p></li><li><p><strong>Practice</strong>: Work with CSV files. Do data analysis exercises.</p></li><li><p><strong>Learn</strong>: Virtual environments and package management</p></li><li><p><strong>Goal</strong>: Can manipulate data in Python</p></li></ol><p><strong>Focus</strong>: Get comfortable with DataFrames. This is where you&#8217;ll spend a lot of time.</p><h3>Phase 3: Real Projects (Weeks 5-8)</h3><ol><li><p><strong>Build</strong>: 5-6 pet projects covering key use cases</p><ul><li><p>API &#8594; Process &#8594; Database</p></li><li><p>File processing pipeline</p></li><li><p>Data validation script</p></li><li><p>Cloud storage interaction</p></li><li><p>Simple Airflow DAG</p></li></ul></li><li><p><strong>Learn</strong>: As you build (database connectivity, API requests, etc.)</p></li><li><p><strong>Goal</strong>: End-to-end data solutions</p></li></ol><p><strong>Key</strong>: Learn by doing. Don&#8217;t just read. Build.</p><h3>Phase 4: Production Skills (Ongoing)</h3><ol><li><p><strong>Learn</strong>: Logging, error handling, testing</p></li><li><p><strong>Practice</strong>: Git, CI/CD basics</p></li><li><p><strong>Read</strong>: Best practices, style guides</p></li><li><p><strong>Goal</strong>: Professional-grade code</p></li></ol><p><strong>This never ends</strong>. Keep learning and improving.</p><div><hr></div><h2>&#127919; Key Takeaways</h2><p>Here&#8217;s what to remember:</p><ol><li><p><strong>Problem-solving first</strong>: Focus on business problems, not just code</p></li><li><p><strong>Books over videos</strong>: Learn at your own pace with books</p></li><li><p><strong>Master the 5 essentials</strong>: Variables, data structures, control flow, functions, modules/environments</p></li><li><p><strong>Build pet projects</strong>: 5-6 pet projects cover 80% of use cases</p></li><li><p><strong>Just enough Python</strong>: You don&#8217;t need to master everything, just what&#8217;s needed for data roles</p></li><li><p><strong>Tools matter more</strong>: After Python basics, focus on data tools (Snowflake, Airflow, dbt)</p></li><li><p><strong>Professional practices</strong>: Git, CI/CD, logging, environment variables - start early</p></li></ol><div><hr></div><h2>&#128640; What&#8217;s Next?</h2><p>Ready to start? Here&#8217;s your action plan:</p><ol><li><p><strong>Get a book</strong>: Start with Think Python (free) or Python Crash Course</p></li><li><p><strong>Build your first pet project</strong>: API &#8594; Process &#8594; Database (Data Engineering System Design?)</p></li><li><p><strong>Share your journey</strong>: Learning in public helps you and others</p></li><li><p><strong>Join the community</strong>: Get support, ask questions, help others at Surfalytics.com</p></li></ol><p>Remember: You don&#8217;t need to master everything. Just enough Python to solve data problems. Focus on the fundamentals, build projects, and keep learning.</p><p>The journey is long, but it&#8217;s worth it. Python opens doors in data roles. Start today.</p><div><hr></div><h2>&#128206; Common Questions</h2><p><strong>Do I need Python for my first data job?</strong></p><p>Not always mandatory, but highly recommended. Many jobs list Python as &#8220;nice to have&#8221; or &#8220;preferred.&#8221; But the more you know, the more opportunities you have. All jobas are required decent knowledge of SQL.</p><p><strong>How long does it take to learn?</strong></p><p>2-3 months of focused learning for basics. But learning never stops. You&#8217;ll keep improving throughout your career. </p><p>It will require daily/weekly practice. The most important thing is to use Python in the context of data analytics and data engineering projects.</p><p><strong>What if my company uses Scala/R?</strong></p><p>Learn Python first. Then adapt. With AI assistants, you can contribute to other languages. But Python is the standard for data roles.</p><p><strong>Can AI help me learn?</strong></p><p>Yes, but understand fundamentals first. AI can help you write code, but you need to understand what it&#8217;s doing. Start with books and practice.</p><p><strong>The 80/20 Rule</strong></p><p>20% of Python knowledge = 80% of data role use cases.</p><p>Focus on: Data manipulation, database connectivity, API requests, basic processing.</p><p>Learn advanced concepts only when needed.</p><div><hr></div><h2>&#127906; Real use cases</h2><p>Let&#8217;s look at three real-world data analytics solutions. Each one uses Python differently. This will help you understand when Python is essential and when you can get by without it.</p><h3>Use Case 1: The Gentle Data Analytics Solution (No Python)</h3><p><strong>The Setup</strong>:</p><ul><li><p><strong>Data Ingestion</strong>: Fivetran (no-code tool) extracts data from various APIs</p></li><li><p><strong>Data Warehouse</strong>: Snowflake stores all the data</p></li><li><p><strong>Data Transformation</strong>: dbt transforms data using SQL</p></li><li><p><strong>BI Tool</strong>: Looker connects to Snowflake for dashboards and reports</p></li></ul><p><strong>Python Usage</strong>: <strong>0%</strong> - No Python at all, except SQL.</p><p><strong>What This Means</strong>: This is a completely no-code solution (except SQL). You don&#8217;t need Python for this setup. Fivetran handles API connections. Snowflake stores everything. dbt does transformations in SQL. Looker visualizes the data.</p><p><strong>When This Works</strong>:</p><ul><li><p>Standard data sources with existing connectors</p></li><li><p>Team comfortable with SQL</p></li><li><p>No custom extraction logic needed</p></li><li><p>Fast time-to-value</p></li></ul><p><strong>The Reality</strong>: Many companies start here. It&#8217;s simple, maintainable, and gets the job done. You can build a complete data analytics solution without writing a single line of Python.</p><p><strong>Takeaway</strong>: Python isn&#8217;t always required. SQL and no-code tools can solve many problems.</p><div class="pullquote"><p>This is our advantage to get the data job without Python or coding!</p></div><div><hr></div><h3>Use Case 2: The Airflow-Powered Solution (Python for Orchestration)</h3><p><strong>The Setup</strong>:</p><ul><li><p><strong>Data Ingestion</strong>: Airflow runs Python jobs to extract data from APIs</p></li><li><p><strong>Data Warehouse</strong>: Snowflake stores the data</p></li><li><p><strong>Data Transformation</strong>: Airflow orchestrates dbt runs (SQL transformations)</p></li><li><p><strong>Orchestration</strong>: Airflow schedules and coordinates everything</p></li></ul><p><strong>Python Usage</strong>: <strong>Moderate</strong> - Python for data extraction, API calls, and orchestration.</p><p><strong>What This Means</strong>: Python is important here. You write Python scripts in Airflow to:</p><ul><li><p>Extract data from APIs (using requests library)</p></li><li><p>Handle authentication and API pagination</p></li><li><p>Transform data before loading (if needed)</p></li><li><p>Orchestrate the entire pipeline</p></li><li><p>Handle errors and retries</p></li></ul><p><strong>When This Works</strong>:</p><ul><li><p>Custom API connections not available in Fivetran</p></li><li><p>Need more control over extraction logic</p></li><li><p>Complex data transformations before loading</p></li><li><p>Want to orchestrate everything in one place</p></li></ul><p><strong>The Reality</strong>: This is common in data engineering. Python stitches everything together. You need to understand Python code, even if you&#8217;re not writing complex algorithms. You&#8217;re reading functions, modifying parameters, and understanding data flow.</p><p><strong>Takeaway</strong>: Python is important for data extraction and orchestration. You don&#8217;t need to be an expert, but you need to understand code.</p><div><hr></div><h3>Use Case 3: The Databricks PySpark Solution (Python-Heavy)</h3><p><strong>The Setup</strong>:</p><ul><li><p><strong>Data Ingestion</strong>: PySpark jobs extract data from S3 (AWS storage)</p></li><li><p><strong>Data Processing</strong>: Databricks processes data using PySpark</p></li><li><p><strong>Architecture</strong>: Medallion architecture (Bronze &#8594; Silver &#8594; Gold layers)</p></li><li><p><strong>BI Tool</strong>: Tableau connects to Gold layer (no Python)</p></li><li><p><strong>Streaming Analytics</strong>: Custom web app runs near real-time analytics on Bronze data</p></li></ul><p><strong>Python Usage</strong>: <strong>Heavy</strong> - Almost everything is Python/PySpark. Almost no SQL.</p><p><strong>What This Means</strong>: This is a Python-heavy environment. You&#8217;re using PySpark for:</p><ul><li><p>Reading data from S3</p></li><li><p>Transforming data across Bronze, Silver, and Gold layers</p></li><li><p>Complex data processing and aggregations</p></li><li><p>Building streaming analytics solutions</p></li><li><p>Custom business logic</p></li></ul><p><strong>The Architecture</strong>:</p><ul><li><p><strong>Bronze Layer</strong>: Raw data from S3 (PySpark reads and stores)</p></li><li><p><strong>Silver Layer</strong>: Cleaned and validated data (PySpark transformations)</p></li><li><p><strong>Gold Layer</strong>: Business-level aggregates (PySpark aggregations)</p></li><li><p><strong>Streaming</strong>: Real-time processing on Bronze data (PySpark Streaming)</p></li></ul><p><strong>When This Works</strong>:</p><ul><li><p>Large-scale data processing (petabytes)</p></li><li><p>Complex transformations that SQL can&#8217;t handle easily</p></li><li><p>Need distributed processing</p></li><li><p>Real-time or near real-time requirements</p></li><li><p>ML workloads alongside analytics</p></li></ul><p><strong>The Reality</strong>: This is advanced data engineering. You need strong Python skills. You&#8217;re writing PySpark code, understanding distributed computing, and building complex pipelines. SQL is minimal here.</p><p><strong>Takeaway</strong>: Some roles require deep Python knowledge. PySpark is Python, and you need to be comfortable with it.</p><div><hr></div><h3>What These Use Cases Teach Us</h3><p><strong>Python Usage Spectrum</strong>:</p><ol><li><p><strong>No Python</strong>: SQL + no-code tools work for many solutions</p></li><li><p><strong>Some Python</strong>: Needed for orchestration and custom extraction</p></li><li><p><strong>Heavy Python</strong>: Required for distributed processing and complex transformations</p></li></ol><p><strong>The Key Insight</strong>: Different companies need different levels of Python. Some roles require almost no Python. Others require deep expertise. Most fall somewhere in between.</p><p><strong>Your Learning Path</strong>:</p><ul><li><p>Start with fundamentals (the 5 essentials)</p></li><li><p>Build projects that match your target role</p></li><li><p>If you want data engineering roles, learn Airflow and PySpark</p></li><li><p>If you want analytics roles, SQL might be enough (but Python helps)</p></li></ul><p><strong>The Bottom Line</strong>: Understand where Python fits in real solutions. Sometimes it&#8217;s essential. Sometimes it&#8217;s optional. But having Python skills opens more doors.</p>]]></content:encoded></item><item><title><![CDATA[🎯Ultimate cheatsheet for Data Engineering System Design interview. ]]></title><description><![CDATA[Because 'It Depends' Is a Valid Answer (But You Still Need to Know What It Depends On)]]></description><link>https://blog.surfalytics.com/p/ultimate-cheatsheet-for-data-engineering</link><guid isPermaLink="false">https://blog.surfalytics.com/p/ultimate-cheatsheet-for-data-engineering</guid><dc:creator><![CDATA[Dmitry Anoshin]]></dc:creator><pubDate>Mon, 06 Oct 2025 07:02:46 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!kTZi!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcd741a6c-a6f7-49c3-baaa-9081d8f384a8_1672x1102.heic" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p></p><h2>The 45-Minute Challenge</h2><p>Imagine you&#8217;re sitting in a System Design interview. The interviewer just gave you a couple of sentences about requirements, and now you have around 45 minutes to dive deep into the architecture of a data engineering system. Your whiteboard is blank. The clock is ticking. &#9200;</p><p>Sound familiar?</p><p>Whether you&#8217;re prepping for an interview or just want to level up your architectural thinking, this guide will give you a framework to tackle any data engineering system design challenge with confidence.</p><p>Let&#8217;s break it down.</p><h2>&#128506;&#65039; The Master Architecture</h2><p>Before we dive into the details, here&#8217;s the high-level view of what we&#8217;re building. A solid data engineering system has six essential layers:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!kTZi!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcd741a6c-a6f7-49c3-baaa-9081d8f384a8_1672x1102.heic" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!kTZi!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcd741a6c-a6f7-49c3-baaa-9081d8f384a8_1672x1102.heic 424w, https://substackcdn.com/image/fetch/$s_!kTZi!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcd741a6c-a6f7-49c3-baaa-9081d8f384a8_1672x1102.heic 848w, https://substackcdn.com/image/fetch/$s_!kTZi!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcd741a6c-a6f7-49c3-baaa-9081d8f384a8_1672x1102.heic 1272w, https://substackcdn.com/image/fetch/$s_!kTZi!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcd741a6c-a6f7-49c3-baaa-9081d8f384a8_1672x1102.heic 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!kTZi!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcd741a6c-a6f7-49c3-baaa-9081d8f384a8_1672x1102.heic" width="1456" height="960" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/cd741a6c-a6f7-49c3-baaa-9081d8f384a8_1672x1102.heic&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:960,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:68688,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/heic&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://blog.surfalytics.com/i/175400466?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcd741a6c-a6f7-49c3-baaa-9081d8f384a8_1672x1102.heic&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!kTZi!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcd741a6c-a6f7-49c3-baaa-9081d8f384a8_1672x1102.heic 424w, https://substackcdn.com/image/fetch/$s_!kTZi!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcd741a6c-a6f7-49c3-baaa-9081d8f384a8_1672x1102.heic 848w, https://substackcdn.com/image/fetch/$s_!kTZi!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcd741a6c-a6f7-49c3-baaa-9081d8f384a8_1672x1102.heic 1272w, https://substackcdn.com/image/fetch/$s_!kTZi!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcd741a6c-a6f7-49c3-baaa-9081d8f384a8_1672x1102.heic 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>Think of this as your mental model. Every system design conversation should touch on these layers, though you&#8217;ll spend more time on some than others depending on the requirements.</p><pre><code><code>&#128202; Sources Layer
    &#8595;
&#9881;&#65039; Processing Layer
    &#8595;
&#128190; Storage Layer
    &#8595;
&#129302; ML/AI Layer (Optional)
    &#8595;
&#128101; Consumers Layer
    &#8595;
&#128736;&#65039; Tools Layer (Cross-cutting)</code></code></pre><h2>&#127916; Where Do You Start?</h2><p>First of all, you can decide where to start. From top to bottom or bottom to top?</p><p>Here&#8217;s the truth: <strong>It doesn&#8217;t really matter for data engineering architecture</strong>. You can start with sources and work your way down, or start with consumers and work backwards. Both approaches work.</p><p>However, there&#8217;s one exception: <strong>data modelling interviews</strong>. If you&#8217;re specifically being asked about data modelling, start from the consumer requirements and work backwards. This shows you&#8217;re thinking about the business use case first.</p><blockquote><p>&#128161; Pro Tip: Tell a Story, Don&#8217;t Just Draw Boxes</p><p>Use a drawing board like Drawio, Lucidchart, or at least Google Slides. <strong>Tell the story</strong> of how data flows through your system. Don&#8217;t just list components&#8212;explain why each piece exists and how they connect.</p><p>The best candidates I&#8217;ve interviewed don&#8217;t just draw architecture; they narrate the data journey. &#8220;First, we capture events from the application, then we...&#8221; That storytelling makes all the difference.</p></blockquote><div><hr></div><h2>&#128218; The Six Essential Layers (Deep Dive)</h2><h3>1&#65039;&#8419; Source Layer: Where It All Begins</h3><p>This is where you show you understand how businesses actually generate data. Start by listing the available sources based on what the interviewer told you.</p><p>Common source types:</p><ul><li><p> &#128452;&#65039; <strong>OLTP Databases</strong> - PostgreSQL, MySQL, SQL Server (transactional systems)</p></li><li><p> &#128193; <strong>Files</strong> - CSV, JSON, Parquet on SFTP, S3, Azure Blob</p></li><li><p> &#127760; <strong>APIs</strong> - REST APIs, webhooks, third-party SaaS tools</p></li><li><p> &#128232; <strong>Event Streams</strong> - Kafka, RabbitMQ, AWS Kinesis, Azure Event Hubs</p></li><li><p>&#128241; <strong>IoT Devices</strong> - Sensor data, mobile apps, edge devices</p></li></ul><p>Questions you MUST ask:</p><ol><li><p><strong>What&#8217;s the data volume?</strong> Are we talking about gigabytes or petabytes? This drives your storage and processing decisions.</p></li><li><p><strong>What are the latency requirements?</strong> Do users need data in seconds, minutes, or hours? This determines batch vs stream processing.</p></li><li><p><strong>What data formats are we dealing with?</strong> Structured (tables), semi-structured (JSON), or unstructured (images, documents)?</p></li><li><p><strong>How is the business generating this data?</strong> Understanding the business context is crucial. Is this customer data? Transaction logs? Clickstream events?</p></li><li><p><strong>Do we have CDC (Change Data Capture)?</strong> If the source is a database, can we capture incremental changes, or do we need full table dumps?</p></li></ol><p>*<strong>Why this matters:</strong> The source layer defines your constraints. If you have real-time event streams, you can&#8217;t just batch process them once a day. If you&#8217;re pulling from a legacy SFTP server with nightly file drops, streaming might be overkill.</p><p>Talk through the sources. Ask questions. Show curiosity. This demonstrates you&#8217;re not just memorizing patterns&#8212;you&#8217;re thinking about real systems.</p><div><hr></div><h3> 2&#65039;&#8419; Storage Layer: Where You Show Your Knowledge &#127891;</h3><p>This is your moment to shine. Storage decisions are your primary responsibility as a data engineer. This is where you separate the junior engineers from the senior ones.</p><p>The big question: <strong>Where do we store the data?</strong></p><p>The Three Main Options:</p><p><strong>&#127970; Data Warehouse</strong></p><ul><li><p>Examples: Snowflake, BigQuery, Redshift, Synapse</p></li><li><p>Best for: Structured data, SQL analytics, BI reporting</p></li><li><p>Pros: Optimized for queries, easy to use, great for business users</p></li><li><p>Cons: Can be expensive, less flexible for ML workloads, vendor lock-in</p></li></ul><p><strong>&#127966;&#65039; Data Lake</strong></p><ul><li><p>Examples: Storage in S3, Azure Data Lake Storage, Google Cloud Storage with separated compute like Spark, Trino, Athena, EMR, Dataproc, Synapse and etc.</p></li><li><p>Best for: Large-scale raw data, unstructured data, cost-effective storage</p></li><li><p>Pros: Cheap storage, flexible, supports any format</p></li><li><p>Cons: Can become a &#8220;data swamp,&#8221; requires more engineering effort</p></li></ul><p><strong>&#127984; Lakehouse</strong></p><ul><li><p>Examples: Databricks (Delta Lake), Snowflake (Iceberg), Dremio, Trino</p></li><li><p>Best for: Combined analytics + ML workloads, flexible architecture</p></li><li><p>Pros: Best of both worlds, ACID transactions on data lake, unified platform</p></li><li><p>Cons: Newer paradigm, some tools still maturing</p></li></ul><p><strong>How to Choose?</strong></p><p>Ask these questions:</p><ol><li><p><strong>What public cloud are you using?</strong> Azure, AWS, or GCP? Each has native options that integrate well.</p></li><li><p><strong>Do you already have a data warehouse?</strong> Don&#8217;t reinvent the wheel if something is working.</p></li><li><p><strong>What are the query patterns?</strong></p><ol><li><p>Mostly SQL reporting &#8594; Warehouse</p></li><li><p>Mostly ML/data science &#8594; Lake/Lakehouse</p></li><li><p>Both &#8594; Lakehouse</p></li></ol></li><li><p><strong>What&#8217;s the data volume and growth rate?</strong> Petabyte-scale often favors lake/lakehouse for cost reasons.</p></li></ol><blockquote><p>&#9888;&#65039; <strong>Important:</strong>There is no wrong answer. Each approach has trade-offs. What matters is that you can <strong>justify your choice</strong> based on the requirements.</p></blockquote><p>Architecture Patterns to Mention</p><p><strong>Medallion Architecture (Bronze &#8594; Silver &#8594; Gold)</strong> - This is especially popular in lakehouse architectures:</p><ul><li><p><strong>Bronze (Raw)</strong>: Land data exactly as received. Immutable, append-only.</p></li><li><p><strong>Silver (Cleaned)</strong>: Deduplicated, validated, standardized formats.</p></li><li><p><strong>Gold (Business-level)</strong>: Aggregated metrics, dimensional models, ready for consumption.</p></li></ul><p>Why it&#8217;s great: Clear separation of concerns, easy to troubleshoot, supports both batch and streaming.</p><p><strong>Dimensional Modeling (Star/Snowflake Schema)</strong> - Still relevant for traditional data warehouse approaches:</p><ul><li><p>Fact tables (events, transactions)</p></li><li><p>Dimension tables (customers, products, dates)</p></li><li><p>Optimized for BI tools and reporting</p></li></ul><p>Don&#8217;t dismiss this as &#8220;old school.&#8221; Many business users still need simple, well-defined dimensional models.</p><p><strong>Data Transformation Strategy</strong></p><p><strong>The question:</strong> How will you transform the data?</p><p><strong>The default answer:</strong> dbt (SQL-based transformation) &#127919;</p><p>Why dbt is often the right choice:</p><ul><li><p>&#9989; SQL is accessible to more team members</p></li><li><p>&#9989; Built-in testing and documentation</p></li><li><p>&#9989; Version control and CI/CD friendly</p></li><li><p>&#9989; Strong community and ecosystem</p></li><li><p>&#9989; Works with all major warehouses and lakehouses</p></li></ul><p>Alternatives to mention:</p><ul><li><p><strong>Spark (PySpark/Scala)</strong> - For large-scale transformations, complex logic</p></li><li><p><strong>Python/Pandas</strong> - For ML feature engineering, custom logic</p></li><li><p><strong>Stored Procedures</strong> - Legacy systems (mention you&#8217;d migrate away from these)</p></li></ul><blockquote><p>Pro tip: Start with SQL/dbt. Only reach for Spark when you truly need it. Complexity should be justified.</p></blockquote><h3> 3&#65039;&#8419; Consumers Layer: Start With the End in Mind &#128101;</h3><p>This is how the data insights will be used. Understanding your consumers drives everything else.</p><p><strong>Who are the target audiences?</strong></p><ol><li><p><strong>&#128202; Business Analysts</strong></p><ol><li><p>Tools: Tableau, Power BI, Looker, Mode</p></li><li><p>Needs: Pre-aggregated tables, dimensional models, fast queries</p></li><li><p>Frequency: Daily dashboards, ad-hoc queries</p></li></ol></li><li><p><strong>&#128300; Data Scientists</strong></p><ol><li><p>Tools: Jupyter notebooks, Python, R</p></li><li><p>Needs: Raw and feature-engineered datasets, ML-ready formats</p></li><li><p>Frequency: Varies by project phase</p></li></ol></li><li><p><strong>&#129302; Applications</strong></p><ol><li><p>Tools: REST APIs, GraphQL, Reverse ETL tools</p></li><li><p>Needs: Low-latency access, real-time or near-real-time data</p></li><li><p>Frequency: Continuous, high QPS (queries per second)</p></li></ol></li><li><p><strong>&#129309; External Partners</strong></p><ol><li><p>Tools: Data shares (Snowflake), secure APIs, file exports</p></li><li><p>Needs: Governed, secure access to specific datasets</p></li><li><p>Frequency: Scheduled or on-demand</p></li></ol></li><li><p><strong>&#129504; GenAI Applications</strong></p><ol><li><p>Tools: Vector databases, RAG pipelines, LLM APIs</p></li><li><p>Needs: Embeddings, semantic search, context retrieval</p></li><li><p>Frequency: Real-time or batch depending on use case</p></li></ol></li></ol><p><strong>Critical questions to ask:</strong></p><ul><li><p><strong>How frequently do they need data?</strong> Every 15 minutes? Once an hour? Once a day? This determines your SLA and processing cadence.</p></li><li><p><strong>What&#8217;s the acceptable data latency?</strong> There&#8217;s a big difference between &#8220;yesterday&#8217;s data&#8221; and &#8220;last 5 minutes of data.&#8221;</p></li><li><p><strong>What format do they prefer?</strong> SQL-accessible tables? JSON via API? CSV files? Parquet on S3?</p></li><li><p><strong>What&#8217;s the scale?</strong> How many users? How many queries per minute?</p></li></ul><p><strong>Why this matters:</strong> Consumer requirements drive your architecture decisions. If your BI team needs data once a day, you can batch process overnight. If your fraud detection app needs real-time data, you&#8217;re building a streaming pipeline.</p><p>The best engineers I&#8217;ve worked with always start by understanding the consumer needs. That&#8217;s how you avoid over-engineering (or under-engineering).</p><div><hr></div><h3>4&#65039;&#8419; Processing Layer: Batch vs Stream &#9881;&#65039;</h3><p>This is how we move data from the Source Layer to the Storage Layer.</p><p>There are fundamentally <strong>only two options</strong>: Batch and Stream.</p><h4>&#128260; Batch Processing (The Default Choice)</h4><p><strong>Why batch is great:</strong></p><ul><li><p>&#9989; Simple to understand and maintain</p></li><li><p>&#9989; Easy to debug and replay</p></li><li><p>&#9989; Cost-effective (run when you need to)</p></li><li><p>&#9989; Well-established patterns and tools</p></li><li><p>&#9989; Handles large historical data well</p></li></ul><p><strong>Common tools:</strong></p><ul><li><p>Airflow (orchestration)</p></li><li><p>dbt (transformation)</p></li><li><p>Spark (heavy lifting)</p></li><li><p>Fivetran/Airbyte (managed ingestion)</p></li></ul><p><strong>Typical patterns:</strong></p><ul><li><p>Full refresh: Replace entire table (simple but inefficient)</p></li><li><p>Incremental loading: Only process new/changed records</p></li><li><p>Time-based partitioning: Process data by date ranges</p></li></ul><p><strong>When to use batch:</strong></p><ul><li><p>Daily reporting and analytics</p></li><li><p>Historical data analysis</p></li><li><p>When near-real-time isn&#8217;t required</p></li><li><p>When simplicity is more important than latency</p></li></ul><h4>&#127754; Stream Processing (When You Need It)</h4><p><strong>When streaming is required:</strong></p><ul><li><p>Real-time dashboards and alerting</p></li><li><p>Fraud detection (sub-second response)</p></li><li><p>IoT sensor data (constant flow)</p></li><li><p>Application events (clickstream, user activity)</p></li><li><p>Financial transactions (immediate reconciliation)</p></li></ul><p><strong>Common tools:</strong></p><ul><li><p>Kafka / Confluent (event streaming)</p></li><li><p>Spark Streaming / Structured Streaming</p></li><li><p>Flink (low-latency complex event processing)</p></li><li><p>AWS Kinesis / Azure Event Hubs (managed services)</p></li></ul><p><strong>The hybrid approach:</strong></p><p>This is actually very common in real systems:</p><ol><li><p>Stream events into cloud storage (S3, ADLS)</p></li><li><p>Process from storage in micro-batches</p></li><li><p>Get near-real-time results without full streaming complexity</p></li></ol><p><strong>Why this works:</strong> You get durability and replay capability from storage, without the operational complexity of true streaming.</p><h4>&#127919; Critical Concepts to Mention (Show You Know Production)</h4><p><strong>1. Idempotency</strong></p><p>Your pipeline should produce the same result if you run it multiple times. Running the same job twice shouldn&#8217;t create duplicate records.</p><p>Example: Use <code>MERGE/UPSERT</code> instead of <code>INSERT</code>. Key on unique business keys.</p><p><strong>2. CDC (Change Data Capture)</strong></p><p>Capture only what changed in the source system instead of pulling full tables every time.</p><p>Tools: Debezium, AWS DMS, Fivetran, Airbyte</p><p><strong>3. Incremental Loading</strong></p><p>Only process new or changed data. Track watermarks, timestamps, or sequence IDs.</p><p><code>-- Example: Load only records modified since last run</code></p><p><code>WHERE updated_at &gt; (SELECT MAX(updated_at) FROM target_table)</code></p><p><strong>4. Data Quality Checks</strong></p><ul><li><p>Validate data at ingestion and transformation stages:</p></li><li><p>Schema validation (expected columns present?)</p></li><li><p>Null checks (required fields populated?)</p></li><li><p>Range checks (values within expected bounds?)</p></li><li><p>Referential integrity (foreign keys valid?)</p></li><li><p>Freshness checks (data arriving on time?)</p></li></ul><p>Tools: Great Expectations, dbt tests, custom validation</p><p><strong>5. Schema Evolution</strong></p><p>How do you handle when source systems add/remove/rename columns?</p><p>Strategies:</p><ul><li><p>Schema-on-read (flexible but risky)</p></li><li><p>Schema validation (strict but safe)</p></li><li><p>Graceful degradation (log issues, don&#8217;t fail)</p></li></ul><p><strong>&#128161; Pro tip:</strong> Batch is a great default choice. Lead with that. Then say, &#8220;But for use cases like [specific example from requirements], we&#8217;d need streaming.&#8221;</p><p>Don&#8217;t over-engineer. Streaming adds complexity. Only use it when latency truly matters to the business.</p><div><hr></div><h3>5&#65039;&#8419; ML/AI Layer: The Optional But Impressive Section &#129302;</h3><p>Here&#8217;s the secret: <strong>No one expects you to cover this</strong>, but if you do, you&#8217;ll stand out.</p><p>This shows you understand modern data platforms aren&#8217;t just for reporting&#8212;they&#8217;re powering machine learning and AI applications.</p><h4>Components to Mention</h4><p><strong>&#128451;&#65039; Feature Store</strong></p><p>A centralized repository for ML features that serves both training (batch) and inference (real-time).</p><ul><li><p><strong>Offline features</strong>: Historical data for model training</p></li><li><p><strong>Online features</strong>: Low-latency access for real-time predictions</p></li><li><p>Tools: Feast, Tecton, SageMaker Feature Store, Databricks Feature Store</p></li></ul><p>Why it matters: Prevents feature engineering duplication. Data scientists define features once, use them everywhere.</p><p><strong>&#129514; ML Models</strong></p><p>Where do models live in your architecture?</p><ul><li><p><strong>Training pipelines</strong>: Scheduled jobs to retrain models</p></li><li><p><strong>Model registry</strong>: Version control for models</p></li><li><p><strong>Model serving</strong>: Batch predictions vs real-time API endpoints</p></li></ul><p>Tools: MLflow, Kubeflow, SageMaker, Azure ML</p><p><strong>&#129504; GenAI Initiatives</strong></p><p>This is hot right now. Show you&#8217;re aware of the trends:</p><ul><li><p><strong>Vector databases</strong>: Store embeddings for semantic search (Pinecone, Weaviate, Chroma)</p></li><li><p><strong>RAG (Retrieval Augmented Generation)</strong>: Combine LLMs with your data</p></li><li><p><strong>LLM integration</strong>: How do your data pipelines feed GenAI apps?</p></li></ul><h4>Real-World Examples to Share</h4><p>When you mention ML/AI, ground it in real experience:</p><p>&#9989; &#8220;In my last role, we built a feature store to support the fraud detection team. We reduced their feature engineering time from weeks to days.&#8221;</p><p>&#9989; &#8220;I worked with the ML team to create a data pipeline that refreshed model training data daily, which improved model performance by 15%.&#8221;</p><p>&#9989; &#8220;We implemented a RAG system that allowed our customer support team to query internal docs using natural language.&#8221;</p><p>&#9989; &#8220;I helped set up MLflow for model versioning and tracking, which gave us reproducibility and audit trails.&#8221;</p><h4>How to Position This in the Interview</h4><ul><li><p>Don&#8217;t go deep unless the interviewer asks</p></li><li><p>Show collaborative mindset: &#8220;supporting the ML team,&#8221; &#8220;enabling data scientists&#8221;</p></li><li><p>Keep it high-level architecture, not deep ML theory</p></li><li><p>Focus on the data engineering challenges (freshness, quality, scale)</p></li></ul><p><strong>&#128161; Pro tip:</strong> If the job description mentions ML or AI, definitely bring this up. If not, mention it briefly to show breadth, then move on.</p><div><hr></div><h3>6&#65039;&#8419; Tools Layer: The Professional Touch &#128736;&#65039;</h3><p>This is a complementary section where you show you&#8217;re not just an ETL developer&#8212;you&#8217;re a complete data engineer who thinks about the full lifecycle.</p><p>This layer is cross-cutting; it applies to all the other layers.</p><h4>Infrastructure as Code (IaC)</h4><p><strong>Tools:</strong> Terraform, CloudFormation, ARM templates, Pulumi</p><p><strong>Why mention this:</strong></p><ul><li><p>Shows you understand infrastructure should be version-controlled</p></li><li><p>Demonstrates reproducibility thinking</p></li><li><p>Critical for disaster recovery and multi-environment setup</p></li></ul><p><strong>What to say:</strong></p><p>&#8220;I&#8217;d use Terraform to provision all infrastructure&#8212;databases, compute clusters, networking, storage. This gives us version control, automated deployments, and the ability to recreate environments on demand.&#8221;</p><p><strong>What to provision with IaC:</strong></p><ul><li><p>Data warehouse / database instances</p></li><li><p>Storage accounts / buckets</p></li><li><p>Compute clusters (Spark, Kubernetes)</p></li><li><p>Networking (VPCs, subnets, firewalls)</p></li><li><p>IAM roles and permissions</p></li></ul><h4>Version Control</h4><p><strong>Tools:</strong> Git (GitHub, GitLab, Bitbucket)</p><p><strong>Why mention this:</strong></p><p>&#8220;All code&#8212;SQL, Python, infrastructure&#8212;goes into Git. We follow trunk-based development with feature branches and PR reviews.&#8221;</p><p><strong>What goes in version control:</strong></p><ul><li><p>ETL/ELT code</p></li><li><p>dbt models</p></li><li><p>Infrastructure definitions</p></li><li><p>Documentation</p></li><li><p>Data quality tests</p></li></ul><h4>CI/CD Pipelines</h4><p><strong>Tools:</strong> GitHub Actions, GitLab CI, Jenkins, Azure DevOps</p><p><strong>Why mention this:</strong></p><p>Shows you think about automation and deployment safety.</p><p><strong>What to include in CI/CD:</strong></p><ul><li><p>Automated testing (unit tests, integration tests, data quality tests)</p></li><li><p>Code linting and formatting</p></li><li><p>Deployment to dev &#8594; staging &#8594; production</p></li><li><p>Automated rollback on failure</p></li><li><p>Notifications to team on failures</p></li></ul><p><strong>What to say:</strong></p><p>&#8220;Every PR triggers automated tests. Once merged, changes deploy to dev automatically, then staging with approval, then production. This ensures we catch issues early and deploy safely.&#8221;</p><h4>Data Catalog</h4><p><strong>Tools:</strong> DataHub, Collibra, Alation, AWS Glue Catalog, Azure Purview</p><p><strong>Why mention this:</strong></p><p>Shows you care about discoverability and documentation.</p><p><strong>Key features:</strong></p><ul><li><p><strong>Metadata management</strong>: What data exists and where</p></li><li><p><strong>Data lineage</strong>: How data flows through pipelines</p></li><li><p><strong>Business glossary</strong>: What do the metrics mean?</p></li><li><p><strong>Discovery</strong>: Help users find relevant datasets</p></li><li><p><strong>Access control</strong>: Who can see what</p></li></ul><p><strong>What to say:</strong></p><p>&#8220;We&#8217;d implement a data catalog so business users can discover datasets, understand lineage, and know who to contact with questions. This reduces tribal knowledge and accelerates analytics.&#8221;</p><h4>Monitoring, Alerts &amp; On-Call &#128680;</h4><p><strong>Tools:</strong> Datadog, PagerDuty, Grafana, CloudWatch, Azure Monitor</p><p><strong>Why mention this:</strong></p><p>Shows you understand data engineering is an operational discipline, not just building pipelines.</p><p><strong>What to monitor:</strong></p><ul><li><p><strong>Data freshness</strong>: Is data arriving on schedule?</p></li><li><p><strong>Data quality</strong>: Are validation checks passing?</p></li><li><p><strong>Pipeline failures</strong>: Which jobs failed and why?</p></li><li><p><strong>Resource utilization</strong>: Are we over/under-provisioned?</p></li><li><p><strong>Cost</strong>: Are we staying within budget?</p></li><li><p><strong>SLA compliance</strong>: Are we meeting our commitments?</p></li></ul><p><strong>What to say:</strong></p><p>&#8220;I&#8217;d set up monitoring for data freshness, quality, and pipeline health. We&#8217;d have alerts that page on-call engineers for critical failures, but also slack notifications for warnings. The key is avoiding alert fatigue&#8212;only page for things that need immediate action.&#8221;</p><p><strong>On-call practices:</strong></p><ul><li><p>Rotation schedule (don&#8217;t burn people out)</p></li><li><p>Runbooks for common issues</p></li><li><p>Post-mortems for major incidents</p></li><li><p>Continuous improvement of alert quality</p></li></ul><h4>Data Quality Framework</h4><p><strong>Tools:</strong> Great Expectations, dbt tests, Soda, custom validation</p><blockquote><p>Pro tip: dbt can handle all these tests out of the box! </p></blockquote><p><strong>Why mention this:</strong></p><p>Data quality is one of the biggest pain points in data engineering. Show you take it seriously.</p><p><strong>Types of tests:</strong></p><ul><li><p><strong>Schema tests</strong>: Expected columns present and correct type</p></li><li><p><strong>Null checks</strong>: Required fields aren&#8217;t null</p></li><li><p><strong>Uniqueness</strong>: Primary keys are actually unique</p></li><li><p><strong>Referential integrity</strong>: Foreign keys are valid</p></li><li><p><strong>Range checks</strong>: Values within expected bounds</p></li><li><p><strong>Custom business logic</strong>: Revenue shouldn&#8217;t be negative, etc.</p></li></ul><p><strong>Where to test:</strong></p><ul><li><p>At ingestion (catch bad data early)</p></li><li><p>After transformation (validate business logic)</p></li><li><p>Before pushing to production (gate deployments)</p></li></ul><p><strong>What to say:</strong></p><p>&#8220;I&#8217;d implement data quality checks at every stage using dbt tests and Great Expectations. Failed tests block deployment and trigger alerts. We&#8217;d track data quality metrics over time to identify degradation.&#8221;</p><h4>FinOps (Cost Management) &#128176;</h4><p><strong>Why mention this:</strong></p><p>Shows you understand data platforms can get expensive, and cost awareness is part of your job.</p><p><strong>What to cover:</strong></p><ul><li><p><strong>Cost monitoring</strong>: Track spending by project/team/environment</p></li><li><p><strong>Resource tagging</strong>: Tag all resources for chargeback/showback</p></li><li><p><strong>Query optimization</strong>: Tune expensive queries</p></li><li><p><strong>Storage lifecycle policies</strong>: Move old data to cheaper tiers</p></li><li><p><strong>Right-sizing</strong>: Don&#8217;t over-provision compute</p></li><li><p><strong>Spot/preemptible instances</strong>: Use for non-critical workloads</p></li></ul><p><strong>What to say:</strong></p><p>&#8220;I&#8217;d implement tagging for all resources so we can track costs by team. We&#8217;d set up alerts for unexpected spend spikes, and regularly review expensive queries and storage to optimize costs.&#8221;</p><p><strong>Common cost optimizations:</strong></p><ul><li><p>Partition tables by date (scan less data)</p></li><li><p>Cluster tables by commonly filtered columns</p></li><li><p>Use materialized views for expensive aggregations</p></li><li><p>Compress data (Parquet, ORC, Delta)</p></li><li><p>Auto-pause warehouses when not in use</p></li><li><p>Use storage tiers (hot, cool, archive)</p></li></ul><div><hr></div><h2>&#127891; Interview Strategy: How to Actually Use This Guide</h2><h3>Before You Start Drawing</h3><p><strong>1. Clarify Requirements (5 minutes)</strong></p><ul><li><p>Don&#8217;t jump straight into architecture. Ask questions first:</p></li><li><p>What&#8217;s the core business use case?</p></li><li><p>What&#8217;s the data volume?</p></li><li><p>What are the latency requirements?</p></li><li><p>What&#8217;s the budget? (Build vs buy)</p></li><li><p>What cloud platform?</p></li><li><p>What&#8217;s already in place?</p></li><li><p>Who are the end users?</p></li></ul><p><strong>2. State Your Assumptions</strong></p><p>&#8220;Based on what you&#8217;ve told me, I&#8217;m assuming...&#8221;</p><ul><li><p>Daily batch processing will meet requirements</p></li><li><p>We&#8217;re starting from scratch (no legacy systems)</p></li><li><p>We have a team of 5 data engineers</p></li><li><p>Budget is moderate (not unlimited, not shoestring)</p></li></ul><p>This shows structured thinking and gives the interviewer a chance to correct you.</p><h3>While You&#8217;re Designing</h3><p><strong>1. Go Breadth-First, Then Depth</strong></p><p>Cover all six layers at a high level first (10-15 minutes). Then ask: &#8220;Where would you like me to go deeper?&#8221;</p><p>This shows you can see the whole system while also knowing when to dive into details.</p><p><strong>2. Think Out Loud</strong></p><p>&#8220;I&#8217;m considering two approaches here... Option A would be simpler but less scalable. Option B would handle growth better but adds complexity. Given the requirements, I&#8217;d lean toward Option A because...&#8221;</p><p>This is exactly what they want to hear. There are rarely &#8220;right&#8221; answers&#8212;only trade-offs.</p><p><strong>3. Draw as You Talk</strong></p><p>Your diagram should evolve as you narrate. Don&#8217;t draw everything silently then explain.</p><p>&#8220;So first, we have these source systems... they feed into... which lands data here... then we transform using...&#8221;</p><h3>Questions to Expect (Be Ready)</h3><p><strong>Scalability:</strong></p><ul><li><p>&#8220;What if data volume increases 10x?&#8221;</p></li><li><p>&#8220;How does this handle peak load?&#8221;</p></li></ul><p><strong>Failure Scenarios:</strong></p><ul><li><p>&#8220;What happens if the source API goes down?&#8221;</p></li><li><p>&#8220;How do you recover from a failed pipeline?&#8221;</p></li></ul><p><strong>Security:</strong></p><ul><li><p>&#8220;How do you handle PII/sensitive data?&#8221;</p></li><li><p>&#8220;What about access control?&#8221;</p></li></ul><p><strong>Operations:</strong></p><ul><li><p>&#8220;How do you deploy changes?&#8221;</p></li><li><p>&#8220;How do you monitor this?&#8221;</p></li><li><p>&#8220;Who&#8217;s on-call when it breaks?&#8221;</p></li></ul><p><strong>Trade-offs:</strong></p><ul><li><p>&#8220;Why did you choose X over Y?&#8221;</p></li><li><p>&#8220;What are the downsides of your approach?&#8221;</p></li></ul><h3>Do&#8217;s &#9989;</h3><ul><li><p><strong>Ask clarifying questions</strong> before diving in</p></li><li><p><strong>Explain your reasoning</strong> for every choice</p></li><li><p><strong>Acknowledge trade-offs</strong> (nothing is perfect)</p></li><li><p><strong>Mention multiple options</strong> even if you recommend one</p></li><li><p><strong>Show production thinking</strong> (monitoring, costs, operations)</p></li><li><p><strong>Adapt based on feedback</strong> (don&#8217;t be rigid)</p></li><li><p><strong>Use real examples</strong> from your experience</p></li><li><p><strong>Keep track of time</strong> (breadth first, then depth)</p></li></ul><h3>Don&#8217;ts &#10060;</h3><ul><li><p><strong>Don&#8217;t assume requirements</strong> - ask!</p></li><li><p><strong>Don&#8217;t jump to a specific tool</strong> without justifying</p></li><li><p><strong>Don&#8217;t over-engineer</strong> - start simple, add complexity only when needed</p></li><li><p><strong>Don&#8217;t ignore operational concerns</strong> - it&#8217;s not done when the code works</p></li><li><p><strong>Don&#8217;t claim there&#8217;s one right answer</strong> - it&#8217;s all trade-offs</p></li><li><p><strong>Don&#8217;t be silent</strong> - think out loud</p></li><li><p><strong>Don&#8217;t go too deep too early</strong> - cover breadth first</p></li></ul><div><hr></div><h2>&#128640; Your Action Plan</h2><p>Now that you have the framework, here&#8217;s how to prepare:</p><p><strong>&#128221; Week 1: Internalize the Framework</strong></p><ul><li><p>Review the six layers until you can draw them from memory</p></li><li><p>Practice explaining each layer in 2-3 sentences</p></li><li><p>Write down your own experiences for each layer</p></li></ul><p><strong>&#127912; Week 2: Practice Drawing</strong></p><ul><li><p>Pick 3-5 different scenarios (e-commerce, fintech, e-commerce, etc.)</p></li><li><p>Draw the architecture for each from scratch</p></li><li><p>Time yourself (aim for 30 minutes for a full design)</p></li></ul><p><strong>&#128483;&#65039; Week 3: Mock Interviews</strong></p><ul><li><p>Find a peer or mentor to practice with</p></li><li><p>Record yourself and watch it back</p></li><li><p>Get feedback on communication, not just technical accuracy</p></li></ul><p><strong>&#128202; Week 4: Deep Dive Your Weak Areas</strong></p><ul><li><p>Streaming? Read up on Kafka and Spark Streaming</p></li><li><p>Data modeling? Study dimensional modeling and normalization</p></li><li><p>ML systems? Learn about feature stores and MLOps</p></li></ul><p><strong>&#128260; Continuous Improvement</strong></p><ul><li><p>After every real interview, write down what you struggled with</p></li><li><p>Update your own mental model</p></li><li><p>Keep learning from real systems you build</p></li></ul><div><hr></div><h2>&#127873; Bonus: Common Scenarios to Practice</h2><p>Want to test your skills? Try designing these systems:</p><p><strong>&#128241; Scenario 1: E-commerce Analytics</strong></p><p>Requirements: Track user clickstream, orders, inventory. BI team needs daily dashboards. Marketing wants near-real-time campaign performance.</p><p><strong>&#128179; Scenario 2: Fraud Detection</strong></p><p>Requirements: Credit card transactions, need to flag suspicious activity within seconds. Also need historical analysis for model training.</p><p><strong>&#127973; Scenario 3: Healthcare Data Platform</strong></p><p>Requirements: Patient records from multiple hospitals, strict compliance (HIPAA), clinical researchers need de-identified data.</p><p><strong>&#127918; Scenario 4: Gaming Analytics</strong></p><p>Requirements: Player events, millions of users, need to detect cheating in real-time, also power personalized recommendations.</p><p><strong>&#128663; Scenario 5: IoT Fleet Management</strong></p><p>Requirements: GPS and telemetry from 10,000 vehicles, predict maintenance needs, optimize routes, provide real-time dashboard for dispatchers.</p><p>For each scenario:</p><ol><li><p>Draw the architecture</p></li></ol><ol start="2"><li><p>Justify your choices</p></li></ol><ol start="3"><li><p>Identify the biggest technical challenges</p></li></ol><ol start="4"><li><p>Estimate rough costs</p></li></ol><ol start="5"><li><p>Plan for failure scenarios</p></li></ol><div><hr></div><h2>&#128218; Additional Resources</h2><p><strong>Books:</strong></p><ul><li><p><em>Designing Data-Intensive Applications</em> by Martin Kleppmann</p></li></ul><ul><li><p><em>Fundamentals of Data Engineering</em> by Joe Reis and Matt Housley</p></li></ul><ul><li><p><em>The Data Warehouse Toolkit</em> by Ralph Kimball</p></li></ul><p><strong>Helpful articles:</strong></p><div class="digest-post-embed" data-attrs="{&quot;nodeId&quot;:&quot;0b1700da-e2d2-4a8f-b2ea-a7a4b1c24ecf&quot;,&quot;caption&quot;:&quot;I understand that getting your first job can be challenging. You have to manage many things, and it feels like a chicken-and-egg problem.&quot;,&quot;cta&quot;:&quot;Read full story&quot;,&quot;showBylines&quot;:true,&quot;size&quot;:&quot;sm&quot;,&quot;isEditorNode&quot;:true,&quot;title&quot;:&quot;Ultimate Data Analytics Career Roadmap&quot;,&quot;publishedBylines&quot;:[{&quot;id&quot;:176866058,&quot;name&quot;:&quot;Dmitry Anoshin&quot;,&quot;bio&quot;:&quot;Surfalytics helps you to engineer your data career with focus on soft, hard and job interview skills.&quot;,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/2ecac0cb-80bb-49c6-b9a8-f2b9e8b15bca_1684x1684.jpeg&quot;,&quot;is_guest&quot;:false,&quot;bestseller_tier&quot;:null}],&quot;post_date&quot;:&quot;2024-03-23T03:59:00.447Z&quot;,&quot;cover_image&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/5276125d-aac6-49a9-8ebf-cef3d1a146d7_2248x1068.png&quot;,&quot;cover_image_alt&quot;:null,&quot;canonical_url&quot;:&quot;https://blog.surfalytics.com/p/ultimate-data-analytics-career-roadmap&quot;,&quot;section_name&quot;:null,&quot;video_upload_id&quot;:null,&quot;id&quot;:142871157,&quot;type&quot;:&quot;newsletter&quot;,&quot;reaction_count&quot;:12,&quot;comment_count&quot;:2,&quot;publication_id&quot;:2051160,&quot;publication_name&quot;:&quot;Data Engineering &amp; Analytics Systems Design&quot;,&quot;publication_logo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!0hZW!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd233226f-0d04-4676-8097-da497d9b1c00_1280x1280.png&quot;,&quot;belowTheFold&quot;:true,&quot;youtube_url&quot;:null,&quot;show_links&quot;:null,&quot;feed_url&quot;:null}"></div><div class="digest-post-embed" data-attrs="{&quot;nodeId&quot;:&quot;27c07ae3-8fc6-40c0-b5c4-fda8bb1c29bd&quot;,&quot;caption&quot;:&quot;Are you moving from one country to another? From one city to another? It means, that the job market is different, and the tools and skill set might be slightly different. I hope your foundational knowledge of topics is on point and you aren't driven and distracted by marketing pitches and vendor buzzwords.&quot;,&quot;cta&quot;:&quot;Read full story&quot;,&quot;showBylines&quot;:true,&quot;size&quot;:&quot;sm&quot;,&quot;isEditorNode&quot;:true,&quot;title&quot;:&quot;From Relocation to Employment: Strategies for Career Success Abroad&quot;,&quot;publishedBylines&quot;:[{&quot;id&quot;:176866058,&quot;name&quot;:&quot;Dmitry Anoshin&quot;,&quot;bio&quot;:&quot;Surfalytics helps you to engineer your data career with focus on soft, hard and job interview skills.&quot;,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/2ecac0cb-80bb-49c6-b9a8-f2b9e8b15bca_1684x1684.jpeg&quot;,&quot;is_guest&quot;:false,&quot;bestseller_tier&quot;:null}],&quot;post_date&quot;:&quot;2024-05-14T05:33:15.591Z&quot;,&quot;cover_image&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%2Fa8b53c5f-68eb-414e-89fe-83119371d50f_1228x858.png&quot;,&quot;cover_image_alt&quot;:null,&quot;canonical_url&quot;:&quot;https://blog.surfalytics.com/p/from-relocation-to-employment-strategies&quot;,&quot;section_name&quot;:null,&quot;video_upload_id&quot;:null,&quot;id&quot;:140828895,&quot;type&quot;:&quot;newsletter&quot;,&quot;reaction_count&quot;:6,&quot;comment_count&quot;:0,&quot;publication_id&quot;:2051160,&quot;publication_name&quot;:&quot;Data Engineering &amp; Analytics Systems Design&quot;,&quot;publication_logo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!0hZW!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd233226f-0d04-4676-8097-da497d9b1c00_1280x1280.png&quot;,&quot;belowTheFold&quot;:true,&quot;youtube_url&quot;:null,&quot;show_links&quot;:null,&quot;feed_url&quot;:null}"></div><div class="digest-post-embed" data-attrs="{&quot;nodeId&quot;:&quot;63c5da28-5f4f-41cd-934d-c3ae8668e5b7&quot;,&quot;caption&quot;:&quot;At the Surfalytics community, we have defined a clear roadmap for your data career. One of the first steps is to choose the target role and prepare the resume to look nice.&quot;,&quot;cta&quot;:&quot;Read full story&quot;,&quot;showBylines&quot;:true,&quot;size&quot;:&quot;sm&quot;,&quot;isEditorNode&quot;:true,&quot;title&quot;:&quot;Check list for fixing your Data Resume &quot;,&quot;publishedBylines&quot;:[{&quot;id&quot;:176866058,&quot;name&quot;:&quot;Dmitry Anoshin&quot;,&quot;bio&quot;:&quot;Surfalytics helps you to engineer your data career with focus on soft, hard and job interview skills.&quot;,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/2ecac0cb-80bb-49c6-b9a8-f2b9e8b15bca_1684x1684.jpeg&quot;,&quot;is_guest&quot;:false,&quot;bestseller_tier&quot;:null}],&quot;post_date&quot;:&quot;2024-12-23T04:03:40.482Z&quot;,&quot;cover_image&quot;:&quot;https://substackcdn.com/image/fetch/$s_!_g8D!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fec97361e-6f36-47b7-ae43-cc2e1a330073_2502x1590.png&quot;,&quot;cover_image_alt&quot;:null,&quot;canonical_url&quot;:&quot;https://blog.surfalytics.com/p/check-list-for-fixing-your-data-resume&quot;,&quot;section_name&quot;:null,&quot;video_upload_id&quot;:null,&quot;id&quot;:153499883,&quot;type&quot;:&quot;newsletter&quot;,&quot;reaction_count&quot;:4,&quot;comment_count&quot;:0,&quot;publication_id&quot;:2051160,&quot;publication_name&quot;:&quot;Data Engineering &amp; Analytics Systems Design&quot;,&quot;publication_logo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!0hZW!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd233226f-0d04-4676-8097-da497d9b1c00_1280x1280.png&quot;,&quot;belowTheFold&quot;:true,&quot;youtube_url&quot;:null,&quot;show_links&quot;:null,&quot;feed_url&quot;:null}"></div><p></p>]]></content:encoded></item><item><title><![CDATA[Free Trials and Student Programs for Analytics & Data Engineering Tools]]></title><description><![CDATA[Use best tools for free while learning]]></description><link>https://blog.surfalytics.com/p/free-trials-and-student-programs</link><guid isPermaLink="false">https://blog.surfalytics.com/p/free-trials-and-student-programs</guid><dc:creator><![CDATA[Dmitry Anoshin]]></dc:creator><pubDate>Wed, 19 Mar 2025 03:47:47 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!IoEt!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdd2d0b39-2f30-45a7-8859-c643da8bdb1b_1200x600.gif" 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_!IoEt!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdd2d0b39-2f30-45a7-8859-c643da8bdb1b_1200x600.gif" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!IoEt!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdd2d0b39-2f30-45a7-8859-c643da8bdb1b_1200x600.gif 424w, https://substackcdn.com/image/fetch/$s_!IoEt!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdd2d0b39-2f30-45a7-8859-c643da8bdb1b_1200x600.gif 848w, https://substackcdn.com/image/fetch/$s_!IoEt!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdd2d0b39-2f30-45a7-8859-c643da8bdb1b_1200x600.gif 1272w, https://substackcdn.com/image/fetch/$s_!IoEt!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdd2d0b39-2f30-45a7-8859-c643da8bdb1b_1200x600.gif 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!IoEt!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdd2d0b39-2f30-45a7-8859-c643da8bdb1b_1200x600.gif" width="1200" height="600" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/dd2d0b39-2f30-45a7-8859-c643da8bdb1b_1200x600.gif&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:600,&quot;width&quot;:1200,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:49764,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/gif&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://blog.surfalytics.com/i/159385197?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdd2d0b39-2f30-45a7-8859-c643da8bdb1b_1200x600.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_!IoEt!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdd2d0b39-2f30-45a7-8859-c643da8bdb1b_1200x600.gif 424w, https://substackcdn.com/image/fetch/$s_!IoEt!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdd2d0b39-2f30-45a7-8859-c643da8bdb1b_1200x600.gif 848w, https://substackcdn.com/image/fetch/$s_!IoEt!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdd2d0b39-2f30-45a7-8859-c643da8bdb1b_1200x600.gif 1272w, https://substackcdn.com/image/fetch/$s_!IoEt!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdd2d0b39-2f30-45a7-8859-c643da8bdb1b_1200x600.gif 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></p><p>In case you are ready to learn new skills and tools and more or less defined your study roadmap, the next step would be to decide where to practice. </p><p>In case, you aren&#8217;t please check the road map to get an idea of where are you and what would be your next step.</p><div class="digest-post-embed" data-attrs="{&quot;nodeId&quot;:&quot;08557ad1-a756-4575-b168-33934e237571&quot;,&quot;caption&quot;:&quot;I understand that getting your first job can be challenging. You have to manage many things, and it feels like a chicken-and-egg problem.&quot;,&quot;cta&quot;:null,&quot;showBylines&quot;:true,&quot;size&quot;:&quot;lg&quot;,&quot;isEditorNode&quot;:true,&quot;title&quot;:&quot;Ultimate Data Analytics Career Roadmap&quot;,&quot;publishedBylines&quot;:[{&quot;id&quot;:176866058,&quot;name&quot;:&quot;Dmitry Anoshin&quot;,&quot;bio&quot;:&quot;Surfalytics helps you to engineer your data career with focus on soft, hard and job interview skills.&quot;,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/2ecac0cb-80bb-49c6-b9a8-f2b9e8b15bca_1684x1684.jpeg&quot;,&quot;is_guest&quot;:false,&quot;bestseller_tier&quot;:null}],&quot;post_date&quot;:&quot;2024-03-23T03:59:00.447Z&quot;,&quot;cover_image&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/5276125d-aac6-49a9-8ebf-cef3d1a146d7_2248x1068.png&quot;,&quot;cover_image_alt&quot;:null,&quot;canonical_url&quot;:&quot;https://blog.surfalytics.com/p/ultimate-data-analytics-career-roadmap&quot;,&quot;section_name&quot;:null,&quot;video_upload_id&quot;:null,&quot;id&quot;:142871157,&quot;type&quot;:&quot;newsletter&quot;,&quot;reaction_count&quot;:9,&quot;comment_count&quot;:2,&quot;publication_id&quot;:null,&quot;publication_name&quot;:&quot;Surfalytics&quot;,&quot;publication_logo_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%2Fd233226f-0d04-4676-8097-da497d9b1c00_1280x1280.png&quot;,&quot;belowTheFold&quot;:false,&quot;youtube_url&quot;:null,&quot;show_links&quot;:null,&quot;feed_url&quot;:null}"></div><p>For sure, you have an absolutely free option to leverage your laptop and install different kinds of free software such as databases, data tools, coding frameworks and so on. However, it would be far from ideal. Far from real-world 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_!M8-v!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F36e4be97-ccad-4fcd-8da7-2c833f972629_612x408.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!M8-v!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F36e4be97-ccad-4fcd-8da7-2c833f972629_612x408.jpeg 424w, https://substackcdn.com/image/fetch/$s_!M8-v!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F36e4be97-ccad-4fcd-8da7-2c833f972629_612x408.jpeg 848w, https://substackcdn.com/image/fetch/$s_!M8-v!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F36e4be97-ccad-4fcd-8da7-2c833f972629_612x408.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!M8-v!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F36e4be97-ccad-4fcd-8da7-2c833f972629_612x408.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!M8-v!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F36e4be97-ccad-4fcd-8da7-2c833f972629_612x408.jpeg" width="612" height="408" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/36e4be97-ccad-4fcd-8da7-2c833f972629_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;:null,&quot;alt&quot;:&quot;222,800+ Vintage Computer Stock Photos, Pictures &amp; Royalty-Free Images -  iStock | Old computer, Early computer, Vintage computer class&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="222,800+ Vintage Computer Stock Photos, Pictures &amp; Royalty-Free Images -  iStock | Old computer, Early computer, Vintage computer class" title="222,800+ Vintage Computer Stock Photos, Pictures &amp; Royalty-Free Images -  iStock | Old computer, Early computer, Vintage computer class" srcset="https://substackcdn.com/image/fetch/$s_!M8-v!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F36e4be97-ccad-4fcd-8da7-2c833f972629_612x408.jpeg 424w, https://substackcdn.com/image/fetch/$s_!M8-v!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F36e4be97-ccad-4fcd-8da7-2c833f972629_612x408.jpeg 848w, https://substackcdn.com/image/fetch/$s_!M8-v!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F36e4be97-ccad-4fcd-8da7-2c833f972629_612x408.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!M8-v!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F36e4be97-ccad-4fcd-8da7-2c833f972629_612x408.jpeg 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">http://localhost</figcaption></figure></div><p>I hope it is crystal clear that you won&#8217;t get a job with localhost projects and even if you get one you will struggle in the organization because they run things differently. </p><p>So, the best path forward for you work with the most popular vendors. Luckily for us all of them are providing a Trial (Free) period that will work perfectly for your goals.</p><p>Let&#8217;s start from the baseline - public cloud providers - AWS, Azure, and GCP. You don&#8217;t need to learn all of them. Choose one, that you think is the most popular in your area and start building on top of it.</p><p>Let&#8217;s review what they give us:</p><h3>Amazon Web Services (AWS)</h3><ul><li><p><strong>Free Tier/Trial:</strong> AWS offers a comprehensive Free Tier with <em>12 months of free usage</em> on many services for new customers (e.g. up to 750 hours/month of a t2.micro VM) (<a href="https://aws.amazon.com/free/#:~:text=Create%20a%20Free%20Account">Free Cloud Computing Services - AWS Free Tier</a>). In addition, certain services are <em>Always Free</em> (within usage limits) even beyond the first year (<a href="https://aws.amazon.com/free/#:~:text=Always%20Free%3A%20These%20free%20tier,and%20new%20AWS%20customers%20indefinitely">Free Cloud Computing Services - AWS Free Tier</a>). No upfront payment is required, and if usage exceeds free limits, standard pay-as-you-go rates apply (<a href="https://aws.amazon.com/free/#:~:text=Create%20a%20Free%20Account">Free Cloud Computing Services - AWS Free Tier</a>).</p></li><li><p><strong>Student Program:</strong> AWS Educate provides students with free cloud learning resources and credits. Students can access the AWS Educate portal with no AWS account needed, and historically received $35 in AWS credits (up to $100 if their institution is part of the program) (<a href="https://aws.amazon.com/blogs/aws/aws-educate-credits-training-content-and-collaboration-for-students-educators/#:~:text=Benefits%20for%20Students%20ImageAll%20students,of%20%24100%20in%20AWS%20credits">AWS Educate &#8211; Credits, Training, Content, and Collaboration for Students &amp; Educators | AWS News Blog</a>). This program offers free online labs and training to help students develop cloud skills.</p></li></ul><h3>Microsoft Azure</h3><ul><li><p><strong>Free Tier/Trial:</strong> Microsoft Azure&#8217;s free account includes a <strong>$200 credit</strong> valid for 30 days to try any Azure service (<a href="https://azure.microsoft.com/en-us/pricing/purchase-options/azure-account#:~:text=match%20at%20L679%20Get%20free,for%20up%20to%2030%20days">Create Your Azure Free Account Or Pay As You Go | Microsoft Azure</a>). It also provides <strong>12 months of free</strong> popular services for new users (e.g. 750 hours of Linux/Windows VM, databases, storage) and over <strong>65 services always free</strong> within certain limits (<a href="https://azure.microsoft.com/en-us/pricing/purchase-options/azure-account#:~:text=%24200%20credit%3F">Create Your Azure Free Account Or Pay As You Go | Microsoft Azure</a>) (<a href="https://azure.microsoft.com/en-us/pricing/purchase-options/azure-account#:~:text=match%20at%20L864%20There%20is,200%20credit%20per%20new%20customer">Create Your Azure Free Account Or Pay As You Go | Microsoft Azure</a>). No credit card is needed for the Azure free account sign-up (unless opting to upgrade after the trial).</p></li><li><p><strong>Student Program:</strong> <strong>Azure for Students</strong> gives eligible students <strong>$100 in Azure credits valid for 12 months</strong>, no credit card required (<a href="https://azure.microsoft.com/en-us/free/students#:~:text=Image">Azure for Students &#8211; Free Account Credit | Microsoft Azure</a>). Students can renew this offer each year they remain eligible (i.e. reapply after 12 months for another $100) (<a href="https://azure.microsoft.com/en-us/free/students#:~:text=Start%20free%20with%20%24100%20credit,credit%2C%20get%20free%20services%20too">Azure for Students &#8211; Free Account Credit | Microsoft Azure</a>). This student account includes the same 12 months of free services and always-free products, enabling learners to experiment on Azure at no cost.</p></li></ul><h3>Google Cloud Platform (GCP)</h3><ul><li><p><strong>Free Trial:</strong> Google Cloud&#8217;s Free Program provides <strong>$300 in credits for new customers</strong>, usable over a <strong>90-day</strong> period (<a href="https://cloud.google.com/free#:~:text=Cloud%20cloud,activate%20your%20full%20paid%20account">Free Trial and Free Tier Services and Products - Google Cloud</a>). During this trial, you can use any Google Cloud services up to the credit limit without charges. You won&#8217;t be billed unless you upgrade to a paid account after the credits or time are exhausted.</p></li><li><p><strong>Always-Free Tier:</strong> Google Cloud also has an <strong>Always Free tier</strong> &#8211; a set of 20+ products with free monthly usage quotas for all users (<a href="https://cloud.google.com/free/docs/free-cloud-features#:~:text=Program%20cloud,of%20charge%2C%20within%20specified">Free cloud features and trial offer | Google Cloud Free Program</a>). For example, BigQuery allows up to <strong>1 TB of queries and 10 GB of storage free per month</strong> (<a href="https://support.google.com/trends/answer/12764470?hl=en#:~:text=Get%20started%20with%20the%20Google,these%20thresholds%20are%20subject">Get started with the Google Trends dataset</a>), and services like Cloud Functions, Compute Engine, and Cloud Storage have free quotas. This lets users continue using GCP in a limited capacity even after the trial (no expiration for these free usage limits).</p></li><li><p><strong>Student Programs:</strong> Google Cloud offers educational resources and credits through its academic programs. While there isn&#8217;t a single unified &#8220;student account&#8221; like Azure&#8217;s, Google&#8217;s Cloud for Education initiatives let <strong>faculty apply for free credits to use in courses</strong> and provide students access to hands-on labs and quests (e.g. via Google Cloud Skills Boost) (<a href="https://edu.google.com/intl/ALL_us/programs/credits/teaching/#:~:text=Teaching%20Credits%20,experience%20with%20Google%20Cloud%20Platform">Teaching Credits | Google for Education</a>). Students can earn badges and practice with real cloud resources at no cost through these programs (<a href="https://cloud.google.com/edu/students#:~:text=Google%20Cloud%20for%20Education%20,skills%20to%20employers%20in">Google Cloud for Education - Students</a>). (Additionally, Google Cloud has partnerships and competitions that grant free credits to students, though these vary by region and time.)</p></li></ul><blockquote><p>Public cloud skills are vital now. I would think about them in the same was as Microsoft offices in 90s-2000s. So, think about this as just a day to day environment for you data experiments.</p></blockquote><p>The next big thing is Data Platforms. You just need to focus on the leaders - Databricks and Snowflake. Pick one and dive deep.  </p><p>Let&#8217;s check their trial options.</p><h3>Snowflake</h3><ul><li><p><strong>Free Trial:</strong> <strong>Snowflake</strong> (cloud data warehouse) offers a <strong>30-day free trial</strong> which includes <strong>$400 worth of usage credits</strong> for you to run queries, load data, and test the platform (<a href="https://signup.snowflake.com/#:~:text=30,400%20worth%20of%20free%20usage">Snowflake Trial</a>). No credit card is required to start; you just need a valid email to sign up (<a href="https://docs.snowflake.com/en/user-guide/admin-trial-account#:~:text=A%20Snowflake%20trial%20account%20lets,other%20qualifying%20information%20is%20required">Trial accounts | Snowflake Documentation</a>). The trial provides full access to Snowflake&#8217;s features (standard and enterprise editions) during that period. If you reach the $400 credit limit or 30 days pass, the account will be suspended unless upgraded (<a href="https://docs.snowflake.com/en/user-guide/admin-trial-account#:~:text=The%20trial%20continues%20for%2030,account%20to%20a%20paid%20account">Trial accounts | Snowflake Documentation</a>).</p></li><li><p><strong>Student Program:</strong> Snowflake has an Academic Program called <strong>Snowflake for Academia</strong>. Through this program, <strong>students and educators receive free access to Snowflake&#8217;s platform and training materials</strong> (<a href="https://learn.snowflake.com/en/snowflake-for-academia#:~:text=Free%20Access%20to%20Technology%20%26,Training">learn.snowflake.com</a>). This includes hands-on workshops, industry-recognized Snowflake certifications prep, and a curriculum for instructors. The goal is to help students build data and AI skills on Snowflake at no cost, making them more marketable in data-driven careers (<a href="https://learn.snowflake.com/en/snowflake-for-academia#:~:text=For%20Students">learn.snowflake.com</a>). (Students typically join via their institutions or through Snowflake&#8217;s educational initiatives.)</p></li></ul><blockquote><p>There is a hidden gem on <a href="https://www.coursera.org/collections/snowflake-courses">Coursera</a> . <strong>These free trainings will give you 6 months trial!!!</strong></p></blockquote><h3>Databricks</h3><ul><li><p><strong>Free Trial &amp; Community Edition:</strong> <strong>Databricks</strong> provides a couple of free options. First, there&#8217;s a <strong>14-day free trial</strong> of the full Databricks platform (on AWS, Azure, or GCP) with premium features for data engineering and ML, so you can test all functionalities (<a href="https://www.topcoder.com/thrive/articles/databricks-community-edition-a-beginners-guide#:~:text=Amazing%2C%20right%3F%20Try%20it%20out%2C,now">Databricks Community Edition: A Beginner&#8217;s Guide</a>). Beyond that, Databricks offers a <strong>Community Edition</strong> which is an <em>always-free</em> version of Databricks. The Community Edition gives you access to a small <strong>micro-cluster (15 GB memory)</strong>, a cluster manager, and the notebook environment indefinitely (<a href="https://www.topcoder.com/thrive/articles/databricks-community-edition-a-beginners-guide#:~:text=Databricks%20Community%20Edition%20can%20be,and%20users%20have%20access%20to">Databricks Community Edition: A Beginner&#8217;s Guide</a>) (<a href="https://www.topcoder.com/thrive/articles/databricks-community-edition-a-beginners-guide#:~:text=The%20Databricks%20Community%20Edition%2C%20released,do%20not%20have%20to%20incur">Databricks Community Edition: A Beginner&#8217;s Guide</a>). Your Community account doesn&#8217;t expire, making it ideal for learning Spark and trying small-scale projects. (It has limitations in computing power and features, but supports Apache Spark jobs and basic notebooks for free.)</p></li><li><p><strong>Student Program:</strong> Databricks supports academia through the <strong>Databricks University Alliance</strong>. This program provides free resources to instructors and students, such as sample course materials, notebooks, and even Azure/AWS credits for classroom use. Educators can get access to Databricks environments to teach, and students get hands-on experience with the Databricks platform (<a href="https://www.databricks.com/university#:~:text=Databricks%20University%20Alliance%20provides%20assets,person%20%26%20virtual%20classrooms">Databricks University Alliance</a>). While not a separate &#8220;student edition&#8221; of the product, this alliance offers complimentary access to Databricks for educational purposes, helping students learn Spark and big data tools on a real platform.</p></li></ul><p>Let&#8217;s check the most popular BI tools:</p><h3>Looker</h3><ul><li><p><strong>Free Trial:</strong> <strong>Looker</strong> (a business intelligence platform now part of Google Cloud) offers a <strong>30-day free trial</strong> for businesses interested in the platform (<a href="https://cloud.google.com/free#:~:text=Free%20Trial%20and%20Free%20Tier,Build%20and%20manage">Free Trial and Free Tier Services and Products - Google Cloud</a>). Since Looker is typically a browser-based SaaS tool, the trial is often arranged by Google&#8217;s sales team and allows full use of Looker&#8217;s analytics, visualization, and data model<strong>l</strong>ing features on your own data. There are no official forever-free tiers of Looker beyond this limited trial.</p></li><li><p><strong>Student Program:</strong> Looker does not have a dedicated student license program published. It&#8217;s an enterprise-oriented tool usually sold to organizations. Students who want to learn Looker may access it via university programs or sandbox environments if provided by Google Cloud academic initiatives, but there isn&#8217;t an official free student edition of Looker itself.</p></li></ul><h3>Tableau</h3><ul><li><p><strong>Free Trial:</strong> <strong>Tableau</strong> (a popular analytics and visualization tool) provides a <strong>14-day free trial</strong> of its flagship products (<a href="https://www.tableau.com/products/trial/desktop#:~:text=Download%20a%20free%2014%20day,software%20can%20do%20for%20you">Tableau Desktop: Start your free 14-day trial</a>). You can download Tableau Desktop for a full-feature trial or use Tableau Cloud in trial mode. During the trial, you have the same capabilities as a paid user (connect to data, build dashboards, etc.). After 14 days, the software will prompt for a license or the account will revert unless you purchase or obtain an extension.</p></li><li><p><strong>Student Program:</strong> Tableau has a robust academic program. <strong>Tableau for Students</strong> offers <em><strong>free one-year licenses</strong></em> for Tableau Desktop and Tableau Prep to students at accredited institutions (<a href="https://www.tableau.com/academic/students#:~:text=Tableau%20for%20Students%20Students%20can,Try%20it%20now">Tableau for Students</a>). Students can renew these each year while enrolled. This means as a student you can use the full Tableau Desktop (not just the trial) without charge. The Academic Programs also include e-learning resources and community forums to help students learn Tableau. <em>(Recent updates indicate Tableau is transitioning students to use Tableau Desktop Public Edition for free, but core functionality remains accessible.)</em></p></li></ul><h3>Sigma Computing</h3><ul><li><p><strong>Free Trial:</strong> <strong>Sigma</strong> (Sigma Computing&#8217;s analytics platform) offers a <strong>14-day free trial</strong> of its cloud BI tool (<a href="https://community.sigmacomputing.com/t/does-sigma-have-a-a-developer-account-with-extended-trial-periods/3888#:~:text=I%20am%20a%20freelancer%2Fconsultant%20exploring,to%20fully%20assess%20the%20platform">Does Sigma have a a developer account with extended trial periods? - Forums - Sigma Community</a>). This trial provides full access to Sigma&#8217;s spreadsheet-like analytics interface on your cloud data warehouse, with no credit card required to start. Within those 14 days, users can explore data, create dashboards, and experience Sigma&#8217;s real-time cloud analytics capabilities. After the trial, continued use requires a paid subscription (Sigma does not have a long-term free tier for its full product).</p></li></ul><h3>Microsoft Power BI</h3><ul><li><p><strong>Free Version:</strong> <strong>Power BI</strong> has a free offering via <strong>Power BI Desktop</strong> and the Power BI Service with a free license. Power BI Desktop (the Windows application for building reports) is free to download and use locally. With a free Power BI license, users can also publish reports to the Power BI cloud <em>for their own use</em>. They can connect to data, create dashboards, and use the Power BI service <strong>as long as it's for personal or development use</strong> (<a href="https://learn.microsoft.com/en-us/power-bi/fundamentals/service-features-license-type#:~:text=Learn%20learn,They%20can%27t%20use%20the">Power BI service features by license type - Microsoft Learn</a>). The main limitation is that <strong>Power BI Free users cannot share dashboards privately</strong> with others &#8211; sharing and collaboration features require a Pro license (<a href="https://learn.microsoft.com/en-us/power-bi/fundamentals/service-features-license-type#:~:text=Learn%20learn,They%20can%27t%20use%20the">Power BI service features by license type - Microsoft Learn</a>) (<a href="https://community.powerbi.com/t5/Desktop/Share-Report-with-Coworkers-without-Pro-License/td-p/2518671#:~:text=forums%20community,a%20Power%20BI%20Pro">Share Report with Coworkers without Pro License - Power BI forums</a>).</p></li><li><p><strong>Pro Trial:</strong> If you want to try full sharing and collaboration capabilities, Microsoft offers a <strong>Power BI Pro free trial (typically 60 days)</strong> for new users. This trial lets you test all Pro features &#8211; such as sharing reports with colleagues, app workspaces, email subscriptions, etc. &#8211; without payment. The official Power BI site invites users to &#8220;try Power BI free&#8221; which essentially activates the Pro trial within the Microsoft Fabric platform (<a href="https://www.microsoft.com/en-us/power-platform/products/power-bi/pricing#:~:text=Start%20using%20Power%20BI%20for,free">Power BI: Pricing Plan | Microsoft Power Platform</a>). After the 60-day trial, you would need to buy a Pro license (or have it assigned by your organization) to continue those capabilities.</p></li><li><p><strong>Student Access:</strong> There isn&#8217;t a standalone &#8220;Power BI Student&#8221; edition, but students often get access through <strong>Office 365 Education</strong>. Microsoft provides Office 365 A1 licenses free to educational institutions, which include Power BI Free usage. In practice, this means a student with a school-provided Microsoft 365 account can use Power BI to create reports (and if the school has Power BI Pro or Premium capacity, they might be able to share within the school). Additionally, Microsoft offers <strong>academic pricing</strong> for Power BI Pro (and now Power BI in Fabric) &#8211; schools and students can get licenses at a discounted rate (<a href="https://www.microsoft.com/en-us/power-platform/products/power-bi/pricing#:~:text=about%20enterprise%20pricing%20and%20offers">Power BI: Pricing Plan | Microsoft Power Platform</a>). In short, students should check if their university provides Power BI as part of Office 365; if not, they can still use the Desktop and the Pro trial on their own.</p></li></ul><p>And finally, a couple of ETL vendors:</p><h3>Fivetran</h3><ul><li><p><strong>Free Trial:</strong> <strong>Fivetran</strong> (a managed data pipeline/ETL service) provides a <strong>14-day free trial</strong> on its platform (<a href="https://www.fivetran.com/pricing/free-plan#:~:text=What%E2%80%99s%20the%20difference%20between%20the,trial%20and%20the%20Free%20Plan">Free Plan</a>). During the trial, you can use Fivetran&#8217;s Enterprise Plan features &#8211; set up connectors from sources to destinations, and move data &#8211; without being charged. Fivetran even allows each new connector you create during the trial to run free for 14 days, so you can stagger testing multiple data sources (<a href="https://fivetran.com/docs/getting-started/free-trials/new-connector-free-use-period#:~:text=New%20Connection%20Free%20Use%20Period,day">New Connection Free Use Period - Fivetran</a>) (<a href="https://www.fivetran.com/blog/free-connector-trial#:~:text=Start%20a%20free%20trial%20with,create%203%20Facebook%20Ads">Start a free trial with any Fivetran connector for 14 days | Blog</a>). No credit card is needed to start the trial, and you won&#8217;t incur costs until you decide to upgrade after the 14-day period.</p></li><li><p><strong>Free Tier (Ongoing):</strong> Uniquely, Fivetran also offers a <strong>Free Plan</strong> that has no time limit. After the trial, if your data volumes are small, you can stay on the free tier. The Free Plan allows up to <strong>500,000 rows of data (Monthly Active Rows)</strong> and <strong>5,000 monthly active schema changes</strong> for free, using Fivetran&#8217;s standard connectors (<a href="https://www.fivetran.com/pricing/free-plan#:~:text=What%E2%80%99s%20the%20difference%20between%20the,trial%20and%20the%20Free%20Plan">Free Plan</a>). This is great for individual projects or learning, as you can continue running a couple of low-volume connectors indefinitely at no cost. (If you exceed 500k rows in a month, Fivetran will prompt an upgrade and eventually freeze the pipeline until you upgrade or the month resets (<a href="https://www.fivetran.com/pricing/free-plan#:~:text=usage%20estimate,usage%20is%20below%20the%20limits">Free Plan</a>).)</p><p></p></li></ul><h3>Matillion</h3><ul><li><p><strong>Free Trial:</strong> <strong>Matillion</strong> (a cloud-native data integration and transformation tool) offers a <strong>14-day free trial</strong> for its Matillion Data Productivity Cloud (<a href="https://docs.matillion.com/data-productivity-cloud/free-trial/#:~:text=The%20Data%20Productivity%20Cloud%20is,Productivity%20Cloud%20and%20Matillion%20ETL">Free trial - Matillion Docs</a>). When you sign up, you receive <strong>500 free Matillion credits</strong> to use within those 14 days, which allows you to run Matillion ETL jobs and try all features. The trial is full <em>Enterprise Edition</em> access, meaning no feature restrictions during that period (<a href="https://docs.matillion.com/data-productivity-cloud/free-trial/#:~:text=Cloud%20accounts%20start%20the%2014,Productivity%20Cloud%20and%20Matillion%20ETL">Free trial - Matillion Docs</a>). No credit card is initially required; if you don&#8217;t upgrade after 14 days (or once the 500 credits are used), the trial ends unless you switch to a paid plan.</p></li></ul><h2>Pet Projects Ideas</h2><p>The tools above will cover the core skills and you can use these tools for free and build great skills. However, the main strength is coming from &#8220;pet projects&#8221;, i.e. the projects you can build yourself end to end close to real-world use cases.</p><p>At Surfalytics, we have lots of pet projects for BI and Data Engineering and you can review them in our GitHub - https://github.com/surfalytics/data-projects</p><h2>Other helpful resources for our Data Career</h2><ol><li><p>Free Data Analytics and Data Engineering Fundamentals course</p><ol><li><p>Module 0: <a href="https://www.youtube.com/watch?v=LJIiCLu2gr8&amp;list=PLNCDg7zJiXhP5Z_-TXUdorz2n7sjYHHKE">Git, CLI, Docker, IDE</a></p></li><li><p>Module 1: <a href="https://www.youtube.com/watch?v=gFR9lT7I2aQ&amp;list=PLNCDg7zJiXhMMCNkqLZ568Twc_wkxpb6c&amp;pp=0gcJCXcEOCosWNin">What is Analytics? How do data teams work? What are data roles and what do they do?</a></p></li><li><p>Module 2: <a href="https://www.youtube.com/watch?v=GxLpe97h0tY&amp;list=PLNCDg7zJiXhP74o3RK_gp1IkYgrncPiyf">Databases and SQL fundamentals</a></p></li><li><p>Module 3: <a href="https://www.youtube.com/watch?v=c0tBWX7k5q4&amp;list=PLNCDg7zJiXhPapTrxrvsxLUGSPLEbJp0w">BI and Data Viz fundamentals</a></p></li></ol></li><li><p><a href="https://www.youtube.com/watch?v=Ug98CKrkHh4&amp;list=PLNCDg7zJiXhM5Gshe5_Q2HAZM5vIOLpI1">Records of real Data Engineering interviews</a></p></li><li><p>Record of <a href="https://www.youtube.com/watch?v=qUwbpgbEymE&amp;list=PLNCDg7zJiXhPD0ethFHC-1V1pkvWhc633">SQL Mock Interviews</a> with Surfalytics members</p></li><li><p><a href="https://blog.surfalytics.com/p/check-list-for-fixing-your-data-resume">Blog post about fixing your data Resume</a><br></p></li></ol>]]></content:encoded></item><item><title><![CDATA[How to Measure Your Business the Amazon Way]]></title><description><![CDATA[Amazon's Weekly Business Review (WBR) process, a part of "Working Backwards" approach, is a structured and repeatable process for teams to answer questions about their business with actionable data.]]></description><link>https://blog.surfalytics.com/p/how-to-measure-your-business-the</link><guid isPermaLink="false">https://blog.surfalytics.com/p/how-to-measure-your-business-the</guid><dc:creator><![CDATA[Dmitry Anoshin]]></dc:creator><pubDate>Tue, 11 Mar 2025 16:31:12 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!_g8G!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7e1c677e-369e-49a4-b5a9-685bb7f4f120_2048x1364.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h1><strong>Introduction</strong></h1><p>Amazon is known for its intense data-driven culture, and one of its secret weapons is the <strong>Weekly Business Review (WBR)</strong>. Imagine the entire leadership team huddled every week, poring over a <em>ton</em> of metrics &#8211; that&#8217;s exactly what happens at Amazon. In fact, Amazon&#8217;s executives review <strong>400-500 metrics in a single 60-minute WBR meeting</strong>, and they&#8217;ve been doing this <em>every week</em> since the early 2000s.</p><p>Why go to such lengths? Because WBRs help leaders catch trends, spot issues, and make informed decisions faster than you can say &#8220;Alexa.&#8221; It&#8217;s not just another meeting; it&#8217;s a powerful habit that keeps the company <strong>focused, accountable, and nimble</strong> in decision-making. If that sounds daunting, don&#8217;t worry &#8211; we&#8217;re going to break down how you can apply a WBR framework to your business (with fewer than 500 metrics, we promise &#128521;).</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!_g8G!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7e1c677e-369e-49a4-b5a9-685bb7f4f120_2048x1364.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!_g8G!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7e1c677e-369e-49a4-b5a9-685bb7f4f120_2048x1364.png 424w, https://substackcdn.com/image/fetch/$s_!_g8G!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7e1c677e-369e-49a4-b5a9-685bb7f4f120_2048x1364.png 848w, https://substackcdn.com/image/fetch/$s_!_g8G!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7e1c677e-369e-49a4-b5a9-685bb7f4f120_2048x1364.png 1272w, https://substackcdn.com/image/fetch/$s_!_g8G!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7e1c677e-369e-49a4-b5a9-685bb7f4f120_2048x1364.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!_g8G!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7e1c677e-369e-49a4-b5a9-685bb7f4f120_2048x1364.png" width="1456" height="970" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/7e1c677e-369e-49a4-b5a9-685bb7f4f120_2048x1364.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:970,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:902534,&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://blog.surfalytics.com/i/158712324?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7e1c677e-369e-49a4-b5a9-685bb7f4f120_2048x1364.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_!_g8G!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7e1c677e-369e-49a4-b5a9-685bb7f4f120_2048x1364.png 424w, https://substackcdn.com/image/fetch/$s_!_g8G!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7e1c677e-369e-49a4-b5a9-685bb7f4f120_2048x1364.png 848w, https://substackcdn.com/image/fetch/$s_!_g8G!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7e1c677e-369e-49a4-b5a9-685bb7f4f120_2048x1364.png 1272w, https://substackcdn.com/image/fetch/$s_!_g8G!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7e1c677e-369e-49a4-b5a9-685bb7f4f120_2048x1364.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><h1><strong>Introduction</strong></h1><p>Amazon is known for its intense data-driven culture, and one of its secret weapons is the <strong>Weekly Business Review (WBR)</strong>. Imagine the entire leadership team huddled every week, poring over a <em>ton</em> of metrics &#8211; that&#8217;s exactly what happens at Amazon. In fact, Amazon&#8217;s executives review <strong>400-500 metrics in a single 60-minute WBR meeting</strong>, and they&#8217;ve been doing this <em>every week</em> since the early 2000s.</p><p>Why go to such lengths? Because WBRs help leaders catch trends, spot issues, and make informed decisions faster than you can say &#8220;Alexa.&#8221; It&#8217;s not just another meeting; it&#8217;s a powerful habit that keeps the company <strong>focused, accountable, and nimble</strong> in decision-making. If that sounds daunting, don&#8217;t worry &#8211; we&#8217;re going to break down how you can apply a WBR framework to your business (with fewer than 500 metrics, we promise &#128521;).</p><h2>WBR Explained: What Exactly Is a Weekly Business Review?</h2><p>A <strong>Weekly Business Review (WBR)</strong> is a regular, structured review of your business&#8217;s performance that happens every week (yes, weekly &#8211; consistency is key!). In a WBR, you and your team look at a set of key metrics to understand how the business is doing and why. <strong>Amazon popularized this practice</strong> as a cornerstone of its management process. Every WBR meeting at Amazon follows a consistent format: a huge deck of charts and numbers covering everything from customer experience to sales to operations, presented in the <em>same layout</em> week after week (<a href="https://www.holistics.io/blog/how-amazon-uses-input-metrics/#:~:text=The%20authors%20of%20Working%20Backwards,ordering%20to%20fulfilment%20to%20delivery">How Amazon Uses Input Metrics</a>).</p><p>This routine might sound rigid, but it&#8217;s incredibly effective. By keeping the format identical each week, Amazon&#8217;s leaders can quickly spot anomalies or trends &#8211; it&#8217;s like flipping through a familiar photo album and instantly noticing what changed since last time.</p><p>So why does Amazon take WBRs so seriously? Because <strong>weekly reviews drive action</strong>. They answer three big questions:</p><blockquote><p><em><strong>What did customers experience last week? How did the business perform? Are we on track to hit our goals?</strong></em></p></blockquote><p>In practice, the WBR surfaces unfiltered facts about what&#8217;s happening in the business and where it&#8217;s heading. If something&#8217;s off &#8211; say, a spike in customer complaints or a dip in sales &#8211; it gets noticed immediately. The discussion then focuses on <em><strong>why</strong></em> it happened and what to do about it. Think of the WBR as an early-warning system and a progress report. Done right, it highlights problems <strong>and</strong> opportunities, so you can fix issues or double down on a success long before they grow big. No wonder Amazon&#8217;s teams treat WBR prep as sacred &#8211; it&#8217;s their ritual for staying tuned in to the business. And the result? More data-driven decisions and fewer &#8220;I didn&#8217;t see that coming&#8221; surprises &#128517;.</p><p>Let&#8217;s check out a real example of WBR from Amazon where Dmitry spent 5 years:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Nmm2!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3cc0fd37-4ca5-433a-85fc-ddc41a904b1a_858x540.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Nmm2!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3cc0fd37-4ca5-433a-85fc-ddc41a904b1a_858x540.png 424w, https://substackcdn.com/image/fetch/$s_!Nmm2!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3cc0fd37-4ca5-433a-85fc-ddc41a904b1a_858x540.png 848w, https://substackcdn.com/image/fetch/$s_!Nmm2!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3cc0fd37-4ca5-433a-85fc-ddc41a904b1a_858x540.png 1272w, https://substackcdn.com/image/fetch/$s_!Nmm2!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3cc0fd37-4ca5-433a-85fc-ddc41a904b1a_858x540.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Nmm2!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3cc0fd37-4ca5-433a-85fc-ddc41a904b1a_858x540.png" width="858" height="540" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/3cc0fd37-4ca5-433a-85fc-ddc41a904b1a_858x540.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:540,&quot;width&quot;:858,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:425395,&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://blog.surfalytics.com/i/158712324?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3cc0fd37-4ca5-433a-85fc-ddc41a904b1a_858x540.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_!Nmm2!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3cc0fd37-4ca5-433a-85fc-ddc41a904b1a_858x540.png 424w, https://substackcdn.com/image/fetch/$s_!Nmm2!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3cc0fd37-4ca5-433a-85fc-ddc41a904b1a_858x540.png 848w, https://substackcdn.com/image/fetch/$s_!Nmm2!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3cc0fd37-4ca5-433a-85fc-ddc41a904b1a_858x540.png 1272w, https://substackcdn.com/image/fetch/$s_!Nmm2!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3cc0fd37-4ca5-433a-85fc-ddc41a904b1a_858x540.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>Yes, it was done in Excel and probably still running by Excel and my teams. It took 1-2 days to prepare WBR across all team in the org. Automation with Tableau was a game changer. Any automation is a game changer.</p><h2>Input vs. Output Metrics: Focusing on What You Can Control</h2><p>One of the secret sauces in Amazon&#8217;s WBR is how they distinguish between <strong>output metrics</strong> and <strong>input metrics</strong>. So, what&#8217;s the difference? In simple terms: <strong>output metrics</strong> are the results (the outcomes you want), and <strong>input metrics</strong> are the drivers (the things you do to influence that outcome. Amazon loves input metrics &#8211; and for good reason.</p><ul><li><p><strong>Output Metrics</strong> are like the scoreboard. They tell you how you&#8217;re doing, but you can&#8217;t change them <em>directly</em>. For example, in business, this could be <strong>total revenue, number of customers, or profit</strong> &#8211; or even your website&#8217;s conversion rate. In life, an output metric might be your weight or exam score. These metrics are <strong>&#8220;lagging indicators&#8221;</strong> &#8211; they lag behind the work that causes them. If your sales or conversion rate dropped last week, that&#8217;s useful to know, but it&#8217;s just the result. Yelling &#8220;increase!&#8221; at an output metric usually doesn&#8217;t help (if only it were that easy! &#128540;).</p></li><li><p><strong>Input Metrics</strong> are like the levers and dials you can turn to affect the outputs. They are <strong>controllable actions or processes</strong> that drive those results. Think of things like a <strong>number of new products added to your catalog, website loading speed, marketing spend, customer service response time</strong>, etc. These are typically <strong>&#8220;leading indicators&#8221;</strong> &#8211; they lead to outcomes. The beauty of input metrics is that when one is off track, you know <em>where</em> to intervene. They give you a clear idea of what to fix or improve. For instance, if &#8220;website uptime&#8221; (an input) fell, you can bet it&#8217;s impacting &#8220;orders placed&#8221; (an output), and you know exactly which tech team to poke.</p></li></ul><p>Amazon&#8217;s philosophy is to <strong>obsess over input metrics</strong>. Why? Because focusing on controllable inputs is how you <em>eventually</em> get the outputs you want. A famous anecdote drives this home: Jeff Bezos once met a CEO who was giddy that his company&#8217;s stock price went up by 30 cents that day &#8211; a classic output metric. Bezos basically shrugged and noted the CEO had done nothing to cause that stock rise.</p><p>The lesson? Don&#8217;t pat yourself on the back for outputs you don&#8217;t directly control. Instead, zero in on the inputs you <em>can</em> control (like improving customer experience, product selection, or co which in turn drive those outputs. It&#8217;s like trying to lose weight &#8211; you can&#8217;t just tell the scale to change (output), but you <strong>can</strong> exercise and eat right (inputs) and let those efforts reflect on the scale over time. By managing the right inputs, Amazon ensures the outputs (revenue, market share, customer satisfaction, you name it) take care of themselves. As one Amazon veteran put it, output metrics are important, but input metrics are what give you &#8220;clarity on the levers you can pull&#8221; to improve those outcomes. In short: control the inputs, and the outputs will follow.</p><h2>eCommerce Example: WBR in Action at &#8220;Surfalytics&#8221; &#127940;&#8205;&#9794;&#65039;</h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!xkGT!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbeb41b7a-83b1-4bef-9fdc-758ed34381c0_1256x826.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!xkGT!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbeb41b7a-83b1-4bef-9fdc-758ed34381c0_1256x826.png 424w, https://substackcdn.com/image/fetch/$s_!xkGT!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbeb41b7a-83b1-4bef-9fdc-758ed34381c0_1256x826.png 848w, https://substackcdn.com/image/fetch/$s_!xkGT!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbeb41b7a-83b1-4bef-9fdc-758ed34381c0_1256x826.png 1272w, https://substackcdn.com/image/fetch/$s_!xkGT!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbeb41b7a-83b1-4bef-9fdc-758ed34381c0_1256x826.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!xkGT!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbeb41b7a-83b1-4bef-9fdc-758ed34381c0_1256x826.png" width="1256" height="826" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/beb41b7a-83b1-4bef-9fdc-758ed34381c0_1256x826.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:826,&quot;width&quot;:1256,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:246250,&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://blog.surfalytics.com/i/158712324?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbeb41b7a-83b1-4bef-9fdc-758ed34381c0_1256x826.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_!xkGT!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbeb41b7a-83b1-4bef-9fdc-758ed34381c0_1256x826.png 424w, https://substackcdn.com/image/fetch/$s_!xkGT!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbeb41b7a-83b1-4bef-9fdc-758ed34381c0_1256x826.png 848w, https://substackcdn.com/image/fetch/$s_!xkGT!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbeb41b7a-83b1-4bef-9fdc-758ed34381c0_1256x826.png 1272w, https://substackcdn.com/image/fetch/$s_!xkGT!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbeb41b7a-83b1-4bef-9fdc-758ed34381c0_1256x826.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>Let&#8217;s bring this to life with a practical example. Meet <em>Surfalytics</em>, </p><p>https://shop.surfalytics.com/</p><p> our real eCommerce store that sells surfing gear and beach accessories. How can Surfalytics use a WBR and input/output metrics to ride the wave to success? &#127754;</p><p>Imagine every Monday morning, the Surfalytics team holds a Weekly Business Review meeting. They look at a simple one-page report of last week&#8217;s key stats. Here&#8217;s how they might break it down and use those metrics:</p><ul><li><p><strong>Conversion Rate (Output)</strong> &#8211; Last week, Surfalytics&#8217; conversion rate (the percentage of visitors who bought something) was, say, <strong>2.5%</strong>, down from 3% the week before. That&#8217;s a red flag &#128201;. In the WBR, the team asks <em>&#8220;Why did it drop?&#8221;</em> They dive into input metrics behind conversion. It turns out the <strong>website load time</strong> increased by 1 second last week (perhaps due to a fancy new video on the homepage), and a couple of popular products were <strong>out of stock</strong>. Slower pages and missing products likely frustrated some shoppers, causing fewer checkouts. Aha! Now the team has actionable steps: optimize the site speed and urgently restock those popular items. By tackling these inputs, they expect the conversion rate to bounce back rather than just hoping numbers magically improve.</p></li><li><p><strong>Traffic (Input)</strong> &#8211; Next, they review website traffic. Good news: traffic is <em>up</em> 15% week-over-week, thanks to a new Google Ads campaign &#127881;. Traffic is an input metric because Surfalytics can control it (by adjusting ad spend, SEO, content marketing, etc.). Higher traffic usually leads to higher sales <em>if</em> other inputs (like site experience and product availability) are solid. The team notes that the campaign worked well. If traffic had been down, that would have signalled the need for action (maybe the marketing team paused ads or some referral source dried up, which they&#8217;d address for next week). By tracking it weekly, they&#8217;re never in the dark about their customer visits.</p></li><li><p><strong>Product Availability (Input)</strong> &#8211; Surfalytics tracks the <strong>in-stock rate</strong> of its top products. Last week, it was only 80%, meaning 20% of high-demand items were unavailable. That&#8217;s likely a big factor in lost sales &#8211; you can&#8217;t sell what you don&#8217;t have, and customers probably went &#8220;out of stock&#8230; ugh&#8221; and left. In the WBR, this metric prompts a plan: the inventory team will work with suppliers to raise that in-stock rate to 95%+. Product availability is a controllable input &#8211; the team can introduce better inventory management or reorder faster. Improving this input will directly boost output metrics like sales and customer satisfaction (fewer folks encountering out-of-stock messages). Lesson learned: <strong>always keep your best-sellers on the (virtual) shelves!</strong></p></li><li><p><strong>Operational Efficiency (Input)</strong> &#8211; The Surfalytics crew also checks an operational metric: say, <strong>order fulfillment time</strong> (how fast orders are shipped out). They see it slipped from an average of 1 day to 2 days last week. Maybe the warehouse was understaffed or a process snag slowed things down. While customers haven&#8217;t started screaming yet, a slower ship time could hurt the <strong>customer satisfaction</strong> score or lead to higher refund requests (output metrics) if it continues. Because WBR highlighted this trend early, the operations manager can act now &#8211; perhaps put an extra team on duty or streamline packing for the coming week. By tightening this up (input), they keep the customer experience strong and prevent future issues. In essence, the WBR helps them <strong>dive deep</strong> into each part of the business, from web analytics to supply chain and ensures every team knows where to focus their efforts before small problems become big ones.</p></li></ul><p>Through this weekly routine, Surfalytics creates a continuous improvement loop. Each week they celebrate wins (&#129309; high-five for that traffic boost) and confront challenges head-on. Over time, this leads to better and better performance. The marketing folks see how their campaigns translate to sales, the product team sees how selection and stock levels matter, and the operations folks see the impact of speedy delivery &#8211; it&#8217;s <em>all</em> connected. The WBR turns vague goals like &#8220;increase revenue&#8221; into specific action plans: increase revenue -&gt; improve conversion -&gt; speed up the site, keep products in stock, etc. It&#8217;s business analytics made actionable and even a bit fun (with coffee and donuts in the meeting, of course!).</p><h2>WBR in Tableau</h2><p>Let&#8217;s create a WBR dashboard in Tableau! We&#8217;ll use the Sample Superstore Dataset for this project. If you prefer, you can simply download the workbook and reverse-engineer it. The final solution is available <strong><a href="https://public.tableau.com/app/profile/nastengraph/viz/AmazonWeeklyBusinessReview/WBR">here</a>.</strong></p><p>To save time on dashboard layout, I&#8217;ll be using my free <a href="https://public.tableau.com/app/profile/nastengraph/viz/DashboardTemplate_17225026563000/MainDashboardwNav">**Dashboard Template</a>.** You can download it and start building your charts right away.</p><p>I recommend using the <strong>3x2x1 layout</strong> and completely deleting the left column for a cleaner design.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!5p87!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc2a26325-3a4a-46f9-b70e-c81a02d8eb4b_2048x1367.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!5p87!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc2a26325-3a4a-46f9-b70e-c81a02d8eb4b_2048x1367.png 424w, https://substackcdn.com/image/fetch/$s_!5p87!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc2a26325-3a4a-46f9-b70e-c81a02d8eb4b_2048x1367.png 848w, https://substackcdn.com/image/fetch/$s_!5p87!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc2a26325-3a4a-46f9-b70e-c81a02d8eb4b_2048x1367.png 1272w, https://substackcdn.com/image/fetch/$s_!5p87!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc2a26325-3a4a-46f9-b70e-c81a02d8eb4b_2048x1367.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!5p87!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc2a26325-3a4a-46f9-b70e-c81a02d8eb4b_2048x1367.png" width="1456" height="972" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c2a26325-3a4a-46f9-b70e-c81a02d8eb4b_2048x1367.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:972,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:96884,&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://blog.surfalytics.com/i/158712324?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc2a26325-3a4a-46f9-b70e-c81a02d8eb4b_2048x1367.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_!5p87!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc2a26325-3a4a-46f9-b70e-c81a02d8eb4b_2048x1367.png 424w, https://substackcdn.com/image/fetch/$s_!5p87!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc2a26325-3a4a-46f9-b70e-c81a02d8eb4b_2048x1367.png 848w, https://substackcdn.com/image/fetch/$s_!5p87!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc2a26325-3a4a-46f9-b70e-c81a02d8eb4b_2048x1367.png 1272w, https://substackcdn.com/image/fetch/$s_!5p87!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc2a26325-3a4a-46f9-b70e-c81a02d8eb4b_2048x1367.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h2>Weekly Line Chart</h2><p>This is Line Chart that shows Weekly Sales values, its Previous Period Sales (in this case previous Week) and its&#8217; Previous Year Sales.</p><ol><li><p><strong>Build the Chart Axes</strong></p></li></ol><p>1.1 Drag <code>Order Date</code> to the <strong>Columns</strong> shelf. Change its granularity to <code>Week</code> by clicking on the dropdown menu for <code>Order Date</code> and selecting <code>Week</code>.</p><p>1.2 Add <code>Sales</code> to the <strong>Rows</strong> shelf</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Dhfd!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fccd63ae2-8560-4324-90c1-3611cd9c5811_2048x1285.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Dhfd!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fccd63ae2-8560-4324-90c1-3611cd9c5811_2048x1285.png 424w, https://substackcdn.com/image/fetch/$s_!Dhfd!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fccd63ae2-8560-4324-90c1-3611cd9c5811_2048x1285.png 848w, https://substackcdn.com/image/fetch/$s_!Dhfd!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fccd63ae2-8560-4324-90c1-3611cd9c5811_2048x1285.png 1272w, https://substackcdn.com/image/fetch/$s_!Dhfd!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fccd63ae2-8560-4324-90c1-3611cd9c5811_2048x1285.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Dhfd!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fccd63ae2-8560-4324-90c1-3611cd9c5811_2048x1285.png" width="1456" height="914" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/ccd63ae2-8560-4324-90c1-3611cd9c5811_2048x1285.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:914,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:703896,&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://blog.surfalytics.com/i/158712324?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fccd63ae2-8560-4324-90c1-3611cd9c5811_2048x1285.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_!Dhfd!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fccd63ae2-8560-4324-90c1-3611cd9c5811_2048x1285.png 424w, https://substackcdn.com/image/fetch/$s_!Dhfd!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fccd63ae2-8560-4324-90c1-3611cd9c5811_2048x1285.png 848w, https://substackcdn.com/image/fetch/$s_!Dhfd!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fccd63ae2-8560-4324-90c1-3611cd9c5811_2048x1285.png 1272w, https://substackcdn.com/image/fetch/$s_!Dhfd!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fccd63ae2-8560-4324-90c1-3611cd9c5811_2048x1285.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></p><ol start="2"><li><p><strong>Create Calculations</strong></p></li></ol><p>You will need calculated fields for:</p><ul><li><p>Previous Week Sales. Let&#8217;s create a calculation called <strong>Sales Previous Period</strong> because we&#8217;ll use it in Previous Monthly Sales as well..</p></li></ul><pre><code><code>//**Sales Previous Period**
LOOKUP(ZN(SUM([Sales])), -1)
//LOOKUP function shifts the focus from the current row to one row backward </code></code></pre><ul><li><p><strong>Sales Previous Year Week.</strong> This one will be separate from the monthly one because we&#8217;ll calculate not -1 row, but -52, meaning 52 weeks ago.</p></li></ul><pre><code><code>//**Sales Previous Year Week**
LOOKUP(ZN(SUM([Sales])), -52)
//LOOKUP function shifts the focus from the current row to 52 rows backward </code></code></pre><ol start="3"><li><p><strong>Combine Measures on the chart</strong></p></li></ol><p>3.1 Drag <code>Measure Values</code> to the Rows shelf.</p><p>Filter by Measure Names to leave only <code>Sales Previous Period</code>and ****<code>Sales Previous Year Week</code></p><p>3.2 Create a Dual axis between <code>SUM(Sales)</code> and <code>Measure Values</code> by right-clicking on Measure values &#8594; Dual axis. Synchronize axes by right-clicking on them &#8594; Synchronize axes.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!xTQH!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faa726b70-3195-4f49-91cb-00920ff9d275_2048x1216.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!xTQH!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faa726b70-3195-4f49-91cb-00920ff9d275_2048x1216.png 424w, https://substackcdn.com/image/fetch/$s_!xTQH!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faa726b70-3195-4f49-91cb-00920ff9d275_2048x1216.png 848w, https://substackcdn.com/image/fetch/$s_!xTQH!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faa726b70-3195-4f49-91cb-00920ff9d275_2048x1216.png 1272w, https://substackcdn.com/image/fetch/$s_!xTQH!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faa726b70-3195-4f49-91cb-00920ff9d275_2048x1216.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!xTQH!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faa726b70-3195-4f49-91cb-00920ff9d275_2048x1216.png" width="1456" height="864" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/aa726b70-3195-4f49-91cb-00920ff9d275_2048x1216.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:864,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:896396,&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://blog.surfalytics.com/i/158712324?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faa726b70-3195-4f49-91cb-00920ff9d275_2048x1216.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_!xTQH!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faa726b70-3195-4f49-91cb-00920ff9d275_2048x1216.png 424w, https://substackcdn.com/image/fetch/$s_!xTQH!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faa726b70-3195-4f49-91cb-00920ff9d275_2048x1216.png 848w, https://substackcdn.com/image/fetch/$s_!xTQH!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faa726b70-3195-4f49-91cb-00920ff9d275_2048x1216.png 1272w, https://substackcdn.com/image/fetch/$s_!xTQH!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faa726b70-3195-4f49-91cb-00920ff9d275_2048x1216.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><ol start="4"><li><p><strong>Filter the chart</strong></p></li></ol><p>One of the tricks here is to filter for the last 6 weeks while still keeping all the <code>LOOKUP</code> calculations visible. Due to the order of operations, we can&#8217;t use the usual dimension date filter. Instead, we need to use a Table Calculation filter. For more details, refer to <a href="https://help.tableau.com/current/pro/desktop/en-us/order_of_operations.htm">Tableau's Order of Operations</a>.</p><p>This is why we create a filter calculation:</p><pre><code><code>//**Filter Rank date (week)**
RANK(MAX(DATETRUNC('week',[Order Date])))
//Applies RANK to dates in the chart
</code></code></pre><p>Then, use this calculation to keep only the last 6 ranked weeks.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!wbzi!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F634ef8d0-1de4-493a-bc6c-a3decf491c21_906x1188.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!wbzi!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F634ef8d0-1de4-493a-bc6c-a3decf491c21_906x1188.png 424w, https://substackcdn.com/image/fetch/$s_!wbzi!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F634ef8d0-1de4-493a-bc6c-a3decf491c21_906x1188.png 848w, https://substackcdn.com/image/fetch/$s_!wbzi!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F634ef8d0-1de4-493a-bc6c-a3decf491c21_906x1188.png 1272w, https://substackcdn.com/image/fetch/$s_!wbzi!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F634ef8d0-1de4-493a-bc6c-a3decf491c21_906x1188.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!wbzi!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F634ef8d0-1de4-493a-bc6c-a3decf491c21_906x1188.png" width="906" height="1188" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/634ef8d0-1de4-493a-bc6c-a3decf491c21_906x1188.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1188,&quot;width&quot;:906,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:174968,&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://blog.surfalytics.com/i/158712324?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F634ef8d0-1de4-493a-bc6c-a3decf491c21_906x1188.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_!wbzi!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F634ef8d0-1de4-493a-bc6c-a3decf491c21_906x1188.png 424w, https://substackcdn.com/image/fetch/$s_!wbzi!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F634ef8d0-1de4-493a-bc6c-a3decf491c21_906x1188.png 848w, https://substackcdn.com/image/fetch/$s_!wbzi!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F634ef8d0-1de4-493a-bc6c-a3decf491c21_906x1188.png 1272w, https://substackcdn.com/image/fetch/$s_!wbzi!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F634ef8d0-1de4-493a-bc6c-a3decf491c21_906x1188.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><ol start="5"><li><p><strong>Customize the Marks</strong></p></li></ol><p>For <code>SUM(Sales)</code> set up the blue colour. For Measure Names set up light grey for <code>Sales Previous Period</code> and dark grey for <code>Sales Previous Year Week</code>. Choose a dashed line type for them.</p><ol start="6"><li><p><strong>Formatting</strong></p></li></ol><ul><li><p>Hide right axis by right click &#8594; Un-click Show header.</p></li><li><p>Remove date axis title.</p></li><li><p>Remove Column and Row dividers. Remove Grid Lines.</p></li><li><p>Use grey for axes text.</p></li></ul><p>More about Formatting in Tableau: <a href="https://help.tableau.com/current/pro/desktop/en-us/formatting_worksheet.htm">https://help.tableau.com/current/pro/desktop/en-us/formatting_worksheet.htm</a></p><ul><li><p>Add legend via the Sheet title &#8211; fact -- previous week -- previous year</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_!gnqV!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc299006f-4ccc-43c1-9b0c-97a6e3e3d6a0_1264x496.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!gnqV!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc299006f-4ccc-43c1-9b0c-97a6e3e3d6a0_1264x496.png 424w, https://substackcdn.com/image/fetch/$s_!gnqV!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc299006f-4ccc-43c1-9b0c-97a6e3e3d6a0_1264x496.png 848w, https://substackcdn.com/image/fetch/$s_!gnqV!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc299006f-4ccc-43c1-9b0c-97a6e3e3d6a0_1264x496.png 1272w, https://substackcdn.com/image/fetch/$s_!gnqV!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc299006f-4ccc-43c1-9b0c-97a6e3e3d6a0_1264x496.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!gnqV!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc299006f-4ccc-43c1-9b0c-97a6e3e3d6a0_1264x496.png" width="1264" height="496" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c299006f-4ccc-43c1-9b0c-97a6e3e3d6a0_1264x496.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:496,&quot;width&quot;:1264,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:144190,&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://blog.surfalytics.com/i/158712324?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc299006f-4ccc-43c1-9b0c-97a6e3e3d6a0_1264x496.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_!gnqV!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc299006f-4ccc-43c1-9b0c-97a6e3e3d6a0_1264x496.png 424w, https://substackcdn.com/image/fetch/$s_!gnqV!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc299006f-4ccc-43c1-9b0c-97a6e3e3d6a0_1264x496.png 848w, https://substackcdn.com/image/fetch/$s_!gnqV!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc299006f-4ccc-43c1-9b0c-97a6e3e3d6a0_1264x496.png 1272w, https://substackcdn.com/image/fetch/$s_!gnqV!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc299006f-4ccc-43c1-9b0c-97a6e3e3d6a0_1264x496.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h2>Monthly Line Chart</h2><p>This is Line Chart that shows Monthly Sales values, its Previous Period Sales (in this case previous Month) and its the Previous Year Sales.</p><p>For a monthly line chart, the logic is the same.</p><p>The only differences are:</p><ul><li><p><strong>Sales Previous Year Month:</strong> This calculation helps find the sales from the same month in the previous year.</p></li></ul><pre><code><code>//**Sales Previous Year Month**
LOOKUP(ZN(SUM([Sales])), -12)
//LOOKUP function shifts the focus from the current row to 12 rows backward (yar ago)</code></code></pre><ul><li><p>Filtering the chart to display only the last 6 months.</p></li></ul><pre><code><code>//**Filter Rank date (month)**
RANK(MAX(DATETRUNC('month',[Order Date])))
//Applies RANK to dates in the chart</code></code></pre><p>Now you can place both of these charts on the dashboard.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!UBmO!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd6d0b9e2-680c-4672-916d-f6b8a1bbab5b_2048x1364.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!UBmO!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd6d0b9e2-680c-4672-916d-f6b8a1bbab5b_2048x1364.png 424w, https://substackcdn.com/image/fetch/$s_!UBmO!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd6d0b9e2-680c-4672-916d-f6b8a1bbab5b_2048x1364.png 848w, https://substackcdn.com/image/fetch/$s_!UBmO!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd6d0b9e2-680c-4672-916d-f6b8a1bbab5b_2048x1364.png 1272w, https://substackcdn.com/image/fetch/$s_!UBmO!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd6d0b9e2-680c-4672-916d-f6b8a1bbab5b_2048x1364.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!UBmO!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd6d0b9e2-680c-4672-916d-f6b8a1bbab5b_2048x1364.png" width="1456" height="970" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d6d0b9e2-680c-4672-916d-f6b8a1bbab5b_2048x1364.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:970,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:314143,&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://blog.surfalytics.com/i/158712324?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd6d0b9e2-680c-4672-916d-f6b8a1bbab5b_2048x1364.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_!UBmO!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd6d0b9e2-680c-4672-916d-f6b8a1bbab5b_2048x1364.png 424w, https://substackcdn.com/image/fetch/$s_!UBmO!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd6d0b9e2-680c-4672-916d-f6b8a1bbab5b_2048x1364.png 848w, https://substackcdn.com/image/fetch/$s_!UBmO!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd6d0b9e2-680c-4672-916d-f6b8a1bbab5b_2048x1364.png 1272w, https://substackcdn.com/image/fetch/$s_!UBmO!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd6d0b9e2-680c-4672-916d-f6b8a1bbab5b_2048x1364.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h2>Weekly KPI Card</h2><p>This is KPI card that shows Last Week Sales values, its Period over Period % change (in this case % WoW) and Year over Year % Change.</p><p>This is not an essential part for the WBR but it can be useful to look at the charts together with KPI cards.</p><ol><li><p><strong>Build the KPI structure</strong></p></li></ol><p>1.1 Drag <code>Order Date</code> to the <strong>Columns</strong> shelf. Change its granularity to <code>Week</code> by clicking on the dropdown menu for <code>Order Date</code> and selecting <code>Week</code>. Make it Discrete.</p><p>1.2 Add <code>Sales</code> and <code>WEEK(Order Date)</code> (you can copy it by Cmd/Ctrl+Drag the pill from 1.1) to the <strong>Text</strong> in the <strong>Marks</strong> shelf.</p><p>Go to the text and add text &#8216;Sales&#8217; on top of the SUM(Sales)</p><p>Apply formatting:</p><ul><li><p>black color and size 22 for SUM(Sales)</p></li><li><p>black color and size 14 for &#8216;Sales&#8217; text</p></li><li><p>grey color and size 10 for WEEK(Order Date)</p></li><li><p>Apply Custom Date Formatting to WEEK(Order Date): <code>dd mmm</code>. More about <a href="https://help.tableau.com/current/pro/desktop/en-us/dates_custom_date_formats.htm">Custom Date Formats</a></p></li><li><p>left-align all text</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_!6lB4!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd07ac2a0-8e43-4ba1-9248-0580c0d09393_478x290.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!6lB4!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd07ac2a0-8e43-4ba1-9248-0580c0d09393_478x290.png 424w, https://substackcdn.com/image/fetch/$s_!6lB4!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd07ac2a0-8e43-4ba1-9248-0580c0d09393_478x290.png 848w, https://substackcdn.com/image/fetch/$s_!6lB4!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd07ac2a0-8e43-4ba1-9248-0580c0d09393_478x290.png 1272w, https://substackcdn.com/image/fetch/$s_!6lB4!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd07ac2a0-8e43-4ba1-9248-0580c0d09393_478x290.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!6lB4!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd07ac2a0-8e43-4ba1-9248-0580c0d09393_478x290.png" width="478" height="290" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d07ac2a0-8e43-4ba1-9248-0580c0d09393_478x290.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:290,&quot;width&quot;:478,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:45357,&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://blog.surfalytics.com/i/158712324?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd07ac2a0-8e43-4ba1-9248-0580c0d09393_478x290.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_!6lB4!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd07ac2a0-8e43-4ba1-9248-0580c0d09393_478x290.png 424w, https://substackcdn.com/image/fetch/$s_!6lB4!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd07ac2a0-8e43-4ba1-9248-0580c0d09393_478x290.png 848w, https://substackcdn.com/image/fetch/$s_!6lB4!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd07ac2a0-8e43-4ba1-9248-0580c0d09393_478x290.png 1272w, https://substackcdn.com/image/fetch/$s_!6lB4!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd07ac2a0-8e43-4ba1-9248-0580c0d09393_478x290.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>At the end, you&#8217;ll get something like that</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!UxRe!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F34066bb4-905c-4860-9b11-2682b8afe289_2048x659.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!UxRe!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F34066bb4-905c-4860-9b11-2682b8afe289_2048x659.png 424w, https://substackcdn.com/image/fetch/$s_!UxRe!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F34066bb4-905c-4860-9b11-2682b8afe289_2048x659.png 848w, https://substackcdn.com/image/fetch/$s_!UxRe!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F34066bb4-905c-4860-9b11-2682b8afe289_2048x659.png 1272w, https://substackcdn.com/image/fetch/$s_!UxRe!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F34066bb4-905c-4860-9b11-2682b8afe289_2048x659.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!UxRe!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F34066bb4-905c-4860-9b11-2682b8afe289_2048x659.png" width="1456" height="469" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/34066bb4-905c-4860-9b11-2682b8afe289_2048x659.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:469,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:290261,&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://blog.surfalytics.com/i/158712324?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F34066bb4-905c-4860-9b11-2682b8afe289_2048x659.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_!UxRe!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F34066bb4-905c-4860-9b11-2682b8afe289_2048x659.png 424w, https://substackcdn.com/image/fetch/$s_!UxRe!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F34066bb4-905c-4860-9b11-2682b8afe289_2048x659.png 848w, https://substackcdn.com/image/fetch/$s_!UxRe!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F34066bb4-905c-4860-9b11-2682b8afe289_2048x659.png 1272w, https://substackcdn.com/image/fetch/$s_!UxRe!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F34066bb4-905c-4860-9b11-2682b8afe289_2048x659.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><ol start="2"><li><p><strong>Create Calculations</strong> <strong>for PoP</strong></p></li></ol><p>We&#8217;ll reuse some of the previously calculated fields, like <code>Sales Previous Period</code> and <code>Sales Previous Year Week</code></p><ul><li><p>Firstly, let&#8217;s create the one to calculate % difference between periods &#8211; <code>Sales % PoP.</code></p></li></ul><pre><code><code>//**Sales % PoP**
(ZN(SUM([Sales])) - [Sales Previous Period]) / [Sales Previous Period]
</code></code></pre><ul><li><p>Now we need two more calculations to create &#8593;&#8595; % for the KPI card on the basis of <code>Sales % PoP</code></p></li></ul><pre><code><code>//**Sales % Neg**
IIF([Sales % PoP] &lt; 0,
'&#8595;' + STR(ROUND([Sales % PoP]*100,1)) + '%','')
//Here we check if the % PoP was **negative** and if yes we add arrow down &#8595; and % result.
</code></code></pre><pre><code><code>//**Sales % Pos**
IIF([Sales % PoP] &gt; 0,
'&#8593;+' + STR(ROUND([Sales % PoP]*100,1)) + '%','')
//Here we check if the % PoP was **positive** and if yes we add arrow up &#8593; and % result.
</code></code></pre><ol start="3"><li><p><strong>Add PoP to the KPI card</strong></p></li></ol><p>Now we can add them to the KPI card design. Just place <code>Sales % Neg</code> and <code>Sales % Pos</code> them in the to the <strong>Text</strong> in the <strong>Marks</strong> shelf.</p><p>Now the trick would be to apply formatting, Since the <code>Sales % PoP</code> ****can&#8217;t be both positive and negative at the same time, we&#8217;ll only see <code>Sales % Neg</code> OR <code>Sales % Pos</code>.</p><p>So in the text we color <code>Sales % Neg</code> in red-orange and <code>Sales % Pos</code> in blue-violet and add &#8216;WoW&#8217; at the end.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!yl8h!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5571c04b-56e9-4d1e-a015-3ac36bf82a2d_802x422.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!yl8h!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5571c04b-56e9-4d1e-a015-3ac36bf82a2d_802x422.png 424w, https://substackcdn.com/image/fetch/$s_!yl8h!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5571c04b-56e9-4d1e-a015-3ac36bf82a2d_802x422.png 848w, https://substackcdn.com/image/fetch/$s_!yl8h!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5571c04b-56e9-4d1e-a015-3ac36bf82a2d_802x422.png 1272w, https://substackcdn.com/image/fetch/$s_!yl8h!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5571c04b-56e9-4d1e-a015-3ac36bf82a2d_802x422.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!yl8h!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5571c04b-56e9-4d1e-a015-3ac36bf82a2d_802x422.png" width="802" height="422" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/5571c04b-56e9-4d1e-a015-3ac36bf82a2d_802x422.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:422,&quot;width&quot;:802,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:105805,&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://blog.surfalytics.com/i/158712324?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5571c04b-56e9-4d1e-a015-3ac36bf82a2d_802x422.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_!yl8h!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5571c04b-56e9-4d1e-a015-3ac36bf82a2d_802x422.png 424w, https://substackcdn.com/image/fetch/$s_!yl8h!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5571c04b-56e9-4d1e-a015-3ac36bf82a2d_802x422.png 848w, https://substackcdn.com/image/fetch/$s_!yl8h!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5571c04b-56e9-4d1e-a015-3ac36bf82a2d_802x422.png 1272w, https://substackcdn.com/image/fetch/$s_!yl8h!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5571c04b-56e9-4d1e-a015-3ac36bf82a2d_802x422.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><ol start="4"><li><p><strong>Create Calculations</strong> <strong>for Week YoY</strong></p></li></ol><p>Now let&#8217;s create the rest of the calculations for the KPI card &#8211; YoY.</p><ul><li><p>Firstly, let&#8217;s create the one to calculate % difference between years &#8211; <code>Sales % WoW YoY</code></p></li></ul><pre><code><code>//**Sales % WoW YoY**
(ZN(SUM([Sales])) - [Sales Previous Year Week]) / [Sales Previous Year Week]</code></code></pre><ul><li><p>Now we need two more calculations to create &#8593;&#8595; % for the KPI card on the basis of <code>Sales % WoW YoY</code></p></li></ul><pre><code><code>//**Sales % Neg WoW YoY**
IIF([Sales % WoW YoY] &lt; 0,
'&#8595;' + STR(ROUND([Sales % WoW YoY]*100,1)) + '%','')
//Here we check if the % YoY was **negative** and if yes we add arrow down &#8595; and % result.</code></code></pre><pre><code><code>//**Sales % Pos WoW YoY**
IIF([Sales % WoW YoY] &gt; 0,
'&#8593;+' + STR(ROUND([Sales % WoW YoY]*100,1)) + '%','')
//Here we check if the % YoY was **positive** and if yes we add arrow up &#8593; and % result.</code></code></pre><ol start="5"><li><p><strong>Add YoY to the KPI card</strong></p></li></ol><p>Do the same as in the 3rd point by adding <code>Sales % Neg WoW YoY</code> and <code>Sales % Pos WoW YoY</code> to the text and formatting it.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!QFxr!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7330e8a6-3e3d-4839-ab5d-9f56f6309df1_1130x474.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!QFxr!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7330e8a6-3e3d-4839-ab5d-9f56f6309df1_1130x474.png 424w, https://substackcdn.com/image/fetch/$s_!QFxr!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7330e8a6-3e3d-4839-ab5d-9f56f6309df1_1130x474.png 848w, https://substackcdn.com/image/fetch/$s_!QFxr!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7330e8a6-3e3d-4839-ab5d-9f56f6309df1_1130x474.png 1272w, https://substackcdn.com/image/fetch/$s_!QFxr!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7330e8a6-3e3d-4839-ab5d-9f56f6309df1_1130x474.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!QFxr!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7330e8a6-3e3d-4839-ab5d-9f56f6309df1_1130x474.png" width="1130" height="474" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/7330e8a6-3e3d-4839-ab5d-9f56f6309df1_1130x474.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:474,&quot;width&quot;:1130,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:175652,&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://blog.surfalytics.com/i/158712324?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7330e8a6-3e3d-4839-ab5d-9f56f6309df1_1130x474.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_!QFxr!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7330e8a6-3e3d-4839-ab5d-9f56f6309df1_1130x474.png 424w, https://substackcdn.com/image/fetch/$s_!QFxr!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7330e8a6-3e3d-4839-ab5d-9f56f6309df1_1130x474.png 848w, https://substackcdn.com/image/fetch/$s_!QFxr!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7330e8a6-3e3d-4839-ab5d-9f56f6309df1_1130x474.png 1272w, https://substackcdn.com/image/fetch/$s_!QFxr!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7330e8a6-3e3d-4839-ab5d-9f56f6309df1_1130x474.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 should get smth like that at the end.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!f9y2!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5ce26e51-b007-4d46-bd7b-cac1fb285bee_2048x755.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!f9y2!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5ce26e51-b007-4d46-bd7b-cac1fb285bee_2048x755.png 424w, https://substackcdn.com/image/fetch/$s_!f9y2!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5ce26e51-b007-4d46-bd7b-cac1fb285bee_2048x755.png 848w, https://substackcdn.com/image/fetch/$s_!f9y2!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5ce26e51-b007-4d46-bd7b-cac1fb285bee_2048x755.png 1272w, https://substackcdn.com/image/fetch/$s_!f9y2!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5ce26e51-b007-4d46-bd7b-cac1fb285bee_2048x755.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!f9y2!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5ce26e51-b007-4d46-bd7b-cac1fb285bee_2048x755.png" width="1456" height="537" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/5ce26e51-b007-4d46-bd7b-cac1fb285bee_2048x755.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:537,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:281189,&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://blog.surfalytics.com/i/158712324?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5ce26e51-b007-4d46-bd7b-cac1fb285bee_2048x755.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_!f9y2!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5ce26e51-b007-4d46-bd7b-cac1fb285bee_2048x755.png 424w, https://substackcdn.com/image/fetch/$s_!f9y2!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5ce26e51-b007-4d46-bd7b-cac1fb285bee_2048x755.png 848w, https://substackcdn.com/image/fetch/$s_!f9y2!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5ce26e51-b007-4d46-bd7b-cac1fb285bee_2048x755.png 1272w, https://substackcdn.com/image/fetch/$s_!f9y2!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5ce26e51-b007-4d46-bd7b-cac1fb285bee_2048x755.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><ol start="6"><li><p><strong>Filter by last week</strong></p></li></ol><p>To filter by last week we can use <strong>Filter Rank date (week) calculation and leave only 1st one.</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_!VOQe!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa1a7e64a-b721-41b6-9e87-18556431da10_1092x474.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!VOQe!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa1a7e64a-b721-41b6-9e87-18556431da10_1092x474.png 424w, https://substackcdn.com/image/fetch/$s_!VOQe!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa1a7e64a-b721-41b6-9e87-18556431da10_1092x474.png 848w, https://substackcdn.com/image/fetch/$s_!VOQe!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa1a7e64a-b721-41b6-9e87-18556431da10_1092x474.png 1272w, https://substackcdn.com/image/fetch/$s_!VOQe!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa1a7e64a-b721-41b6-9e87-18556431da10_1092x474.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!VOQe!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa1a7e64a-b721-41b6-9e87-18556431da10_1092x474.png" width="1092" height="474" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a1a7e64a-b721-41b6-9e87-18556431da10_1092x474.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:474,&quot;width&quot;:1092,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:186119,&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://blog.surfalytics.com/i/158712324?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa1a7e64a-b721-41b6-9e87-18556431da10_1092x474.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_!VOQe!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa1a7e64a-b721-41b6-9e87-18556431da10_1092x474.png 424w, https://substackcdn.com/image/fetch/$s_!VOQe!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa1a7e64a-b721-41b6-9e87-18556431da10_1092x474.png 848w, https://substackcdn.com/image/fetch/$s_!VOQe!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa1a7e64a-b721-41b6-9e87-18556431da10_1092x474.png 1272w, https://substackcdn.com/image/fetch/$s_!VOQe!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa1a7e64a-b721-41b6-9e87-18556431da10_1092x474.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h2>Monthly KPI Card</h2><p>This is KPI card that shows Last Month Sales values, its Period over Period % change (in this case % MoM) and Year over Year % Change.</p><p>For the monthly card the logic is the same.</p><p>But instead of <code>Sales % WoW YoY</code>calculate <code>Sales % MoM YoY</code> using <code>Sales Previous Year Month</code></p><pre><code><code>//**Sales % MoM YoY**
(ZN(SUM([Sales])) - [Sales Previous Year Month]) / [Sales Previous Year Month]</code></code></pre><p>And based on it the same calculations for <code>Sales % Neg MoM YoY</code> and <code>Sales % Pos MoM YoY</code></p><p>Filter by <code>Filter Rank date (month)</code> to leave only 1st rank.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!vTmt!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5f01a649-a800-46e1-9a53-ebc4a9d3d822_1662x1322.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!vTmt!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5f01a649-a800-46e1-9a53-ebc4a9d3d822_1662x1322.png 424w, https://substackcdn.com/image/fetch/$s_!vTmt!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5f01a649-a800-46e1-9a53-ebc4a9d3d822_1662x1322.png 848w, https://substackcdn.com/image/fetch/$s_!vTmt!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5f01a649-a800-46e1-9a53-ebc4a9d3d822_1662x1322.png 1272w, https://substackcdn.com/image/fetch/$s_!vTmt!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5f01a649-a800-46e1-9a53-ebc4a9d3d822_1662x1322.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!vTmt!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5f01a649-a800-46e1-9a53-ebc4a9d3d822_1662x1322.png" width="1456" height="1158" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/5f01a649-a800-46e1-9a53-ebc4a9d3d822_1662x1322.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1158,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:640838,&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://blog.surfalytics.com/i/158712324?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5f01a649-a800-46e1-9a53-ebc4a9d3d822_1662x1322.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_!vTmt!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5f01a649-a800-46e1-9a53-ebc4a9d3d822_1662x1322.png 424w, https://substackcdn.com/image/fetch/$s_!vTmt!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5f01a649-a800-46e1-9a53-ebc4a9d3d822_1662x1322.png 848w, https://substackcdn.com/image/fetch/$s_!vTmt!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5f01a649-a800-46e1-9a53-ebc4a9d3d822_1662x1322.png 1272w, https://substackcdn.com/image/fetch/$s_!vTmt!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5f01a649-a800-46e1-9a53-ebc4a9d3d822_1662x1322.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>Now you can add both KPI cards on top of the Line Charts</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!3dzh!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5e7fd8a0-6c8d-4fdc-9601-8136582b94eb_2048x1363.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!3dzh!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5e7fd8a0-6c8d-4fdc-9601-8136582b94eb_2048x1363.png 424w, https://substackcdn.com/image/fetch/$s_!3dzh!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5e7fd8a0-6c8d-4fdc-9601-8136582b94eb_2048x1363.png 848w, https://substackcdn.com/image/fetch/$s_!3dzh!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5e7fd8a0-6c8d-4fdc-9601-8136582b94eb_2048x1363.png 1272w, https://substackcdn.com/image/fetch/$s_!3dzh!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5e7fd8a0-6c8d-4fdc-9601-8136582b94eb_2048x1363.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!3dzh!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5e7fd8a0-6c8d-4fdc-9601-8136582b94eb_2048x1363.png" width="1456" height="969" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/5e7fd8a0-6c8d-4fdc-9601-8136582b94eb_2048x1363.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:969,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:344498,&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://blog.surfalytics.com/i/158712324?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5e7fd8a0-6c8d-4fdc-9601-8136582b94eb_2048x1363.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_!3dzh!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5e7fd8a0-6c8d-4fdc-9601-8136582b94eb_2048x1363.png 424w, https://substackcdn.com/image/fetch/$s_!3dzh!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5e7fd8a0-6c8d-4fdc-9601-8136582b94eb_2048x1363.png 848w, https://substackcdn.com/image/fetch/$s_!3dzh!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5e7fd8a0-6c8d-4fdc-9601-8136582b94eb_2048x1363.png 1272w, https://substackcdn.com/image/fetch/$s_!3dzh!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5e7fd8a0-6c8d-4fdc-9601-8136582b94eb_2048x1363.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h2>Table Weekly</h2><p>This is the table that shows Weekly Sales values, its Period over Period % change (in this case % WoW) and Year over Year % Change.</p><ol><li><p>Drag <code>Order Date</code> to the <strong>Columns</strong> shelf. Change its granularity to <code>Week</code> by clicking on the dropdown menu for <code>Order Date</code> and selecting <code>Week</code>.</p></li><li><p><strong>Add Segment</strong> and <strong>Measure Names</strong> to Rows**.** Drag <code>Measure Names</code> to the <strong>Rows</strong> shelf.</p></li><li><p>Add <strong>Measure Values</strong> to the <strong>Text</strong> in the <strong>Marks</strong>.</p></li><li><p>Filter by <strong>Measure Names</strong> to leave only</p></li></ol><ul><li><p><code>SUM(Sales)</code></p></li><li><p><code>Sales % PoP</code></p></li><li><p><code>Sales % WoW YoY</code></p></li></ul><p>All these calculations were created during the KPI card creations.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!KU-a!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9d12d10c-8975-4525-b8b0-9577e19d7f28_1836x1276.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!KU-a!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9d12d10c-8975-4525-b8b0-9577e19d7f28_1836x1276.png 424w, https://substackcdn.com/image/fetch/$s_!KU-a!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9d12d10c-8975-4525-b8b0-9577e19d7f28_1836x1276.png 848w, https://substackcdn.com/image/fetch/$s_!KU-a!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9d12d10c-8975-4525-b8b0-9577e19d7f28_1836x1276.png 1272w, https://substackcdn.com/image/fetch/$s_!KU-a!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9d12d10c-8975-4525-b8b0-9577e19d7f28_1836x1276.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!KU-a!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9d12d10c-8975-4525-b8b0-9577e19d7f28_1836x1276.png" width="1456" height="1012" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/9d12d10c-8975-4525-b8b0-9577e19d7f28_1836x1276.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1012,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:510708,&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://blog.surfalytics.com/i/158712324?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9d12d10c-8975-4525-b8b0-9577e19d7f28_1836x1276.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_!KU-a!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9d12d10c-8975-4525-b8b0-9577e19d7f28_1836x1276.png 424w, https://substackcdn.com/image/fetch/$s_!KU-a!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9d12d10c-8975-4525-b8b0-9577e19d7f28_1836x1276.png 848w, https://substackcdn.com/image/fetch/$s_!KU-a!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9d12d10c-8975-4525-b8b0-9577e19d7f28_1836x1276.png 1272w, https://substackcdn.com/image/fetch/$s_!KU-a!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9d12d10c-8975-4525-b8b0-9577e19d7f28_1836x1276.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><ol start="5"><li><p>Change Marks type from <strong>Text</strong> to <strong>Square</strong>.</p></li><li><p>Add <strong>Measure Values</strong> to <strong>Color</strong> in the <strong>Marks.</strong></p></li><li><p>Use <strong>Separate Legends</strong> for <strong>Measure Values.</strong></p></li></ol><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!l57k!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F16a26206-a44a-4cf2-98ed-99bf7f508c75_504x212.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!l57k!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F16a26206-a44a-4cf2-98ed-99bf7f508c75_504x212.png 424w, https://substackcdn.com/image/fetch/$s_!l57k!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F16a26206-a44a-4cf2-98ed-99bf7f508c75_504x212.png 848w, https://substackcdn.com/image/fetch/$s_!l57k!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F16a26206-a44a-4cf2-98ed-99bf7f508c75_504x212.png 1272w, https://substackcdn.com/image/fetch/$s_!l57k!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F16a26206-a44a-4cf2-98ed-99bf7f508c75_504x212.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!l57k!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F16a26206-a44a-4cf2-98ed-99bf7f508c75_504x212.png" width="504" height="212" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/16a26206-a44a-4cf2-98ed-99bf7f508c75_504x212.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:212,&quot;width&quot;:504,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:50405,&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://blog.surfalytics.com/i/158712324?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F16a26206-a44a-4cf2-98ed-99bf7f508c75_504x212.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_!l57k!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F16a26206-a44a-4cf2-98ed-99bf7f508c75_504x212.png 424w, https://substackcdn.com/image/fetch/$s_!l57k!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F16a26206-a44a-4cf2-98ed-99bf7f508c75_504x212.png 848w, https://substackcdn.com/image/fetch/$s_!l57k!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F16a26206-a44a-4cf2-98ed-99bf7f508c75_504x212.png 1272w, https://substackcdn.com/image/fetch/$s_!l57k!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F16a26206-a44a-4cf2-98ed-99bf7f508c75_504x212.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><ol start="8"><li><p>Set up colors.</p></li></ol><p>For <code>Sales % PoP</code> and <code>Sales % WoW YoY</code>choose diverging colors, I use red orange ##FF7E79 and blue violet #7A81FF</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!J5Bz!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2d11c1f1-23b9-4eba-91e7-2c16020afa87_878x984.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!J5Bz!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2d11c1f1-23b9-4eba-91e7-2c16020afa87_878x984.png 424w, https://substackcdn.com/image/fetch/$s_!J5Bz!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2d11c1f1-23b9-4eba-91e7-2c16020afa87_878x984.png 848w, https://substackcdn.com/image/fetch/$s_!J5Bz!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2d11c1f1-23b9-4eba-91e7-2c16020afa87_878x984.png 1272w, https://substackcdn.com/image/fetch/$s_!J5Bz!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2d11c1f1-23b9-4eba-91e7-2c16020afa87_878x984.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!J5Bz!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2d11c1f1-23b9-4eba-91e7-2c16020afa87_878x984.png" width="878" height="984" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/2d11c1f1-23b9-4eba-91e7-2c16020afa87_878x984.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:984,&quot;width&quot;:878,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:152041,&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://blog.surfalytics.com/i/158712324?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2d11c1f1-23b9-4eba-91e7-2c16020afa87_878x984.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_!J5Bz!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2d11c1f1-23b9-4eba-91e7-2c16020afa87_878x984.png 424w, https://substackcdn.com/image/fetch/$s_!J5Bz!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2d11c1f1-23b9-4eba-91e7-2c16020afa87_878x984.png 848w, https://substackcdn.com/image/fetch/$s_!J5Bz!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2d11c1f1-23b9-4eba-91e7-2c16020afa87_878x984.png 1272w, https://substackcdn.com/image/fetch/$s_!J5Bz!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2d11c1f1-23b9-4eba-91e7-2c16020afa87_878x984.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 SUM(Sales) I also use diverging colors but put white #FFFFFF on both side so the cells with SUM(Sales) won&#8217;t be colored.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!HbA3!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F57bbd330-b764-418d-aaf6-1b904745c85d_864x732.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!HbA3!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F57bbd330-b764-418d-aaf6-1b904745c85d_864x732.png 424w, https://substackcdn.com/image/fetch/$s_!HbA3!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F57bbd330-b764-418d-aaf6-1b904745c85d_864x732.png 848w, https://substackcdn.com/image/fetch/$s_!HbA3!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F57bbd330-b764-418d-aaf6-1b904745c85d_864x732.png 1272w, https://substackcdn.com/image/fetch/$s_!HbA3!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F57bbd330-b764-418d-aaf6-1b904745c85d_864x732.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!HbA3!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F57bbd330-b764-418d-aaf6-1b904745c85d_864x732.png" width="864" height="732" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/57bbd330-b764-418d-aaf6-1b904745c85d_864x732.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:732,&quot;width&quot;:864,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:114581,&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://blog.surfalytics.com/i/158712324?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F57bbd330-b764-418d-aaf6-1b904745c85d_864x732.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_!HbA3!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F57bbd330-b764-418d-aaf6-1b904745c85d_864x732.png 424w, https://substackcdn.com/image/fetch/$s_!HbA3!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F57bbd330-b764-418d-aaf6-1b904745c85d_864x732.png 848w, https://substackcdn.com/image/fetch/$s_!HbA3!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F57bbd330-b764-418d-aaf6-1b904745c85d_864x732.png 1272w, https://substackcdn.com/image/fetch/$s_!HbA3!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F57bbd330-b764-418d-aaf6-1b904745c85d_864x732.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><ol start="9"><li><p>Filter by last 6 weeks</p></li></ol><p>To filter by last week we can use <code>Filter Rank date (week)</code> calculation and leave 1-6 ranks.</p><ol start="10"><li><p>Add worksheet title &#8216;WEEKLY&#8217;</p></li></ol><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Y3Do!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdc10ee2f-1723-4622-9bca-c5858f469e6f_1960x1348.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Y3Do!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdc10ee2f-1723-4622-9bca-c5858f469e6f_1960x1348.png 424w, https://substackcdn.com/image/fetch/$s_!Y3Do!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdc10ee2f-1723-4622-9bca-c5858f469e6f_1960x1348.png 848w, https://substackcdn.com/image/fetch/$s_!Y3Do!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdc10ee2f-1723-4622-9bca-c5858f469e6f_1960x1348.png 1272w, https://substackcdn.com/image/fetch/$s_!Y3Do!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdc10ee2f-1723-4622-9bca-c5858f469e6f_1960x1348.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Y3Do!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdc10ee2f-1723-4622-9bca-c5858f469e6f_1960x1348.png" width="1456" height="1001" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/dc10ee2f-1723-4622-9bca-c5858f469e6f_1960x1348.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1001,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:636240,&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://blog.surfalytics.com/i/158712324?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdc10ee2f-1723-4622-9bca-c5858f469e6f_1960x1348.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_!Y3Do!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdc10ee2f-1723-4622-9bca-c5858f469e6f_1960x1348.png 424w, https://substackcdn.com/image/fetch/$s_!Y3Do!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdc10ee2f-1723-4622-9bca-c5858f469e6f_1960x1348.png 848w, https://substackcdn.com/image/fetch/$s_!Y3Do!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdc10ee2f-1723-4622-9bca-c5858f469e6f_1960x1348.png 1272w, https://substackcdn.com/image/fetch/$s_!Y3Do!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdc10ee2f-1723-4622-9bca-c5858f469e6f_1960x1348.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h2>Table Monthly</h2><p>This is the table that shows Monthly Sales values, its Period over Period % change (in this case % MoM) and Year over Year % Change.</p><p>For Table Monthly the logic is the same.</p><p>But instead of <code>Sales % WoW YoY</code> use <code>Sales % MoM YoY</code> and <code>Filter Rank date (month)</code> for filtering.</p><p>I also removed Last unclosed month from it for use case purposes by using</p><pre><code><code>//Filter Last unclosed month
DATETRUNC('month', [Order Date])&lt;{MAX(DATETRUNC('month', [Order Date]))}</code></code></pre><p>Hide Segment and Measure Names by right-click &#8594; unclick Show header.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!a2Ni!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1ade9148-8cc1-450f-9328-f8b7ffff7140_1424x1426.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!a2Ni!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1ade9148-8cc1-450f-9328-f8b7ffff7140_1424x1426.png 424w, https://substackcdn.com/image/fetch/$s_!a2Ni!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1ade9148-8cc1-450f-9328-f8b7ffff7140_1424x1426.png 848w, https://substackcdn.com/image/fetch/$s_!a2Ni!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1ade9148-8cc1-450f-9328-f8b7ffff7140_1424x1426.png 1272w, https://substackcdn.com/image/fetch/$s_!a2Ni!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1ade9148-8cc1-450f-9328-f8b7ffff7140_1424x1426.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!a2Ni!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1ade9148-8cc1-450f-9328-f8b7ffff7140_1424x1426.png" width="1424" height="1426" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/1ade9148-8cc1-450f-9328-f8b7ffff7140_1424x1426.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1426,&quot;width&quot;:1424,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:595123,&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://blog.surfalytics.com/i/158712324?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1ade9148-8cc1-450f-9328-f8b7ffff7140_1424x1426.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_!a2Ni!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1ade9148-8cc1-450f-9328-f8b7ffff7140_1424x1426.png 424w, https://substackcdn.com/image/fetch/$s_!a2Ni!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1ade9148-8cc1-450f-9328-f8b7ffff7140_1424x1426.png 848w, https://substackcdn.com/image/fetch/$s_!a2Ni!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1ade9148-8cc1-450f-9328-f8b7ffff7140_1424x1426.png 1272w, https://substackcdn.com/image/fetch/$s_!a2Ni!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1ade9148-8cc1-450f-9328-f8b7ffff7140_1424x1426.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h2>Table MTD</h2><p>This is the table that shows MTD &#8211; Month to Date Sales values, its Period over Period % change (in this case % MoM) and Year over Year % Change. MTD measures the performance of a metric from the start of the current month up to the present day.</p><p>For MTD Table we gonna need a bit more calculations.</p><ol><li><p>First let&#8217;s calculate current <code>MTD Sales</code> &#8211; sales from the start of the current month till the last available day. For example, if today is 20 November 2024, we&#8217;ll calculate the SUM of Sales from the 1st of November to 20th of November.</p></li></ol><pre><code><code>//**MTD Sales**
IIF(
[Order Date] &lt;= {MAX([Order Date])}
AND
YEAR([Order Date]) = {MAX(YEAR([Order Date]))}
AND
MONTH([Order Date]) = MONTH({MAX([Order Date])}),
[Sales],
NULL)
</code></code></pre><ol><li><p>Now <code>Previous month MTD Sales</code> &#8211; sales for the same period as current MTD but month ago. For example, if today is 20 November 2024, we&#8217;ll calculate the SUM of Sales from the 1st of October to 20th of October.</p></li></ol><pre><code><code>//**Previous month MTD Sales**
IIF(
[Order Date] &lt;= DATEADD('month', -1, {MAX([Order Date])})
AND
YEAR([Order Date]) = YEAR(DATEADD('month', -1, {MAX([Order Date])}))
AND
MONTH([Order Date]) = MONTH(DATEADD('month', -1, {MAX([Order Date])})),
[Sales],
NULL)
</code></code></pre><ol><li><p>Now we&#8217;ll calculate the % difference between 1. and 2. to get <code>MTD Sales % PoP</code></p></li></ol><pre><code><code>//**MTD Sales % PoP**
(SUM([MTD Sales])-SUM([Previous month MTD Sales]))/
SUM([Previous month MTD Sales])
</code></code></pre><ol><li><p>Next we&#8217;ll need <code>Previous year MTD Sales</code> &#8211; sales for the same period as current MTD but year ago. For example, if today is 20 November 2024, we&#8217;ll calculate the SUM of Sales from the 1st of November 2023 to 20th of November 2023.</p></li></ol><pre><code><code>
//**Previous year MTD Sales**
IIF(
[Order Date] &lt;= DATEADD('year', -1, {MAX([Order Date])})
AND
YEAR([Order Date]) = {MAX(YEAR([Order Date]))} - 1
AND
MONTH([Order Date]) = MONTH({MAX([Order Date])}),
[Sales],
NULL)
</code></code></pre><ol><li><p>And YoY change between current <code>MTD Sales</code> and <code>Previous year MTD Sales</code></p></li></ol><pre><code><code>//**MTD Sales % YoY**
(SUM([MTD Sales])-SUM([Previous year MTD Sales]))/
SUM([Previous year MTD Sales])
</code></code></pre><ol><li><p>Create the table.</p></li></ol><p>The logic of table creation is the similar to the Tables Weekly/Monthly.</p><p>6.1 But to columns put <code>Last Month Date</code></p><pre><code><code>//**Last Month Date**
{MAX(DATETRUNC('month',[Order Date]))}
</code></code></pre><p>6.2 Use <code>MTD Sales</code><strong>, </strong><code>MTD Sales % PoP</code><strong>, </strong><code>MTD Sales % YoY</code> as measures for Rows.</p><p>6.3 Hide Segment and Measure Names, apply formatting.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!I1zt!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb0d0911c-9e5d-4161-887d-aaab4403f730_1436x1354.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!I1zt!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb0d0911c-9e5d-4161-887d-aaab4403f730_1436x1354.png 424w, https://substackcdn.com/image/fetch/$s_!I1zt!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb0d0911c-9e5d-4161-887d-aaab4403f730_1436x1354.png 848w, https://substackcdn.com/image/fetch/$s_!I1zt!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb0d0911c-9e5d-4161-887d-aaab4403f730_1436x1354.png 1272w, https://substackcdn.com/image/fetch/$s_!I1zt!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb0d0911c-9e5d-4161-887d-aaab4403f730_1436x1354.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!I1zt!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb0d0911c-9e5d-4161-887d-aaab4403f730_1436x1354.png" width="1436" height="1354" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/b0d0911c-9e5d-4161-887d-aaab4403f730_1436x1354.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1354,&quot;width&quot;:1436,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:411468,&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://blog.surfalytics.com/i/158712324?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb0d0911c-9e5d-4161-887d-aaab4403f730_1436x1354.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_!I1zt!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb0d0911c-9e5d-4161-887d-aaab4403f730_1436x1354.png 424w, https://substackcdn.com/image/fetch/$s_!I1zt!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb0d0911c-9e5d-4161-887d-aaab4403f730_1436x1354.png 848w, https://substackcdn.com/image/fetch/$s_!I1zt!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb0d0911c-9e5d-4161-887d-aaab4403f730_1436x1354.png 1272w, https://substackcdn.com/image/fetch/$s_!I1zt!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb0d0911c-9e5d-4161-887d-aaab4403f730_1436x1354.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h2>Table QTD</h2><p>This is the table that shows QTD &#8211; Quarter to Date Sales values, its Period over Period % change (in this case % QoQ) and Year over Year % Change. QTD measures the performance of a metric from the start of the current quarter up to the present day.</p><p>All the calculations for QTD are similar to MTD but instead of &#8216;month&#8217; use &#8216;quarter&#8217;.</p><p>You can check all of them in the <a href="https://public.tableau.com/app/profile/nastengraph/viz/AmazonWeeklyBusinessReview/WBR">Tableau workbook.</a></p><h2>Table YTD</h2><p>This is the table that shows YTD &#8211; Year to Date Sales values, its Period over Period % change (in this case % YoY). YTD measures the performance of a metric from the start of the current year up to the present day.</p><p>For the table instead of % PoP we&#8217;ll put MIN(NULL) to have the line but not to put values in it.</p><p>All the calculations are similar to MTD but use &#8216;year&#8217; instead of &#8216;month&#8217;.</p><p>You can check all of them in the <a href="https://public.tableau.com/app/profile/nastengraph/viz/AmazonWeeklyBusinessReview/WBR">Tableau workbook.</a></p><h2>Tables all Together</h2><p>To create a full table we&#8217;ll use all the one we previously created and put them into the horizontal container one by one. Make 0 paddings and apply Fit &#8594; &#8216;Entire view&#8217;.</p><p>Between these tables you can put Blank objects with grey background 0 paddings and 1pt width.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!nfmu!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0cf00cea-8fd9-4ccc-a9a9-e907b3817d5f_2048x1175.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!nfmu!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0cf00cea-8fd9-4ccc-a9a9-e907b3817d5f_2048x1175.png 424w, https://substackcdn.com/image/fetch/$s_!nfmu!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0cf00cea-8fd9-4ccc-a9a9-e907b3817d5f_2048x1175.png 848w, https://substackcdn.com/image/fetch/$s_!nfmu!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0cf00cea-8fd9-4ccc-a9a9-e907b3817d5f_2048x1175.png 1272w, https://substackcdn.com/image/fetch/$s_!nfmu!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0cf00cea-8fd9-4ccc-a9a9-e907b3817d5f_2048x1175.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!nfmu!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0cf00cea-8fd9-4ccc-a9a9-e907b3817d5f_2048x1175.png" width="1456" height="835" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/0cf00cea-8fd9-4ccc-a9a9-e907b3817d5f_2048x1175.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:835,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:768937,&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://blog.surfalytics.com/i/158712324?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0cf00cea-8fd9-4ccc-a9a9-e907b3817d5f_2048x1175.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_!nfmu!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0cf00cea-8fd9-4ccc-a9a9-e907b3817d5f_2048x1175.png 424w, https://substackcdn.com/image/fetch/$s_!nfmu!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0cf00cea-8fd9-4ccc-a9a9-e907b3817d5f_2048x1175.png 848w, https://substackcdn.com/image/fetch/$s_!nfmu!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0cf00cea-8fd9-4ccc-a9a9-e907b3817d5f_2048x1175.png 1272w, https://substackcdn.com/image/fetch/$s_!nfmu!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0cf00cea-8fd9-4ccc-a9a9-e907b3817d5f_2048x1175.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><strong>Sources:</strong></p><ol><li><p>Cedric Chin, <em>Commoncog</em>: <em>&#8220;The Amazon Weekly Business Review (WBR)&#8221;</em> &#8211; Describes Amazon&#8217;s WBR meeting cadence and its role in Amazon&#8217;s data-driven ( <a href="https://commoncog.com/the-amazon-weekly-business-review/#:~:text=Every%20Wednesday%20morning%2C%20Amazon%E2%80%99s%20executive,this%20since%20the%20early%202000s">The Amazon Weekly Business Review (via Bezos's Shadow) - Commoncog</a> ).</p></li><li><p>Paul Duvall, <em>Mastering Weekly Business Reviews</em> &#8211; Highlights how WBR is used as a mechanism to analyze trends and drive account (<a href="https://www.paulmduvall.com/mastering-weekly-business-reviews-insights-from-amazons-iconic-wbr/#:~:text=The%20Weekly%20Business%20Review%20,person%20business">Mastering Weekly Business Reviews: Insights from Amazon's Iconic WBR</a>) (<a href="https://www.paulmduvall.com/mastering-weekly-business-reviews-insights-from-amazons-iconic-wbr/#:~:text=One%20of%20the%20most%20impactful,pull%20to%20improve%20those%20outputs">Mastering Weekly Business Reviews: Insights from Amazon's Iconic WBR</a>)&#8224;L56-L59&#12305;.</p></li><li><p><em><a href="http://Holistics.io">Holistics.io</a> Blog</em>: <em>&#8220;How Amazon Uses Input Metrics&#8221;</em> &#8211; Explains Amazon&#8217;s focus on controllable input metrics vs. output metrics (<a href="https://www.holistics.io/blog/how-amazon-uses-input-metrics/#:~:text=if%20the%20share%20price%20had,metrics%20such%20as%20share%20price">How Amazon Uses Input Metrics</a>) (<a href="https://workingbackwards.com/concepts/input-metrics/#:~:text=Controllable%2C%20customer,just%20as%20the%20name%20describes">Input Metrics for Business Growth: A Guide to Defining and Measuring Key Drivers</a>).</p></li><li><p><a href="http://WorkingBackwards.com">WorkingBackwards.com</a>, <em>&#8220;Input Metrics &amp; Weekly Business Review&#8221;</em> &#8211; Defines input and output metrics (controllable inputs that improve customer experience vs. lagging outputs (<a href="https://workingbackwards.com/concepts/input-metrics/#:~:text=Thus%2C%20input%20metrics%20are%20things,sales%2C%20profit%2C%20and%20share%20price">Input Metrics for Business Growth: A Guide to Defining and Measuring Key Drivers</a>). Also outlines Amazon&#8217;s practice of reviewing metrics weekly, and how this fits into broader monthly/quarterly (<a href="https://workingbackwards.com/concepts/amazon-operating-cadence/#:~:text=The%20diagram%20above%20illustrates%20the,development%2C%20and%20organizational%20leadership%20reviews">Amazon Operating Cadence - Working Backwards</a>).</p></li><li><p><em>The North</em> (<a href="http://thenorth.io">thenorth.io</a>): <em>&#8220;Input metrics vs Output metrics&#8221;</em> &#8211; Provides a simple overview of inputs (actions you control) vs outputs (results you want) (<a href="https://thenorth.io/input-metrics-vs-output-metrics/#:~:text=Output%20metrics%20represent%C2%A0outcomes%20or%20results%C2%A0and,and%20spending%20time%20optimising%20it">Input metrics vs Output metrics - The North</a>) (<a href="https://thenorth.io/input-metrics-vs-output-metrics/#:~:text=">Input metrics vs Output metrics - The North</a>).</p></li></ol>]]></content:encoded></item><item><title><![CDATA[Check list for fixing your Data Resume ]]></title><description><![CDATA[Expert Tips to Tailor Your Resume for Initial Screening Success]]></description><link>https://blog.surfalytics.com/p/check-list-for-fixing-your-data-resume</link><guid isPermaLink="false">https://blog.surfalytics.com/p/check-list-for-fixing-your-data-resume</guid><dc:creator><![CDATA[Dmitry Anoshin]]></dc:creator><pubDate>Mon, 23 Dec 2024 04:03:40 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!_g8D!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fec97361e-6f36-47b7-ae43-cc2e1a330073_2502x1590.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>At the Surfalytics community, we have defined a clear roadmap for your data career. One of the first steps is to choose the target role and prepare the resume to look nice.</p><p>This is an example of resume feedback from our community experts. The example below is almost the final product after several iterations. The initial version of it was useless. As a result, this particular member of Surfalytics landed the job in NY with no prior experience working in states. It took months but hard work paid off.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!_g8D!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fec97361e-6f36-47b7-ae43-cc2e1a330073_2502x1590.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!_g8D!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fec97361e-6f36-47b7-ae43-cc2e1a330073_2502x1590.png 424w, https://substackcdn.com/image/fetch/$s_!_g8D!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fec97361e-6f36-47b7-ae43-cc2e1a330073_2502x1590.png 848w, https://substackcdn.com/image/fetch/$s_!_g8D!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fec97361e-6f36-47b7-ae43-cc2e1a330073_2502x1590.png 1272w, https://substackcdn.com/image/fetch/$s_!_g8D!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fec97361e-6f36-47b7-ae43-cc2e1a330073_2502x1590.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!_g8D!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fec97361e-6f36-47b7-ae43-cc2e1a330073_2502x1590.png" width="1456" height="925" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/ec97361e-6f36-47b7-ae43-cc2e1a330073_2502x1590.png&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;:644814,&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_!_g8D!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fec97361e-6f36-47b7-ae43-cc2e1a330073_2502x1590.png 424w, https://substackcdn.com/image/fetch/$s_!_g8D!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fec97361e-6f36-47b7-ae43-cc2e1a330073_2502x1590.png 848w, https://substackcdn.com/image/fetch/$s_!_g8D!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fec97361e-6f36-47b7-ae43-cc2e1a330073_2502x1590.png 1272w, https://substackcdn.com/image/fetch/$s_!_g8D!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fec97361e-6f36-47b7-ae43-cc2e1a330073_2502x1590.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>And this is the review of this member:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!qTRf!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5905aace-c58e-4f39-9e89-da09e10492d7_1964x1948.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!qTRf!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5905aace-c58e-4f39-9e89-da09e10492d7_1964x1948.png 424w, https://substackcdn.com/image/fetch/$s_!qTRf!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5905aace-c58e-4f39-9e89-da09e10492d7_1964x1948.png 848w, https://substackcdn.com/image/fetch/$s_!qTRf!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5905aace-c58e-4f39-9e89-da09e10492d7_1964x1948.png 1272w, https://substackcdn.com/image/fetch/$s_!qTRf!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5905aace-c58e-4f39-9e89-da09e10492d7_1964x1948.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!qTRf!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5905aace-c58e-4f39-9e89-da09e10492d7_1964x1948.png" width="1456" height="1444" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/5905aace-c58e-4f39-9e89-da09e10492d7_1964x1948.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1444,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:870623,&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;:false,&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_!qTRf!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5905aace-c58e-4f39-9e89-da09e10492d7_1964x1948.png 424w, https://substackcdn.com/image/fetch/$s_!qTRf!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5905aace-c58e-4f39-9e89-da09e10492d7_1964x1948.png 848w, https://substackcdn.com/image/fetch/$s_!qTRf!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5905aace-c58e-4f39-9e89-da09e10492d7_1964x1948.png 1272w, https://substackcdn.com/image/fetch/$s_!qTRf!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5905aace-c58e-4f39-9e89-da09e10492d7_1964x1948.png 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></figure></div><p>We have a dedicated Discord channel where we practise improving our Resume and avoiding any  &#128997; flags. </p><p>In this post, I want to highlight low-hanging fruits that might help you save time and find a job.</p><h2>Match Job Titles</h2><p>Every time I review someone's resume, I can instantly spot the biggest issue - the title and experience don&#8217;t match the job posting.</p><p>Assume, you want to apply for the <strong>Data Engineer</strong> role. You take your favourite resume with the title <strong>Data Analyst </strong>and apply for Data Engineer<strong>. </strong></p><p>Obviously, Data Analyst &lt;&gt; Data Engineer. This is 99% rejection. Data analyst and data engineer  examples are not the worst use cases. </p><p>Some people might have different job titles on their resume</p><ul><li><p>IT helpdesk</p></li><li><p>Front end developer</p></li><li><p>Barista</p></li><li><p>Couriers </p></li><li><p>and etc</p></li></ul><p>It is great that you have a non-relevant experience that might give you valuable skills BUT there is 0 relevance to the job you are applying. </p><p>Let&#8217;s assume you have this kind of Resume. In high-level summary:</p><pre><code>Target title: Data Specialist

Location: Different Country for Job Application

Summary:
Super puper result oriented professional with 1 year of exerience and bla bla

Work Experience:
Data Specialist at Z 01.2023-05.2024
- your duties

Call Center operator at Y 06.2021 - 12.2023
- your duties

Line cook at X
- your duties

</code></pre><p>You decided to apply for Data Engineer. In my opinion, it is a waste of your time and time of HR to review your application. There are some interactions with word data, but probably that&#8217;s it.</p><p>If you are applying for a job with title <strong>X</strong>, but in your resume online title <strong>A</strong>, <strong>B</strong>, <strong>C. </strong>You have had a very low chance of getting even a call from HR. </p><p>Are you curious why? The answer is simple: The DATA profession is now a popular topic. There are hundreds of trainings, workshops, MBA and Master's degrees, and thousands of data influencers. </p><p>Everyone wants to work from home for high $$$ on their MacBook with Oat Milk latte. Reality is different. </p><p>Based on my experience people with MBAs and Masters in Analytics, or even folks with non-relevant experience are suffering in the same way. They all are struggling to find a job. Because they don&#8217;t have real skills that matter. </p><p>Instead of wasting time and money, you need to try to narrow your focus and define your specialization. Pick 1-2 job roles and make the resume 100% match. </p><p>At least, you will get a shot for a screening call with HR.</p><p>Let&#8217;s tweak a bit our resume:</p><pre><code>Target title: Data Engineer

Location: Same country as job application (assume you have work authorisation)

Summary:
- 4 years of Data Engineering
- ....
- ...

Work Experience:
Data Engineer at Z 01.2023-05.2024
- your DATA Engineering duties

Data Engineer at Y 06.2021 - 12.2023
- your DATA Engineering duties

Data Analyst/Engineer at X 01.2020 - 06.2021
- your DATA Engineering duties</code></pre><p>We tweaked it to look like a good Data Engineer with 4 years of experience. </p><p>Before going crazy and apply all jobs let&#8217;s make sure:</p><ul><li><p>You actually have Data  Analytics or Data Engineering experience. If not, you can gain it in 4-6 weeks to prepare for job applications. That&#8217;s why at Surfalytics we run almost weekly data engineering and data analytics projects from real-world cases and practice interviews.</p></li><li><p>Be ready to fail 5-10 real interviews before you get a job. Every failure is a big success, celebrate it. It is real feedback on your effort.</p></li></ul><h2>Summary of your profile</h2><p>Let&#8217;s review the Summary of your resume. Almost every resume I saw has a useless summary. What a waste of time. According to <a href="https://www.linkedin.com/posts/lesapence_update-since-you-all-are-so-generous-with-activity-7255257241165967361-Niq6?utm_source=share&amp;utm_medium=member_desktop">research</a> most recruiters look at the top of your resume:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!KO0c!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6a0b4a24-cf8b-4ed2-baff-4aba3d841ebe_1062x458.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!KO0c!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6a0b4a24-cf8b-4ed2-baff-4aba3d841ebe_1062x458.png 424w, https://substackcdn.com/image/fetch/$s_!KO0c!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6a0b4a24-cf8b-4ed2-baff-4aba3d841ebe_1062x458.png 848w, https://substackcdn.com/image/fetch/$s_!KO0c!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6a0b4a24-cf8b-4ed2-baff-4aba3d841ebe_1062x458.png 1272w, https://substackcdn.com/image/fetch/$s_!KO0c!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6a0b4a24-cf8b-4ed2-baff-4aba3d841ebe_1062x458.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!KO0c!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6a0b4a24-cf8b-4ed2-baff-4aba3d841ebe_1062x458.png" width="1062" height="458" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/6a0b4a24-cf8b-4ed2-baff-4aba3d841ebe_1062x458.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:458,&quot;width&quot;:1062,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:362617,&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;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!KO0c!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6a0b4a24-cf8b-4ed2-baff-4aba3d841ebe_1062x458.png 424w, https://substackcdn.com/image/fetch/$s_!KO0c!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6a0b4a24-cf8b-4ed2-baff-4aba3d841ebe_1062x458.png 848w, https://substackcdn.com/image/fetch/$s_!KO0c!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6a0b4a24-cf8b-4ed2-baff-4aba3d841ebe_1062x458.png 1272w, https://substackcdn.com/image/fetch/$s_!KO0c!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6a0b4a24-cf8b-4ed2-baff-4aba3d841ebe_1062x458.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>They also spend ~ <a href="https://youtu.be/1D6C4QNGYtw?si=iCzVXk_y8ZfuwOY1">6 seconds</a> per resume. That&#8217;s why it is in hour interest to make the Summary insightful and to the point. Remove all useless verbs like result-oriented, experienced and so on. </p><p>Example of bad one:</p><blockquote><p><em>As a Canada-based Data Engineering contractor, Dmitry holds a Master's in Engineering and has 15+ years of international experience in Business Intelligence, Data Warehousing, Big Data, Cloud, and ML. He has built data platforms with cloud and big data technologies and supported machine learning experiments, data science models, and business intelligence reporting. He adeptly manages privacy compliance and data security. He operates via Incorporation and possesses a valid Secret with the Canadian Government.</em></p></blockquote><p>Improved one:</p><blockquote><ul><li><p><em>15+ years of building and leading modern <strong>Data Engineering</strong> Solutions.</em></p></li><li><p><em>Engineered data pipelines using Amazon Redshift, AWS Glue, EMR, Databricks for processing over 100 TB of data.</em></p></li><li><p><em>Migrated legacy analytics systems to Snowflake, dbt, Tableau, Looker.</em></p></li><li><p><em>Managed and created data infrastructure using modern DevOps practices, Infrastructure as a Code, CI/CD.</em></p></li><li><p><em>Mentored and hired Analytics and Data Engineering teams.</em></p></li><li><p><em>Built Iceberg Lake House using Amazon Athena, Airbyte for FinTech company.</em></p></li></ul></blockquote><p>It is not perfect but I hope you got an idea. It is a place to make a point about your experience.</p><h2>Geographic market specific</h2><p>It is an important and obvious rule. You need to have the Work Authorisation in the country to which you are applying. Don&#8217;t be naive to apply to Canada and the US from India or Kazakhstan. It won&#8217;t work. There are thousands of eligible people in the country itself.  </p><p>Better find a way to get a work visa officially. </p><p>Sometimes, you can try to make a trick like I did in the past. I was in Russia and was searching job in Winnipeg, Canada. Obviously, HR will turn down all my applications with non-Canadian addresses. I made a trick. I&#8217;ve added the Winnipeg Address of my friend and used IP telephony to forward it to my Russian number. My goal was to reach the hiring manager. </p><p>It worked out, I got an interview with the hiring manager and explain that I was waiting Permanent Residence card. They made an offer and waited for 6 months while my documents were processed.</p><h2>The gap in your experience</h2><p>Often you might be in a situation with a gap in the experience:</p><pre><code>Target title: Data Engineer

Location: Same country as job application (assume you have work authorisation)

Summary:
- 4 years of Data Engineering
- ....
- ...

Work Experience:
Data Engineer at Z 01.2023-12.2023
- your DATA Engineering duties


Data Analyst/Engineer at X 01.2020 - 06.2021
- your DATA Engineering duties</code></pre><p>This gap looks terrible, at least for me. Do you want to risk your lifetime opportunity to miss an interview due to this gap? At Surfalytics we worked towards closing the gap and looking into the opportunity to close the gap. But the best way is to close the gap is: to extend the date to close the gap. This looks solid:</p><pre><code>Target title: Data Engineer

Location: Same country as job application (assume you have work authorisation)

Summary:
- 4 years of Data Engineering
- ....
- ...

Work Experience:
Data Engineer at Z 01.2023-12.2023
- your DATA Engineering duties


Data Analyst/Engineer at X 01.2020 - 01.2023 (extend the date
- your DATA Engineering duties</code></pre><p>Alternatively, you can extend your last job till the current time.</p><p>No one really cares about your past. The most important is your skills. Are you able to perform well? Are you ready to compensate lack of skills with a 60-80-hour working week? Moreover, there are different &#8220;Privacy laws&#8221; that will protect your personal life and your past;)</p><p>There is no easy road to success and hard work will be paid off!</p><h2>Tools and use cases</h2><p>Another aspect of your resume - your job duties and tools. For every role, we can define 20% tools and skills that matter the most. In another article, I&#8217;ve covered this topic:</p><div class="digest-post-embed" data-attrs="{&quot;nodeId&quot;:&quot;eb60aa04-8680-4ce6-bb12-4135a5bb262c&quot;,&quot;caption&quot;:&quot;Are you moving from one country to another? From one city to another? It means, that the job market is different, and the tools and skill set might be slightly different. I hope your foundational knowledge of topics is on point and you aren't driven and distracted by marketing pitches and vendor buzzwords.&quot;,&quot;cta&quot;:null,&quot;showBylines&quot;:true,&quot;size&quot;:&quot;lg&quot;,&quot;isEditorNode&quot;:true,&quot;title&quot;:&quot;From Relocation to Employment: Strategies for Career Success Abroad&quot;,&quot;publishedBylines&quot;:[{&quot;id&quot;:176866058,&quot;name&quot;:&quot;Dmitry Anoshin&quot;,&quot;bio&quot;:&quot;Surfalytics helps you to engineer your data career with focus on soft, hard and job interview skills.&quot;,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/2ecac0cb-80bb-49c6-b9a8-f2b9e8b15bca_1684x1684.jpeg&quot;,&quot;is_guest&quot;:false,&quot;bestseller_tier&quot;:null}],&quot;post_date&quot;:&quot;2024-05-14T05:33:15.591Z&quot;,&quot;cover_image&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%2Fa8b53c5f-68eb-414e-89fe-83119371d50f_1228x858.png&quot;,&quot;cover_image_alt&quot;:null,&quot;canonical_url&quot;:&quot;https://blog.surfalytics.com/p/from-relocation-to-employment-strategies&quot;,&quot;section_name&quot;:null,&quot;video_upload_id&quot;:null,&quot;id&quot;:140828895,&quot;type&quot;:&quot;newsletter&quot;,&quot;reaction_count&quot;:5,&quot;comment_count&quot;:0,&quot;publication_id&quot;:null,&quot;publication_name&quot;:&quot;Surfalytics&quot;,&quot;publication_logo_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%2Fd233226f-0d04-4676-8097-da497d9b1c00_1280x1280.png&quot;,&quot;belowTheFold&quot;:true,&quot;youtube_url&quot;:null,&quot;show_links&quot;:null,&quot;feed_url&quot;:null}"></div><p>For example, you probably want to share your actual experience and duties and best thing you can do something like:</p><pre><code>- Excel
- Reports and Data Analysis in excel
- Pivot and cross tables in excel
- etc.</code></pre><p>The point is that you will put something that might look like a 100% Data Analytics tool but in real life, it is not true. Even if you are working as an analyst, you probably work with product managers, and data engineers at the organization and you should be aware of their work and tools:</p><pre><code>- Building Product usage dashboards in Tableau for Product department to track key product metrics like DAU, cohort analysis
- Developed Self-Service report for Marketing manager to track Ad spent
- Work close with Data Engineering team
- Ensuring quality of busienss metrics in data engineering pipeline using dbt tests and Great Expectations
- Maintain documentation in Data Catalog
- etc</code></pre><p>In my example, I&#8217;ve added more specific examples. My examples aren&#8217;t boring, they are actually cool and I wish to work with this person vs just &#8220;cross table pivot in Excel&#8221;.</p><p>Again, no this kind of experience? Let&#8217;s get it. By the way best book to gain knowledge for business metrics is <a href="https://leananalyticsbook.com/">Lean Analytics</a>. </p><p>Every Surfalytics member starts their journey from this book &#128640;.</p><h2>Your Portfolio</h2><p>Another great asset for you as a data professional might be thinking about the portfolio.</p><p>There are a couple of cool things you might try:</p><ul><li><p>Active GitHub account</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!X8Jl!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F20f55c78-3720-4afd-9f56-280063ee6c74_2918x1342.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!X8Jl!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F20f55c78-3720-4afd-9f56-280063ee6c74_2918x1342.png 424w, https://substackcdn.com/image/fetch/$s_!X8Jl!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F20f55c78-3720-4afd-9f56-280063ee6c74_2918x1342.png 848w, https://substackcdn.com/image/fetch/$s_!X8Jl!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F20f55c78-3720-4afd-9f56-280063ee6c74_2918x1342.png 1272w, https://substackcdn.com/image/fetch/$s_!X8Jl!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F20f55c78-3720-4afd-9f56-280063ee6c74_2918x1342.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!X8Jl!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F20f55c78-3720-4afd-9f56-280063ee6c74_2918x1342.png" width="1456" height="670" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/20f55c78-3720-4afd-9f56-280063ee6c74_2918x1342.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:670,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:886768,&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;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!X8Jl!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F20f55c78-3720-4afd-9f56-280063ee6c74_2918x1342.png 424w, https://substackcdn.com/image/fetch/$s_!X8Jl!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F20f55c78-3720-4afd-9f56-280063ee6c74_2918x1342.png 848w, https://substackcdn.com/image/fetch/$s_!X8Jl!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F20f55c78-3720-4afd-9f56-280063ee6c74_2918x1342.png 1272w, https://substackcdn.com/image/fetch/$s_!X8Jl!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F20f55c78-3720-4afd-9f56-280063ee6c74_2918x1342.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></li><li><p>Personal Blog. But you should choose the dedicated theme. You can have a blog about &#8220;all things data&#8221;. Specialization is key in blogs, resumes and so on.</p></li><li><p>Contribute to open-source products. Even with limited code knowledge you can read and improve Markdown files and documentation.</p></li><li><p>Participation in data community or user groups like Surfalytics where you can run the projects and share the knowledge</p></li><li><p>Presenting local user groups for top data vendors: Databricks, Snowflake, Microsoft, Tableau etc.</p></li><li><p>Presenting at conferences.</p></li></ul><p>Basically, anything data-related that you are passionate about and you make.  </p><h2>Certification and Education</h2><p>Usually in the resume, we have a dedicated section for Education and Certifications. In most cases for data jobs, skills and experience matter the most. If you have high education, it is great. In case it is not relevant, just hide specialization. It is nice to have something. </p><p>If you don&#8217;t have anything, just go to Coursera and finish something relevant and call it as your education;)</p><p>The certifications are even more fun. There are tons of certs. They have zero value for anyone. Usually, the training for certification preparation like dbt, Tableau, Snowflake, Databricks, Azure, AWS and etc are great. But the passing exam is a different story. By the end of the day if you feel more comfortable with certification, just add this into your resume without passing. But make sure you have the desired skills and knowledge and at least finish the training.</p><h2>How many copies of resumes do you need?</h2><p>We are coming to an interesting question. I&#8217;ve heard that people are tired of tailoring their resume for each position they apply.</p><p>Fortunately, it is useless. Instead, you should prepare several resumes with dedicated specialization:</p><ul><li><p>Data Analyst Resume</p><ul><li><p>Product Analyst Resume</p></li><li><p>Marketing Analyst Resume</p></li><li><p>Finance Analyst</p></li><li><p>DevOps Analyst</p></li></ul></li><li><p>Analytics Engineer</p></li><li><p>Data ENgineer</p><ul><li><p>Azure Data Engineer</p></li><li><p>GCP Data Engineer</p></li><li><p>AWS Data Engineer</p></li></ul></li></ul><p>I hope it makes sense for you that you will slightly change the tooling and use cases but the core will email the same.</p><p>My 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_!pJj3!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F211dd355-5c0b-47a3-b13e-6c8af4295481_1538x696.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!pJj3!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F211dd355-5c0b-47a3-b13e-6c8af4295481_1538x696.png 424w, https://substackcdn.com/image/fetch/$s_!pJj3!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F211dd355-5c0b-47a3-b13e-6c8af4295481_1538x696.png 848w, https://substackcdn.com/image/fetch/$s_!pJj3!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F211dd355-5c0b-47a3-b13e-6c8af4295481_1538x696.png 1272w, https://substackcdn.com/image/fetch/$s_!pJj3!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F211dd355-5c0b-47a3-b13e-6c8af4295481_1538x696.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!pJj3!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F211dd355-5c0b-47a3-b13e-6c8af4295481_1538x696.png" width="1456" height="659" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/211dd355-5c0b-47a3-b13e-6c8af4295481_1538x696.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:659,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:153894,&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;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!pJj3!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F211dd355-5c0b-47a3-b13e-6c8af4295481_1538x696.png 424w, https://substackcdn.com/image/fetch/$s_!pJj3!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F211dd355-5c0b-47a3-b13e-6c8af4295481_1538x696.png 848w, https://substackcdn.com/image/fetch/$s_!pJj3!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F211dd355-5c0b-47a3-b13e-6c8af4295481_1538x696.png 1272w, https://substackcdn.com/image/fetch/$s_!pJj3!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F211dd355-5c0b-47a3-b13e-6c8af4295481_1538x696.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h2>PDF vs Doc</h2><p>Sometimes, I can see a very nice resume built-in PDF. Unfortunately, it might be hard to read and consume by HR or ATS Systems. </p><p>Forget about fancy PDF files with bar charts and other nonsense. Let&#8217;s use simple Google Docs and simple text. My 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_!wx5u!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3e5085b2-3d81-4d39-a076-cd72cb9b5e53_1562x1600.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!wx5u!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3e5085b2-3d81-4d39-a076-cd72cb9b5e53_1562x1600.png 424w, https://substackcdn.com/image/fetch/$s_!wx5u!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3e5085b2-3d81-4d39-a076-cd72cb9b5e53_1562x1600.png 848w, https://substackcdn.com/image/fetch/$s_!wx5u!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3e5085b2-3d81-4d39-a076-cd72cb9b5e53_1562x1600.png 1272w, https://substackcdn.com/image/fetch/$s_!wx5u!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3e5085b2-3d81-4d39-a076-cd72cb9b5e53_1562x1600.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!wx5u!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3e5085b2-3d81-4d39-a076-cd72cb9b5e53_1562x1600.png" width="1456" height="1491" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/3e5085b2-3d81-4d39-a076-cd72cb9b5e53_1562x1600.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1491,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:364373,&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;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!wx5u!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3e5085b2-3d81-4d39-a076-cd72cb9b5e53_1562x1600.png 424w, https://substackcdn.com/image/fetch/$s_!wx5u!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3e5085b2-3d81-4d39-a076-cd72cb9b5e53_1562x1600.png 848w, https://substackcdn.com/image/fetch/$s_!wx5u!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3e5085b2-3d81-4d39-a076-cd72cb9b5e53_1562x1600.png 1272w, https://substackcdn.com/image/fetch/$s_!wx5u!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3e5085b2-3d81-4d39-a076-cd72cb9b5e53_1562x1600.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 example isn&#8217;t perfect. But still a great point to start. I would also add more details about BUSINESS VALUE and actual IMPACT on business and data team.</p><h2>Resume vs Linkedin</h2><p>You might now wonder what to do if you have several resumes ranging from Data Analyst to Data Engineer. </p><p>Sometimes, HR or even hiring managers might quickly check your LinkedIn profile and their expectations that your LinkedIn should match your Resume. The key here is to match:</p><ul><li><p> Date ranges</p></li><li><p>make sure the keyword &#8220;data&#8221; appears in your title. </p></li></ul><p>For example, instead of Data Analytics, you can write Data at XYZ company. This simple trick will replace a family of data jobs.</p><p>Again, the best possible strategy you can get is SPECIALIZATION. </p><p>If you are curious about the difference between roles, I recommend you to check the simple data roadmap from 0 to <s>hero</s> data engineer: </p><div class="digest-post-embed" data-attrs="{&quot;nodeId&quot;:&quot;32c9594a-8efa-4c8d-83f1-76eb4864c295&quot;,&quot;caption&quot;:&quot;I understand that getting your first job can be challenging. You have to manage many things, and it feels like a chicken-and-egg problem.&quot;,&quot;cta&quot;:null,&quot;showBylines&quot;:true,&quot;size&quot;:&quot;lg&quot;,&quot;isEditorNode&quot;:true,&quot;title&quot;:&quot;Ultimate Data Analytics Career Roadmap&quot;,&quot;publishedBylines&quot;:[{&quot;id&quot;:176866058,&quot;name&quot;:&quot;Dmitry Anoshin&quot;,&quot;bio&quot;:&quot;Surfalytics helps you to engineer your data career with focus on soft, hard and job interview skills.&quot;,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/2ecac0cb-80bb-49c6-b9a8-f2b9e8b15bca_1684x1684.jpeg&quot;,&quot;is_guest&quot;:false,&quot;bestseller_tier&quot;:null}],&quot;post_date&quot;:&quot;2024-03-23T03:59:00.447Z&quot;,&quot;cover_image&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/5276125d-aac6-49a9-8ebf-cef3d1a146d7_2248x1068.png&quot;,&quot;cover_image_alt&quot;:null,&quot;canonical_url&quot;:&quot;https://blog.surfalytics.com/p/ultimate-data-analytics-career-roadmap&quot;,&quot;section_name&quot;:null,&quot;video_upload_id&quot;:null,&quot;id&quot;:142871157,&quot;type&quot;:&quot;newsletter&quot;,&quot;reaction_count&quot;:8,&quot;comment_count&quot;:2,&quot;publication_id&quot;:null,&quot;publication_name&quot;:&quot;Surfalytics&quot;,&quot;publication_logo_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%2Fd233226f-0d04-4676-8097-da497d9b1c00_1280x1280.png&quot;,&quot;belowTheFold&quot;:true,&quot;youtube_url&quot;:null,&quot;show_links&quot;:null,&quot;feed_url&quot;:null}"></div><h2>Eh, cover letter?</h2><p>I doubt anyone will check your cover letter. Don&#8217;t waste time.</p><h2>Competitive Advantage</h2><p>This is what we actually do at Surfalytics with our pet projects, mock interviews and overall support - we are looking for ways to gain a natural competitive advantage that will help you stand out among other candidates, let me share ideas:</p><ul><li><p>Understanding the Value of Analytics</p></li><li><p>Knowing the pain points of Hiring Managers and proactively offering solutions</p></li><li><p>Using the keywords specific to the role</p></li><li><p>Understanding end-to-end architecture of analytics solutions</p></li><li><p>Domain knowledge and key analytics use cases for the industry</p></li><li><p>Never apply on LinkedIn. It is useless in 95%, go directly to the company website.</p></li><li><p>Networking is a great way of learning about openings in your area. Check all user groups for Snowflake, Power BI, Tableau,  Databricis, DBT and other data-related meetups and conferences!</p></li><li><p>Try to grow your LinkedIn presence, write 2-3 posts per week. Again, think about a dedicated topic or tool.</p></li></ul><div class="pullquote"><p>Your primary goal is to be one of the first candidates to apply. The earlier you are in the pipeline of candidates the higher chances you have. Obviously, if you are 500+ candidates your chances are low.</p></div><p>Another good advice could be to leverage friends for a direct reference to the company. However, the current market is difficult and there are so many candidates. </p><p>The best thing you can do is focus on things you can control and make them look perfect. This will increase your chances of starting a conversation with the company and hiring manager. </p><h2>References</h2><ul><li><p>Google Doc resume <a href="https://docs.google.com/document/d/12MKdYaF4jP19zfratct3bEyrQ-VdZxoj9cxzEn0OQ14/edit?usp=sharing">template</a></p></li><li><p><a href="https://www.techinterviewhandbook.org/resume/">A practical guide to writing FAANG-ready software engineer resumes</a></p></li><li><p><a href="https://www.sitepoint.com/github-profile-readme/">How to Create an Impressive GitHub Profile README</a></p></li><li><p><a href="https://resumeworded.com/score">Resume score</a></p></li><li><p>Career advice for long-term career  &#8220;&#8220;Essential Tips for Career Success based on real story&#8221;: <a href="https://blog.surfalytics.com/p/essential-unhelpful-tips-for-career">Part 1</a>, <a href="https://blog.surfalytics.com/p/essential-unhelpful-tips-for-career-fbc">Part 2</a>, <a href="https://blog.surfalytics.com/p/part-3-essential-unhelpful-tips-for">Part 3</a></p></li><li><p><a href="https://www.amazon.ca/Soft-Skills-software-developers-manual/dp/1617292397">Soft Skills: The software developer's life manual</a></p><p></p><ul><li><p><br></p></li></ul></li></ul><p></p>]]></content:encoded></item><item><title><![CDATA[“Essential ‘Unhelpful’ Tips for Career Success based on real story]]></title><description><![CDATA[Because You Just Can&#8217;t Succeed Without Them!;)]]></description><link>https://blog.surfalytics.com/p/essential-unhelpful-tips-for-career</link><guid isPermaLink="false">https://blog.surfalytics.com/p/essential-unhelpful-tips-for-career</guid><dc:creator><![CDATA[Dmitry Anoshin]]></dc:creator><pubDate>Tue, 05 Nov 2024 03:13:01 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/d057f2f3-3d3f-41a4-9871-3cc2fa990c71_1408x1106.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>In 2021, before the waves of layoffs, when we believed in the idea of family at work and dreamed of successful careers, I wrote a fun article on career tips that helped me immensely. Some of these tips sounded blunt and unusual, but today, many of them seem obvious and essential.</p><div class="pullquote"><p>&#8220;Unhelpful Tips&#8221; are actually very helpful. The name is sarcastic, inspired by my favourite childhood book, <em>Harmful Advice</em> by Grigory Oster.</p></div><p>I also created an online <a href="https://www.layoffmemos.com/">exhibition of Executive Layoff Memes</a> to remind us that the corporate world isn&#8217;t family and that you can be disposable in a single day. However, I eventually dropped this since I wasn&#8217;t sure about the maintenance cost. </p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!JM2q!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd775a0af-e406-476d-9416-8a9317e7f015_1570x988.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!JM2q!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd775a0af-e406-476d-9416-8a9317e7f015_1570x988.png 424w, https://substackcdn.com/image/fetch/$s_!JM2q!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd775a0af-e406-476d-9416-8a9317e7f015_1570x988.png 848w, https://substackcdn.com/image/fetch/$s_!JM2q!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd775a0af-e406-476d-9416-8a9317e7f015_1570x988.png 1272w, https://substackcdn.com/image/fetch/$s_!JM2q!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd775a0af-e406-476d-9416-8a9317e7f015_1570x988.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!JM2q!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd775a0af-e406-476d-9416-8a9317e7f015_1570x988.png" width="1456" height="916" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d775a0af-e406-476d-9416-8a9317e7f015_1570x988.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:916,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:787187,&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_!JM2q!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd775a0af-e406-476d-9416-8a9317e7f015_1570x988.png 424w, https://substackcdn.com/image/fetch/$s_!JM2q!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd775a0af-e406-476d-9416-8a9317e7f015_1570x988.png 848w, https://substackcdn.com/image/fetch/$s_!JM2q!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd775a0af-e406-476d-9416-8a9317e7f015_1570x988.png 1272w, https://substackcdn.com/image/fetch/$s_!JM2q!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd775a0af-e406-476d-9416-8a9317e7f015_1570x988.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>I have 15 years of experience in the industry, with 10 of those years in North America . I am still working as a data engineer. I had some cool experience in Amazon and Microsoft in the past. I spent almost 5 years at Amazon, working in Vancouver, Boston, and Seattle. And several years with Microsoft working with Xbox and Azure teams.</p><p>In this article, I want to focus on the interview process, touch on issues of employer loyalty, financial rewards, career growth, and future prospects, and weigh the pros and cons of &#8220;working for someone else&#8221; versus &#8220;working for yourself.&#8221;</p><p>You might find some of typos. Unfortunately, grammar isn&#8217;t my strong suit, unlike navigating interviews, where I feel &#8220;right at home.&#8221;</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!g0F1!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9777c20f-ba33-48cb-8bb3-2502fc23cf96_587x587.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!g0F1!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9777c20f-ba33-48cb-8bb3-2502fc23cf96_587x587.png 424w, https://substackcdn.com/image/fetch/$s_!g0F1!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9777c20f-ba33-48cb-8bb3-2502fc23cf96_587x587.png 848w, https://substackcdn.com/image/fetch/$s_!g0F1!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9777c20f-ba33-48cb-8bb3-2502fc23cf96_587x587.png 1272w, https://substackcdn.com/image/fetch/$s_!g0F1!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9777c20f-ba33-48cb-8bb3-2502fc23cf96_587x587.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!g0F1!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9777c20f-ba33-48cb-8bb3-2502fc23cf96_587x587.png" width="587" height="587" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/9777c20f-ba33-48cb-8bb3-2502fc23cf96_587x587.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:587,&quot;width&quot;:587,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;2013 &#1075;&#1086;&#1076;, &#1090;&#1086;&#1083;&#1100;&#1082;&#1086; &#1095;&#1090;&#1086; &#1087;&#1088;&#1086;&#1074;&#1072;&#1083;&#1080;&#1083; &#1086;&#1085;&#1083;&#1072;&#1081;&#1085; &#1089;&#1086;&#1073;&#1077;&#1089;&#1077;&#1076;&#1086;&#1074;&#1072;&#1085;&#1080;&#1077; &#1074; &#1041;&#1077;&#1088;&#1083;&#1080;&#1085;, &#1085;&#1072;&#1074;&#1077;&#1088;&#1085;&#1086; &#1080;&#1084; &#1085;&#1077; &#1087;&#1086;&#1085;&#1088;&#1072;&#1074;&#1080;&#1083;&#1080;&#1089;&#1100; &#1084;&#1086;&#1080; &#1085;&#1086;&#1089;&#1082;&#1080;&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="2013 &#1075;&#1086;&#1076;, &#1090;&#1086;&#1083;&#1100;&#1082;&#1086; &#1095;&#1090;&#1086; &#1087;&#1088;&#1086;&#1074;&#1072;&#1083;&#1080;&#1083; &#1086;&#1085;&#1083;&#1072;&#1081;&#1085; &#1089;&#1086;&#1073;&#1077;&#1089;&#1077;&#1076;&#1086;&#1074;&#1072;&#1085;&#1080;&#1077; &#1074; &#1041;&#1077;&#1088;&#1083;&#1080;&#1085;, &#1085;&#1072;&#1074;&#1077;&#1088;&#1085;&#1086; &#1080;&#1084; &#1085;&#1077; &#1087;&#1086;&#1085;&#1088;&#1072;&#1074;&#1080;&#1083;&#1080;&#1089;&#1100; &#1084;&#1086;&#1080; &#1085;&#1086;&#1089;&#1082;&#1080;" title="2013 &#1075;&#1086;&#1076;, &#1090;&#1086;&#1083;&#1100;&#1082;&#1086; &#1095;&#1090;&#1086; &#1087;&#1088;&#1086;&#1074;&#1072;&#1083;&#1080;&#1083; &#1086;&#1085;&#1083;&#1072;&#1081;&#1085; &#1089;&#1086;&#1073;&#1077;&#1089;&#1077;&#1076;&#1086;&#1074;&#1072;&#1085;&#1080;&#1077; &#1074; &#1041;&#1077;&#1088;&#1083;&#1080;&#1085;, &#1085;&#1072;&#1074;&#1077;&#1088;&#1085;&#1086; &#1080;&#1084; &#1085;&#1077; &#1087;&#1086;&#1085;&#1088;&#1072;&#1074;&#1080;&#1083;&#1080;&#1089;&#1100; &#1084;&#1086;&#1080; &#1085;&#1086;&#1089;&#1082;&#1080;" srcset="https://substackcdn.com/image/fetch/$s_!g0F1!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9777c20f-ba33-48cb-8bb3-2502fc23cf96_587x587.png 424w, https://substackcdn.com/image/fetch/$s_!g0F1!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9777c20f-ba33-48cb-8bb3-2502fc23cf96_587x587.png 848w, https://substackcdn.com/image/fetch/$s_!g0F1!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9777c20f-ba33-48cb-8bb3-2502fc23cf96_587x587.png 1272w, https://substackcdn.com/image/fetch/$s_!g0F1!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9777c20f-ba33-48cb-8bb3-2502fc23cf96_587x587.png 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">It was 2013. I&#8217;d just bombed an online interview for a position in Berlin. Guess they didn&#8217;t like my socks.</figcaption></figure></div><p>Before moving on to companies like Amazon and Microsoft, I&#8217;d like to start with some simpler examples.</p><h2>Getting Started</h2><p>I originally trained as a design engineer, and I genuinely tried to work in my field (for a full 3 years) in Moscow, Russia.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!FmNf!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F69e353a2-8ee6-455f-b621-fd7892f841b8_3008x2000.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!FmNf!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F69e353a2-8ee6-455f-b621-fd7892f841b8_3008x2000.jpeg 424w, https://substackcdn.com/image/fetch/$s_!FmNf!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F69e353a2-8ee6-455f-b621-fd7892f841b8_3008x2000.jpeg 848w, https://substackcdn.com/image/fetch/$s_!FmNf!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F69e353a2-8ee6-455f-b621-fd7892f841b8_3008x2000.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!FmNf!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F69e353a2-8ee6-455f-b621-fd7892f841b8_3008x2000.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!FmNf!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F69e353a2-8ee6-455f-b621-fd7892f841b8_3008x2000.jpeg" width="1456" height="968" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/69e353a2-8ee6-455f-b621-fd7892f841b8_3008x2000.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:968,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;&#1052;&#1086;&#1077; &#1088;&#1072;&#1073;&#1086;&#1095;&#1077;&#1077; &#1084;&#1077;&#1089;&#1090;&#1086; &#1089; &#1089;&#1077;&#1082;&#1088;&#1077;&#1090;&#1085;&#1086;&#1075;&#1086; &#1087;&#1088;&#1077;&#1076;&#1087;&#1088;&#1080;&#1103;&#1090;&#1080;&#1103;&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="&#1052;&#1086;&#1077; &#1088;&#1072;&#1073;&#1086;&#1095;&#1077;&#1077; &#1084;&#1077;&#1089;&#1090;&#1086; &#1089; &#1089;&#1077;&#1082;&#1088;&#1077;&#1090;&#1085;&#1086;&#1075;&#1086; &#1087;&#1088;&#1077;&#1076;&#1087;&#1088;&#1080;&#1103;&#1090;&#1080;&#1103;" title="&#1052;&#1086;&#1077; &#1088;&#1072;&#1073;&#1086;&#1095;&#1077;&#1077; &#1084;&#1077;&#1089;&#1090;&#1086; &#1089; &#1089;&#1077;&#1082;&#1088;&#1077;&#1090;&#1085;&#1086;&#1075;&#1086; &#1087;&#1088;&#1077;&#1076;&#1087;&#1088;&#1080;&#1103;&#1090;&#1080;&#1103;" srcset="https://substackcdn.com/image/fetch/$s_!FmNf!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F69e353a2-8ee6-455f-b621-fd7892f841b8_3008x2000.jpeg 424w, https://substackcdn.com/image/fetch/$s_!FmNf!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F69e353a2-8ee6-455f-b621-fd7892f841b8_3008x2000.jpeg 848w, https://substackcdn.com/image/fetch/$s_!FmNf!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F69e353a2-8ee6-455f-b621-fd7892f841b8_3008x2000.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!FmNf!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F69e353a2-8ee6-455f-b621-fd7892f841b8_3008x2000.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">My workspace at a classified facility.</figcaption></figure></div><p>Before I discovered that an assistant project manager earned $1,500 (back in 2009), while the head of a metalworking department at a space center made less than $700.</p><blockquote><p><strong>Tip 1</strong>: If you&#8217;re thinking that in the future you&#8217;ll land a great job with a good income, and all you need to do is put in X years, complete grad school, take Y courses, and get Z certifications&#8212;put those assumptions to the test. You might save time, resources, and money.</p></blockquote><p>Now, I know this as &#8220;hypothesis testing.&#8221; While working at the factory, I decided to test my own hypothesis. I posted a resume on HeadHunter (HH), claiming several years of experience and a graduate degree, and started applying to positions.</p><p>I quickly realized that all the available jobs in the Moscow region offered laughable salaries. That&#8217;s when I began to question the future of the engineering industry in Russia. It turns out I wasn&#8217;t wrong.</p><p>When I was in university, I really wanted to intern in Europe. But at some point, those programs were simply canceled. The next image captures this perfectly.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!jpPN!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbfe5de74-9994-4ce1-a986-77c52e85a4ba_581x577.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!jpPN!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbfe5de74-9994-4ce1-a986-77c52e85a4ba_581x577.png 424w, https://substackcdn.com/image/fetch/$s_!jpPN!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbfe5de74-9994-4ce1-a986-77c52e85a4ba_581x577.png 848w, https://substackcdn.com/image/fetch/$s_!jpPN!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbfe5de74-9994-4ce1-a986-77c52e85a4ba_581x577.png 1272w, https://substackcdn.com/image/fetch/$s_!jpPN!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbfe5de74-9994-4ce1-a986-77c52e85a4ba_581x577.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!jpPN!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbfe5de74-9994-4ce1-a986-77c52e85a4ba_581x577.png" width="581" height="577" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/bfe5de74-9994-4ce1-a986-77c52e85a4ba_581x577.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:577,&quot;width&quot;:581,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;&#1069;&#1090;&#1086; &#1103; &#1074; &#1050;&#1086;&#1087;&#1077;&#1085;&#1075;&#1072;&#1075;&#1077;&#1085;&#1077; &#1074;&#1089;&#1090;&#1088;&#1077;&#1090;&#1080;&#1083; &#1073;&#1072;&#1073;&#1091;&#1083;&#1100;&#1082;&#1091; (&#1089;&#1083;&#1077;&#1090;&#1072;&#1083; &#1085;&#1072; &#1090;&#1088;&#1077;&#1085;&#1080;&#1085;&#1075; &#1086;&#1090; &#1088;&#1072;&#1073;&#1086;&#1090;&#1099;). &#1055;&#1088;&#1080;&#1084;&#1077;&#1088;&#1085;&#1086; &#1090;&#1086;&#1078;&#1077; &#1089;&#1072;&#1084;&#1086;&#1077; &#1089;&#1082;&#1072;&#1079;&#1072;&#1083; &#1084;&#1085;&#1077; &#1076;&#1077;&#1082;&#1072;&#1085; &#1085;&#1072; &#1074;&#1086;&#1087;&#1088;&#1086;&#1089; &#1086;&#1073; &#1080;&#1085;&#1086;&#1089;&#1090;&#1088;&#1072;&#1085;&#1085;&#1086;&#1081; &#1089;&#1090;&#1072;&#1078;&#1080;&#1088;&#1086;&#1074;&#1082;&#1077;.&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="&#1069;&#1090;&#1086; &#1103; &#1074; &#1050;&#1086;&#1087;&#1077;&#1085;&#1075;&#1072;&#1075;&#1077;&#1085;&#1077; &#1074;&#1089;&#1090;&#1088;&#1077;&#1090;&#1080;&#1083; &#1073;&#1072;&#1073;&#1091;&#1083;&#1100;&#1082;&#1091; (&#1089;&#1083;&#1077;&#1090;&#1072;&#1083; &#1085;&#1072; &#1090;&#1088;&#1077;&#1085;&#1080;&#1085;&#1075; &#1086;&#1090; &#1088;&#1072;&#1073;&#1086;&#1090;&#1099;). &#1055;&#1088;&#1080;&#1084;&#1077;&#1088;&#1085;&#1086; &#1090;&#1086;&#1078;&#1077; &#1089;&#1072;&#1084;&#1086;&#1077; &#1089;&#1082;&#1072;&#1079;&#1072;&#1083; &#1084;&#1085;&#1077; &#1076;&#1077;&#1082;&#1072;&#1085; &#1085;&#1072; &#1074;&#1086;&#1087;&#1088;&#1086;&#1089; &#1086;&#1073; &#1080;&#1085;&#1086;&#1089;&#1090;&#1088;&#1072;&#1085;&#1085;&#1086;&#1081; &#1089;&#1090;&#1072;&#1078;&#1080;&#1088;&#1086;&#1074;&#1082;&#1077;." title="&#1069;&#1090;&#1086; &#1103; &#1074; &#1050;&#1086;&#1087;&#1077;&#1085;&#1075;&#1072;&#1075;&#1077;&#1085;&#1077; &#1074;&#1089;&#1090;&#1088;&#1077;&#1090;&#1080;&#1083; &#1073;&#1072;&#1073;&#1091;&#1083;&#1100;&#1082;&#1091; (&#1089;&#1083;&#1077;&#1090;&#1072;&#1083; &#1085;&#1072; &#1090;&#1088;&#1077;&#1085;&#1080;&#1085;&#1075; &#1086;&#1090; &#1088;&#1072;&#1073;&#1086;&#1090;&#1099;). &#1055;&#1088;&#1080;&#1084;&#1077;&#1088;&#1085;&#1086; &#1090;&#1086;&#1078;&#1077; &#1089;&#1072;&#1084;&#1086;&#1077; &#1089;&#1082;&#1072;&#1079;&#1072;&#1083; &#1084;&#1085;&#1077; &#1076;&#1077;&#1082;&#1072;&#1085; &#1085;&#1072; &#1074;&#1086;&#1087;&#1088;&#1086;&#1089; &#1086;&#1073; &#1080;&#1085;&#1086;&#1089;&#1090;&#1088;&#1072;&#1085;&#1085;&#1086;&#1081; &#1089;&#1090;&#1072;&#1078;&#1080;&#1088;&#1086;&#1074;&#1082;&#1077;." srcset="https://substackcdn.com/image/fetch/$s_!jpPN!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbfe5de74-9994-4ce1-a986-77c52e85a4ba_581x577.png 424w, https://substackcdn.com/image/fetch/$s_!jpPN!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbfe5de74-9994-4ce1-a986-77c52e85a4ba_581x577.png 848w, https://substackcdn.com/image/fetch/$s_!jpPN!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbfe5de74-9994-4ce1-a986-77c52e85a4ba_581x577.png 1272w, https://substackcdn.com/image/fetch/$s_!jpPN!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbfe5de74-9994-4ce1-a986-77c52e85a4ba_581x577.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">Here I am in Copenhagen, where I met an elderly lady (I was there for a work training). She pretty much told me the same thing my dean did when I asked about an international internship.</figcaption></figure></div><p>I had to retrain. Still am, actually. In IT, as soon as you start learning one thing, something new pops up, and what you just learned is already outdated.</p><blockquote><p><strong>Tip 2</strong>: Fake it till you make it (FITYM).</p></blockquote><p>Now I know this trendy phrase, but back then, I just thought I needed to embellish my experience a bit. I had to take my factory experience and turn it into a good story&#8212;an IT story. FITYM can apply to almost anything. It&#8217;s a catch-22: they demand experience, but you don&#8217;t have any, and you can&#8217;t get any because they won&#8217;t hire you without it. FITYM is the solution to that problem.</p><p>Even with my FITYM approach, I didn&#8217;t have much success&#8212;just 2-3 interviews. Then I got offered an internship at a bank in the IT department, specifically in the Business Intelligence role for report development. They asked me just one question: &#8220;Do you know what SQL is?&#8221; Although it was the first time I&#8217;d heard the word, I confidently replied, &#8220;Of course I do! I even used SQL in my thesis project.&#8221;</p><blockquote><p><strong>Tip 3</strong>: Take risks. You only live once, so it&#8217;s better to take a chance. As someone once said, &#8220;It&#8217;s not scary to make mistakes&#8212;it&#8217;s scary to be a dull nobody.&#8221;</p></blockquote><p>And this brings up some questions&#8212;a sort of FAQ:</p><ol><li><p><strong>What if I lie about my experience, and it turns out I don&#8217;t have it, and I get fired in disgrace? </strong></p><p><br>Of course, you need to know your limits. Don&#8217;t claim you&#8217;re a Java architect if you&#8217;ve only just written your first &#8220;Hello, world&#8221; program. But if you understand how to solve problems in theory, where to find answers, and how to ask the right questions, you&#8217;ll manage. Besides, hiring someone is a time-consuming and costly process. Your skills are just part of the picture; it&#8217;s also about how well you fit in with the team. In the beginning, you can make up for a lack of experience by putting in extra hours. Work 16-hour days, no weekends&#8212;you&#8217;ll figure it out.</p><p></p></li><li><p><strong>My resume has irrelevant experience.</strong></p><p><br>The first thing we do is rewrite the resume. Add the experience that&#8217;s relevant to the employer. I&#8217;ve never encountered a situation where recruiters compared your resume with your employment record. Be creative; put in the resume what you need. Only include &#8220;job location&#8221; and &#8220;employment dates.&#8221; You can tailor the &#8220;job title&#8221; and &#8220;responsibilities&#8221; as needed.</p><p></p></li><li><p><strong>Fine, no problem with the resume. But what about the employment record?</strong></p><p><br>HR departments are run by people, too. They&#8217;re often swamped, not highly paid, and need time for coffee breaks, social media, and gossip. So they&#8217;re unlikely to have time to comb through your employment history with a fine-tooth comb.</p><p></p></li><li><p><strong>What about the security department?</strong></p><p><br>Big companies have security departments. For them, you&#8217;re just a name, and they might do a background check. This is a bit of a roll of the dice. You could leave a friend&#8217;s number, or come to some arrangement. I&#8217;ve even had a case where I had to take a lie detector test. But I got through it. The main thing for them is that you don&#8217;t have a criminal record.</p></li></ol><p>The first three months are the hardest. The people around you aren&#8217;t dumb; they&#8217;ll quickly catch on that you&#8217;re short on knowledge. But! You&#8217;re making an effort&#8212;arriving early, leaving late, asking the right questions, and being very proactive. Where are they going to find a better candidate?</p><h2><strong>Job Change &#8211; From Banking to an IT Vendor</strong></h2><p>After 1.5 years, I&#8217;d gained some solid experience, and it was time to hit the market.</p><blockquote><p><strong>Tip 4</strong>: The odds of working hard and getting a double salary increase are close to zero. The only real way to raise your salary or position is to find a new job.</p></blockquote><blockquote><p><strong>Tip 5</strong>: Don&#8217;t quit until you have an offer in hand.</p></blockquote><blockquote><p><strong>Tip 6</strong>: Don&#8217;t burn bridges. Always aim to leave on good terms with colleagues.</p></blockquote><p>As usual in interviews, they asked about things I&#8217;d only vaguely heard of. You could say I knew 50% really well, and the other 50% at a passing level. Luckily, they valued that first 50%.</p><p>I worked at Teradata&#8212;an American company. But my projects were at the biggest Russian Bank, which meant spending a lot of time in former preschools and tax offices, battling with other consultants and integrators over a decent (non-broken) chair.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!aRKo!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbc518af5-2514-482e-b0bd-df16ec9bd21d_594x593.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!aRKo!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbc518af5-2514-482e-b0bd-df16ec9bd21d_594x593.png 424w, https://substackcdn.com/image/fetch/$s_!aRKo!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbc518af5-2514-482e-b0bd-df16ec9bd21d_594x593.png 848w, https://substackcdn.com/image/fetch/$s_!aRKo!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbc518af5-2514-482e-b0bd-df16ec9bd21d_594x593.png 1272w, https://substackcdn.com/image/fetch/$s_!aRKo!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbc518af5-2514-482e-b0bd-df16ec9bd21d_594x593.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!aRKo!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbc518af5-2514-482e-b0bd-df16ec9bd21d_594x593.png" width="594" height="593" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/bc518af5-2514-482e-b0bd-df16ec9bd21d_594x593.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:593,&quot;width&quot;:594,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;&#1057;&#1090;&#1091;&#1083; &#1090;&#1072;&#1082; &#1089;&#1077;&#1073;&#1077;...&#1042;&#1089;&#1077; &#1073;&#1099;&#1083;&#1086; &#1085;&#1080;&#1095;&#1077;&#1075;&#1086;, &#1087;&#1086;&#1082;&#1072; &#1085;&#1072;&#1089; &#1085;&#1077; &#1089;&#1087;&#1072;&#1083;&#1080;&#1083;&#1080;, &#1095;&#1090;&#1086; &#1084;&#1099; &#1080;&#1075;&#1088;&#1072;&#1083;&#1080; &#1074; Counter Strike 1.6 &#1074; &#1088;&#1072;&#1073;&#1086;&#1095;&#1077;&#1077; &#1074;&#1088;&#1077;&#1084;&#1103;=0&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="&#1057;&#1090;&#1091;&#1083; &#1090;&#1072;&#1082; &#1089;&#1077;&#1073;&#1077;...&#1042;&#1089;&#1077; &#1073;&#1099;&#1083;&#1086; &#1085;&#1080;&#1095;&#1077;&#1075;&#1086;, &#1087;&#1086;&#1082;&#1072; &#1085;&#1072;&#1089; &#1085;&#1077; &#1089;&#1087;&#1072;&#1083;&#1080;&#1083;&#1080;, &#1095;&#1090;&#1086; &#1084;&#1099; &#1080;&#1075;&#1088;&#1072;&#1083;&#1080; &#1074; Counter Strike 1.6 &#1074; &#1088;&#1072;&#1073;&#1086;&#1095;&#1077;&#1077; &#1074;&#1088;&#1077;&#1084;&#1103;=0" title="&#1057;&#1090;&#1091;&#1083; &#1090;&#1072;&#1082; &#1089;&#1077;&#1073;&#1077;...&#1042;&#1089;&#1077; &#1073;&#1099;&#1083;&#1086; &#1085;&#1080;&#1095;&#1077;&#1075;&#1086;, &#1087;&#1086;&#1082;&#1072; &#1085;&#1072;&#1089; &#1085;&#1077; &#1089;&#1087;&#1072;&#1083;&#1080;&#1083;&#1080;, &#1095;&#1090;&#1086; &#1084;&#1099; &#1080;&#1075;&#1088;&#1072;&#1083;&#1080; &#1074; Counter Strike 1.6 &#1074; &#1088;&#1072;&#1073;&#1086;&#1095;&#1077;&#1077; &#1074;&#1088;&#1077;&#1084;&#1103;=0" srcset="https://substackcdn.com/image/fetch/$s_!aRKo!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbc518af5-2514-482e-b0bd-df16ec9bd21d_594x593.png 424w, https://substackcdn.com/image/fetch/$s_!aRKo!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbc518af5-2514-482e-b0bd-df16ec9bd21d_594x593.png 848w, https://substackcdn.com/image/fetch/$s_!aRKo!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbc518af5-2514-482e-b0bd-df16ec9bd21d_594x593.png 1272w, https://substackcdn.com/image/fetch/$s_!aRKo!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbc518af5-2514-482e-b0bd-df16ec9bd21d_594x593.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 chair left much to be desired&#8230;</figcaption></figure></div><blockquote><p><strong>Tip 7</strong>: Explore all opportunities within the company for personal development.</p></blockquote><p>Even before I started working at Teradata, I knew about the possibility of attending training sessions in Europe. So, by any means necessary, I did my best to attend these trainings. To make it happen, I had to be proactive.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!HXwv!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1dd2bb14-0d5b-41fe-92d5-b43ba57a712a_548x554.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!HXwv!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1dd2bb14-0d5b-41fe-92d5-b43ba57a712a_548x554.png 424w, https://substackcdn.com/image/fetch/$s_!HXwv!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1dd2bb14-0d5b-41fe-92d5-b43ba57a712a_548x554.png 848w, https://substackcdn.com/image/fetch/$s_!HXwv!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1dd2bb14-0d5b-41fe-92d5-b43ba57a712a_548x554.png 1272w, https://substackcdn.com/image/fetch/$s_!HXwv!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1dd2bb14-0d5b-41fe-92d5-b43ba57a712a_548x554.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!HXwv!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1dd2bb14-0d5b-41fe-92d5-b43ba57a712a_548x554.png" width="548" height="554" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/1dd2bb14-0d5b-41fe-92d5-b43ba57a712a_548x554.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:554,&quot;width&quot;:548,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;&#1053;&#1072; Sales &#1090;&#1088;&#1077;&#1085;&#1080;&#1085;&#1075;&#1077; &#1074; &#1052;&#1102;&#1085;&#1093;&#1077;&#1085;&#1077; &#1086;&#1090; &#1058;&#1077;&#1088;&#1072;&#1076;&#1072;&#1090;&#1099;. &#1052;&#1102;&#1085;&#1093;&#1077;&#1085; &#1079;&#1072;&#1087;&#1086;&#1084;&#1085;&#1080;&#1083; &#1085;&#1072; &#1074;&#1089;&#1102; &#1078;&#1080;&#1079;&#1085;&#1100;, &#1072; &#1090;&#1088;&#1077;&#1085;&#1080;&#1085;&#1075; &#1090;&#1072;&#1082; &#1089;&#1077;&#1073;&#1077; &#1073;&#1099;&#1083;))&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="&#1053;&#1072; Sales &#1090;&#1088;&#1077;&#1085;&#1080;&#1085;&#1075;&#1077; &#1074; &#1052;&#1102;&#1085;&#1093;&#1077;&#1085;&#1077; &#1086;&#1090; &#1058;&#1077;&#1088;&#1072;&#1076;&#1072;&#1090;&#1099;. &#1052;&#1102;&#1085;&#1093;&#1077;&#1085; &#1079;&#1072;&#1087;&#1086;&#1084;&#1085;&#1080;&#1083; &#1085;&#1072; &#1074;&#1089;&#1102; &#1078;&#1080;&#1079;&#1085;&#1100;, &#1072; &#1090;&#1088;&#1077;&#1085;&#1080;&#1085;&#1075; &#1090;&#1072;&#1082; &#1089;&#1077;&#1073;&#1077; &#1073;&#1099;&#1083;))" title="&#1053;&#1072; Sales &#1090;&#1088;&#1077;&#1085;&#1080;&#1085;&#1075;&#1077; &#1074; &#1052;&#1102;&#1085;&#1093;&#1077;&#1085;&#1077; &#1086;&#1090; &#1058;&#1077;&#1088;&#1072;&#1076;&#1072;&#1090;&#1099;. &#1052;&#1102;&#1085;&#1093;&#1077;&#1085; &#1079;&#1072;&#1087;&#1086;&#1084;&#1085;&#1080;&#1083; &#1085;&#1072; &#1074;&#1089;&#1102; &#1078;&#1080;&#1079;&#1085;&#1100;, &#1072; &#1090;&#1088;&#1077;&#1085;&#1080;&#1085;&#1075; &#1090;&#1072;&#1082; &#1089;&#1077;&#1073;&#1077; &#1073;&#1099;&#1083;))" srcset="https://substackcdn.com/image/fetch/$s_!HXwv!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1dd2bb14-0d5b-41fe-92d5-b43ba57a712a_548x554.png 424w, https://substackcdn.com/image/fetch/$s_!HXwv!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1dd2bb14-0d5b-41fe-92d5-b43ba57a712a_548x554.png 848w, https://substackcdn.com/image/fetch/$s_!HXwv!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1dd2bb14-0d5b-41fe-92d5-b43ba57a712a_548x554.png 1272w, https://substackcdn.com/image/fetch/$s_!HXwv!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1dd2bb14-0d5b-41fe-92d5-b43ba57a712a_548x554.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">At a Teradata Sales training in Munich. Munich left a lifelong impression&#8212;can&#8217;t say the same for the training!</figcaption></figure></div><blockquote><p><strong>Tip 8</strong>: Be proactive. Network with people, seek out opportunities for collaboration, and always look for ways to learn new things.</p></blockquote><p>To be proactive, I started running training sessions for other consultants. I led a few workshops for my colleagues. I also dug through the internal Wiki and found contacts for partner companies. I reached out to everyone, and it led to several meetings and workshops. We even had people fly in from Europe to train us on partner solutions. We didn&#8217;t actually use those solutions, and they probably wouldn&#8217;t be useful, but I knew they&#8217;d add value to my resume and experience.</p><p>Through this process, I also discovered that we had a budget for partner courses and exams, which I took full advantage of. Proactivity always pays off.</p><h2><strong>Job Change &#8211; From IT Vendor to a Footwear Startup</strong></h2><p>According to &#8220;Tip 4,&#8221; it was time to raise my salary and switch jobs. In this case, the job found me. This was one of those times when proactivity pays off. My former manager asked me to run a training session and later invited me to join their team.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!lSFQ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6c78e9ec-966a-45c9-b7f5-76e2d9d00f1b_594x592.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!lSFQ!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6c78e9ec-966a-45c9-b7f5-76e2d9d00f1b_594x592.png 424w, https://substackcdn.com/image/fetch/$s_!lSFQ!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6c78e9ec-966a-45c9-b7f5-76e2d9d00f1b_594x592.png 848w, https://substackcdn.com/image/fetch/$s_!lSFQ!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6c78e9ec-966a-45c9-b7f5-76e2d9d00f1b_594x592.png 1272w, https://substackcdn.com/image/fetch/$s_!lSFQ!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6c78e9ec-966a-45c9-b7f5-76e2d9d00f1b_594x592.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!lSFQ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6c78e9ec-966a-45c9-b7f5-76e2d9d00f1b_594x592.png" width="594" height="592" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/6c78e9ec-966a-45c9-b7f5-76e2d9d00f1b_594x592.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:592,&quot;width&quot;:594,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:601182,&quot;alt&quot;:&quot;&#1051;&#1072;&#1084;&#1086;&#1076;&#1072; &#1080; &#1057;&#1073;&#1077;&#1088;&#1090;&#1077;&#1093; &#1073;&#1099;&#1083;&#1080; &#1074; &#1089;&#1086;&#1089;&#1077;&#1076;&#1085;&#1080;&#1093; &#1079;&#1076;&#1072;&#1085;&#1080;&#1103;&#1093;, &#1073;&#1099;&#1083;&#1086; &#1091;&#1076;&#1086;&#1073;&#1085;&#1086; &#1082; &#1085;&#1080;&#1084; &#1079;&#1072;&#1093;&#1086;&#1076;&#1080;&#1090;&#1100;. &#1060;&#1086;&#1090;&#1086; &#1089; &#1090;&#1088;&#1077;&#1085;&#1080;&#1085;&#1075;&#1072; &#1082;&#1089;&#1090;&#1072;&#1090;&#1080;.&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;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="&#1051;&#1072;&#1084;&#1086;&#1076;&#1072; &#1080; &#1057;&#1073;&#1077;&#1088;&#1090;&#1077;&#1093; &#1073;&#1099;&#1083;&#1080; &#1074; &#1089;&#1086;&#1089;&#1077;&#1076;&#1085;&#1080;&#1093; &#1079;&#1076;&#1072;&#1085;&#1080;&#1103;&#1093;, &#1073;&#1099;&#1083;&#1086; &#1091;&#1076;&#1086;&#1073;&#1085;&#1086; &#1082; &#1085;&#1080;&#1084; &#1079;&#1072;&#1093;&#1086;&#1076;&#1080;&#1090;&#1100;. &#1060;&#1086;&#1090;&#1086; &#1089; &#1090;&#1088;&#1077;&#1085;&#1080;&#1085;&#1075;&#1072; &#1082;&#1089;&#1090;&#1072;&#1090;&#1080;." title="&#1051;&#1072;&#1084;&#1086;&#1076;&#1072; &#1080; &#1057;&#1073;&#1077;&#1088;&#1090;&#1077;&#1093; &#1073;&#1099;&#1083;&#1080; &#1074; &#1089;&#1086;&#1089;&#1077;&#1076;&#1085;&#1080;&#1093; &#1079;&#1076;&#1072;&#1085;&#1080;&#1103;&#1093;, &#1073;&#1099;&#1083;&#1086; &#1091;&#1076;&#1086;&#1073;&#1085;&#1086; &#1082; &#1085;&#1080;&#1084; &#1079;&#1072;&#1093;&#1086;&#1076;&#1080;&#1090;&#1100;. &#1060;&#1086;&#1090;&#1086; &#1089; &#1090;&#1088;&#1077;&#1085;&#1080;&#1085;&#1075;&#1072; &#1082;&#1089;&#1090;&#1072;&#1090;&#1080;." srcset="https://substackcdn.com/image/fetch/$s_!lSFQ!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6c78e9ec-966a-45c9-b7f5-76e2d9d00f1b_594x592.png 424w, https://substackcdn.com/image/fetch/$s_!lSFQ!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6c78e9ec-966a-45c9-b7f5-76e2d9d00f1b_594x592.png 848w, https://substackcdn.com/image/fetch/$s_!lSFQ!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6c78e9ec-966a-45c9-b7f5-76e2d9d00f1b_594x592.png 1272w, https://substackcdn.com/image/fetch/$s_!lSFQ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6c78e9ec-966a-45c9-b7f5-76e2d9d00f1b_594x592.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">New and old companies were in neighbouring buildings, so it was convenient to drop by. By the way, here&#8217;s a photo from the training.</figcaption></figure></div><blockquote><p><strong>Tip 9</strong>: Always have a backup plan. No matter where you&#8217;re working, always have a &#8220;Plan B.&#8221; I like to compare this to climbing a mountain. At any point, we can slip, so every time we make a move forward (upward), we plan several steps ahead. If we make a misstep, we won&#8217;t fall because we had a backup plan. Wherever I work, I always look to the future and consider possible scenarios for myself.</p></blockquote><p>It was interesting to work in another international company, but it was the usual story&#8212;&#8220;no money, but hang in there.&#8221; After working there for 1.5 years, I hit the market again and raised my salary to 180,000 rubles. At the time, the exchange rate was 30 rubles to the dollar, which was great. But my excitement didn&#8217;t last long&#8212;six months later, the ruble crashed, and all my ruble savings for immigration turned from a &#8220;carriage&#8221; into a &#8220;pumpkin.&#8221;</p><blockquote><p><strong>Tip 10</strong>: Motivate yourself. Often, work can be uninteresting or dull. That&#8217;s why you need to create your own reasons for why it&#8217;s interesting and why it needs to be done. For example, you&#8217;re doing an audit or working in support&#8212;boring stuff. Turn this mundane work into a cool story. When interviewing, tell them how you took on tough tasks and what results you achieved.</p></blockquote><h2><strong>Job Change &#8211; From Moscow to Montenegro</strong></h2><p>While my documents for Canada were being processed, I interviewed for a Web Analyst position in Montenegro. I had never worked as a web analyst before and had only a surface-level understanding of marketing. Nevertheless, I got the job, and once I arrived, I started learning the ins and outs of digital marketing.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!uwd2!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd8b10fcc-5a80-405a-83a7-c7539f7a5880_589x581.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!uwd2!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd8b10fcc-5a80-405a-83a7-c7539f7a5880_589x581.png 424w, https://substackcdn.com/image/fetch/$s_!uwd2!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd8b10fcc-5a80-405a-83a7-c7539f7a5880_589x581.png 848w, https://substackcdn.com/image/fetch/$s_!uwd2!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd8b10fcc-5a80-405a-83a7-c7539f7a5880_589x581.png 1272w, https://substackcdn.com/image/fetch/$s_!uwd2!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd8b10fcc-5a80-405a-83a7-c7539f7a5880_589x581.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!uwd2!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd8b10fcc-5a80-405a-83a7-c7539f7a5880_589x581.png" width="589" height="581" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d8b10fcc-5a80-405a-83a7-c7539f7a5880_589x581.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:581,&quot;width&quot;:589,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:519521,&quot;alt&quot;:&quot;&#1063;&#1077;&#1088;&#1085;&#1086;&#1075;&#1086;&#1088;&#1080;&#1103; - &#1101;&#1090;&#1086; &#1087;&#1091;&#1096;&#1082;&#1072;! &#1053;&#1072; &#1092;&#1086;&#1090;&#1086; &#1057;&#1074;&#1077;&#1090;&#1080; &#1057;&#1090;&#1077;&#1092;&#1072;&#1085;. &#1042; &#1050;&#1072;&#1085;&#1072;&#1076;&#1077; &#1093;&#1086;&#1088;&#1086;&#1096;&#1086;, &#1085;&#1086; &#1074; &#1063;&#1077;&#1088;&#1085;&#1086;&#1075;&#1086;&#1088;&#1080;&#1080; &#1077;&#1097;&#1077; &#1083;&#1091;&#1095;&#1096;&#1077;!=)&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;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="&#1063;&#1077;&#1088;&#1085;&#1086;&#1075;&#1086;&#1088;&#1080;&#1103; - &#1101;&#1090;&#1086; &#1087;&#1091;&#1096;&#1082;&#1072;! &#1053;&#1072; &#1092;&#1086;&#1090;&#1086; &#1057;&#1074;&#1077;&#1090;&#1080; &#1057;&#1090;&#1077;&#1092;&#1072;&#1085;. &#1042; &#1050;&#1072;&#1085;&#1072;&#1076;&#1077; &#1093;&#1086;&#1088;&#1086;&#1096;&#1086;, &#1085;&#1086; &#1074; &#1063;&#1077;&#1088;&#1085;&#1086;&#1075;&#1086;&#1088;&#1080;&#1080; &#1077;&#1097;&#1077; &#1083;&#1091;&#1095;&#1096;&#1077;!=)" title="&#1063;&#1077;&#1088;&#1085;&#1086;&#1075;&#1086;&#1088;&#1080;&#1103; - &#1101;&#1090;&#1086; &#1087;&#1091;&#1096;&#1082;&#1072;! &#1053;&#1072; &#1092;&#1086;&#1090;&#1086; &#1057;&#1074;&#1077;&#1090;&#1080; &#1057;&#1090;&#1077;&#1092;&#1072;&#1085;. &#1042; &#1050;&#1072;&#1085;&#1072;&#1076;&#1077; &#1093;&#1086;&#1088;&#1086;&#1096;&#1086;, &#1085;&#1086; &#1074; &#1063;&#1077;&#1088;&#1085;&#1086;&#1075;&#1086;&#1088;&#1080;&#1080; &#1077;&#1097;&#1077; &#1083;&#1091;&#1095;&#1096;&#1077;!=)" srcset="https://substackcdn.com/image/fetch/$s_!uwd2!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd8b10fcc-5a80-405a-83a7-c7539f7a5880_589x581.png 424w, https://substackcdn.com/image/fetch/$s_!uwd2!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd8b10fcc-5a80-405a-83a7-c7539f7a5880_589x581.png 848w, https://substackcdn.com/image/fetch/$s_!uwd2!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd8b10fcc-5a80-405a-83a7-c7539f7a5880_589x581.png 1272w, https://substackcdn.com/image/fetch/$s_!uwd2!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd8b10fcc-5a80-405a-83a7-c7539f7a5880_589x581.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">Montenegro is amazing! Here&#8217;s a photo of Sveti Stefan. Canada is great, but Montenegro is even better!</figcaption></figure></div><blockquote><p><strong>Tip 11</strong>: To ace an interview and speak confidently about things you haven&#8217;t worked with before, use Steve Jobs&#8217; method (which I learned about fairly recently, though I&#8217;ve always used it intuitively): the &#8220;reality distortion field.&#8221; I previously mentioned &#8220;fake it till you make it,&#8221; which can sound a bit harsh, like embellishing (at best). But now we have an almost scientific approach from Star Trek&#8212;the &#8220;reality distortion field.&#8221; This means we need to truly believe in what we&#8217;re saying.</p></blockquote><blockquote><p><strong>Tip 12</strong>: To start believing in what we&#8217;re saying, we need to tell the story at least 15-20 times. So, before tackling serious interviews, practice on &#8220;easier targets&#8221; by finding simpler companies and roles and telling them your story. Honestly, I&#8217;ve long since convinced myself that at the factory, I worked with SQL, databases, and analytics. Wake me up in the middle of the night, and I&#8217;ll recount it without a second thought.</p></blockquote><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!HyBT!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc1b76299-cc27-48e1-aa2c-1406324d4025_588x589.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!HyBT!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc1b76299-cc27-48e1-aa2c-1406324d4025_588x589.png 424w, https://substackcdn.com/image/fetch/$s_!HyBT!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc1b76299-cc27-48e1-aa2c-1406324d4025_588x589.png 848w, https://substackcdn.com/image/fetch/$s_!HyBT!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc1b76299-cc27-48e1-aa2c-1406324d4025_588x589.png 1272w, https://substackcdn.com/image/fetch/$s_!HyBT!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc1b76299-cc27-48e1-aa2c-1406324d4025_588x589.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!HyBT!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc1b76299-cc27-48e1-aa2c-1406324d4025_588x589.png" width="588" height="589" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c1b76299-cc27-48e1-aa2c-1406324d4025_588x589.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:589,&quot;width&quot;:588,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;&#1053;&#1072; &#1089;&#1090;&#1086;&#1083;&#1077; &#1082;&#1085;&#1080;&#1075;&#1072; &#1087;&#1086; Adobe Site Catalyst - &#1087;&#1086;&#1083;&#1091;&#1095;&#1072;&#1102; &#1087;&#1077;&#1088;&#1074;&#1099;&#1077; &#1079;&#1085;&#1072;&#1085;&#1080;&#1103; &#1087;&#1086; &#1089;&#1074;&#1086;&#1077;&#1081; &#1085;&#1086;&#1074;&#1086;&#1081; &#1087;&#1088;&#1086;&#1092;&#1077;&#1089;&#1089;&#1080;&#1080;.&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="&#1053;&#1072; &#1089;&#1090;&#1086;&#1083;&#1077; &#1082;&#1085;&#1080;&#1075;&#1072; &#1087;&#1086; Adobe Site Catalyst - &#1087;&#1086;&#1083;&#1091;&#1095;&#1072;&#1102; &#1087;&#1077;&#1088;&#1074;&#1099;&#1077; &#1079;&#1085;&#1072;&#1085;&#1080;&#1103; &#1087;&#1086; &#1089;&#1074;&#1086;&#1077;&#1081; &#1085;&#1086;&#1074;&#1086;&#1081; &#1087;&#1088;&#1086;&#1092;&#1077;&#1089;&#1089;&#1080;&#1080;." title="&#1053;&#1072; &#1089;&#1090;&#1086;&#1083;&#1077; &#1082;&#1085;&#1080;&#1075;&#1072; &#1087;&#1086; Adobe Site Catalyst - &#1087;&#1086;&#1083;&#1091;&#1095;&#1072;&#1102; &#1087;&#1077;&#1088;&#1074;&#1099;&#1077; &#1079;&#1085;&#1072;&#1085;&#1080;&#1103; &#1087;&#1086; &#1089;&#1074;&#1086;&#1077;&#1081; &#1085;&#1086;&#1074;&#1086;&#1081; &#1087;&#1088;&#1086;&#1092;&#1077;&#1089;&#1089;&#1080;&#1080;." srcset="https://substackcdn.com/image/fetch/$s_!HyBT!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc1b76299-cc27-48e1-aa2c-1406324d4025_588x589.png 424w, https://substackcdn.com/image/fetch/$s_!HyBT!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc1b76299-cc27-48e1-aa2c-1406324d4025_588x589.png 848w, https://substackcdn.com/image/fetch/$s_!HyBT!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc1b76299-cc27-48e1-aa2c-1406324d4025_588x589.png 1272w, https://substackcdn.com/image/fetch/$s_!HyBT!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc1b76299-cc27-48e1-aa2c-1406324d4025_588x589.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">On my desk lies a book on Adobe Site Catalyst&#8212;getting my first insights into my new profession.</figcaption></figure></div><p>I didn&#8217;t stay long in Montenegro, as my documents for Canada came through. I had a few interesting interviews in Europe, including one with Accenture. It was a positive experience, but I already had my tickets to Canada.</p><blockquote><p><strong>Tip 13</strong>: Interviews with foreign companies are excellent practice for improving your English. So even if you&#8217;re not actively seeking a job abroad, why not use the opportunity to practice the language?</p></blockquote><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!5Rct!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F787cb8dc-7433-4e02-8df3-63547207fb37_590x563.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!5Rct!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F787cb8dc-7433-4e02-8df3-63547207fb37_590x563.png 424w, https://substackcdn.com/image/fetch/$s_!5Rct!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F787cb8dc-7433-4e02-8df3-63547207fb37_590x563.png 848w, https://substackcdn.com/image/fetch/$s_!5Rct!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F787cb8dc-7433-4e02-8df3-63547207fb37_590x563.png 1272w, https://substackcdn.com/image/fetch/$s_!5Rct!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F787cb8dc-7433-4e02-8df3-63547207fb37_590x563.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!5Rct!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F787cb8dc-7433-4e02-8df3-63547207fb37_590x563.png" width="590" height="563" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/787cb8dc-7433-4e02-8df3-63547207fb37_590x563.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:563,&quot;width&quot;:590,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;&#1045;&#1076;&#1080;&#1084; &#1074; &#1087;&#1086;&#1077;&#1079;&#1076;&#1077; &#1080;&#1079; &#1063;&#1077;&#1088;&#1085;&#1086;&#1075;&#1086;&#1088;&#1080;&#1080; &#1074; &#1041;&#1077;&#1083;&#1075;&#1088;&#1072;&#1076;. &#1054;&#1079;&#1085;&#1072;&#1082;&#1072;&#1084;&#1083;&#1080;&#1074;&#1072;&#1102;&#1089;&#1100; &#1089; &#1080;&#1089;&#1090;&#1086;&#1088;&#1080;&#1077;&#1081; &#1050;&#1072;&#1085;&#1072;&#1076;&#1099;. &#1042; &#1082;&#1085;&#1080;&#1075;&#1077; &#1074;&#1088;&#1077;&#1084;&#1077;&#1085; &#1057;&#1057;&#1057;&#1056; &#1072;&#1074;&#1090;&#1086;&#1088; &#1095;&#1072;&#1089;&#1090;&#1086; &#1091;&#1087;&#1086;&#1084;&#1080;&#1085;&#1072;&#1077;&#1090; &#1082;&#1086;&#1084;&#1084;&#1091;&#1085;&#1080;&#1089;&#1090;&#1080;&#1095;&#1077;&#1089;&#1082;&#1080;&#1077; &#1087;&#1072;&#1088;&#1090;&#1080;&#1080; &#1050;&#1072;&#1085;&#1072;&#1076;&#1099;!)&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="&#1045;&#1076;&#1080;&#1084; &#1074; &#1087;&#1086;&#1077;&#1079;&#1076;&#1077; &#1080;&#1079; &#1063;&#1077;&#1088;&#1085;&#1086;&#1075;&#1086;&#1088;&#1080;&#1080; &#1074; &#1041;&#1077;&#1083;&#1075;&#1088;&#1072;&#1076;. &#1054;&#1079;&#1085;&#1072;&#1082;&#1072;&#1084;&#1083;&#1080;&#1074;&#1072;&#1102;&#1089;&#1100; &#1089; &#1080;&#1089;&#1090;&#1086;&#1088;&#1080;&#1077;&#1081; &#1050;&#1072;&#1085;&#1072;&#1076;&#1099;. &#1042; &#1082;&#1085;&#1080;&#1075;&#1077; &#1074;&#1088;&#1077;&#1084;&#1077;&#1085; &#1057;&#1057;&#1057;&#1056; &#1072;&#1074;&#1090;&#1086;&#1088; &#1095;&#1072;&#1089;&#1090;&#1086; &#1091;&#1087;&#1086;&#1084;&#1080;&#1085;&#1072;&#1077;&#1090; &#1082;&#1086;&#1084;&#1084;&#1091;&#1085;&#1080;&#1089;&#1090;&#1080;&#1095;&#1077;&#1089;&#1082;&#1080;&#1077; &#1087;&#1072;&#1088;&#1090;&#1080;&#1080; &#1050;&#1072;&#1085;&#1072;&#1076;&#1099;!)" title="&#1045;&#1076;&#1080;&#1084; &#1074; &#1087;&#1086;&#1077;&#1079;&#1076;&#1077; &#1080;&#1079; &#1063;&#1077;&#1088;&#1085;&#1086;&#1075;&#1086;&#1088;&#1080;&#1080; &#1074; &#1041;&#1077;&#1083;&#1075;&#1088;&#1072;&#1076;. &#1054;&#1079;&#1085;&#1072;&#1082;&#1072;&#1084;&#1083;&#1080;&#1074;&#1072;&#1102;&#1089;&#1100; &#1089; &#1080;&#1089;&#1090;&#1086;&#1088;&#1080;&#1077;&#1081; &#1050;&#1072;&#1085;&#1072;&#1076;&#1099;. &#1042; &#1082;&#1085;&#1080;&#1075;&#1077; &#1074;&#1088;&#1077;&#1084;&#1077;&#1085; &#1057;&#1057;&#1057;&#1056; &#1072;&#1074;&#1090;&#1086;&#1088; &#1095;&#1072;&#1089;&#1090;&#1086; &#1091;&#1087;&#1086;&#1084;&#1080;&#1085;&#1072;&#1077;&#1090; &#1082;&#1086;&#1084;&#1084;&#1091;&#1085;&#1080;&#1089;&#1090;&#1080;&#1095;&#1077;&#1089;&#1082;&#1080;&#1077; &#1087;&#1072;&#1088;&#1090;&#1080;&#1080; &#1050;&#1072;&#1085;&#1072;&#1076;&#1099;!)" srcset="https://substackcdn.com/image/fetch/$s_!5Rct!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F787cb8dc-7433-4e02-8df3-63547207fb37_590x563.png 424w, https://substackcdn.com/image/fetch/$s_!5Rct!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F787cb8dc-7433-4e02-8df3-63547207fb37_590x563.png 848w, https://substackcdn.com/image/fetch/$s_!5Rct!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F787cb8dc-7433-4e02-8df3-63547207fb37_590x563.png 1272w, https://substackcdn.com/image/fetch/$s_!5Rct!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F787cb8dc-7433-4e02-8df3-63547207fb37_590x563.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">Riding the train from Montenegro to Belgrade, getting acquainted with Canadian history. In this Soviet-era book, the author frequently mentions Canada&#8217;s communist parties!</figcaption></figure></div><blockquote><p><strong>Tip 14</strong>: Go to interviews anytime and anywhere. Never miss an opportunity to interview, especially if you&#8217;re comfortable and not actively looking for a job. It&#8217;s better to choose a job without rush or stress, so you can actually <em>choose</em> rather than settle for the first offer that comes along. This way, there&#8217;s less need to embellish, and you can be yourself. I saw a LinkedIn post from a guy at Google who asked his mentor about this. His mentor advised the same thing: It&#8217;s the employer&#8217;s job to provide a comfortable work environment and a competitive salary. If someone else offers you more, they&#8217;ll either try to match it to keep you or let you go if they no longer need you. So, everyone benefits. Of course, just make sure no one knows you&#8217;re doing it! :)</p></blockquote><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!wGLF!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb5a6818e-8130-4a52-8143-239a24fbdf02_652x1288.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!wGLF!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb5a6818e-8130-4a52-8143-239a24fbdf02_652x1288.png 424w, https://substackcdn.com/image/fetch/$s_!wGLF!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb5a6818e-8130-4a52-8143-239a24fbdf02_652x1288.png 848w, https://substackcdn.com/image/fetch/$s_!wGLF!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb5a6818e-8130-4a52-8143-239a24fbdf02_652x1288.png 1272w, https://substackcdn.com/image/fetch/$s_!wGLF!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb5a6818e-8130-4a52-8143-239a24fbdf02_652x1288.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!wGLF!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb5a6818e-8130-4a52-8143-239a24fbdf02_652x1288.png" width="652" height="1288" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/b5a6818e-8130-4a52-8143-239a24fbdf02_652x1288.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1288,&quot;width&quot;:652,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;&#1057;&#1072;&#1084;&#1099;&#1081; &#1094;&#1077;&#1085;&#1085;&#1099;&#1081; &#1087;&#1086;&#1089;&#1090; &#1074; Linkedin;)&quot;,&quot;title&quot;:&quot;&#1057;&#1072;&#1084;&#1099;&#1081; &#1094;&#1077;&#1085;&#1085;&#1099;&#1081; &#1087;&#1086;&#1089;&#1090; &#1074; Linkedin;)&quot;,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="&#1057;&#1072;&#1084;&#1099;&#1081; &#1094;&#1077;&#1085;&#1085;&#1099;&#1081; &#1087;&#1086;&#1089;&#1090; &#1074; Linkedin;)" title="&#1057;&#1072;&#1084;&#1099;&#1081; &#1094;&#1077;&#1085;&#1085;&#1099;&#1081; &#1087;&#1086;&#1089;&#1090; &#1074; Linkedin;)" srcset="https://substackcdn.com/image/fetch/$s_!wGLF!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb5a6818e-8130-4a52-8143-239a24fbdf02_652x1288.png 424w, https://substackcdn.com/image/fetch/$s_!wGLF!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb5a6818e-8130-4a52-8143-239a24fbdf02_652x1288.png 848w, https://substackcdn.com/image/fetch/$s_!wGLF!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb5a6818e-8130-4a52-8143-239a24fbdf02_652x1288.png 1272w, https://substackcdn.com/image/fetch/$s_!wGLF!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb5a6818e-8130-4a52-8143-239a24fbdf02_652x1288.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 most valuable post on LinkedIn ;)</figcaption></figure></div><h2><strong>Job Change &#8211; From Montenegro to Canada</strong></h2><blockquote><p><strong>Tip 15</strong>: If you&#8217;re preparing to relocate, start job hunting well in advance&#8212;ideally a year or at least 6 months ahead. Subscribe to weekly job listings, connect with people on LinkedIn, network, and introduce yourself. This will save you a lot of time and money down the line.</p></blockquote><p>I arrived in Canada, in Winnipeg, and started my new job at an insurance company within just five days, earning $75,000 CAD, which is about $4,000 a month. I already had an offer in hand, and they were waiting for me.</p><p>How did I get the offer remotely? You might guess - I used my own tips;)</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!LIYI!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe73aa277-4e77-43ac-ab83-523d6cec21a2_592x619.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!LIYI!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe73aa277-4e77-43ac-ab83-523d6cec21a2_592x619.png 424w, https://substackcdn.com/image/fetch/$s_!LIYI!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe73aa277-4e77-43ac-ab83-523d6cec21a2_592x619.png 848w, https://substackcdn.com/image/fetch/$s_!LIYI!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe73aa277-4e77-43ac-ab83-523d6cec21a2_592x619.png 1272w, https://substackcdn.com/image/fetch/$s_!LIYI!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe73aa277-4e77-43ac-ab83-523d6cec21a2_592x619.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!LIYI!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe73aa277-4e77-43ac-ab83-523d6cec21a2_592x619.png" width="592" height="619" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/e73aa277-4e77-43ac-ab83-523d6cec21a2_592x619.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:619,&quot;width&quot;:592,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;&#1054;&#1092;&#1080;&#1089; &#1082;&#1091;&#1073;&#1080;&#1082;. &#1042; &#1074;&#1099;&#1093;&#1086;&#1076;&#1085;&#1099;&#1077; &#1103; &#1088;&#1072;&#1073;&#1086;&#1090;&#1072;&#1083; &#1089;&#1074;&#1077;&#1088;&#1093;&#1091;&#1088;&#1086;&#1095;&#1085;&#1086; &#1079;&#1072; 2&#1102; &#1086;&#1087;&#1083;&#1072;&#1090;&#1091;, &#1095;&#1090;&#1086;&#1073;&#1099; &#1074;&#1099;&#1087;&#1083;&#1072;&#1090;&#1080;&#1090;&#1100; &#1085;&#1072;&#1096; &#1087;&#1077;&#1088;&#1074;&#1099;&#1081; &#1082;&#1088;&#1077;&#1076;&#1080;&#1090; &#1079;&#1072; Dodge Journey. &#1057;&#1099;&#1085;&#1072; &#1080;&#1085;&#1086;&#1075;&#1076;&#1072; &#1073;&#1088;&#1072;&#1083; &#1074; &#1086;&#1092;&#1080;&#1089; &#1087;&#1086;&#1080;&#1075;&#1088;&#1072;&#1090;&#1100; &#1088;&#1103;&#1076;&#1086;&#1084;. &quot;,&quot;title&quot;:&quot;&#1054;&#1092;&#1080;&#1089; &#1082;&#1091;&#1073;&#1080;&#1082;. &#1042; &#1074;&#1099;&#1093;&#1086;&#1076;&#1085;&#1099;&#1077; &#1103; &#1088;&#1072;&#1073;&#1086;&#1090;&#1072;&#1083; &#1089;&#1074;&#1077;&#1088;&#1093;&#1091;&#1088;&#1086;&#1095;&#1085;&#1086; &#1079;&#1072; 2&#1102; &#1086;&#1087;&#1083;&#1072;&#1090;&#1091;, &#1095;&#1090;&#1086;&#1073;&#1099; &#1074;&#1099;&#1087;&#1083;&#1072;&#1090;&#1080;&#1090;&#1100; &#1085;&#1072;&#1096; &#1087;&#1077;&#1088;&#1074;&#1099;&#1081; &#1082;&#1088;&#1077;&#1076;&#1080;&#1090; &#1079;&#1072; Dodge Journey. &#1057;&#1099;&#1085;&#1072; &#1080;&#1085;&#1086;&#1075;&#1076;&#1072; &#1073;&#1088;&#1072;&#1083; &#1074; &#1086;&#1092;&#1080;&#1089; &#1087;&#1086;&#1080;&#1075;&#1088;&#1072;&#1090;&#1100; &#1088;&#1103;&#1076;&#1086;&#1084;. &quot;,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="&#1054;&#1092;&#1080;&#1089; &#1082;&#1091;&#1073;&#1080;&#1082;. &#1042; &#1074;&#1099;&#1093;&#1086;&#1076;&#1085;&#1099;&#1077; &#1103; &#1088;&#1072;&#1073;&#1086;&#1090;&#1072;&#1083; &#1089;&#1074;&#1077;&#1088;&#1093;&#1091;&#1088;&#1086;&#1095;&#1085;&#1086; &#1079;&#1072; 2&#1102; &#1086;&#1087;&#1083;&#1072;&#1090;&#1091;, &#1095;&#1090;&#1086;&#1073;&#1099; &#1074;&#1099;&#1087;&#1083;&#1072;&#1090;&#1080;&#1090;&#1100; &#1085;&#1072;&#1096; &#1087;&#1077;&#1088;&#1074;&#1099;&#1081; &#1082;&#1088;&#1077;&#1076;&#1080;&#1090; &#1079;&#1072; Dodge Journey. &#1057;&#1099;&#1085;&#1072; &#1080;&#1085;&#1086;&#1075;&#1076;&#1072; &#1073;&#1088;&#1072;&#1083; &#1074; &#1086;&#1092;&#1080;&#1089; &#1087;&#1086;&#1080;&#1075;&#1088;&#1072;&#1090;&#1100; &#1088;&#1103;&#1076;&#1086;&#1084;. " title="&#1054;&#1092;&#1080;&#1089; &#1082;&#1091;&#1073;&#1080;&#1082;. &#1042; &#1074;&#1099;&#1093;&#1086;&#1076;&#1085;&#1099;&#1077; &#1103; &#1088;&#1072;&#1073;&#1086;&#1090;&#1072;&#1083; &#1089;&#1074;&#1077;&#1088;&#1093;&#1091;&#1088;&#1086;&#1095;&#1085;&#1086; &#1079;&#1072; 2&#1102; &#1086;&#1087;&#1083;&#1072;&#1090;&#1091;, &#1095;&#1090;&#1086;&#1073;&#1099; &#1074;&#1099;&#1087;&#1083;&#1072;&#1090;&#1080;&#1090;&#1100; &#1085;&#1072;&#1096; &#1087;&#1077;&#1088;&#1074;&#1099;&#1081; &#1082;&#1088;&#1077;&#1076;&#1080;&#1090; &#1079;&#1072; Dodge Journey. &#1057;&#1099;&#1085;&#1072; &#1080;&#1085;&#1086;&#1075;&#1076;&#1072; &#1073;&#1088;&#1072;&#1083; &#1074; &#1086;&#1092;&#1080;&#1089; &#1087;&#1086;&#1080;&#1075;&#1088;&#1072;&#1090;&#1100; &#1088;&#1103;&#1076;&#1086;&#1084;. " srcset="https://substackcdn.com/image/fetch/$s_!LIYI!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe73aa277-4e77-43ac-ab83-523d6cec21a2_592x619.png 424w, https://substackcdn.com/image/fetch/$s_!LIYI!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe73aa277-4e77-43ac-ab83-523d6cec21a2_592x619.png 848w, https://substackcdn.com/image/fetch/$s_!LIYI!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe73aa277-4e77-43ac-ab83-523d6cec21a2_592x619.png 1272w, https://substackcdn.com/image/fetch/$s_!LIYI!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe73aa277-4e77-43ac-ab83-523d6cec21a2_592x619.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">A cubicle office. On weekends, I worked overtime for double pay to help cover our first loan for a Dodge Journey. Sometimes, I&#8217;d bring my son to the office so he could play nearby.</figcaption></figure></div><p>How did I find a job even before arriving? The answer is simple: I used my own tips.</p><p>Here are some techniques that helped me:</p><ol><li><p>I subscribed to job alerts for my province on indeed.ca.</p></li><li><p>I created a resume with a fake local address and set up an IP phone with a Winnipeg area code that forwarded calls to my mobile. My goal was for HR to connect me with the hiring manager, and in the end, my plan worked.</p></li><li><p>Another life hack was to send a Slideshare <a href="https://www.slideshare.net/secret/JB5eHCWBW4i2fp#1">presentation</a> instead of a cover letter (which I find pretty pointless). Here&#8217;s an example, though it&#8217;s a bit dated. The main idea was not to showcase my experience and skills but to highlight the value I could add to the company. The key is to focus on the value you bring&#8212;identify industry issues, show that you&#8217;re aware of them, and outline potential solutions.</p></li></ol><p>Slideshare has a handy feature where you can keep a presentation private, accessible only via a direct link. It also provides web analytics tools, showing you the IP addresses and the number of times your presentation was viewed. This allows you to measure engagement effectively.</p><h2><strong>Job Change &#8211; From Insurance to Amazon</strong></h2><p>It became clear that Winnipeg wasn&#8217;t quite the Canada we had in mind. We needed to move to Vancouver or Toronto. Plus, I had some conflicts with colleagues.</p><blockquote><p><strong>Tip 16</strong>: Be cautious with jokes. My harmless jokes weren&#8217;t well-received by the team members due to difference of mentalities, who took offense. As a result, I found myself in difficult situations.</p></blockquote><p>I&#8217;m grateful to those colleagues for their attempts to get under my skin, as they pushed me to find a job at Amazon. I also had an offer from a local startup, SkipTheDishes, which is quite popular now. I reached out to the founders, went for a meeting, and even brought along my first published book. They offered me a role as Head of Analytics. I took some time to think about it and decided to keep exploring options&#8212;which, as it turned out, was the right choice.</p><p>Now, I can go into detail about the Amazon interview process. Today, I&#8217;m an interview expert, having conducted over 100 interviews at Amazon and completed related trainings. Back then, I knew nothing about the process and was lucky to get through.</p><blockquote><p><strong>Tip 17</strong>: If you&#8217;re job hunting, use the &#8220;carpet bombing&#8221; approach&#8212;apply to every relevant position and sort through the opportunities later. You might gain valuable negotiation and interview experience, which can help you land your dream job.</p></blockquote><p>I usually keep a spreadsheet where I track all the details:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Q8zA!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb68e4ffa-0615-473d-9178-0b5f60da986d_1419x1192.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Q8zA!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb68e4ffa-0615-473d-9178-0b5f60da986d_1419x1192.png 424w, https://substackcdn.com/image/fetch/$s_!Q8zA!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb68e4ffa-0615-473d-9178-0b5f60da986d_1419x1192.png 848w, https://substackcdn.com/image/fetch/$s_!Q8zA!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb68e4ffa-0615-473d-9178-0b5f60da986d_1419x1192.png 1272w, https://substackcdn.com/image/fetch/$s_!Q8zA!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb68e4ffa-0615-473d-9178-0b5f60da986d_1419x1192.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Q8zA!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb68e4ffa-0615-473d-9178-0b5f60da986d_1419x1192.png" width="1419" height="1192" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/b68e4ffa-0615-473d-9178-0b5f60da986d_1419x1192.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1192,&quot;width&quot;:1419,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;&#1055;&#1086;&#1080;&#1089;&#1082; &#1088;&#1072;&#1073;&#1086;&#1090;&#1099; &#1074; &#1050;&#1072;&#1085;&#1072;&#1076;&#1077;&quot;,&quot;title&quot;:&quot;&#1055;&#1086;&#1080;&#1089;&#1082; &#1088;&#1072;&#1073;&#1086;&#1090;&#1099; &#1074; &#1050;&#1072;&#1085;&#1072;&#1076;&#1077;&quot;,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="&#1055;&#1086;&#1080;&#1089;&#1082; &#1088;&#1072;&#1073;&#1086;&#1090;&#1099; &#1074; &#1050;&#1072;&#1085;&#1072;&#1076;&#1077;" title="&#1055;&#1086;&#1080;&#1089;&#1082; &#1088;&#1072;&#1073;&#1086;&#1090;&#1099; &#1074; &#1050;&#1072;&#1085;&#1072;&#1076;&#1077;" srcset="https://substackcdn.com/image/fetch/$s_!Q8zA!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb68e4ffa-0615-473d-9178-0b5f60da986d_1419x1192.png 424w, https://substackcdn.com/image/fetch/$s_!Q8zA!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb68e4ffa-0615-473d-9178-0b5f60da986d_1419x1192.png 848w, https://substackcdn.com/image/fetch/$s_!Q8zA!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb68e4ffa-0615-473d-9178-0b5f60da986d_1419x1192.png 1272w, https://substackcdn.com/image/fetch/$s_!Q8zA!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb68e4ffa-0615-473d-9178-0b5f60da986d_1419x1192.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">Job Hunting in Canada</figcaption></figure></div><p>I had decent experience, a couple of books published, a blog post, but job hunting isn&#8217;t a fast process. The main challenge is that each position attracts around 30-50-100 applicants (depending on the company). So, if your resume lands 81st in the list, the chances of them noticing such a valuable candidate are slim. That&#8217;s why networking, a quick response time, and a bit of luck are crucial to getting your chance.</p><p>I had examples with Google where the recruiter simply vanished because we couldn&#8217;t agree on a time. For them, it&#8217;s simple&#8212;they&#8217;re willing to lose a good candidate because, in the end, another strong candidate will come along. Landing a job at a FAANG company is almost like winning the lottery. That&#8217;s why finding unconventional ways in is essential.</p><p>I got lucky and received an interview invitation.</p><blockquote><p><strong>Tip 18</strong>: You need a competitive advantage. What makes you better than other candidates? This can be quickly demonstrated through additional assets&#8212;a blog, conference talks, meetups, a YouTube channel. I had books and a blog post, and at Amazon, they valued these artifacts.</p></blockquote><h2><strong>Interviewing at Amazon</strong></h2><p>Amazon <a href="https://www.amazon.jobs/content/en/our-workplace/leadership-principles">Leadership Principles</a> are now part of my DNA.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!rZll!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0af79546-65ef-4e7e-b577-fc92dec62bc5_678x445.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!rZll!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0af79546-65ef-4e7e-b577-fc92dec62bc5_678x445.png 424w, https://substackcdn.com/image/fetch/$s_!rZll!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0af79546-65ef-4e7e-b577-fc92dec62bc5_678x445.png 848w, https://substackcdn.com/image/fetch/$s_!rZll!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0af79546-65ef-4e7e-b577-fc92dec62bc5_678x445.png 1272w, https://substackcdn.com/image/fetch/$s_!rZll!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0af79546-65ef-4e7e-b577-fc92dec62bc5_678x445.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!rZll!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0af79546-65ef-4e7e-b577-fc92dec62bc5_678x445.png" width="678" height="445" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/0af79546-65ef-4e7e-b577-fc92dec62bc5_678x445.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:445,&quot;width&quot;:678,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!rZll!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0af79546-65ef-4e7e-b577-fc92dec62bc5_678x445.png 424w, https://substackcdn.com/image/fetch/$s_!rZll!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0af79546-65ef-4e7e-b577-fc92dec62bc5_678x445.png 848w, https://substackcdn.com/image/fetch/$s_!rZll!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0af79546-65ef-4e7e-b577-fc92dec62bc5_678x445.png 1272w, https://substackcdn.com/image/fetch/$s_!rZll!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0af79546-65ef-4e7e-b577-fc92dec62bc5_678x445.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 interview process typically goes like this:</p><ol><li><p><strong>Phone Screen</strong> &#8211; They call to ask various questions, both technical and non-technical, to see how well you fit.</p></li><li><p><strong>Second Phone Screen</strong> &#8211; This may be with the hiring manager, and they might also send a test assignment. I was so proactive that I completed the test in three different ways and even created dashboards for them, though they hadn&#8217;t asked for it. Afterward, there was a follow-up call about the test.</p></li><li><p><strong>On-Site Interview</strong> &#8211; If you pass the previous stage, you&#8217;ll be invited to an on-site interview (in pre-COVID times). They bought me tickets and scheduled 5-6 interviews, including a lunch with the team.</p></li></ol><p>For the interview, I brought along my signature presentation (my cover letter on Slideshare). The technical director immediately told me it wasn&#8217;t necessary and began asking questions, taking notes on my answers. Each interviewer did the same, sometimes asking repeated questions.</p><p>Now, I understand what this was about. The interview itself has two main parts:</p><ul><li><p><strong>Behavioural Interview</strong> &#8211; Assessing your alignment with Amazon Leadership Principles.</p></li><li><p><strong>Functional Interview</strong> &#8211; Evaluating your technical skills.</p></li></ul><p>The goal of the behavioural interview is to see how well you embody Amazon&#8217;s 14 Leadership Principles. Typically, each interviewer focuses on two principles. They&#8217;ll select questions from a &#8220;question bank,&#8221; starting with 2-3 questions to initiate the discussion, then write a report on how well you meet each principle. The aim is to &#8220;meet the bar&#8221;&#8212;meaning you should perform as well as at least 50% of those in this role.</p><p>Examples of my questions:</p><blockquote><p><strong>Amazon LP &#8211; Ownership</strong></p><p>Q: Tell me about a time when you took on something significant outside your area of responsibility. Why was it important? What was the outcome?</p><p><strong>Amazon LP &#8211; Insist on the Highest Standards</strong></p><p>Q: What measures have you personally put in place to ensure performance improvement? What targets and standards were achieved?</p></blockquote><p>The best way to answer these questions is with the <a href="https://capd.mit.edu/resources/the-star-method-for-behavioral-interviews/">STAR format</a>:</p><ul><li><p><strong>Situation</strong> &#8211; The context or problem</p></li><li><p><strong>Task</strong> &#8211; The task or challenge</p></li><li><p><strong>Action</strong> &#8211; The actions you took</p></li><li><p><strong>Result</strong> &#8211; The outcome</p></li></ul><p>For the functional interview, they ask technical questions, and there might be a coding session. They asked me a lot about marketing analytics and data warehousing solutions, where my web analytics experience proved useful.</p><p>A week later, I got a call with an offer. I didn&#8217;t dare negotiate. The salary was low by Amazon&#8217;s standards&#8212;$90,000 CAD per year, plus a sign-up bonus and 80 Amazon shares over 4 years (worth $600 each at the time, totalling $48,000 CAD over 4 years). I was thrilled, and we moved to British Columbia. They offered me Level 5 (L5).</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!dHW2!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fafb6250b-3bb6-4844-b058-7b93d24fbb19_1200x725.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!dHW2!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fafb6250b-3bb6-4844-b058-7b93d24fbb19_1200x725.png 424w, https://substackcdn.com/image/fetch/$s_!dHW2!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fafb6250b-3bb6-4844-b058-7b93d24fbb19_1200x725.png 848w, https://substackcdn.com/image/fetch/$s_!dHW2!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fafb6250b-3bb6-4844-b058-7b93d24fbb19_1200x725.png 1272w, https://substackcdn.com/image/fetch/$s_!dHW2!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fafb6250b-3bb6-4844-b058-7b93d24fbb19_1200x725.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!dHW2!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fafb6250b-3bb6-4844-b058-7b93d24fbb19_1200x725.png" width="1200" height="725" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/afb6250b-3bb6-4844-b058-7b93d24fbb19_1200x725.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:725,&quot;width&quot;:1200,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;levels.fyi&quot;,&quot;title&quot;:&quot;levels.fyi&quot;,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="levels.fyi" title="levels.fyi" srcset="https://substackcdn.com/image/fetch/$s_!dHW2!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fafb6250b-3bb6-4844-b058-7b93d24fbb19_1200x725.png 424w, https://substackcdn.com/image/fetch/$s_!dHW2!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fafb6250b-3bb6-4844-b058-7b93d24fbb19_1200x725.png 848w, https://substackcdn.com/image/fetch/$s_!dHW2!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fafb6250b-3bb6-4844-b058-7b93d24fbb19_1200x725.png 1272w, https://substackcdn.com/image/fetch/$s_!dHW2!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fafb6250b-3bb6-4844-b058-7b93d24fbb19_1200x725.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">levels.fyi</figcaption></figure></div><p><strong>L5 is considered mid-level.</strong> For my first two years, I worked extremely hard, hoping that good performance would lead to a promotion and a salary increase. I was naive.</p><blockquote><p><strong>Tip 19</strong>: This one&#8217;s obvious, and it&#8217;s something we all know but rarely follow: From almost your first day, you need to define clear goals tied to a promotion. These goals may be for the next 12-18 months, but at Amazon, that&#8217;s the only way. In my case, I spent two years grinding away, only to be told by my manager, when I asked about a promotion, that I needed to have set these goals in advance.</p></blockquote><p>At Amazon, there&#8217;s a <strong>performance review</strong> once a year, around February. Before this meeting, you need to request feedback from colleagues, who will evaluate you based on two criteria:</p><ol><li><p><strong>Your Super Powers</strong> (read: Leadership Principles) that you&#8217;ve demonstrated.</p></li><li><p><strong>Your Growth Areas</strong> (read: Leadership Principles) that you need to improve.</p></li></ol><p>Based on this feedback, your salary may increase by 1-4%. Your manager will explain how they fought hard to make this happen. This increase, pre-tax, might be enough for an extra cappuccino each week.</p><p>If you&#8217;re lucky, you might also receive additional Amazon stock. Over five years, I received about 25 extra shares beyond the 80 I got on my first day. Of course, this is low&#8212;20-40 shares a year is a better benchmark. This largely depends on your manager.</p><p>For all five years, whenever I asked, &#8220;Why is my salary growing so slowly?&#8221; the answer was always that Amazon stock had gone up significantly.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!004C!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F18cbd08a-480d-4de0-9299-e5a60d70c950_1372x816.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!004C!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F18cbd08a-480d-4de0-9299-e5a60d70c950_1372x816.png 424w, https://substackcdn.com/image/fetch/$s_!004C!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F18cbd08a-480d-4de0-9299-e5a60d70c950_1372x816.png 848w, https://substackcdn.com/image/fetch/$s_!004C!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F18cbd08a-480d-4de0-9299-e5a60d70c950_1372x816.png 1272w, https://substackcdn.com/image/fetch/$s_!004C!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F18cbd08a-480d-4de0-9299-e5a60d70c950_1372x816.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!004C!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F18cbd08a-480d-4de0-9299-e5a60d70c950_1372x816.png" width="1372" height="816" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/18cbd08a-480d-4de0-9299-e5a60d70c950_1372x816.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:816,&quot;width&quot;:1372,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!004C!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F18cbd08a-480d-4de0-9299-e5a60d70c950_1372x816.png 424w, https://substackcdn.com/image/fetch/$s_!004C!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F18cbd08a-480d-4de0-9299-e5a60d70c950_1372x816.png 848w, https://substackcdn.com/image/fetch/$s_!004C!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F18cbd08a-480d-4de0-9299-e5a60d70c950_1372x816.png 1272w, https://substackcdn.com/image/fetch/$s_!004C!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F18cbd08a-480d-4de0-9299-e5a60d70c950_1372x816.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 stock did indeed grow significantly from its initial value. But I fundamentally disagreed with the company&#8217;s approach. I received the stock on my first day, and even if I&#8217;d only put in minimal effort, I still would have received it. Meanwhile, for my actual performance, overtime, and dedication to the job, I got only a 2-4% raise&#8212;essentially just an inflation adjustment.</p><p>To get promoted at Amazon, you have to complete several documents, and 60% of the effort must come from your manager. It&#8217;s a strategic game that isn&#8217;t closely tied to your technical skills and your delivery. That&#8217;s why it&#8217;s so important (as mentioned in Tip 19) to plan your strategy in advance and discuss it with your manager. The company&#8217;s goal is to get the most out of you for the least cost.</p><blockquote><p><strong>Tip 20</strong>: In 95% of cases, your salary will remain close to what you initially agreed upon. My salary at Amazon grew by just 10% over five years. Even if I&#8217;d been promoted to L6 (the next level), it would only have grown by 10-15%, which is still relatively low. As stated in Tip 4, if you want growth, it&#8217;s best to change employers, but make sure you have a solid case and at least 12 months of experience in your current role.</p></blockquote><h2><strong>Changing Teams at Amazon</strong></h2><p>Amazon is a vast corporation with countless teams and business areas. You have the option to transfer to any team worldwide. Many American colleagues moved to Europe, and vice versa&#8212;Europe to the U.S. and Canada.</p><p>After 2.5 years in one team, I&#8217;d had enough of my manager&#8217;s empty promises of promotion and decided to look for opportunities in other teams.</p><blockquote><p><strong>Tip 21</strong>: This one&#8217;s crucial. We often tend to blame others for our failures&#8212;thinking, &#8220;Everyone else is incompetent; I&#8217;m the only smart one.&#8221; There are countless examples of this. It&#8217;s a terrible mindset to have, and it&#8217;s best to avoid this way of thinking. I changed my mindset, learnt to take responsibility for my actions, and stoped considering myself smarter than others. </p><p>For example, I fully understand that my inability to get promoted at Amazon was my own failure. So, never think of yourself as better than others. If you know something better, help others understand it. If someone makes a mistake, there&#8217;s a reason behind it&#8212;help them overcome the issue. But never assume you&#8217;re superior; it&#8217;ll make life easier and help you achieve your goals.</p></blockquote><p>I was on the West Coast and found a data engineering position on the East Coast.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!qe1G!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff2d29f6f-24d2-4771-b6bf-1c18b704d491_934x1182.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!qe1G!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff2d29f6f-24d2-4771-b6bf-1c18b704d491_934x1182.png 424w, https://substackcdn.com/image/fetch/$s_!qe1G!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff2d29f6f-24d2-4771-b6bf-1c18b704d491_934x1182.png 848w, https://substackcdn.com/image/fetch/$s_!qe1G!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff2d29f6f-24d2-4771-b6bf-1c18b704d491_934x1182.png 1272w, https://substackcdn.com/image/fetch/$s_!qe1G!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff2d29f6f-24d2-4771-b6bf-1c18b704d491_934x1182.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!qe1G!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff2d29f6f-24d2-4771-b6bf-1c18b704d491_934x1182.png" width="934" height="1182" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/f2d29f6f-24d2-4771-b6bf-1c18b704d491_934x1182.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1182,&quot;width&quot;:934,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;&#1042;&#1080;&#1076; &#1080;&#1079; Cambridge, MA &#1085;&#1072; Boston, MA&quot;,&quot;title&quot;:&quot;&#1042;&#1080;&#1076; &#1080;&#1079; Cambridge, MA &#1085;&#1072; Boston, MA&quot;,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="&#1042;&#1080;&#1076; &#1080;&#1079; Cambridge, MA &#1085;&#1072; Boston, MA" title="&#1042;&#1080;&#1076; &#1080;&#1079; Cambridge, MA &#1085;&#1072; Boston, MA" srcset="https://substackcdn.com/image/fetch/$s_!qe1G!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff2d29f6f-24d2-4771-b6bf-1c18b704d491_934x1182.png 424w, https://substackcdn.com/image/fetch/$s_!qe1G!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff2d29f6f-24d2-4771-b6bf-1c18b704d491_934x1182.png 848w, https://substackcdn.com/image/fetch/$s_!qe1G!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff2d29f6f-24d2-4771-b6bf-1c18b704d491_934x1182.png 1272w, https://substackcdn.com/image/fetch/$s_!qe1G!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff2d29f6f-24d2-4771-b6bf-1c18b704d491_934x1182.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 view from Cambridge, MA, overlooking Boston, MA.</figcaption></figure></div><p>An interesting paradox: the salary isn&#8217;t particularly high, but there are other benefits. For instance, in the summer, I joined the Amazon Alexa team based in Cambridge, MA (turns out there&#8217;s a Cambridge in the U.S. too). It&#8217;s home to MIT and Harvard, and if you cross the bridge, you&#8217;re in Boston.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!L0Tj!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc0f1a354-2da2-43cc-9457-9a805821c833_592x591.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!L0Tj!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc0f1a354-2da2-43cc-9457-9a805821c833_592x591.png 424w, https://substackcdn.com/image/fetch/$s_!L0Tj!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc0f1a354-2da2-43cc-9457-9a805821c833_592x591.png 848w, https://substackcdn.com/image/fetch/$s_!L0Tj!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc0f1a354-2da2-43cc-9457-9a805821c833_592x591.png 1272w, https://substackcdn.com/image/fetch/$s_!L0Tj!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc0f1a354-2da2-43cc-9457-9a805821c833_592x591.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!L0Tj!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc0f1a354-2da2-43cc-9457-9a805821c833_592x591.png" width="592" height="591" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c0f1a354-2da2-43cc-9457-9a805821c833_592x591.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:591,&quot;width&quot;:592,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;&#1045;&#1097;&#1077; &#1086;&#1076;&#1085;&#1086; #dimaworkplace&quot;,&quot;title&quot;:&quot;&#1045;&#1097;&#1077; &#1086;&#1076;&#1085;&#1086; #dimaworkplace&quot;,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="&#1045;&#1097;&#1077; &#1086;&#1076;&#1085;&#1086; #dimaworkplace" title="&#1045;&#1097;&#1077; &#1086;&#1076;&#1085;&#1086; #dimaworkplace" srcset="https://substackcdn.com/image/fetch/$s_!L0Tj!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc0f1a354-2da2-43cc-9457-9a805821c833_592x591.png 424w, https://substackcdn.com/image/fetch/$s_!L0Tj!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc0f1a354-2da2-43cc-9457-9a805821c833_592x591.png 848w, https://substackcdn.com/image/fetch/$s_!L0Tj!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc0f1a354-2da2-43cc-9457-9a805821c833_592x591.png 1272w, https://substackcdn.com/image/fetch/$s_!L0Tj!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc0f1a354-2da2-43cc-9457-9a805821c833_592x591.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">#dimaworkplace</figcaption></figure></div><p>Our whole family flew to Boston for two months so I could get to know the team. They rented us an apartment just 5 minutes from the office and MIT, costing $12,000 per month. They also covered all our food and my plane ticket. Spending the summer in Boston with family&#8212;priceless.</p><p>Throughout the year, I made a few more trips to visit them, staying in Airbnb rentals in Boston&#8217;s historic center.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!wDYX!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F81b7cac4-1837-4dd7-bc8e-6ab89fea3ea1_1184x1174.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!wDYX!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F81b7cac4-1837-4dd7-bc8e-6ab89fea3ea1_1184x1174.png 424w, https://substackcdn.com/image/fetch/$s_!wDYX!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F81b7cac4-1837-4dd7-bc8e-6ab89fea3ea1_1184x1174.png 848w, https://substackcdn.com/image/fetch/$s_!wDYX!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F81b7cac4-1837-4dd7-bc8e-6ab89fea3ea1_1184x1174.png 1272w, https://substackcdn.com/image/fetch/$s_!wDYX!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F81b7cac4-1837-4dd7-bc8e-6ab89fea3ea1_1184x1174.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!wDYX!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F81b7cac4-1837-4dd7-bc8e-6ab89fea3ea1_1184x1174.png" width="1184" height="1174" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/81b7cac4-1837-4dd7-bc8e-6ab89fea3ea1_1184x1174.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1174,&quot;width&quot;:1184,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Beacon Hill - &#1089;&#1072;&#1084;&#1099;&#1081; &#1089;&#1090;&#1072;&#1088;&#1099;&#1081; &#1088;&#1072;&#1081;&#1086;&#1085; &#1041;&#1086;&#1089;&#1090;&#1086;&#1085;&#1072;&quot;,&quot;title&quot;:&quot;Beacon Hill - &#1089;&#1072;&#1084;&#1099;&#1081; &#1089;&#1090;&#1072;&#1088;&#1099;&#1081; &#1088;&#1072;&#1081;&#1086;&#1085; &#1041;&#1086;&#1089;&#1090;&#1086;&#1085;&#1072;&quot;,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Beacon Hill - &#1089;&#1072;&#1084;&#1099;&#1081; &#1089;&#1090;&#1072;&#1088;&#1099;&#1081; &#1088;&#1072;&#1081;&#1086;&#1085; &#1041;&#1086;&#1089;&#1090;&#1086;&#1085;&#1072;" title="Beacon Hill - &#1089;&#1072;&#1084;&#1099;&#1081; &#1089;&#1090;&#1072;&#1088;&#1099;&#1081; &#1088;&#1072;&#1081;&#1086;&#1085; &#1041;&#1086;&#1089;&#1090;&#1086;&#1085;&#1072;" srcset="https://substackcdn.com/image/fetch/$s_!wDYX!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F81b7cac4-1837-4dd7-bc8e-6ab89fea3ea1_1184x1174.png 424w, https://substackcdn.com/image/fetch/$s_!wDYX!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F81b7cac4-1837-4dd7-bc8e-6ab89fea3ea1_1184x1174.png 848w, https://substackcdn.com/image/fetch/$s_!wDYX!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F81b7cac4-1837-4dd7-bc8e-6ab89fea3ea1_1184x1174.png 1272w, https://substackcdn.com/image/fetch/$s_!wDYX!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F81b7cac4-1837-4dd7-bc8e-6ab89fea3ea1_1184x1174.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">Beacon Hill&#8212;the oldest neighborhood in Boston.</figcaption></figure></div><p>Let&#8217;s check the next set of Tips!</p><p>In addition to Boston, we drove to Seattle every month as a family for Amazon conferences, meetings with colleagues, and other events. As usual, everything was top-notch.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!bVAE!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcf5d5f4e-53b2-41a5-af1a-e4dd13f1440a_950x1174.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!bVAE!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcf5d5f4e-53b2-41a5-af1a-e4dd13f1440a_950x1174.png 424w, https://substackcdn.com/image/fetch/$s_!bVAE!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcf5d5f4e-53b2-41a5-af1a-e4dd13f1440a_950x1174.png 848w, https://substackcdn.com/image/fetch/$s_!bVAE!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcf5d5f4e-53b2-41a5-af1a-e4dd13f1440a_950x1174.png 1272w, https://substackcdn.com/image/fetch/$s_!bVAE!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcf5d5f4e-53b2-41a5-af1a-e4dd13f1440a_950x1174.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!bVAE!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcf5d5f4e-53b2-41a5-af1a-e4dd13f1440a_950x1174.png" width="950" height="1174" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/cf5d5f4e-53b2-41a5-af1a-e4dd13f1440a_950x1174.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1174,&quot;width&quot;:950,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1880259,&quot;alt&quot;:&quot;&#1053;&#1086;&#1095;&#1085;&#1086;&#1081; &#1057;&#1080;&#1101;&#1090;&#1083;&quot;,&quot;title&quot;:&quot;&#1053;&#1086;&#1095;&#1085;&#1086;&#1081; &#1057;&#1080;&#1101;&#1090;&#1083;&quot;,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="&#1053;&#1086;&#1095;&#1085;&#1086;&#1081; &#1057;&#1080;&#1101;&#1090;&#1083;" title="&#1053;&#1086;&#1095;&#1085;&#1086;&#1081; &#1057;&#1080;&#1101;&#1090;&#1083;" srcset="https://substackcdn.com/image/fetch/$s_!bVAE!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcf5d5f4e-53b2-41a5-af1a-e4dd13f1440a_950x1174.png 424w, https://substackcdn.com/image/fetch/$s_!bVAE!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcf5d5f4e-53b2-41a5-af1a-e4dd13f1440a_950x1174.png 848w, https://substackcdn.com/image/fetch/$s_!bVAE!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcf5d5f4e-53b2-41a5-af1a-e4dd13f1440a_950x1174.png 1272w, https://substackcdn.com/image/fetch/$s_!bVAE!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcf5d5f4e-53b2-41a5-af1a-e4dd13f1440a_950x1174.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">Seattle at night.</figcaption></figure></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!sShI!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faf24317d-fe78-4a8c-9562-39a3cd494b76_869x896.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!sShI!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faf24317d-fe78-4a8c-9562-39a3cd494b76_869x896.jpeg 424w, https://substackcdn.com/image/fetch/$s_!sShI!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faf24317d-fe78-4a8c-9562-39a3cd494b76_869x896.jpeg 848w, https://substackcdn.com/image/fetch/$s_!sShI!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faf24317d-fe78-4a8c-9562-39a3cd494b76_869x896.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!sShI!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faf24317d-fe78-4a8c-9562-39a3cd494b76_869x896.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!sShI!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faf24317d-fe78-4a8c-9562-39a3cd494b76_869x896.jpeg" width="869" height="896" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/af24317d-fe78-4a8c-9562-39a3cd494b76_869x896.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:896,&quot;width&quot;:869,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;&#1052;&#1086;&#1080; &#1079;&#1085;&#1072;&#1095;&#1082;&#1080; &#1080; communities &#1080;&#1079; &#1083;&#1080;&#1095;&#1085;&#1086;&#1075;&#1086; &#1082;&#1072;&#1073;&#1080;&#1085;&#1077;&#1090;&#1072; &#1040;&#1084;&#1072;&#1079;&#1086;&#1085;, &#1085;&#1077;&#1082;&#1086;&#1090;&#1086;&#1088;&#1099;&#1077; &#1103; &#1089;&#1072;&#1084; &#1089;&#1086;&#1079;&#1076;&#1072;&#1083;. &#1053;&#1072;&#1080;&#1073;&#1086;&#1083;&#1077;&#1077; &#1094;&#1077;&#1085;&#1085;&#1099;&#1077; &#1076;&#1083;&#1103; &#1084;&#1077;&#1085;&#1103; &#1101;&#1090;&#1086; &#1079;&#1085;&#1072;&#1095;&#1082;&#1080; \&quot;Speaker\&quot;.&quot;,&quot;title&quot;:&quot;&#1052;&#1086;&#1080; &#1079;&#1085;&#1072;&#1095;&#1082;&#1080; &#1080; communities &#1080;&#1079; &#1083;&#1080;&#1095;&#1085;&#1086;&#1075;&#1086; &#1082;&#1072;&#1073;&#1080;&#1085;&#1077;&#1090;&#1072; &#1040;&#1084;&#1072;&#1079;&#1086;&#1085;, &#1085;&#1077;&#1082;&#1086;&#1090;&#1086;&#1088;&#1099;&#1077; &#1103; &#1089;&#1072;&#1084; &#1089;&#1086;&#1079;&#1076;&#1072;&#1083;. &#1053;&#1072;&#1080;&#1073;&#1086;&#1083;&#1077;&#1077; &#1094;&#1077;&#1085;&#1085;&#1099;&#1077; &#1076;&#1083;&#1103; &#1084;&#1077;&#1085;&#1103; &#1101;&#1090;&#1086; &#1079;&#1085;&#1072;&#1095;&#1082;&#1080; \&quot;Speaker\&quot;.&quot;,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="&#1052;&#1086;&#1080; &#1079;&#1085;&#1072;&#1095;&#1082;&#1080; &#1080; communities &#1080;&#1079; &#1083;&#1080;&#1095;&#1085;&#1086;&#1075;&#1086; &#1082;&#1072;&#1073;&#1080;&#1085;&#1077;&#1090;&#1072; &#1040;&#1084;&#1072;&#1079;&#1086;&#1085;, &#1085;&#1077;&#1082;&#1086;&#1090;&#1086;&#1088;&#1099;&#1077; &#1103; &#1089;&#1072;&#1084; &#1089;&#1086;&#1079;&#1076;&#1072;&#1083;. &#1053;&#1072;&#1080;&#1073;&#1086;&#1083;&#1077;&#1077; &#1094;&#1077;&#1085;&#1085;&#1099;&#1077; &#1076;&#1083;&#1103; &#1084;&#1077;&#1085;&#1103; &#1101;&#1090;&#1086; &#1079;&#1085;&#1072;&#1095;&#1082;&#1080; &quot;Speaker&quot;." title="&#1052;&#1086;&#1080; &#1079;&#1085;&#1072;&#1095;&#1082;&#1080; &#1080; communities &#1080;&#1079; &#1083;&#1080;&#1095;&#1085;&#1086;&#1075;&#1086; &#1082;&#1072;&#1073;&#1080;&#1085;&#1077;&#1090;&#1072; &#1040;&#1084;&#1072;&#1079;&#1086;&#1085;, &#1085;&#1077;&#1082;&#1086;&#1090;&#1086;&#1088;&#1099;&#1077; &#1103; &#1089;&#1072;&#1084; &#1089;&#1086;&#1079;&#1076;&#1072;&#1083;. &#1053;&#1072;&#1080;&#1073;&#1086;&#1083;&#1077;&#1077; &#1094;&#1077;&#1085;&#1085;&#1099;&#1077; &#1076;&#1083;&#1103; &#1084;&#1077;&#1085;&#1103; &#1101;&#1090;&#1086; &#1079;&#1085;&#1072;&#1095;&#1082;&#1080; &quot;Speaker&quot;." srcset="https://substackcdn.com/image/fetch/$s_!sShI!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faf24317d-fe78-4a8c-9562-39a3cd494b76_869x896.jpeg 424w, https://substackcdn.com/image/fetch/$s_!sShI!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faf24317d-fe78-4a8c-9562-39a3cd494b76_869x896.jpeg 848w, https://substackcdn.com/image/fetch/$s_!sShI!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faf24317d-fe78-4a8c-9562-39a3cd494b76_869x896.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!sShI!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faf24317d-fe78-4a8c-9562-39a3cd494b76_869x896.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">My badges and communities from my Amazon profile&#8212;some of which I created myself. The most valuable ones to me are the &#8220;Speaker&#8221; badges.</figcaption></figure></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Ihp2!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F700f9061-971e-45fb-8fde-b6725a827ac0_1192x1266.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Ihp2!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F700f9061-971e-45fb-8fde-b6725a827ac0_1192x1266.png 424w, https://substackcdn.com/image/fetch/$s_!Ihp2!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F700f9061-971e-45fb-8fde-b6725a827ac0_1192x1266.png 848w, https://substackcdn.com/image/fetch/$s_!Ihp2!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F700f9061-971e-45fb-8fde-b6725a827ac0_1192x1266.png 1272w, https://substackcdn.com/image/fetch/$s_!Ihp2!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F700f9061-971e-45fb-8fde-b6725a827ac0_1192x1266.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Ihp2!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F700f9061-971e-45fb-8fde-b6725a827ac0_1192x1266.png" width="1192" height="1266" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/700f9061-971e-45fb-8fde-b6725a827ac0_1192x1266.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1266,&quot;width&quot;:1192,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;&#1055;&#1086; &#1087;&#1091;&#1090;&#1080; &#1074; &#1041;&#1086;&#1089;&#1090;&#1086;&#1085; &#1085;&#1072; &#1082;&#1086;&#1085;&#1092;&#1077;&#1088;&#1077;&#1085;&#1094;&#1080;&#1102; EDW2019&quot;,&quot;title&quot;:&quot;&#1055;&#1086; &#1087;&#1091;&#1090;&#1080; &#1074; &#1041;&#1086;&#1089;&#1090;&#1086;&#1085; &#1085;&#1072; &#1082;&#1086;&#1085;&#1092;&#1077;&#1088;&#1077;&#1085;&#1094;&#1080;&#1102; EDW2019&quot;,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="&#1055;&#1086; &#1087;&#1091;&#1090;&#1080; &#1074; &#1041;&#1086;&#1089;&#1090;&#1086;&#1085; &#1085;&#1072; &#1082;&#1086;&#1085;&#1092;&#1077;&#1088;&#1077;&#1085;&#1094;&#1080;&#1102; EDW2019" title="&#1055;&#1086; &#1087;&#1091;&#1090;&#1080; &#1074; &#1041;&#1086;&#1089;&#1090;&#1086;&#1085; &#1085;&#1072; &#1082;&#1086;&#1085;&#1092;&#1077;&#1088;&#1077;&#1085;&#1094;&#1080;&#1102; EDW2019" srcset="https://substackcdn.com/image/fetch/$s_!Ihp2!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F700f9061-971e-45fb-8fde-b6725a827ac0_1192x1266.png 424w, https://substackcdn.com/image/fetch/$s_!Ihp2!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F700f9061-971e-45fb-8fde-b6725a827ac0_1192x1266.png 848w, https://substackcdn.com/image/fetch/$s_!Ihp2!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F700f9061-971e-45fb-8fde-b6725a827ac0_1192x1266.png 1272w, https://substackcdn.com/image/fetch/$s_!Ihp2!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F700f9061-971e-45fb-8fde-b6725a827ac0_1192x1266.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">On the way to Boston for the EDW2019 conference.</figcaption></figure></div><p>By the way, I first encountered Amazon Alexa when speaking at the Enterprise Data World conference in Boston. It was my second time presenting at this conference; the first was in sunny San Diego. This time, however, it was early March and freezing cold. Speaking at the conference only grants a free ticket. The six-day conference costs $3,500, and speakers attend free but cover their own flights and hotel. I booked a tiny Airbnb room for $100 per night&#8212;a 2x2 meter space.</p><blockquote><p><strong>Tip 22</strong>: I may have mentioned this before, but I&#8217;ll say it again! If you&#8217;re serious about your career, say &#8220;yes&#8221; to every possible opportunity. It was uncomfortable for me for the first few years, but it&#8217;s become easier over time. Set yourself a goal&#8212;to speak at a meetup, user group, apply for a conference, or share your experience on Surfalytics.com!</p></blockquote><p>Besides conferences, I enjoy doing other things. For instance, I led an Amazon Future Engineer Hour of Code session for my son&#8217;s 2nd-grade class, volunteered at a university, and spoke at a high school. I did everything I could. When people asked, &#8220;Why?&#8221; my answer was that I thought it might come in handy. Every opportunity opens doors to new connections and experiences. If you don&#8217;t put yourself out there, nothing will happen.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!yHHM!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F252808f1-d552-4fb5-aebe-58e7773717bc_1178x1122.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!yHHM!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F252808f1-d552-4fb5-aebe-58e7773717bc_1178x1122.png 424w, https://substackcdn.com/image/fetch/$s_!yHHM!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F252808f1-d552-4fb5-aebe-58e7773717bc_1178x1122.png 848w, https://substackcdn.com/image/fetch/$s_!yHHM!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F252808f1-d552-4fb5-aebe-58e7773717bc_1178x1122.png 1272w, https://substackcdn.com/image/fetch/$s_!yHHM!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F252808f1-d552-4fb5-aebe-58e7773717bc_1178x1122.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!yHHM!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F252808f1-d552-4fb5-aebe-58e7773717bc_1178x1122.png" width="1178" height="1122" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/252808f1-d552-4fb5-aebe-58e7773717bc_1178x1122.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1122,&quot;width&quot;:1178,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;&#1056;&#1072;&#1089;&#1089;&#1082;&#1072;&#1079;&#1099;&#1074;&#1072;&#1102; &#1087;&#1088;&#1086; &#1088;&#1086;&#1083;&#1100; &#1076;&#1072;&#1085;&#1085;&#1099;&#1093; &#1076;&#1083;&#1103; 1&#1075;&#1086; &#1082;&#1091;&#1088;&#1089;&#1072; Computer Science&quot;,&quot;title&quot;:&quot;&#1056;&#1072;&#1089;&#1089;&#1082;&#1072;&#1079;&#1099;&#1074;&#1072;&#1102; &#1087;&#1088;&#1086; &#1088;&#1086;&#1083;&#1100; &#1076;&#1072;&#1085;&#1085;&#1099;&#1093; &#1076;&#1083;&#1103; 1&#1075;&#1086; &#1082;&#1091;&#1088;&#1089;&#1072; Computer Science&quot;,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="&#1056;&#1072;&#1089;&#1089;&#1082;&#1072;&#1079;&#1099;&#1074;&#1072;&#1102; &#1087;&#1088;&#1086; &#1088;&#1086;&#1083;&#1100; &#1076;&#1072;&#1085;&#1085;&#1099;&#1093; &#1076;&#1083;&#1103; 1&#1075;&#1086; &#1082;&#1091;&#1088;&#1089;&#1072; Computer Science" title="&#1056;&#1072;&#1089;&#1089;&#1082;&#1072;&#1079;&#1099;&#1074;&#1072;&#1102; &#1087;&#1088;&#1086; &#1088;&#1086;&#1083;&#1100; &#1076;&#1072;&#1085;&#1085;&#1099;&#1093; &#1076;&#1083;&#1103; 1&#1075;&#1086; &#1082;&#1091;&#1088;&#1089;&#1072; Computer Science" srcset="https://substackcdn.com/image/fetch/$s_!yHHM!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F252808f1-d552-4fb5-aebe-58e7773717bc_1178x1122.png 424w, https://substackcdn.com/image/fetch/$s_!yHHM!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F252808f1-d552-4fb5-aebe-58e7773717bc_1178x1122.png 848w, https://substackcdn.com/image/fetch/$s_!yHHM!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F252808f1-d552-4fb5-aebe-58e7773717bc_1178x1122.png 1272w, https://substackcdn.com/image/fetch/$s_!yHHM!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F252808f1-d552-4fb5-aebe-58e7773717bc_1178x1122.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">Presenting on the role of data to first-year Computer Science students.</figcaption></figure></div><blockquote><p><strong>Tip 23</strong>: If you have kids and a family, always look for opportunities to bring them along on trips and conferences. It&#8217;s a valuable experience for kids (from ages 5-6 and up) and a great opportunity for your partner.</p></blockquote><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!qum0!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8aca0144-9603-40f2-a606-f59fb9755a6b_936x1014.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!qum0!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8aca0144-9603-40f2-a606-f59fb9755a6b_936x1014.png 424w, https://substackcdn.com/image/fetch/$s_!qum0!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8aca0144-9603-40f2-a606-f59fb9755a6b_936x1014.png 848w, https://substackcdn.com/image/fetch/$s_!qum0!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8aca0144-9603-40f2-a606-f59fb9755a6b_936x1014.png 1272w, https://substackcdn.com/image/fetch/$s_!qum0!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8aca0144-9603-40f2-a606-f59fb9755a6b_936x1014.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!qum0!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8aca0144-9603-40f2-a606-f59fb9755a6b_936x1014.png" width="936" height="1014" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/8aca0144-9603-40f2-a606-f59fb9755a6b_936x1014.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1014,&quot;width&quot;:936,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;&#1056;&#1072;&#1089;&#1089;&#1082;&#1072;&#1079;&#1099;&#1074;&#1072;&#1077;&#1084; &#1089;&#1090;&#1072;&#1088;&#1096;&#1077;&#1082;&#1083;&#1072;&#1089;&#1089;&#1085;&#1080;&#1082;&#1072;&#1084; &#1074;&#1084;&#1077;&#1089;&#1090;&#1077; &#1087;&#1088;&#1086; Alexa &#1080; &#1088;&#1072;&#1079;&#1076;&#1072;&#1077;&#1084; Alexa &#1079;&#1072; &#1089;&#1072;&#1084;&#1099;&#1077; &#1083;&#1091;&#1095;&#1096;&#1080;&#1077; &#1074;&#1086;&#1087;&#1088;&#1086;&#1089;&#1099;. &#1057;&#1099;&#1085; &#1076;&#1077;&#1083;&#1072;&#1077;&#1090; &#1076;&#1077;&#1084;&#1086;&#1085;&#1089;&#1090;&#1088;&#1072;&#1094;&#1080;&#1102; &#1087;&#1088;&#1086;&#1076;&#1091;&#1082;&#1090;&#1072;. &#1046;&#1072;&#1083;&#1082;&#1086; &#1089;&#1077;&#1081;&#1095;&#1072;&#1089; &#1087;&#1072;&#1085;&#1076;&#1077;&#1084;&#1080;&#1103; &#1080; &#1074;&#1089;&#1077; &#1086;&#1085;&#1083;&#1072;&#1081;&#1085;, &#1089;&#1082;&#1091;&#1095;&#1085;&#1086;:(&quot;,&quot;title&quot;:&quot;&#1056;&#1072;&#1089;&#1089;&#1082;&#1072;&#1079;&#1099;&#1074;&#1072;&#1077;&#1084; &#1089;&#1090;&#1072;&#1088;&#1096;&#1077;&#1082;&#1083;&#1072;&#1089;&#1089;&#1085;&#1080;&#1082;&#1072;&#1084; &#1074;&#1084;&#1077;&#1089;&#1090;&#1077; &#1087;&#1088;&#1086; Alexa &#1080; &#1088;&#1072;&#1079;&#1076;&#1072;&#1077;&#1084; Alexa &#1079;&#1072; &#1089;&#1072;&#1084;&#1099;&#1077; &#1083;&#1091;&#1095;&#1096;&#1080;&#1077; &#1074;&#1086;&#1087;&#1088;&#1086;&#1089;&#1099;. &#1057;&#1099;&#1085; &#1076;&#1077;&#1083;&#1072;&#1077;&#1090; &#1076;&#1077;&#1084;&#1086;&#1085;&#1089;&#1090;&#1088;&#1072;&#1094;&#1080;&#1102; &#1087;&#1088;&#1086;&#1076;&#1091;&#1082;&#1090;&#1072;. &#1046;&#1072;&#1083;&#1082;&#1086; &#1089;&#1077;&#1081;&#1095;&#1072;&#1089; &#1087;&#1072;&#1085;&#1076;&#1077;&#1084;&#1080;&#1103; &#1080; &#1074;&#1089;&#1077; &#1086;&#1085;&#1083;&#1072;&#1081;&#1085;, &#1089;&#1082;&#1091;&#1095;&#1085;&#1086;:(&quot;,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="&#1056;&#1072;&#1089;&#1089;&#1082;&#1072;&#1079;&#1099;&#1074;&#1072;&#1077;&#1084; &#1089;&#1090;&#1072;&#1088;&#1096;&#1077;&#1082;&#1083;&#1072;&#1089;&#1089;&#1085;&#1080;&#1082;&#1072;&#1084; &#1074;&#1084;&#1077;&#1089;&#1090;&#1077; &#1087;&#1088;&#1086; Alexa &#1080; &#1088;&#1072;&#1079;&#1076;&#1072;&#1077;&#1084; Alexa &#1079;&#1072; &#1089;&#1072;&#1084;&#1099;&#1077; &#1083;&#1091;&#1095;&#1096;&#1080;&#1077; &#1074;&#1086;&#1087;&#1088;&#1086;&#1089;&#1099;. &#1057;&#1099;&#1085; &#1076;&#1077;&#1083;&#1072;&#1077;&#1090; &#1076;&#1077;&#1084;&#1086;&#1085;&#1089;&#1090;&#1088;&#1072;&#1094;&#1080;&#1102; &#1087;&#1088;&#1086;&#1076;&#1091;&#1082;&#1090;&#1072;. &#1046;&#1072;&#1083;&#1082;&#1086; &#1089;&#1077;&#1081;&#1095;&#1072;&#1089; &#1087;&#1072;&#1085;&#1076;&#1077;&#1084;&#1080;&#1103; &#1080; &#1074;&#1089;&#1077; &#1086;&#1085;&#1083;&#1072;&#1081;&#1085;, &#1089;&#1082;&#1091;&#1095;&#1085;&#1086;:(" title="&#1056;&#1072;&#1089;&#1089;&#1082;&#1072;&#1079;&#1099;&#1074;&#1072;&#1077;&#1084; &#1089;&#1090;&#1072;&#1088;&#1096;&#1077;&#1082;&#1083;&#1072;&#1089;&#1089;&#1085;&#1080;&#1082;&#1072;&#1084; &#1074;&#1084;&#1077;&#1089;&#1090;&#1077; &#1087;&#1088;&#1086; Alexa &#1080; &#1088;&#1072;&#1079;&#1076;&#1072;&#1077;&#1084; Alexa &#1079;&#1072; &#1089;&#1072;&#1084;&#1099;&#1077; &#1083;&#1091;&#1095;&#1096;&#1080;&#1077; &#1074;&#1086;&#1087;&#1088;&#1086;&#1089;&#1099;. &#1057;&#1099;&#1085; &#1076;&#1077;&#1083;&#1072;&#1077;&#1090; &#1076;&#1077;&#1084;&#1086;&#1085;&#1089;&#1090;&#1088;&#1072;&#1094;&#1080;&#1102; &#1087;&#1088;&#1086;&#1076;&#1091;&#1082;&#1090;&#1072;. &#1046;&#1072;&#1083;&#1082;&#1086; &#1089;&#1077;&#1081;&#1095;&#1072;&#1089; &#1087;&#1072;&#1085;&#1076;&#1077;&#1084;&#1080;&#1103; &#1080; &#1074;&#1089;&#1077; &#1086;&#1085;&#1083;&#1072;&#1081;&#1085;, &#1089;&#1082;&#1091;&#1095;&#1085;&#1086;:(" srcset="https://substackcdn.com/image/fetch/$s_!qum0!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8aca0144-9603-40f2-a606-f59fb9755a6b_936x1014.png 424w, https://substackcdn.com/image/fetch/$s_!qum0!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8aca0144-9603-40f2-a606-f59fb9755a6b_936x1014.png 848w, https://substackcdn.com/image/fetch/$s_!qum0!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8aca0144-9603-40f2-a606-f59fb9755a6b_936x1014.png 1272w, https://substackcdn.com/image/fetch/$s_!qum0!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8aca0144-9603-40f2-a606-f59fb9755a6b_936x1014.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">Presenting to high school students about Alexa, handing out Alexa devices for the best questions. My son leads the product demo.</figcaption></figure></div><h2><strong>Communities at Amazon</strong></h2><p>I&#8217;ve already written about proactivity. Almost immediately at Amazon, I began building communities:</p><ul><li><p><strong>Amazon Tableau User Group</strong> &#8211; 3,000 users across Amazon who use Tableau. I answered every other question, organized meetings, and invited top-notch speakers.</p></li><li><p><strong>BI Tech Talk</strong> &#8211; 100+ data teams from across Amazon. I also organized presentations with speakers from both Amazon and other companies.</p></li></ul><p>All of this gave me a huge advantage&#8212;almost everyone working with data at Amazon knew me. It made switching teams or inviting a speaker from LinkedIn easy. Of course, it didn&#8217;t impact my salary, but I enjoyed connecting people and ideas.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!oYQT!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa2b956a4-037d-4cf3-b4a3-3fe59ed728d0_588x441.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!oYQT!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa2b956a4-037d-4cf3-b4a3-3fe59ed728d0_588x441.png 424w, https://substackcdn.com/image/fetch/$s_!oYQT!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa2b956a4-037d-4cf3-b4a3-3fe59ed728d0_588x441.png 848w, https://substackcdn.com/image/fetch/$s_!oYQT!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa2b956a4-037d-4cf3-b4a3-3fe59ed728d0_588x441.png 1272w, https://substackcdn.com/image/fetch/$s_!oYQT!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa2b956a4-037d-4cf3-b4a3-3fe59ed728d0_588x441.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!oYQT!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa2b956a4-037d-4cf3-b4a3-3fe59ed728d0_588x441.png" width="588" height="441" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a2b956a4-037d-4cf3-b4a3-3fe59ed728d0_588x441.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:441,&quot;width&quot;:588,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;&#1063;&#1083;&#1077;&#1085;&#1099; Amazon Tableau User Group &#1085;&#1072; Tableau Conference &#1074; Las Vegas 2017&quot;,&quot;title&quot;:&quot;&#1063;&#1083;&#1077;&#1085;&#1099; Amazon Tableau User Group &#1085;&#1072; Tableau Conference &#1074; Las Vegas 2017&quot;,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="&#1063;&#1083;&#1077;&#1085;&#1099; Amazon Tableau User Group &#1085;&#1072; Tableau Conference &#1074; Las Vegas 2017" title="&#1063;&#1083;&#1077;&#1085;&#1099; Amazon Tableau User Group &#1085;&#1072; Tableau Conference &#1074; Las Vegas 2017" srcset="https://substackcdn.com/image/fetch/$s_!oYQT!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa2b956a4-037d-4cf3-b4a3-3fe59ed728d0_588x441.png 424w, https://substackcdn.com/image/fetch/$s_!oYQT!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa2b956a4-037d-4cf3-b4a3-3fe59ed728d0_588x441.png 848w, https://substackcdn.com/image/fetch/$s_!oYQT!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa2b956a4-037d-4cf3-b4a3-3fe59ed728d0_588x441.png 1272w, https://substackcdn.com/image/fetch/$s_!oYQT!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa2b956a4-037d-4cf3-b4a3-3fe59ed728d0_588x441.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">Members of the Amazon Tableau User Group at the Tableau Conference in Las Vegas, 2017.</figcaption></figure></div><p>Even now, there are people at Microsoft who remember me from when they worked at Amazon.</p><blockquote><p><strong>Tip 24</strong>: Always look for collaboration opportunities. Communities are a powerful tool for career growth. Don&#8217;t ignore them; create them, help others, and they&#8217;ll help you in return.</p></blockquote><p>At Alexa, things went as usual: I did my work but didn&#8217;t get closer to a promotion, so I switched teams again. I spoke with teams from California and Seattle and started considering relocating to the U.S. I joined the Customer Behavior Analytics team and promised to relocate to Seattle in the fall of 2020. But I discovered that my Amazon stock grants had run out after four years, and I would have to move my family on a base salary of $130,000, which didn&#8217;t meet my needs. The minimum income for Seattle should be $200,000, with a good range being $300-350,000 (including stock), based on my research.</p><p>An important point: Amazon prohibits internal transfers from including a salary increase, meant to prevent people from hopping between teams. So each transition sets you back at least a year from a potential promotion.</p><p>Regarding bonuses, you&#8217;re awarded stock in shares. Multiply the stock price by the number of shares, and you get a nice number. But! When the vested date comes&#8212;the date the shares become yours&#8212;Canada takes half in taxes. So if you&#8217;re granted 20 shares, you only get 10. You can sell them or keep them, as I did. And if you originally had 10 shares at $600 each and they grew to $3,000 each, you&#8217;ll owe capital gains tax on $2,400 profit per share, paying 25% of that.</p><p>On paper, it looks nice, but in reality, you get much less. Don&#8217;t forget about Canada&#8217;s progressive income tax&#8212;the higher your earnings, the higher the rate. Taxes are lower in the U.S., but they have their own complications with healthcare and insurance.</p><p>Every time I was frustrated with my career progress, I&#8217;d start job hunting again. Interviewing is beneficial and keeps you sharp. I interviewed with Tesla for a Data Engineer position on their solar team but didn&#8217;t get the role. Then I interviewed with Lyft for a Data Engineering Manager role with a California salary of $400-450,000, including bonuses. Although I didn&#8217;t have managerial experience, I&#8217;d taken all the Amazon management courses. That didn&#8217;t work out either. They asked many questions about diversity and inclusion.</p><p>For Google, I didn&#8217;t even manage to schedule an interview. The recruiter disappeared after the first call. Google can afford to do that&#8212;if one good candidate slips away, another will come along.</p><blockquote><p><strong>Tip 25</strong>: You&#8217;re not the only candidate for the job. Top companies receive hundreds of applications, so try to apply early or seek other routes, like through connections. I applied to dozens of positions at Facebook and Google but received no response.</p></blockquote><p>Eventually, though, recruiters from Facebook reached out to me about a Data Engineering Manager role. Here&#8217;s what the interview process looked like:</p><ul><li><p><strong>Phone Screen with the recruiter</strong> &#8211; Just a chat about the role, requirements, and my background.</p></li><li><p><strong>Leadership Interview</strong> &#8211; A conversation with a manager, more like a behavioral interview, where they asked about leadership and conflict resolution. Amazon&#8217;s management courses had me well-prepared.</p></li><li><p><strong>Technical Screening</strong> &#8211; Even for a manager role, it consisted of three parts: SQL exercises (15 minutes for five tasks), Python (15 minutes for five tasks), and Data Modeling (15 minutes).</p></li></ul><p>To be honest, 15 minutes is very little time. I completed 4/5 SQL tasks and 3/5 Python tasks (which I was proud of, as I hadn&#8217;t worked with it much). However, I really struggled with data modeling. The question was simple: imagine you work at LinkedIn; create a model to answer five specific questions. You should start top-down (from business questions to fact tables), but I went bottom-up (from all source data at LinkedIn to fact tables) with only seven minutes left. I also have a theory that North America has a strong lobby of Indian professionals, and I often see teams predominantly made up of them. While their experience and knowledge can vary, my chances felt 50/50. In the end, I didn&#8217;t get the job, but it was a great learning experience.</p><blockquote><p><strong>Tip 26</strong>: Every failed interview is a huge opportunity for growth. You step out of your comfort zone, prepare, and learn something new. Don&#8217;t miss out on this chance. It&#8217;s worth it.</p></blockquote><h2><strong>Working for &#8220;The Man&#8221; or for Yourself</strong></h2><p>Amazon was the pinnacle of my career aspirations. Early on, I couldn&#8217;t have dreamed of working there. But after a while, I started to wonder&#8212;what&#8217;s next? You come to realize that you&#8217;re working for &#8220;the man,&#8221; even if he&#8217;s the richest one in the world, Jeff Bezos.</p><p>Before the pandemic, I was trying to run two businesses&#8212;a consulting company and a meal prep delivery service.</p><p>I won&#8217;t dive too deeply into my business here. I&#8217;ll just say this: if you manage to create a business, service, or product that brings in an income comparable to what you&#8217;d earn working for &#8220;the man,&#8221; you&#8217;re on the right track. I didn&#8217;t quite succeed. I feel like to build something truly remarkable, you need to fail at 10-15 ventures first. I&#8217;ve only failed at two so far. Eventually, burnout set in&#8212;that loss of interest in what you&#8217;re doing. I was juggling so much at once, and after a few years, I felt I hadn&#8217;t achieved anything in return. My career at Amazon hadn&#8217;t taken off, my consulting didn&#8217;t fly, and my energy was depleted. With the pandemic and working from home, I&#8217;d spend entire days at my computer without producing anything.</p><p>Another consideration about running your own business is that if you really want to make money, you&#8217;ll likely need venture funding, with hopes of an IPO or acquisition. But once you get investors, you&#8217;re often back to working for &#8220;the man.&#8221; Going public is like dreaming your child will make it to the Olympics after joining a sports team.</p><p>Then there&#8217;s family. I have three kids, and chasing a dream at the expense of family is a high price not everyone is willing to pay. In the end, working for a good company with a decent salary, benefits, and stock options isn&#8217;t so bad. But there&#8217;s one key aspect&#8212;financial planning. A tried-and-true method is investing.</p><p>That time we purchased our second home in Greater Vancouver around 2020. In addition, we were able to keep our first home and rent it out.</p><p>The approach is as old as time. Of course, to make this work, you need a bit of capital&#8212;thanks to Amazon for that. Amazon employees were genuinely able to improve their lives thanks to the company&#8217;s growth. Here&#8217;s a recent article: <a href="https://www.businessinsider.com/jeff-bezos-return-amazon-stock-investment-1997-house-sell-amzn-2021-4?amp">Jeff Bezos shared a note from a couple who bought 2 shares of Amazon in 1997&#8212;and are now using the proceeds to buy a house after the company&#8217;s 172,499% post-IPO growth</a>.</p><div class="pullquote"><p><strong>Disclaimer</strong>: Investing in real estate before 2021 was great advice. We even ranked 3rd in Vancouver. However, as soon as interest rates rose, all the nice aspects of being a landlord vanished. So now, I&#8217;d probably rather invest in the stock market and ETFs.</p></div><p>Despite the company being quite tough and demanding, the experience gained there is invaluable.</p><blockquote><p><strong>Tip 27</strong>: It may sound simple, but avoid living pay check to pay check. Always think about the future and make an effort to preserve and grow what you have.</p></blockquote><h2><strong>Job Change &#8211; From Amazon to Microsoft</strong></h2><p>When I joined my third team at Amazon, I&#8217;d promised to relocate to Seattle. But then I realized my stock grants had run out, and no new ones were given. As I mentioned, it&#8217;s possible to live on $130,000 in the U.S. with a big family, but it&#8217;s not the lifestyle we wanted.</p><p>Since I would occasionally apply for jobs on a whim, I applied for a position at Microsoft in Vancouver in May 2020. I didn&#8217;t even read the job description (we&#8217;d figure it out later, as they say). I applied in May, and they called me at the end of July&#8212;2.5 months later. By then, I had almost forgotten about it. The interview process took about a month. From what I gathered, Microsoft doesn&#8217;t move too quickly in hiring. The interview process went something like this:</p><ul><li><p><strong>Phone Interview</strong> with HR</p></li><li><p><strong>Phone Interview</strong> with the manager</p></li></ul><p>These were essentially phone screens. I passed and moved on to the main interview, which is typically an all-day event, but in my case, it was split over two days. Here&#8217;s how it went:</p><ol><li><p><strong>Interview with the Product Manager and Director</strong> &#8211; This was a behavioral interview with situational questions. They asked a lot about conflict resolution and collaboration with other teams. I explained everything in detail, trying to identify any Amazon Leadership Principle hints and tailor my answers accordingly.</p></li><li><p><strong>Interview with a Principal and Senior Engineer</strong> &#8211; They had me solve a statistics problem using SQL and then asked me to design an analytics architecture for Big Data and Streaming on AWS or Azure.</p></li><li><p><strong>Interview with the Data Science and BI team</strong> &#8211; I shared my ML project experience from my last team, which they found interesting.</p></li></ol><p>After that came the negotiation phase. Based on LinkedIn insights, I found that a Senior Software Engineer in Canada could earn around CAD 220,000 in 2020. But as I&#8217;ve seen before, negotiating with Canadian companies can be challenging due to strict limits&#8212;they budged only slightly. Either way, I was already &#8220;drowning&#8221; (burning out) at Amazon, and this was the perfect time for a change. I wasn&#8217;t planning to relocate to Seattle either.</p><p>In November, I started working at one of the Xbox studios in Vancouver. They set me up with a gaming computer and Xbox, and part of my onboarding process involved playing Xbox games.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!07vo!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F933ce70c-76ab-4b9d-a61f-55cad6085465_1200x675.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!07vo!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F933ce70c-76ab-4b9d-a61f-55cad6085465_1200x675.jpeg 424w, https://substackcdn.com/image/fetch/$s_!07vo!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F933ce70c-76ab-4b9d-a61f-55cad6085465_1200x675.jpeg 848w, https://substackcdn.com/image/fetch/$s_!07vo!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F933ce70c-76ab-4b9d-a61f-55cad6085465_1200x675.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!07vo!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F933ce70c-76ab-4b9d-a61f-55cad6085465_1200x675.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!07vo!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F933ce70c-76ab-4b9d-a61f-55cad6085465_1200x675.jpeg" width="1200" height="675" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/933ce70c-76ab-4b9d-a61f-55cad6085465_1200x675.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:675,&quot;width&quot;:1200,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Xbox Game Pass&quot;,&quot;title&quot;:&quot;Xbox Game Pass&quot;,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Xbox Game Pass" title="Xbox Game Pass" srcset="https://substackcdn.com/image/fetch/$s_!07vo!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F933ce70c-76ab-4b9d-a61f-55cad6085465_1200x675.jpeg 424w, https://substackcdn.com/image/fetch/$s_!07vo!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F933ce70c-76ab-4b9d-a61f-55cad6085465_1200x675.jpeg 848w, https://substackcdn.com/image/fetch/$s_!07vo!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F933ce70c-76ab-4b9d-a61f-55cad6085465_1200x675.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!07vo!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F933ce70c-76ab-4b9d-a61f-55cad6085465_1200x675.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">Xbox Game Pass</figcaption></figure></div><p>When comparing the cultures of Amazon and Microsoft, Microsoft wins on several fronts. The work-life balance, insurance, and benefits are much better.</p><p>Comparing AWS and Azure as technologies, I find AWS analytics solutions significantly better suited to my needs.</p><p>In terms of salary, Amazon generally pays more. But as you may have gathered, that wasn&#8217;t my case. To raise my salary and position, I had to use Tip #4 again&#8212;change jobs.</p><p>Looking at the market, it&#8217;s clear that in Seattle, Amazon and Microsoft employees frequently switch between the two companies. I know people who left Amazon for Microsoft and vice versa, and I&#8217;m sure each move came with a raise.</p><p><strong>Bonus Round</strong></p><p>I almost forgot to mention another interview. Around the same time I was considering Microsoft&#8217;s offer, I saw an opening from one of my favorite companies&#8212;Slalom (a leading IT consulting firm focused on innovative analytics, design, and development). As I described in my post about my consulting venture, <em>Rock Your Data</em>, Slalom was a source of inspiration for me and served as a benchmark.</p><p>They were opening an office in Vancouver and looking for a Director of Data Engineering. It sounded like a dream job, so I applied. I had several interviews with directors from the U.S., and I made a good impression. They weren&#8217;t put off by my experience as Data Practice Director at Rock Your Data and my time at Amazon. The only catch was that I knew the technical details a little <em>too</em> well for a director role. A director typically isn&#8217;t expected to have such in-depth technical knowledge.</p><p>In the end, they told me I didn&#8217;t quite fit the director role but offered me a position as a Principal Consultant with a salary 30% higher than Microsoft&#8217;s. I consulted my mentor from Amazon, who said not to think twice&#8212;go to Microsoft. I was also disappointed by the fact that I&#8217;d applied for a director role but received a consultant offer instead.</p><p>On the one hand, I was pleased that my consulting experience truly paid off, but on the other, I was disappointed not to land the role I wanted.</p><blockquote><p><strong>Tip 28</strong>: Everything happens for the best.</p></blockquote><p>Maybe I was earning a bit less at Microsoft, but I feel good, and I could see my interest in my work coming back.</p><blockquote><p><strong>Tip 29</strong>: A high salary isn&#8217;t always the main criterion. Consider the long-term prospects, how marketable you&#8217;ll be in a year, and whether the role is stable. Will it benefit your mental health and family life? (In my case, consulting and frequent travel clearly weren&#8217;t family-friendly.)</p></blockquote><p>This is the ending of my post and tips that I wrote originally in 2021. 100% they are all valid now and it gives your framework to navigate job market. </p><p>I would also add couple more tips.</p><blockquote><p><strong>Tip 30</strong>: If you have a choice between working for a public company or a startup, set your priorities. If job security and high pay are important, a public company is the better choice, as it offers RSUs, bonuses, and other benefits&#8212;they can afford to pay well. If compensation is less important to you and you&#8217;d rather focus on developing technical skills, a startup can be a good option. But here&#8217;s an important point: don&#8217;t join a startup solely because it might go public. The chances of a startup going to IPO are usually very low. Make your decision wisely without counting on the IPO factor.</p></blockquote><h2>Continuing to share my experience</h2><p>I am still learning in the field of data engineering and building Analytics and Data Engineering solutions and still sharing my knowledge and found excellent way via Surfalytics by helping people to leverage 15 years of my experience for the Data Jobs and gain competitive advantage at the Surfalytics. </p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!ERlJ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F28d86764-fe2f-4be8-901f-8f5e9377e317_1719x2468.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!ERlJ!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F28d86764-fe2f-4be8-901f-8f5e9377e317_1719x2468.jpeg 424w, https://substackcdn.com/image/fetch/$s_!ERlJ!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F28d86764-fe2f-4be8-901f-8f5e9377e317_1719x2468.jpeg 848w, https://substackcdn.com/image/fetch/$s_!ERlJ!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F28d86764-fe2f-4be8-901f-8f5e9377e317_1719x2468.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!ERlJ!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F28d86764-fe2f-4be8-901f-8f5e9377e317_1719x2468.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!ERlJ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F28d86764-fe2f-4be8-901f-8f5e9377e317_1719x2468.jpeg" width="1456" height="2090" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/28d86764-fe2f-4be8-901f-8f5e9377e317_1719x2468.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:2090,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1574032,&quot;alt&quot;:&quot;&quot;,&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;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!ERlJ!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F28d86764-fe2f-4be8-901f-8f5e9377e317_1719x2468.jpeg 424w, https://substackcdn.com/image/fetch/$s_!ERlJ!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F28d86764-fe2f-4be8-901f-8f5e9377e317_1719x2468.jpeg 848w, https://substackcdn.com/image/fetch/$s_!ERlJ!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F28d86764-fe2f-4be8-901f-8f5e9377e317_1719x2468.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!ERlJ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F28d86764-fe2f-4be8-901f-8f5e9377e317_1719x2468.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><blockquote><p><strong>Tip 31</strong>: The more you give to others, the more you receive in return.</p></blockquote>]]></content:encoded></item><item><title><![CDATA[Just Enough Data Viz for Data Professionals]]></title><description><![CDATA[Master the 20% of Techniques That Drive 80% of Dashboard Impact]]></description><link>https://blog.surfalytics.com/p/just-enough-data-viz-for-data-professionals</link><guid isPermaLink="false">https://blog.surfalytics.com/p/just-enough-data-viz-for-data-professionals</guid><dc:creator><![CDATA[Dmitry Anoshin]]></dc:creator><pubDate>Fri, 18 Oct 2024 00:03:09 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F60da0141-198d-4db3-822e-abf462460d0d_1588x1216.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Imagine you&#8217;re planning to work in Data Analytics or are just starting out with data and have no idea what data visualization is or why it&#8217;s important. In this blog post, we&#8217;ll cover the top 20% of knowledge that addresses 80% of common use cases and interview questions. I&#8217;ve invited an expert in this field, Anastasiya Kuznetsova, who has been building dashboards and writing about Data Visualization for the past decade.</p><p>In this article, she will cover the foundational knowledge of data visualization, helping you avoid common mistakes and set high standards for data communication with your stakeholders.</p><h2><strong>Why Data Visualization Matters</strong></h2><p>Before diving into techniques, let&#8217;s start with why visualization is so essential. Data visualization bridges the gap between complex data and comprehensible insight. It helps you see what you can't easily get from the numbers alone. With effective visualizations, you not only make sense of your data but also enable decision-makers to quickly grasp key points.</p><p>To highlight this Justin Matejka and George Fitzmaurice created a broader collection of datasets that show&nbsp;<strong>how data can produce strikingly different visuals while maintaining similar summary statistics.</strong> It was based on the original Anscombe&#8217;s Quartet visualizing the same issue.</p><p>Each dataset looks unique&#8212;whether it's a dinosaur shape or more conventional scatter plots&#8212;once graphed. This reinforces that statistics alone aren&#8217;t enough to fully understand 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_!uvI6!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F46178471-8195-4407-a848-92993d22adb0_1400x978.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!uvI6!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F46178471-8195-4407-a848-92993d22adb0_1400x978.png 424w, https://substackcdn.com/image/fetch/$s_!uvI6!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F46178471-8195-4407-a848-92993d22adb0_1400x978.png 848w, https://substackcdn.com/image/fetch/$s_!uvI6!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F46178471-8195-4407-a848-92993d22adb0_1400x978.png 1272w, https://substackcdn.com/image/fetch/$s_!uvI6!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F46178471-8195-4407-a848-92993d22adb0_1400x978.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!uvI6!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F46178471-8195-4407-a848-92993d22adb0_1400x978.png" width="1400" height="978" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/46178471-8195-4407-a848-92993d22adb0_1400x978.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:978,&quot;width&quot;:1400,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:512321,&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_!uvI6!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F46178471-8195-4407-a848-92993d22adb0_1400x978.png 424w, https://substackcdn.com/image/fetch/$s_!uvI6!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F46178471-8195-4407-a848-92993d22adb0_1400x978.png 848w, https://substackcdn.com/image/fetch/$s_!uvI6!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F46178471-8195-4407-a848-92993d22adb0_1400x978.png 1272w, https://substackcdn.com/image/fetch/$s_!uvI6!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F46178471-8195-4407-a848-92993d22adb0_1400x978.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><a href="https://www.autodesk.com/research/publications/same-stats-different-graphs">https://www.autodesk.com/research/publications/same-stats-different-graphs</a></p><p>Both datasets were developed to remind analysts that statistical analysis without visualization can miss critical nuances, patterns, or outliers. Visuals offer the opportunity to catch errors and unlock insights that numbers alone may obscure. That is why always start with visualizing you data.</p><p>However it&#8217;s always better to try out different charts. I had a very interesting case long time ago where just relying on statistics wasn&#8217;t enough, and visualizing the data with a single chart wasn&#8217;t sufficient either. We were trying to analyze the results of different blog posts, and one of the metrics was the number of likes. While this use case is fabricated, it&#8217;s quite close to reality. As you can see, the average number of likes is higher for Web Design, and the median is higher for Data Science. However, there are two outlier posts in Web Design, which means most posts weren&#8217;t performing well, but these two were exceptionally popular. They turned out to be review posts that were indeed very popular. The takeaway is that if we had only relied on averages or medians, we would never have discovered these outliers.</p><div><hr></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!_K2t!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9ed78dea-29a0-41e8-a3a4-ae525a4568d6_1346x408.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!_K2t!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9ed78dea-29a0-41e8-a3a4-ae525a4568d6_1346x408.png 424w, https://substackcdn.com/image/fetch/$s_!_K2t!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9ed78dea-29a0-41e8-a3a4-ae525a4568d6_1346x408.png 848w, https://substackcdn.com/image/fetch/$s_!_K2t!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9ed78dea-29a0-41e8-a3a4-ae525a4568d6_1346x408.png 1272w, https://substackcdn.com/image/fetch/$s_!_K2t!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9ed78dea-29a0-41e8-a3a4-ae525a4568d6_1346x408.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!_K2t!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9ed78dea-29a0-41e8-a3a4-ae525a4568d6_1346x408.png" width="1346" height="408" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/9ed78dea-29a0-41e8-a3a4-ae525a4568d6_1346x408.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:408,&quot;width&quot;:1346,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:74096,&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;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!_K2t!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9ed78dea-29a0-41e8-a3a4-ae525a4568d6_1346x408.png 424w, https://substackcdn.com/image/fetch/$s_!_K2t!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9ed78dea-29a0-41e8-a3a4-ae525a4568d6_1346x408.png 848w, https://substackcdn.com/image/fetch/$s_!_K2t!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9ed78dea-29a0-41e8-a3a4-ae525a4568d6_1346x408.png 1272w, https://substackcdn.com/image/fetch/$s_!_K2t!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9ed78dea-29a0-41e8-a3a4-ae525a4568d6_1346x408.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h2>How to choose the right chart</h2><p>I hope that previous part made it clear that visualizing your data can help you with better understanding its specifics. Next step would be to lear a bit about the way to choose the chart type and how to work with them. I have a <a href="https://nastengraph.substack.com/p/how-to-choose-the-right-chart">bigger article</a> on that matter but I&#8217;ll just highlight the easiest and fastest ways to do so.</p><p>You cal always start by analyzing the data itself. A fantastic resource I often recommend is the "<a href="https://www.data-to-viz.com">From Data to Viz</a>" website. It allows you to explore various chart types based on the structure of your data (e.g., numerical, categorical, or hierarchical). While this approach might not offer the most advanced insights, it&#8217;s incredibly user-friendly and perfect for quickly narrowing down your charting options.</p><p>For example, geospatial data limits you to map-based visualizations, while time series data could lead you to line charts, area charts, or heatmaps. "From Data to Viz" helps guide these decisions by focusing on data types, which simplifies the selection process.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!0Oz5!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2d8e3c6f-8464-4b76-b5c3-58035702c6b1_2048x1433.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!0Oz5!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2d8e3c6f-8464-4b76-b5c3-58035702c6b1_2048x1433.png 424w, https://substackcdn.com/image/fetch/$s_!0Oz5!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2d8e3c6f-8464-4b76-b5c3-58035702c6b1_2048x1433.png 848w, https://substackcdn.com/image/fetch/$s_!0Oz5!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2d8e3c6f-8464-4b76-b5c3-58035702c6b1_2048x1433.png 1272w, https://substackcdn.com/image/fetch/$s_!0Oz5!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2d8e3c6f-8464-4b76-b5c3-58035702c6b1_2048x1433.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!0Oz5!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2d8e3c6f-8464-4b76-b5c3-58035702c6b1_2048x1433.png" width="1456" height="1019" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/2d8e3c6f-8464-4b76-b5c3-58035702c6b1_2048x1433.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1019,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1133639,&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;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!0Oz5!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2d8e3c6f-8464-4b76-b5c3-58035702c6b1_2048x1433.png 424w, https://substackcdn.com/image/fetch/$s_!0Oz5!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2d8e3c6f-8464-4b76-b5c3-58035702c6b1_2048x1433.png 848w, https://substackcdn.com/image/fetch/$s_!0Oz5!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2d8e3c6f-8464-4b76-b5c3-58035702c6b1_2048x1433.png 1272w, https://substackcdn.com/image/fetch/$s_!0Oz5!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2d8e3c6f-8464-4b76-b5c3-58035702c6b1_2048x1433.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></p><p>Beyond that, understanding your specific business or communication needs also matters. Charts like bar charts, line graphs, or scatter plots can highlight comparisons, trends, or relationships, while Sankey diagrams or tree maps are great for visualizing flows or hierarchical data. Remember, your goal is not just to plot data, but to create clarity and insight for your audience.</p><p>In most cases, you can rely on a handful of versatile chart types to handle common data visualization needs effectively:</p><ul><li><p><strong>Comparison:</strong> Use <strong>bar charts</strong> to answer questions like, <em>"Which category has the highest sales?"</em> Bar charts are simple but powerful for comparing data across categories.</p></li><li><p><strong>Trends and Dynamics:</strong> For showing changes over time, the <strong>line chart</strong> is ideal. It helps answer questions like, <em>"Is our sales growth increasing or decreasing over time?"</em> This chart type excels in depicting continuous data and trends.</p></li><li><p><strong>Part-to-Whole Relationships:</strong> <strong>Stacked charts</strong>, such as stacked bar or area charts, are useful for visualizing parts of a whole. For instance, <em>"What percentage of total sales comes from this category?"</em> These charts help highlight how individual components contribute to the overall total.</p></li><li><p><strong>Relationships:</strong> Use a <strong>scatter plot</strong> to explore relationships between two variables, like <em>"What is the relationship between sales and profit?"</em> Scatter plots help reveal correlations and outliers in your data.</p></li><li><p><strong>Distribution:</strong> To analyze how data is spread, try a <strong>histogram</strong> or <strong>jitter plot</strong>. These work well for answering questions like, <em>"How is our customer lifetime value (LTV) distributed?"</em> Histograms show the frequency of data points, while jitter plots handle overlapping data.</p></li><li><p><strong>Quick Overview:</strong> For fast insights, <strong>KPI cards</strong> with small visualizations like sparklines provide a snapshot of key metrics, such as <em>"What are our current sales?"</em> These cards focus on giving at-a-glance performance indicators.</p></li><li><p><strong>Exact Values:</strong> <strong>Tables</strong> are still the go-to choice for showing exact values, especially when combined with visual elements like heatmaps or small bar charts. Use them for questions like, <em>"What were the exact sales numbers for this region and category?"</em></p></li><li><p><strong>Flow:</strong> <strong>Sankey diagrams</strong> are excellent for visualizing flows and paths, such as <em>"Which pages did users visit during their session?"</em> They map the movement of data, users, or resources between stages.</p></li></ul><p>You can also use chart choosers here. One of my favorite chart choosers &#8211;&nbsp;<a href="https://github.com/Financial-Times/chart-doctor/blob/main/visual-vocabulary/README.md">Visual Vocabulary by Financial Times</a></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!pCCl!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe0e1ddd8-58a3-474d-9353-5acb59c6011b_1456x1030.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!pCCl!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe0e1ddd8-58a3-474d-9353-5acb59c6011b_1456x1030.png 424w, https://substackcdn.com/image/fetch/$s_!pCCl!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe0e1ddd8-58a3-474d-9353-5acb59c6011b_1456x1030.png 848w, https://substackcdn.com/image/fetch/$s_!pCCl!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe0e1ddd8-58a3-474d-9353-5acb59c6011b_1456x1030.png 1272w, https://substackcdn.com/image/fetch/$s_!pCCl!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe0e1ddd8-58a3-474d-9353-5acb59c6011b_1456x1030.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!pCCl!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe0e1ddd8-58a3-474d-9353-5acb59c6011b_1456x1030.png" width="1456" height="1030" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/e0e1ddd8-58a3-474d-9353-5acb59c6011b_1456x1030.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1030,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:808152,&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;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!pCCl!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe0e1ddd8-58a3-474d-9353-5acb59c6011b_1456x1030.png 424w, https://substackcdn.com/image/fetch/$s_!pCCl!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe0e1ddd8-58a3-474d-9353-5acb59c6011b_1456x1030.png 848w, https://substackcdn.com/image/fetch/$s_!pCCl!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe0e1ddd8-58a3-474d-9353-5acb59c6011b_1456x1030.png 1272w, https://substackcdn.com/image/fetch/$s_!pCCl!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe0e1ddd8-58a3-474d-9353-5acb59c6011b_1456x1030.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></p><p><strong>90% of tasks can be effectively solved using just bar charts and line charts</strong>. These two chart types are versatile, simple, and powerful tools for communicating data insights:</p><ul><li><p><strong>Bar charts</strong> are ideal for comparing categories, displaying rankings, and breaking down data into parts. Whether you're comparing sales performance across different regions or showing the distribution of categories, bar charts offer clarity and precision. <strong><a href="https://nastengraph.substack.com/p/bar-charts-best-practices">Bar charts best practices.</a></strong></p></li><li><p><strong>Line charts</strong> excel at showing trends over time, helping to visualize how metrics such as revenue or website traffic fluctuate. Line charts are particularly effective when you want to track changes over continuous intervals, making them indispensable for dynamic time series analysis. <a href="https://nastengraph.substack.com/p/line-charts-best-practices">**Line charts best practices</a>.**</p></li></ul><p>By focusing on these fundamental chart types, you can effectively address most analytical needs without overwhelming your audience with complex visuals. They're reliable, easy to interpret, and versatile enough to cover a wide range of data analysis tasks.</p><h2>How not to mislead with charts</h2><p>Once you've chosen the right chart type, it's crucial not to accidentally mislead your audience. Even well-intentioned visualizations can miscommunicate if not carefully designed. Here are some key guidelines to ensure your chart stays honest and clear:</p><ol><li><p><strong>Start the Y-axis at Zero</strong></p></li></ol><p>A common mistake is manipulating the Y-axis so it doesn&#8217;t start at zero, which can exaggerate differences between values. For example, a bar chart where the Y-axis starts at a higher number can make small changes seem dramatic. Keeping the axis for bar charts and area charts grounded at zero helps show true proportion.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!4wLQ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe1b1a2bb-9290-4cf9-98f5-62bd3b802c43_1336x456.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!4wLQ!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe1b1a2bb-9290-4cf9-98f5-62bd3b802c43_1336x456.png 424w, https://substackcdn.com/image/fetch/$s_!4wLQ!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe1b1a2bb-9290-4cf9-98f5-62bd3b802c43_1336x456.png 848w, https://substackcdn.com/image/fetch/$s_!4wLQ!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe1b1a2bb-9290-4cf9-98f5-62bd3b802c43_1336x456.png 1272w, https://substackcdn.com/image/fetch/$s_!4wLQ!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe1b1a2bb-9290-4cf9-98f5-62bd3b802c43_1336x456.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!4wLQ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe1b1a2bb-9290-4cf9-98f5-62bd3b802c43_1336x456.png" width="1336" height="456" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/e1b1a2bb-9290-4cf9-98f5-62bd3b802c43_1336x456.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:456,&quot;width&quot;:1336,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:69391,&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;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!4wLQ!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe1b1a2bb-9290-4cf9-98f5-62bd3b802c43_1336x456.png 424w, https://substackcdn.com/image/fetch/$s_!4wLQ!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe1b1a2bb-9290-4cf9-98f5-62bd3b802c43_1336x456.png 848w, https://substackcdn.com/image/fetch/$s_!4wLQ!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe1b1a2bb-9290-4cf9-98f5-62bd3b802c43_1336x456.png 1272w, https://substackcdn.com/image/fetch/$s_!4wLQ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe1b1a2bb-9290-4cf9-98f5-62bd3b802c43_1336x456.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><ol start="2"><li><p><strong>Use Line Charts for Dynamic Data</strong></p></li></ol><p>Line charts are ideally suited for visualizing time-related data. The human mind instinctively connects data points in a line chart, following the gestalt principle of continuity. We perceive the lines as continuous, with a clear start and end, much like the passage of time. Attempting to create line charts from non-time dimensions may confuse users, as they naturally expect a dynamic sequence in these charts.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!k2be!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4db149df-271a-4cdd-9fc6-ca1a75224b8b_1400x365.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!k2be!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4db149df-271a-4cdd-9fc6-ca1a75224b8b_1400x365.png 424w, https://substackcdn.com/image/fetch/$s_!k2be!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4db149df-271a-4cdd-9fc6-ca1a75224b8b_1400x365.png 848w, https://substackcdn.com/image/fetch/$s_!k2be!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4db149df-271a-4cdd-9fc6-ca1a75224b8b_1400x365.png 1272w, https://substackcdn.com/image/fetch/$s_!k2be!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4db149df-271a-4cdd-9fc6-ca1a75224b8b_1400x365.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!k2be!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4db149df-271a-4cdd-9fc6-ca1a75224b8b_1400x365.png" width="1400" height="365" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/4db149df-271a-4cdd-9fc6-ca1a75224b8b_1400x365.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:365,&quot;width&quot;:1400,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:106150,&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;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!k2be!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4db149df-271a-4cdd-9fc6-ca1a75224b8b_1400x365.png 424w, https://substackcdn.com/image/fetch/$s_!k2be!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4db149df-271a-4cdd-9fc6-ca1a75224b8b_1400x365.png 848w, https://substackcdn.com/image/fetch/$s_!k2be!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4db149df-271a-4cdd-9fc6-ca1a75224b8b_1400x365.png 1272w, https://substackcdn.com/image/fetch/$s_!k2be!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4db149df-271a-4cdd-9fc6-ca1a75224b8b_1400x365.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></p><ol start="3"><li><p><strong>Adjust axes to convey a message</strong></p></li></ol><p>While it's important to keep axes honest, sometimes adjusting them can improve readability, particularly in specific chart types. In <strong>line charts or scatter plots</strong>, for example, it is often acceptable to omit a zero baseline for the Y-axis. The purpose of a line chart is typically to show the trend or direction of data over time rather than direct comparisons between values. Starting the axis at zero can flatten the line for some values, making it harder to discern trends. Data's message over strict adherence to conventions like a zero baseline.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!T-53!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbcb2aee1-6d20-481f-8cd9-5b9a6a4c8096_1368x550.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!T-53!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbcb2aee1-6d20-481f-8cd9-5b9a6a4c8096_1368x550.png 424w, https://substackcdn.com/image/fetch/$s_!T-53!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbcb2aee1-6d20-481f-8cd9-5b9a6a4c8096_1368x550.png 848w, https://substackcdn.com/image/fetch/$s_!T-53!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbcb2aee1-6d20-481f-8cd9-5b9a6a4c8096_1368x550.png 1272w, https://substackcdn.com/image/fetch/$s_!T-53!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbcb2aee1-6d20-481f-8cd9-5b9a6a4c8096_1368x550.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!T-53!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbcb2aee1-6d20-481f-8cd9-5b9a6a4c8096_1368x550.png" width="1368" height="550" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/bcb2aee1-6d20-481f-8cd9-5b9a6a4c8096_1368x550.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:550,&quot;width&quot;:1368,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:181712,&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;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!T-53!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbcb2aee1-6d20-481f-8cd9-5b9a6a4c8096_1368x550.png 424w, https://substackcdn.com/image/fetch/$s_!T-53!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbcb2aee1-6d20-481f-8cd9-5b9a6a4c8096_1368x550.png 848w, https://substackcdn.com/image/fetch/$s_!T-53!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbcb2aee1-6d20-481f-8cd9-5b9a6a4c8096_1368x550.png 1272w, https://substackcdn.com/image/fetch/$s_!T-53!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbcb2aee1-6d20-481f-8cd9-5b9a6a4c8096_1368x550.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></p><p>Example with non-zero axis baseline</p><ol start="4"><li><p><strong>Avoid Using 3D Charts</strong></p></li></ol><p>3D visualizations, especially in bar and pie charts, often distort the perception of data, making it hard for the audience to accurately compare values. Stick with simple 2D designs to maintain clarity.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!csWz!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F60da0141-198d-4db3-822e-abf462460d0d_1588x1216.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!csWz!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F60da0141-198d-4db3-822e-abf462460d0d_1588x1216.png 424w, https://substackcdn.com/image/fetch/$s_!csWz!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F60da0141-198d-4db3-822e-abf462460d0d_1588x1216.png 848w, https://substackcdn.com/image/fetch/$s_!csWz!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F60da0141-198d-4db3-822e-abf462460d0d_1588x1216.png 1272w, https://substackcdn.com/image/fetch/$s_!csWz!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F60da0141-198d-4db3-822e-abf462460d0d_1588x1216.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!csWz!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F60da0141-198d-4db3-822e-abf462460d0d_1588x1216.png" width="1456" height="1115" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/60da0141-198d-4db3-822e-abf462460d0d_1588x1216.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1115,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:497016,&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;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!csWz!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F60da0141-198d-4db3-822e-abf462460d0d_1588x1216.png 424w, https://substackcdn.com/image/fetch/$s_!csWz!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F60da0141-198d-4db3-822e-abf462460d0d_1588x1216.png 848w, https://substackcdn.com/image/fetch/$s_!csWz!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F60da0141-198d-4db3-822e-abf462460d0d_1588x1216.png 1272w, https://substackcdn.com/image/fetch/$s_!csWz!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F60da0141-198d-4db3-822e-abf462460d0d_1588x1216.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></p><p><a href="https://clauswilke.com/dataviz/no-3d.html">https://clauswilke.com/dataviz/no-3d.html</a></p><ol start="5"><li><p><strong>Maintain Proportionality in Visuals</strong></p></li></ol><p>Bubble charts can distort perception when not scaled properly &#8211; the area of the bubbles should correspond to the values being represented, not just the diameter. Misrepresenting proportions can skew how people understand the 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_!Yy6G!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe4cfc0d2-235b-49b1-8d30-c9fec837631a_858x612.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Yy6G!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe4cfc0d2-235b-49b1-8d30-c9fec837631a_858x612.png 424w, https://substackcdn.com/image/fetch/$s_!Yy6G!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe4cfc0d2-235b-49b1-8d30-c9fec837631a_858x612.png 848w, https://substackcdn.com/image/fetch/$s_!Yy6G!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe4cfc0d2-235b-49b1-8d30-c9fec837631a_858x612.png 1272w, https://substackcdn.com/image/fetch/$s_!Yy6G!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe4cfc0d2-235b-49b1-8d30-c9fec837631a_858x612.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Yy6G!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe4cfc0d2-235b-49b1-8d30-c9fec837631a_858x612.png" width="858" height="612" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/e4cfc0d2-235b-49b1-8d30-c9fec837631a_858x612.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:612,&quot;width&quot;:858,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:243887,&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;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!Yy6G!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe4cfc0d2-235b-49b1-8d30-c9fec837631a_858x612.png 424w, https://substackcdn.com/image/fetch/$s_!Yy6G!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe4cfc0d2-235b-49b1-8d30-c9fec837631a_858x612.png 848w, https://substackcdn.com/image/fetch/$s_!Yy6G!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe4cfc0d2-235b-49b1-8d30-c9fec837631a_858x612.png 1272w, https://substackcdn.com/image/fetch/$s_!Yy6G!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe4cfc0d2-235b-49b1-8d30-c9fec837631a_858x612.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></p><p>From the book: &#8220;The Truthful Art&#8221; by Alberto Cairo</p><p>When working with <strong>stacked chart types</strong>, such as stacked bar charts or area charts, it&#8217;s essential to ensure that the stacked components add up to a meaningful total. For example, in financial or categorical comparisons, the total should represent a sum of all parts for a clear and accurate interpretation.</p><p>In <strong>pie charts</strong> and <strong>treemaps</strong>, where you're visualizing parts of a whole, the sum of all categories should always equal 100%. These charts are designed to represent proportions, and any deviation from this rule can mislead the viewer, suggesting false relationships between categories or overstating certain values.</p><ol start="6"><li><p><strong>Limit Overuse of Colors</strong></p></li></ol><p>While color is useful for distinguishing data, overloading a chart with too many colors can make it confusing. Stick to a color scheme that helps clarify, not complicate, the data. Ensure your color choices are intuitive and accessible (consider colorblind-friendly palettes).</p><p>Use color efficiently:</p><ul><li><p>highlight categories you are focused on</p></li><li><p>alert on changes and important information</p></li><li><p>distinguish other dimensions</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_!K_z6!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2eee0656-5e5c-4917-8f81-8bd76c28e455_1400x730.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!K_z6!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2eee0656-5e5c-4917-8f81-8bd76c28e455_1400x730.png 424w, https://substackcdn.com/image/fetch/$s_!K_z6!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2eee0656-5e5c-4917-8f81-8bd76c28e455_1400x730.png 848w, https://substackcdn.com/image/fetch/$s_!K_z6!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2eee0656-5e5c-4917-8f81-8bd76c28e455_1400x730.png 1272w, https://substackcdn.com/image/fetch/$s_!K_z6!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2eee0656-5e5c-4917-8f81-8bd76c28e455_1400x730.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!K_z6!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2eee0656-5e5c-4917-8f81-8bd76c28e455_1400x730.png" width="1400" height="730" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/2eee0656-5e5c-4917-8f81-8bd76c28e455_1400x730.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:730,&quot;width&quot;:1400,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:378724,&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;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!K_z6!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2eee0656-5e5c-4917-8f81-8bd76c28e455_1400x730.png 424w, https://substackcdn.com/image/fetch/$s_!K_z6!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2eee0656-5e5c-4917-8f81-8bd76c28e455_1400x730.png 848w, https://substackcdn.com/image/fetch/$s_!K_z6!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2eee0656-5e5c-4917-8f81-8bd76c28e455_1400x730.png 1272w, https://substackcdn.com/image/fetch/$s_!K_z6!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2eee0656-5e5c-4917-8f81-8bd76c28e455_1400x730.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></p><p>All you need to <strong><a href="https://miro.com/app/board/uXjVMn3WomE=/?moveToWidget=3458764563299736588&amp;cot=14">know about colors in one place</a></strong></p><ol start="7"><li><p><strong>Watch Out for Cherry-Picking Data</strong></p></li></ol><p>It&#8217;s tempting to only highlight the data that supports your narrative, but this can mislead your audience. Always aim to provide full context by showing all relevant data or explaining why certain data points are excluded.</p><p>Also you need to critically examine the data presented in charts, as the data can often be misleading.&nbsp;First, check the source to determine if it's reliable and whether you can verify the data or replicate similar results.&nbsp;If the source is not provided, it's best to question the credibility of the chart.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!s6xm!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F04e1b4b8-a5be-472c-b727-bfce05b1872e_500x358.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!s6xm!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F04e1b4b8-a5be-472c-b727-bfce05b1872e_500x358.png 424w, https://substackcdn.com/image/fetch/$s_!s6xm!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F04e1b4b8-a5be-472c-b727-bfce05b1872e_500x358.png 848w, https://substackcdn.com/image/fetch/$s_!s6xm!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F04e1b4b8-a5be-472c-b727-bfce05b1872e_500x358.png 1272w, https://substackcdn.com/image/fetch/$s_!s6xm!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F04e1b4b8-a5be-472c-b727-bfce05b1872e_500x358.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!s6xm!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F04e1b4b8-a5be-472c-b727-bfce05b1872e_500x358.png" width="500" height="358" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/04e1b4b8-a5be-472c-b727-bfce05b1872e_500x358.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:358,&quot;width&quot;:500,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:134749,&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;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!s6xm!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F04e1b4b8-a5be-472c-b727-bfce05b1872e_500x358.png 424w, https://substackcdn.com/image/fetch/$s_!s6xm!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F04e1b4b8-a5be-472c-b727-bfce05b1872e_500x358.png 848w, https://substackcdn.com/image/fetch/$s_!s6xm!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F04e1b4b8-a5be-472c-b727-bfce05b1872e_500x358.png 1272w, https://substackcdn.com/image/fetch/$s_!s6xm!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F04e1b4b8-a5be-472c-b727-bfce05b1872e_500x358.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://ourchangingclimate.wordpress.com/tag/cherry-picking/">https://ourchangingclimate.wordpress.com/tag/cherry-picking/</a></p><ol start="8"><li><p><strong>Label Clearly</strong></p></li></ol><p>Make sure your axes, data points, and key elements are well-labeled. Misleading or missing labels can cause confusion, making it hard for your audience to interpret the chart correctly. Titles should also clearly describe what the chart represents.</p><p>By following these simple rules, you can ensure that your charts are not only accurate but also ethical in their presentation. Being mindful of these pitfalls will help you communicate data clearly and build trust with your audience.</p><h2>Making a Dashboard</h2><p>Once you've designed your charts, the next step is to combine them into a dashboard&#8212;a tool that brings together multiple visualizations in one place to provide an at-a-glance view of key insights. Dashboards are essential for data professionals, as they help in monitoring, analyzing, and exploring datasets effectively, offering a consolidated and interactive way to keep track of business metrics, performance, or any area where data plays a role.</p><p>A dashboard is a collection of charts, KPIs, and visual elements organized in a structured way to allow users to easily consume and interpret data. It can summarize complex information into simple, actionable insights for various audiences, from executives needing high-level overviews to analysts who require detailed data.</p><p>Dashboards serve multiple purposes:</p><ol><li><p><strong>Monitor</strong>: Track important metrics or KPIs in real-time or over time.</p></li><li><p><strong>Analyze</strong>: Compare different data points to derive insights.</p></li><li><p><strong>Explore</strong>: Allow users to drill into the data for more detail or investigate anomalies.</p></li></ol><h3>Combining Charts into a Dashboard</h3><p>When combining individual charts into a dashboard, it&#8217;s crucial to maintain clarity and consistency. The principles of <strong>layout</strong>, <strong>chart selection</strong>, and <strong>design</strong> come into play to ensure users can effortlessly engage with the data.</p><p>By following the design rules discussed earlier&#8212;like considering <strong>scanning patterns</strong>, applying <strong>Gestalt principles</strong>, and maintaining a <strong>clean design</strong>&#8212;you&#8217;ll create a dashboard that not only looks good but also tells a compelling story with data.</p><h3><strong>Scanning patterns</strong></h3><p><a href="https://public.tableau.com/app/profile/nastengraph/viz/DashboardDesignandContainersTricks/GestaltPrinciples">Scanning patterns</a> are crucial in data visualization and dashboard design because they dictate how users interact with visual information. Understanding these patterns allows us to arrange elements in a way that aligns with natural reading behaviors, ultimately enhancing comprehension and usability. Here are a few reasons why scanning patterns are important:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!K3a6!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcb9eb28c-8b34-420a-a762-13d3ef9fb88f_1946x580.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!K3a6!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcb9eb28c-8b34-420a-a762-13d3ef9fb88f_1946x580.png 424w, https://substackcdn.com/image/fetch/$s_!K3a6!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcb9eb28c-8b34-420a-a762-13d3ef9fb88f_1946x580.png 848w, https://substackcdn.com/image/fetch/$s_!K3a6!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcb9eb28c-8b34-420a-a762-13d3ef9fb88f_1946x580.png 1272w, https://substackcdn.com/image/fetch/$s_!K3a6!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcb9eb28c-8b34-420a-a762-13d3ef9fb88f_1946x580.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!K3a6!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcb9eb28c-8b34-420a-a762-13d3ef9fb88f_1946x580.png" width="1456" height="434" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/cb9eb28c-8b34-420a-a762-13d3ef9fb88f_1946x580.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:434,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:808774,&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;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!K3a6!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcb9eb28c-8b34-420a-a762-13d3ef9fb88f_1946x580.png 424w, https://substackcdn.com/image/fetch/$s_!K3a6!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcb9eb28c-8b34-420a-a762-13d3ef9fb88f_1946x580.png 848w, https://substackcdn.com/image/fetch/$s_!K3a6!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcb9eb28c-8b34-420a-a762-13d3ef9fb88f_1946x580.png 1272w, https://substackcdn.com/image/fetch/$s_!K3a6!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcb9eb28c-8b34-420a-a762-13d3ef9fb88f_1946x580.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 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!M-Ni!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F542d4dbc-042e-481e-9c27-c8ba403ac355_1946x624.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!M-Ni!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F542d4dbc-042e-481e-9c27-c8ba403ac355_1946x624.png 424w, https://substackcdn.com/image/fetch/$s_!M-Ni!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F542d4dbc-042e-481e-9c27-c8ba403ac355_1946x624.png 848w, https://substackcdn.com/image/fetch/$s_!M-Ni!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F542d4dbc-042e-481e-9c27-c8ba403ac355_1946x624.png 1272w, https://substackcdn.com/image/fetch/$s_!M-Ni!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F542d4dbc-042e-481e-9c27-c8ba403ac355_1946x624.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!M-Ni!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F542d4dbc-042e-481e-9c27-c8ba403ac355_1946x624.png" width="1456" height="467" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/542d4dbc-042e-481e-9c27-c8ba403ac355_1946x624.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:467,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:885508,&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;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!M-Ni!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F542d4dbc-042e-481e-9c27-c8ba403ac355_1946x624.png 424w, https://substackcdn.com/image/fetch/$s_!M-Ni!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F542d4dbc-042e-481e-9c27-c8ba403ac355_1946x624.png 848w, https://substackcdn.com/image/fetch/$s_!M-Ni!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F542d4dbc-042e-481e-9c27-c8ba403ac355_1946x624.png 1272w, https://substackcdn.com/image/fetch/$s_!M-Ni!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F542d4dbc-042e-481e-9c27-c8ba403ac355_1946x624.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 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!vdFp!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fce88d562-d008-4058-9122-a4cfbea8a91f_1946x586.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!vdFp!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fce88d562-d008-4058-9122-a4cfbea8a91f_1946x586.png 424w, https://substackcdn.com/image/fetch/$s_!vdFp!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fce88d562-d008-4058-9122-a4cfbea8a91f_1946x586.png 848w, https://substackcdn.com/image/fetch/$s_!vdFp!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fce88d562-d008-4058-9122-a4cfbea8a91f_1946x586.png 1272w, https://substackcdn.com/image/fetch/$s_!vdFp!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fce88d562-d008-4058-9122-a4cfbea8a91f_1946x586.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!vdFp!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fce88d562-d008-4058-9122-a4cfbea8a91f_1946x586.png" width="1456" height="438" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/ce88d562-d008-4058-9122-a4cfbea8a91f_1946x586.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:438,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:273998,&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;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!vdFp!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fce88d562-d008-4058-9122-a4cfbea8a91f_1946x586.png 424w, https://substackcdn.com/image/fetch/$s_!vdFp!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fce88d562-d008-4058-9122-a4cfbea8a91f_1946x586.png 848w, https://substackcdn.com/image/fetch/$s_!vdFp!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fce88d562-d008-4058-9122-a4cfbea8a91f_1946x586.png 1272w, https://substackcdn.com/image/fetch/$s_!vdFp!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fce88d562-d008-4058-9122-a4cfbea8a91f_1946x586.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></p><h3><strong>Gestalt principles</strong></h3><p>Gestalt principles are fundamental to understanding how people perceive visual information, and they play a crucial role in data visualization and design. Pretty much all you need from Gestalt principles are the proximity and similarity rules.</p><p><strong>Proximity &#8211; when objects are in close proximity, our minds naturally infer a connection between them.</strong></p><ul><li><p>Place elements related to the same things together</p></li><li><p>Place filters and legends closer to the elements they are related to</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Tsm3!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F58dc56fa-7698-414b-ab3f-4a955cf0de09_1400x600.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Tsm3!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F58dc56fa-7698-414b-ab3f-4a955cf0de09_1400x600.png 424w, https://substackcdn.com/image/fetch/$s_!Tsm3!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F58dc56fa-7698-414b-ab3f-4a955cf0de09_1400x600.png 848w, https://substackcdn.com/image/fetch/$s_!Tsm3!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F58dc56fa-7698-414b-ab3f-4a955cf0de09_1400x600.png 1272w, https://substackcdn.com/image/fetch/$s_!Tsm3!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F58dc56fa-7698-414b-ab3f-4a955cf0de09_1400x600.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Tsm3!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F58dc56fa-7698-414b-ab3f-4a955cf0de09_1400x600.png" width="1400" height="600" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/58dc56fa-7698-414b-ab3f-4a955cf0de09_1400x600.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:600,&quot;width&quot;:1400,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:447642,&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;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!Tsm3!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F58dc56fa-7698-414b-ab3f-4a955cf0de09_1400x600.png 424w, https://substackcdn.com/image/fetch/$s_!Tsm3!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F58dc56fa-7698-414b-ab3f-4a955cf0de09_1400x600.png 848w, https://substackcdn.com/image/fetch/$s_!Tsm3!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F58dc56fa-7698-414b-ab3f-4a955cf0de09_1400x600.png 1272w, https://substackcdn.com/image/fetch/$s_!Tsm3!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F58dc56fa-7698-414b-ab3f-4a955cf0de09_1400x600.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></p></li></ul><p><strong>Similarity &#8211; objects sharing the same color, shape, or size are perceived as related or part of the same group.</strong></p><ul><li><p>Effective color use</p></li><li><p>Consistent design of similar elements</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_!9IFx!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff87d0e5b-39d2-46c9-9f42-ce82b147d02f_1400x528.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!9IFx!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff87d0e5b-39d2-46c9-9f42-ce82b147d02f_1400x528.png 424w, https://substackcdn.com/image/fetch/$s_!9IFx!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff87d0e5b-39d2-46c9-9f42-ce82b147d02f_1400x528.png 848w, https://substackcdn.com/image/fetch/$s_!9IFx!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff87d0e5b-39d2-46c9-9f42-ce82b147d02f_1400x528.png 1272w, https://substackcdn.com/image/fetch/$s_!9IFx!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff87d0e5b-39d2-46c9-9f42-ce82b147d02f_1400x528.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!9IFx!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff87d0e5b-39d2-46c9-9f42-ce82b147d02f_1400x528.png" width="1400" height="528" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/f87d0e5b-39d2-46c9-9f42-ce82b147d02f_1400x528.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:528,&quot;width&quot;:1400,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:323653,&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;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!9IFx!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff87d0e5b-39d2-46c9-9f42-ce82b147d02f_1400x528.png 424w, https://substackcdn.com/image/fetch/$s_!9IFx!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff87d0e5b-39d2-46c9-9f42-ce82b147d02f_1400x528.png 848w, https://substackcdn.com/image/fetch/$s_!9IFx!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff87d0e5b-39d2-46c9-9f42-ce82b147d02f_1400x528.png 1272w, https://substackcdn.com/image/fetch/$s_!9IFx!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff87d0e5b-39d2-46c9-9f42-ce82b147d02f_1400x528.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></p><p><strong>Enclosure &#8211; this principle, akin to proximity, suggests that objects &#8216;enclosed&#8217; within a defined area belong to a group.</strong></p><ul><li><p>Grouping connected charts with the same background, such as KPI cards.</p></li><li><p>Highlighting specific parts of the chart, such as predicted values or quadrants in the scatterplot.</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_!Ulc5!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F94f8da2c-af8e-4c98-ad7a-045515a25f03_1400x751.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Ulc5!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F94f8da2c-af8e-4c98-ad7a-045515a25f03_1400x751.png 424w, https://substackcdn.com/image/fetch/$s_!Ulc5!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F94f8da2c-af8e-4c98-ad7a-045515a25f03_1400x751.png 848w, https://substackcdn.com/image/fetch/$s_!Ulc5!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F94f8da2c-af8e-4c98-ad7a-045515a25f03_1400x751.png 1272w, https://substackcdn.com/image/fetch/$s_!Ulc5!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F94f8da2c-af8e-4c98-ad7a-045515a25f03_1400x751.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Ulc5!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F94f8da2c-af8e-4c98-ad7a-045515a25f03_1400x751.png" width="1400" height="751" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/94f8da2c-af8e-4c98-ad7a-045515a25f03_1400x751.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:751,&quot;width&quot;:1400,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:337284,&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;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!Ulc5!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F94f8da2c-af8e-4c98-ad7a-045515a25f03_1400x751.png 424w, https://substackcdn.com/image/fetch/$s_!Ulc5!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F94f8da2c-af8e-4c98-ad7a-045515a25f03_1400x751.png 848w, https://substackcdn.com/image/fetch/$s_!Ulc5!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F94f8da2c-af8e-4c98-ad7a-045515a25f03_1400x751.png 1272w, https://substackcdn.com/image/fetch/$s_!Ulc5!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F94f8da2c-af8e-4c98-ad7a-045515a25f03_1400x751.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><h3><strong>Cleaner design</strong></h3><ol><li><p><strong>Remove clutter from your charts</strong></p></li></ol><p>Remove unnecessary elements from your chart that create noise and make it hard to read. If you are using Tableau, at least avoid adding new ones! The basic formatting is pretty good. Try to:</p><ul><li><p>Remove borders</p></li><li><p>Remove gridlines (if they are needed, e.g., for large line charts, make them light grey)</p></li><li><p>Remove additional markers and unnecessary labels</p></li><li><p>Remove backgrounds</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_!PoTm!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc24981fd-44d5-46d6-a741-38baf9bb206d_1456x369.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!PoTm!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc24981fd-44d5-46d6-a741-38baf9bb206d_1456x369.png 424w, https://substackcdn.com/image/fetch/$s_!PoTm!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc24981fd-44d5-46d6-a741-38baf9bb206d_1456x369.png 848w, https://substackcdn.com/image/fetch/$s_!PoTm!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc24981fd-44d5-46d6-a741-38baf9bb206d_1456x369.png 1272w, https://substackcdn.com/image/fetch/$s_!PoTm!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc24981fd-44d5-46d6-a741-38baf9bb206d_1456x369.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!PoTm!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc24981fd-44d5-46d6-a741-38baf9bb206d_1456x369.png" width="1456" height="369" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c24981fd-44d5-46d6-a741-38baf9bb206d_1456x369.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:369,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:193142,&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;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!PoTm!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc24981fd-44d5-46d6-a741-38baf9bb206d_1456x369.png 424w, https://substackcdn.com/image/fetch/$s_!PoTm!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc24981fd-44d5-46d6-a741-38baf9bb206d_1456x369.png 848w, https://substackcdn.com/image/fetch/$s_!PoTm!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc24981fd-44d5-46d6-a741-38baf9bb206d_1456x369.png 1272w, https://substackcdn.com/image/fetch/$s_!PoTm!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc24981fd-44d5-46d6-a741-38baf9bb206d_1456x369.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></p><p>Also, take a look at a couple of makeovers on the&nbsp;<a href="https://www.storytellingwithdata.com/makeovers">Storytelling with Data</a>&nbsp;blog. Most of the time, they focus on decluttering charts. Highly recommend!</p><ol start="2"><li><p><strong>Use Consistent Formatting</strong></p></li></ol><p>Consistency in colors, fonts, and styles helps in creating a cohesive look. Choose a color palette that aligns with your brand and use it consistently across different elements of the dashboard . Consistent formatting aids in quick comprehension and reduces cognitive load.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!ioNi!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1bc9ceb7-3d35-462a-beb7-46ac8f6ebeb9_1456x373.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!ioNi!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1bc9ceb7-3d35-462a-beb7-46ac8f6ebeb9_1456x373.png 424w, https://substackcdn.com/image/fetch/$s_!ioNi!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1bc9ceb7-3d35-462a-beb7-46ac8f6ebeb9_1456x373.png 848w, https://substackcdn.com/image/fetch/$s_!ioNi!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1bc9ceb7-3d35-462a-beb7-46ac8f6ebeb9_1456x373.png 1272w, https://substackcdn.com/image/fetch/$s_!ioNi!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1bc9ceb7-3d35-462a-beb7-46ac8f6ebeb9_1456x373.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!ioNi!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1bc9ceb7-3d35-462a-beb7-46ac8f6ebeb9_1456x373.png" width="1456" height="373" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/1bc9ceb7-3d35-462a-beb7-46ac8f6ebeb9_1456x373.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:373,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:136021,&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;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!ioNi!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1bc9ceb7-3d35-462a-beb7-46ac8f6ebeb9_1456x373.png 424w, https://substackcdn.com/image/fetch/$s_!ioNi!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1bc9ceb7-3d35-462a-beb7-46ac8f6ebeb9_1456x373.png 848w, https://substackcdn.com/image/fetch/$s_!ioNi!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1bc9ceb7-3d35-462a-beb7-46ac8f6ebeb9_1456x373.png 1272w, https://substackcdn.com/image/fetch/$s_!ioNi!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1bc9ceb7-3d35-462a-beb7-46ac8f6ebeb9_1456x373.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><ol start="3"><li><p><strong>Utilize White Space</strong></p></li></ol><p>It's like pauses for your visualizations. There should be enough space between visualizations to take a breath and look at the next one &#127793;</p><p>In Tableau, utilize paddings. Don't forget about inner padding; it helps make charts stand out from the background and creates the needed space.</p><p>Paddings (in px)</p><ul><li><p>for charts: outer &#8211; 4, inner - 0;</p></li><li><p>for charts blocks: outer &#8211; 4&#8211;10, inner 8-16</p></li><li><p>between charts inside one block: 16-40</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_!5otX!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F12c08e76-8ac7-425c-8da1-167cad093f1b_1456x568.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!5otX!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F12c08e76-8ac7-425c-8da1-167cad093f1b_1456x568.png 424w, https://substackcdn.com/image/fetch/$s_!5otX!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F12c08e76-8ac7-425c-8da1-167cad093f1b_1456x568.png 848w, https://substackcdn.com/image/fetch/$s_!5otX!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F12c08e76-8ac7-425c-8da1-167cad093f1b_1456x568.png 1272w, https://substackcdn.com/image/fetch/$s_!5otX!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F12c08e76-8ac7-425c-8da1-167cad093f1b_1456x568.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!5otX!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F12c08e76-8ac7-425c-8da1-167cad093f1b_1456x568.png" width="1456" height="568" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/12c08e76-8ac7-425c-8da1-167cad093f1b_1456x568.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:568,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:368505,&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;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!5otX!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F12c08e76-8ac7-425c-8da1-167cad093f1b_1456x568.png 424w, https://substackcdn.com/image/fetch/$s_!5otX!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F12c08e76-8ac7-425c-8da1-167cad093f1b_1456x568.png 848w, https://substackcdn.com/image/fetch/$s_!5otX!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F12c08e76-8ac7-425c-8da1-167cad093f1b_1456x568.png 1272w, https://substackcdn.com/image/fetch/$s_!5otX!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F12c08e76-8ac7-425c-8da1-167cad093f1b_1456x568.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><ol start="4"><li><p><strong>Don't overuse colors</strong></p></li></ol><p>Start with grey; make all charts grey! If you don't like grey, most likely you haven't found the grey you like :) There are many tones of it, so find the one you like and use it first. This will help you understand when you really need to use color.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!BPFM!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffb9f3e69-b7d7-4ddf-bbd4-5b1666e82fb1_1302x620.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!BPFM!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffb9f3e69-b7d7-4ddf-bbd4-5b1666e82fb1_1302x620.png 424w, https://substackcdn.com/image/fetch/$s_!BPFM!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffb9f3e69-b7d7-4ddf-bbd4-5b1666e82fb1_1302x620.png 848w, https://substackcdn.com/image/fetch/$s_!BPFM!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffb9f3e69-b7d7-4ddf-bbd4-5b1666e82fb1_1302x620.png 1272w, https://substackcdn.com/image/fetch/$s_!BPFM!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffb9f3e69-b7d7-4ddf-bbd4-5b1666e82fb1_1302x620.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!BPFM!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffb9f3e69-b7d7-4ddf-bbd4-5b1666e82fb1_1302x620.png" width="1302" height="620" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/fb9f3e69-b7d7-4ddf-bbd4-5b1666e82fb1_1302x620.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:620,&quot;width&quot;:1302,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:57705,&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;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!BPFM!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffb9f3e69-b7d7-4ddf-bbd4-5b1666e82fb1_1302x620.png 424w, https://substackcdn.com/image/fetch/$s_!BPFM!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffb9f3e69-b7d7-4ddf-bbd4-5b1666e82fb1_1302x620.png 848w, https://substackcdn.com/image/fetch/$s_!BPFM!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffb9f3e69-b7d7-4ddf-bbd4-5b1666e82fb1_1302x620.png 1272w, https://substackcdn.com/image/fetch/$s_!BPFM!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffb9f3e69-b7d7-4ddf-bbd4-5b1666e82fb1_1302x620.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></p><p>Mastering data visualization and dashboard design is essential for data professionals aiming to communicate insights effectively. By understanding the principles of visual perception, selecting appropriate chart types, and adhering to design best practices, you can create impactful visualizations that facilitate informed decision-making.</p><h2>Where to create your vizzes?</h2><p><strong>Code</strong></p><ul><li><p><strong>Python:</strong> matplotlib, seaborn, plotnine, plotly. Check out <a href="http://python-graph-gallery.com/">python-graph-gallery.com</a> to find code for needed charts</p></li><li><p><strong>R:</strong> ggplot2, plotly. Check out <a href="http://r-graph-gallery.com/">r-graph-gallery.com</a></p></li><li><p>D3.js, <a href="http://d3-graph-gallery.com/">d3-graph-gallery.com</a></p></li></ul><p><strong>BI tools (you can create a dashboard there as well)</strong></p><ul><li><p><a href="https://www.tableau.com/">Tableau</a></p></li><li><p><a href="https://powerbi.microsoft.com/en-us/">Power BI</a></p></li><li><p><a href="https://cloud.google.com/looker/docs">Looker</a> &amp; <a href="https://lookerstudio.google.com/u/0/">Looker Studio</a></p></li></ul><p><strong>Online tools</strong></p><ul><li><p><a href="https://www.datawrapper.de/">Datawrapper</a></p></li><li><p><a href="http://app.rawgraphs.io/">RawGraphs</a></p></li><li><p><a href="https://flourish.studio/">Flourish</a></p></li></ul><p>This is not a final list, and you can, of course, create charts in Excel or Google Sheets. The best way to start is by finding a topic that interests you and diving into it. Choose something you're genuinely curious about&#8212;whether it's sports, a favorite band, or a personal event&#8212;and pull some personal data to explore and visualize.</p><h2>Book Recommendations</h2><p>There are hundreds of books in this area but some books are better than others. Let&#8217;s share our picks of the books.</p><p>From <span class="mention-wrap" data-attrs="{&quot;name&quot;:&quot;Surfalytics&quot;,&quot;id&quot;:2051160,&quot;type&quot;:&quot;pub&quot;,&quot;url&quot;:&quot;https://open.substack.com/pub/surfalytics&quot;,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d233226f-0d04-4676-8097-da497d9b1c00_1280x1280.png&quot;,&quot;uuid&quot;:&quot;51548c47-081d-4472-87cf-a298d74714af&quot;}" data-component-name="MentionToDOM"></span> by <a href="https://www.linkedin.com/in/dmitryanoshin/">Dmitry Anoshin</a></p><ul><li><p><a href="https://www.amazon.ca/Information-Dashboard-Design-At-Glance/dp/1938377001/ref=pd_lpo_sccl_1/146-5471602-8068619?pd_rd_w=P8nOA&amp;content-id=amzn1.sym.d3f44101-6e04-446e-916c-a6ec5616982b&amp;pf_rd_p=d3f44101-6e04-446e-916c-a6ec5616982b&amp;pf_rd_r=3A9D2SY89QKC63DCX61P&amp;pd_rd_wg=NOzlL&amp;pd_rd_r=55a0de67-1b0a-4f59-a230-c81209374fd8&amp;pd_rd_i=1938377001&amp;psc=1">Information Dashboard Design: Displaying Data for At-a-Glance Monitoring</a> by Stephen Few - this book is vendor agnostic and explains details for the quality dashboard design.</p></li><li><p><a href="https://www.amazon.ca/Big-Book-Dashboards-Visualizing-Real-World/dp/1119282713">The Big Book of Dashboards: Visualizing Your Data Using Real-World Business Scenarios</a> by by&nbsp;Steve Wexler,&nbsp;Jeffrey Shaffer,&nbsp;Andy Cotgreave - this book has around 20 real dashboards built in Tableau for different industries and authors explain the best practices and improving dashboards while we are reading.</p></li><li><p><a href="https://www.amazon.ca/Lean-Analytics-Better-Startup-Faster/dp/1449335675">Lean Analytics: Use Data to Build a Better Startup Faster</a> - this is not about data visualisation but it is about right metrics, the things that matter the most. This book will help you to learn what is worth adding to the dashboard and how to define the right metrics.</p></li></ul><p>From @Anastasiya Kuznetsova</p><ul><li><p><a href="https://www.amazon.com/Storytelling-Data-Visualization-Business-Professionals/dp/1119002257">Storytelling With Data</a> by Cole Nussbaumer Knaflic &#8211; is an excellent book for anyone beginning their journey into data visualization. It covers essential concepts and offers practical guidance to help you create more effective and impactful visuals.</p></li><li><p><a href="https://clauswilke.com/dataviz/">Fundamentals of Data Visualization</a> by Claus O Wilke &#8211; is a free e-book focused on helping scientists create better charts. The entire workbook is written in R Markdown, making it a practical guide for understanding useful concepts and improving data visualization skills. It serves as a valuable resource for anyone looking to enhance their ability to build effective visualizations in R.</p></li><li><p><a href="https://www.amazon.com/How-Charts-Lie-Getting-Information/dp/1324001569">How Charts Lie: Getting Smarter about Visual Information</a> by&nbsp;Alberto Cairo &#8211; this is definitely one of my favorite books. It highlights the importance of thinking critically about how and why we create charts. The book is easy to read and filled with fascinating examples, making it both engaging and informative for anyone looking to improve their data literacy.</p></li></ul><p>To further enhance your knowledge in this field, consider exploring works by Edward Tufte, Alberto Cairo, Stephen Few, Cole Nussbaumer Knaflic, Tamara Munzner, Claus Wilke and many others.</p><p><strong>If you enjoyed this article, subscribe to our newsletters: <a href="https://nastengraph.substack.com/">BI Bites &#127850;</a> and <a href="https://blog.surfalytics.com/">Surfalytics</a> &#128640;</strong></p><p></p>]]></content:encoded></item><item><title><![CDATA[From Relocation to Employment: Strategies for Career Success Abroad]]></title><description><![CDATA[Mastering Job Market Dynamics, Building Key Skills, and Expanding Your Professional Network]]></description><link>https://blog.surfalytics.com/p/from-relocation-to-employment-strategies</link><guid isPermaLink="false">https://blog.surfalytics.com/p/from-relocation-to-employment-strategies</guid><dc:creator><![CDATA[Dmitry Anoshin]]></dc:creator><pubDate>Tue, 14 May 2024 05:33:15 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa8b53c5f-68eb-414e-89fe-83119371d50f_1228x858.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Are you moving from one country to another? From one city to another? It means, that the job market is different, and the tools and skill set might be slightly different. I hope your foundational knowledge of topics is on point and you aren't driven and distracted by marketing pitches and vendor buzzwords. <br><br>If you feel, you have a gap in foundational knowledge, you definitely would struggle in your career and you need someone who can save you money and time. Nowadays courses, training, certifications and even degrees won't help you to gain a job with a competitive salary.<br><br>The competition is high and you have to acquire a competitive advantage. This is all about the Surfalytics Community. It provides the environment for you to acquire a competitive advantage in the job market and boost your skills with the:</p><ol><li><p>Soft Skills - help you to communicate with stakeholders and team</p></li><li><p>Hard Skills - actual skills for doing your job and doing it well</p></li><li><p>Interviewing Skills - help you to know what to expect on an interview and practice it, prepare you for Behavioural questions, interview frameworks, coding exercises and so on</p></li><li><p>Domain knowledge - just skills are not enough, they are required context to apply. </p></li></ol><p>For example, knowledge of SQL and Tableau is not enough, you would need to understand what kind of data problem you are solving, who are stakeholders, what are their expectations and how can you help them with data, in other words, you would need to leverage Soft, Hard and Domain all together. Tricky job if you've never done this before or done poorly. <br><br>All of these apply to the interview, you should impress the hiring manager, and you have to demonstrate that you are aware of typical data problems (hiring manager pain points), and outline potential solutions and best practices in other words be proactive about the job role you are applied and proof that you are the right candidate.<br><br>Ok, let&#8217;s stay on track. Back to our main topic.<br><br>Assume, you are moved to a new place and you have to find a job. Obviously, it is too late. Even with my outstanding experience, I couldn't find a job fast. Nowadays, it might take 3-4 months easily. <br><br>You guess why? It is easy. Data jobs and skills aren't new and many people think it is easy money. Finish a couple courses, get a couple certifications, practice SQL and Python and you are good to go...Or I would say, you are good to apply for the job. <br><br>Imagine, there is one job posting for a Data Analyst role in Vancouver, BC. Desperate candidates will start to apply from all over the world. No one really checks the job descriptions and reads the requirements. Even if candidates have no Canadian working visa they still hope to get a shot for the interview. And they won't get one. <br><br>The challenge is that these folks block the attention of the recruiter. Imagine getting 500 applications in a couple days. As a result, a good Resume like yours even didn't come to the attention of HR. <br><br>Some claim, that you have to write cover letters, connect with HR on Linkedin and data folks from this company. But it is not proven. In Surfalytics, every week members share their interviewing progress and usually it takes at least a hundred applications, and a dozen interviews before the actual offer. And we don't have a silver bullet to overcome the challenge I've highlighted.<br><br>I mentioned that it is late to start job searching after your move. Same it is too late to search job if you lost one. (I will write another post about a good time to search for the job).<br><br>Let's now focus on an ideal scenario that can work for anyone. It covers the following use cases:</p><ol><li><p>You are planning to move/migrate to a new country</p></li><li><p>You are moving to a new Province/State/City that might have different job market requirements</p></li><li><p>You already moved and stacked</p></li><li><p>You never had real work experience and are not sure where to start (not moving case, but the approach will help you a lot)</p></li></ol><p><br>I don't know any other tool better than LinkedIn that will give you all the answers to all the questions related to your data career journey.<br><br>Let's try to brainstorm the questions and find the answers.</p><div class="pullquote"><p>What are the prerequisites?</p></div><p>Often, folks buy my consultation and ask me to help them with their career and life choices. Everyone has multiple options at any single time and we might need someone to check from a different angle and help to make the right decision. I can do this well because I was there and I mostly share my perspective. <br><br>Your main goal is to decide WHERE you want to live and work. Don't think about temporary, think about the long term. What is the ideal place for you? I tend to believe that our minds are materialized. As soon, as you decide where you want to live and work, go to Linkedin and make a solid LinkedIn profile that will match your Resume.<br><br>A couple action items:</p><ul><li><p>Make sure you choose the city/country that you are planning to be in, even if you aren't there yet.</p></li><li><p>Make sure your title/role for all positions is the same as you want to apply for and study.</p></li></ul><p>This will help you establish networking connections with local folks and HR will see you as a potential candidate and this will increase the trust. <br><br>You have to clearly understand - if you are applying for a job that is in a foreign country and your resume/LinkedIn highlights that you don't have the right experience, and you aren't based in the same country where the job is, you probably will miss the opportunity. Our goal is to decrease some "red flags" for HR and Hiring Managers.</p><div class="pullquote"><p>What are the requirements for my job?</p></div><p>By job, I assume <strong>Data Analyst</strong>, <strong>Analytics Engineer</strong>, <strong>BI Developer</strong>, <strong>Data Engineer</strong>. This is what I am covering end to end across the world;) </p><div id="youtube2-JnbFfr0kQCo" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;JnbFfr0kQCo&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/JnbFfr0kQCo?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><p><br>To find the answers, we have to go to Linkedin and start searching for jobs. I hope you have a clear understanding of job roles. If not, you can check my Data Job Roadmap and overall Module 1 to learn about the fundamentals of Analytics.<br><br>Let's assume this is the role of a Data Analyst. In this case, we should also check the BI developer/Engineer. We already should know what a Data Analyst is doing and how this role adds value to the business. </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_xF!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa8b53c5f-68eb-414e-89fe-83119371d50f_1228x858.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!G_xF!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa8b53c5f-68eb-414e-89fe-83119371d50f_1228x858.png 424w, https://substackcdn.com/image/fetch/$s_!G_xF!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa8b53c5f-68eb-414e-89fe-83119371d50f_1228x858.png 848w, https://substackcdn.com/image/fetch/$s_!G_xF!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa8b53c5f-68eb-414e-89fe-83119371d50f_1228x858.png 1272w, https://substackcdn.com/image/fetch/$s_!G_xF!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa8b53c5f-68eb-414e-89fe-83119371d50f_1228x858.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!G_xF!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa8b53c5f-68eb-414e-89fe-83119371d50f_1228x858.png" width="1228" height="858" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a8b53c5f-68eb-414e-89fe-83119371d50f_1228x858.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:858,&quot;width&quot;:1228,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:188215,&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;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!G_xF!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa8b53c5f-68eb-414e-89fe-83119371d50f_1228x858.png 424w, https://substackcdn.com/image/fetch/$s_!G_xF!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa8b53c5f-68eb-414e-89fe-83119371d50f_1228x858.png 848w, https://substackcdn.com/image/fetch/$s_!G_xF!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa8b53c5f-68eb-414e-89fe-83119371d50f_1228x858.png 1272w, https://substackcdn.com/image/fetch/$s_!G_xF!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa8b53c5f-68eb-414e-89fe-83119371d50f_1228x858.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><br>Let's open 15-20 Job postings in the target Country/City and ideally, we can print them out. This will help us slowly read through and highlight the following information using a different colour:</p><ul><li><p>Domain (industry knowledge).</p></li><li><p>Tools they use for BI, Data Warehouse, ETL. We should search for vendors&#8217; names.</p></li><li><p>Any reference about DevOps, CI/CD.</p></li><li><p>Languages they want. I bet it is SQL and sometimes Python.</p></li><li><p>Highlight the typical use cases. For example - "collect requirements from business stakeholders", "write documentation".</p></li><li><p>Search for complementary data things like data quality, data catalogue, data contracts and so on.</p></li><li><p>Check if is it Hybrid, Remote or in the office.</p></li><li><p>Check for any compensation references.</p></li></ul><p>After you read so many "similar" job postings you will see a pattern. Don't forget, you are a data person. And we just collected data, let's aggregate it in the spreadsheet and find out what is the most popular data stack. <br><br>Our goal always remains the same - 20% of efforts that will drive 80% of results. This analysis will do exactly this.</p><div class="pullquote"><p> How to grow a "local" network?</p></div><p>Since your LinkedIn profile is based in the target country, you are good to go to start connecting with data folks and HR. For each company where you like the job description, data stack and overall company, you have to search for HR/Recruiters folks and connect with them as well as potential hiring managers such as Managers and directors of Data Analytics teams. <br><br>In addition, you can overall connect with local folks and try to connect with them. Should be fairly simple. You can tell them that you are new in the area and not sure how things work and can ask for tips.<br><br>If you can find that they are active on Linkedin, do not hesitate to like and comment on their post, this will help to establish trust and who knows, maybe you will work together in the future;)<br></p><div class="pullquote"><p>What is the fair compensation?</p></div><p>Based on the last exercises, we collected some data from job postings and we connected with local engineers and analysts. This can help. There are other places like:<br>- <a href="https://www.teamblind.com">Team blind</a><br>- <a href="https://www.levels.fyi">levels.fyi</a><br>- <a href="https://www.glassdoor.com">glassdoor</a><br>And probably some others.</p><div class="pullquote"><p>What are the requirements for my job?</p></div><p>If we have the data, we should answer about the ideal tech stack of the most popular. For Data Analyst roles we should know:</p><ul><li><p>What is the most popular BI?</p></li><li><p>What is the most popular Data Warehouse platform?</p></li><li><p>What is the most popular public cloud vendor?</p></li><li><p>What is the most popular language? (Obviously SQL)</p></li><li><p>How do they transform the data and do they use dbt?</p></li><li><p>What are other important skills to have? (Git?)<br></p></li></ul><div class="pullquote"><p>What are the names of companies who actively hiring?</p></div><p>This analysis will show you that some companies are hiring more often than others, try to identify companies with healthy data culture and data teams. It is easy to do. If the job description is clear and the company is using modern data tools, obviously they will pay well and the team would be great. <br><br>If a company has a legacy (old) data framework, running analytics on the premise with a spreadsheet or an old stack like Microsoft Reporting Service obviously this is not a good choice.</p><div class="pullquote"><p>What are the fresh jobs?</p></div><p>I don't know did you have noticed already or not, but reading job applications and deriving the most important information is quite a good skill that will help you a lot. Try to make this your daily/weekly routine. You can simply set up Job Alerts and get all new jobs. Continue to review job applications, better understand the market requirements, networking with folks. In other words, you are creating great product-market fit where you are product=)</p><div class="pullquote"><p>Can I actually practice the interview?</p></div><p>Yes! You have to practice the interview. you linkedin and resume are already based on the target destination. Why not leverage them and assume we are already living in this country or will live soon. <br><br>Apply for all jobs and try to attend interviews. This is your source of real feedback. You will practice your story and identify the gap. Every interview failure is a big win. You can think about sports competitions. The athletes say - that 1 real competition is worth many hours of practice. </p><div class="pullquote"><p>How to get a competitive advantage aka what to do with all of this?</p></div><p>I hope you got the idea. You have to create an ideal profile on Linkedin and Resume, move virtually to the desired location and do a deep dive into the job postings to understand where your focus should be and what kind of pet projects you have to do.<br><br>Don't hesitate to attend Mock and SQL interview practices at Surfalytics or watch on YouTube.</p><div id="youtube2-FyxtQfhnngQ" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;FyxtQfhnngQ&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/FyxtQfhnngQ?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><div id="youtube2-XSR-MEL7Ho4" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;XSR-MEL7Ho4&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/XSR-MEL7Ho4?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><p><br>This approach helped me a lot and will help you! Good luck!</p>]]></content:encoded></item><item><title><![CDATA[Ultimate Data Analytics Career Roadmap]]></title><description><![CDATA[From Data Analyst to Data Engineer as Individual Contributed (IC)]]></description><link>https://blog.surfalytics.com/p/ultimate-data-analytics-career-roadmap</link><guid isPermaLink="false">https://blog.surfalytics.com/p/ultimate-data-analytics-career-roadmap</guid><dc:creator><![CDATA[Dmitry Anoshin]]></dc:creator><pubDate>Sat, 23 Mar 2024 03:59:00 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/5276125d-aac6-49a9-8ebf-cef3d1a146d7_2248x1068.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>I understand that getting your first job can be challenging. You have to manage many things, and it feels like a chicken-and-egg problem.</p><p>To land a job, you need experience; to get experience, you need a job. This is the most common dilemma. I will address this issue in another post. This is something we constantly do at Surfalytics, helping people align with their goals and actually land the job.</p><p>I've identified three categories of individuals, and depending on their needs, the action plan varies.</p><p>Let's identify the groups:</p><p>1. Those with no actual data experience who want to land a job. For these folks, I am using a Data Analyst (BI developer) roadmap.</p><p>2. Those with experience as an analyst or who believe they possess key analyst skills and are ready to move towards a more engineering-focused role or transition from a non-technical to a technical (engineering) job.</p><p>3. Those who may already have some experience in the data space but want to maximize their total compensation.</p><p>In this newsletter, I will share <strong>six roadmaps for a data career.</strong> Despite the rise of Generative AI, we shouldn't worry about being replaced any time soon. However, the risk is real. If you doubt it, you can read two books that aren't new:</p><ul><li><p><a href="https://www.amazon.ca/Angel-Invest-Technology-Startups-Timeless-Investor/dp/0062560700">Angel: How to Invest in Technology Startups--Timeless Advice from an Angel Investor Who Turned $100,000 into $100,000,000</a></p></li><li><p><a href="https://www.amazon.ca/Zero-One-Notes-Startups-Future/dp/0804139296/ref=sr_1_1?crid=3SED4U0EM0N0X&amp;dib=eyJ2IjoiMSJ9.PPsv6cwcDS7aeeRZnx5v4OxP2LuGGhDbsF6PDhtm86PGjHj071QN20LucGBJIEps.aXqBgC1SnRun2gsacMc6Ba6FGdXmtR42uDlWWt02IzE&amp;dib_tag=se&amp;keywords=peter+thiel+o+to+1&amp;qid=1711164526&amp;s=books&amp;sprefix=peter+thiel+o+to+1%2Cstripbooks%2C124&amp;sr=1-1">Zero to One: Notes on Startups, or How to Build the Future</a></p></li></ul><p>These books are excellent. They will bring you back down to earth and help you adopt a more realistic perspective.</p><h1>Road map 1: Data Analyst or BI developer</h1><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!trny!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0c537a02-d94b-42a7-8875-66aa776b0669_2678x1110.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!trny!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0c537a02-d94b-42a7-8875-66aa776b0669_2678x1110.png 424w, https://substackcdn.com/image/fetch/$s_!trny!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0c537a02-d94b-42a7-8875-66aa776b0669_2678x1110.png 848w, https://substackcdn.com/image/fetch/$s_!trny!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0c537a02-d94b-42a7-8875-66aa776b0669_2678x1110.png 1272w, https://substackcdn.com/image/fetch/$s_!trny!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0c537a02-d94b-42a7-8875-66aa776b0669_2678x1110.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!trny!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0c537a02-d94b-42a7-8875-66aa776b0669_2678x1110.png" width="1456" height="603" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/0c537a02-d94b-42a7-8875-66aa776b0669_2678x1110.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:603,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:164742,&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;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!trny!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0c537a02-d94b-42a7-8875-66aa776b0669_2678x1110.png 424w, https://substackcdn.com/image/fetch/$s_!trny!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0c537a02-d94b-42a7-8875-66aa776b0669_2678x1110.png 848w, https://substackcdn.com/image/fetch/$s_!trny!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0c537a02-d94b-42a7-8875-66aa776b0669_2678x1110.png 1272w, https://substackcdn.com/image/fetch/$s_!trny!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0c537a02-d94b-42a7-8875-66aa776b0669_2678x1110.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></p><p>If you don't have any real experience in data and you want to start your career in data the simplest way is doing so to target role of Data/Product/Marketing/Finance/etc Analyst or BI Developer.</p><p>If you would need more context on this topic, I&#8217;ve recorded several lessons, that will bring clarity for you.</p><p>Overall course information:</p><div id="youtube2-TerN370CV_I" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;TerN370CV_I&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/TerN370CV_I?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><p>What is Analytics:</p><div id="youtube2-hUPQX_-hJqQ" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;hUPQX_-hJqQ&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/hUPQX_-hJqQ?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><p>Goal of Analytics:</p><div id="youtube2-nJzAlMC2ayc" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;nJzAlMC2ayc&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/nJzAlMC2ayc?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><p>Analytics Framework:</p><div id="youtube2-Xpn5RISaW2Y" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;Xpn5RISaW2Y&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/Xpn5RISaW2Y?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><p>Roles in Analytics:</p><div id="youtube2-iDN9CdjUR9E" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;iDN9CdjUR9E&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/iDN9CdjUR9E?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><p> <br><br>&#9989; What to do?<br><br>You don't need any special education or special Analytics university program. All what you need is a common sense and a bit of knowledge of spreadsheets (Excel, Google Sheets, etc).<br><br>&#9989; Why spreadsheets are important?<br><br>It is simple. They have Columns, Rows and basically looks similar like tables.<br><br>&#9989; Why common sense is important?<br><br>It would help you make judgment on data you and help stakeholders to make a right decisions.<br><br>&#9989; The road map has a order of progression:<br><br>1. You will start learn SQL. When to stop learn it? Simple test - you take a SQL task and solve it with pan and paper. This is the most important technical skill.<br><br>2. Business Domain. You need to understand what kind of metrics you want to calculate or how existing metrics are calculated. The easiest domain is Marketing and Product because almost every company measure their digital marketing efforts and usage of the product. Not sure where to start, start from "Lean Analytics" book.<br><br>3. Think about ways of communication. The best is writing and visualization. The goal is to communicate your findings with stakeholders and help them make a right decision.<br><br>4. As soon as you comfortable with SQL, you need to have hands on with databases. You don't need to deploy or maintain database, but you should be comfortable of using it and exploring data. In 95% cases it would be relational (SQL) database. In rare cases could be NoSQL.<br><br>5. Last crucial skill is proficient knowledge of at least single BI tool from developer perspective. You can progress towards BI Administrator and learn how to manage BI Server, how to manage users and security and optionally do performance optimization.<br><br>6. Modern analytics solution are hosted in the cloud. Be ready to know at least one public cloud of your choice: AWS, Azure, GCP.<br><br>7. I've highlighted Statistics. It is optional and often important for marketing and product analytics use cases especially for A/B testing use cases.<br><br>&#9989; How long it takes to acquire the skills?<br><br>In my experience, it takes 3-4 months. It takes time to sink in your head and be comfortable.<br><br>&#9989; How to land first job?<br><br>Practice SQL and BI. Do little projects. But most important apply the jobs. You have to fail at least 10 interviews to get a sense expectations and identify the gaps. Celebrate every interview failure! &#127870;<br><br>Hint: never use "junior" &#129296;<br><br>&#9989; What is salary expectations?<br><br>Depends on Region. For example, Canada, US, Australia, New Zealand the range per year is 90k-140k in local currencies. More you practice with interviews, higher compensation &#129303;</p><p>PS You may curious why I can talk about other countries outside of Canada where I am based. There are 3 reasons:</p><ol><li><p>My favourite question for anyone - How much you makes in you role/company/city? I collect this stats for last 15 years. Just a useful habit.</p></li><li><p>At Surfalytics, we are community with transparent approach about compensation and cost of living. The goal is simple know you worth.</p></li><li><p>I am running Cider Testing and Job Market overview, you can checkout last 2 episodes:</p></li></ol><p>New Zeland Job Market:</p><div id="youtube2-CcWbvDklXTI" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;CcWbvDklXTI&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/CcWbvDklXTI?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><p>Australia Job Market:</p><div id="youtube2-R2plum6sLT4" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;R2plum6sLT4&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/R2plum6sLT4?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><p><br><br>&#9989; Where to progress after Data Analyst?<br><br>Moving towards Analytics and Data Engineering or Sr/Staff Analyst. I highlighted with "yellow".</p><h1>Road Map 2: Analytics Engineer</h1><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!EFkh!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F695f8c9f-bad7-4f52-9010-c5296ca5b6aa_2656x850.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!EFkh!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F695f8c9f-bad7-4f52-9010-c5296ca5b6aa_2656x850.png 424w, https://substackcdn.com/image/fetch/$s_!EFkh!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F695f8c9f-bad7-4f52-9010-c5296ca5b6aa_2656x850.png 848w, https://substackcdn.com/image/fetch/$s_!EFkh!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F695f8c9f-bad7-4f52-9010-c5296ca5b6aa_2656x850.png 1272w, https://substackcdn.com/image/fetch/$s_!EFkh!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F695f8c9f-bad7-4f52-9010-c5296ca5b6aa_2656x850.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!EFkh!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F695f8c9f-bad7-4f52-9010-c5296ca5b6aa_2656x850.png" width="1456" height="466" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/695f8c9f-bad7-4f52-9010-c5296ca5b6aa_2656x850.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:466,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:177315,&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;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!EFkh!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F695f8c9f-bad7-4f52-9010-c5296ca5b6aa_2656x850.png 424w, https://substackcdn.com/image/fetch/$s_!EFkh!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F695f8c9f-bad7-4f52-9010-c5296ca5b6aa_2656x850.png 848w, https://substackcdn.com/image/fetch/$s_!EFkh!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F695f8c9f-bad7-4f52-9010-c5296ca5b6aa_2656x850.png 1272w, https://substackcdn.com/image/fetch/$s_!EFkh!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F695f8c9f-bad7-4f52-9010-c5296ca5b6aa_2656x850.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>As a data analyst or BI developer with good SQL skills and expertise in at least one BI tool, you might wonder what comes next after mastering dashboard creation and stakeholder communication.<br><br>You could aim for a senior analyst position or transition into a management role. However, it's important to consider your value to the organization, your unique skills, and job security. Many people in the industry see moving into a technical (engineering) role as a great next step after a year in analytics and BI roles.<br><br>Let's talk about advancing to an Analytics Engineer role. I view Analytics Engineer as a bridge between Data Engineer and BI Developer roles, although the exact responsibilities can vary by organization. This role often focuses on "Analytics as Code" and using the "Modern Data Stack."<br><br>Let's use our analyst background to our advantage and transition into analytics engineering, building on the data analyst skills we already have.<br><br>&#9989; Modern Data Stack Flavour<br></p><p>I hope it is clear, the often buzz words can help. In case of Analytics Engineer fancy tools like dbt, mode, sigma, hex, fivetran and others defiantly ruling the market.<br><br>&#9989; Cloud Data Warehouse<br></p><p>You should know cloud already and your next move is to dive deep into at least one popular cloud DW such as Snowflake, BigQuery, Redshift. Can you build a table? Can you load a data? Can you do a deep dive? Any performance improvements?<br><br>&#9989; Data Modelling<br></p><p>You shouldn't be an expert. But you should know theory of Dimensional. Modelling, understand Slow Change Dimensions, Snapshots and so on. As Analytics Engineer you have to understand business requirements and convert them into DW model using SQL and available modelling techniques.<br><br>&#9989; dbt<br></p><p>dbt is a hype king in the modern data stack fest. Apart from hype this tool is great way of organizing your SQL transformations into "models", i.e. model your data and derive actual metrics that you will use in reporting. Learn it with cloud data warehouse of your choice.<br><br>&#9989; Engineering Excellence<br></p><p>Analytics Engineering role is technical and it requires you to work with the code, even just SQL and YAML files. That's why it is important to learn Git version control systems and understand well key DevOps techniques. This is your competitive advantage. You think about code quality, data quality, deployments to production and etc.<br><br>&#9989; Low Code/No Code ETL tools<br></p><p>By default this role assume, that data is in cloud data warehouse. But again it depends on the organization and their perspective of data roles. Better know how to extract data for source applications and Low Code/No Code tools. There are two primary topics Orchestration and Ingestion.<br><br>&#9989; Code<br></p><p>Python is a best choice and it will open path towards open source tools for BI and Data Engineering and this is next level.<br><br>&#9989; Where to grow?<br></p><p>Obviously in data engineering (green).</p><p>&#9989; What is salary expectations?<br></p><p>Depends on Region. For example, Canada, US, Australia, New Zealand the range per year is 120k-180k in local currencies. </p><h1>Road Map 3: Data Engineer</h1><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!m5qa!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb85aff7c-0e3c-45ec-bf8a-997651be72ae_2838x912.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!m5qa!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb85aff7c-0e3c-45ec-bf8a-997651be72ae_2838x912.png 424w, https://substackcdn.com/image/fetch/$s_!m5qa!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb85aff7c-0e3c-45ec-bf8a-997651be72ae_2838x912.png 848w, https://substackcdn.com/image/fetch/$s_!m5qa!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb85aff7c-0e3c-45ec-bf8a-997651be72ae_2838x912.png 1272w, https://substackcdn.com/image/fetch/$s_!m5qa!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb85aff7c-0e3c-45ec-bf8a-997651be72ae_2838x912.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!m5qa!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb85aff7c-0e3c-45ec-bf8a-997651be72ae_2838x912.png" width="1456" height="468" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/b85aff7c-0e3c-45ec-bf8a-997651be72ae_2838x912.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:468,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:177152,&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;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!m5qa!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb85aff7c-0e3c-45ec-bf8a-997651be72ae_2838x912.png 424w, https://substackcdn.com/image/fetch/$s_!m5qa!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb85aff7c-0e3c-45ec-bf8a-997651be72ae_2838x912.png 848w, https://substackcdn.com/image/fetch/$s_!m5qa!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb85aff7c-0e3c-45ec-bf8a-997651be72ae_2838x912.png 1272w, https://substackcdn.com/image/fetch/$s_!m5qa!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb85aff7c-0e3c-45ec-bf8a-997651be72ae_2838x912.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></p><p>You know how to turn business requirements into data pipelines, conduct code reviews, and grasp the fundamental concepts of Data Warehousing. In essence, you can deliver value to business stakeholders and have a wide range of data tools at your disposal.<br><br>So, what's next?<br><br>Let's explore the roadmap for a Data Engineer.<br><br>Assuming you're proficient with Data Analyst Skills and <br>Analytics Engineer Skills.<br><br>And you're ready to learn new skills.<br><br>&#9989; DevOps and Infrastructure </p><p>DevOps knowledge is crucial for creating secure and scalable data infrastructure. This includes working with containers, CI/CD, Infrastructure as Code, and understanding networking to protect key data assets and deploy solutions in production.<br><br>&#9989; Cost of Solution </p><p>Public clouds help track solution costs. It's important to create analytics solutions that are both high-performing and cost-effective.<br><br>&#9989; Architecture </p><p>Understand the origins of data (i.e., data sources) and business needs. Your goal is to devise a solution architecture that securely and efficiently meets these requirements.<br><br>&#9989; Cloud Data Warehouse </p><p>Become an expert in distributed data warehouses, optimization, and performance tuning. You should be skilled in designing solutions and data modeling.<br><br>&#9989; Quality and Monitoring </p><p>Learn to build quality pipelines and utilize testing frameworks and monitoring solutions.<br><br>&#9989; Apache Spark </p><p>While not the only tool, Spark is essential for data engineering and enjoys widespread use.<br><br>&#9989; Lakehouse and Data Lake </p><p>Besides data warehouses, you should be familiar with Data Lakes and Lakehouses, understanding their advantages and knowing when to use each.<br><br>&#9989; Streaming </p><p>Beyond batch processing, it's sometimes necessary to develop streaming solutions using Kafka, Flink, Debezium, or public cloud services.<br><br>&#9989; Salary Expectations</p><p>Salaries vary by region. For example, in Canada, the US, Australia, and New Zealand, the annual range is $140k-$250k in local currencies, with FAANG companies potentially offering higher compensation and stock options.<br><br>&#9989; Career Progression </p><p>Beyond engineering, you can choose to become a people manager, focus on a Staff level role within your organization, or enhance your skills in machine learning to collaborate effectively with ML teams.</p><h1>Bonus Roadmaps</h1><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!B9bJ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F382a6366-ca55-45fd-b4bf-d32b16dba3d6_1718x1198.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!B9bJ!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F382a6366-ca55-45fd-b4bf-d32b16dba3d6_1718x1198.png 424w, https://substackcdn.com/image/fetch/$s_!B9bJ!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F382a6366-ca55-45fd-b4bf-d32b16dba3d6_1718x1198.png 848w, https://substackcdn.com/image/fetch/$s_!B9bJ!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F382a6366-ca55-45fd-b4bf-d32b16dba3d6_1718x1198.png 1272w, https://substackcdn.com/image/fetch/$s_!B9bJ!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F382a6366-ca55-45fd-b4bf-d32b16dba3d6_1718x1198.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!B9bJ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F382a6366-ca55-45fd-b4bf-d32b16dba3d6_1718x1198.png" width="1456" height="1015" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/382a6366-ca55-45fd-b4bf-d32b16dba3d6_1718x1198.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1015,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:126366,&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;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!B9bJ!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F382a6366-ca55-45fd-b4bf-d32b16dba3d6_1718x1198.png 424w, https://substackcdn.com/image/fetch/$s_!B9bJ!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F382a6366-ca55-45fd-b4bf-d32b16dba3d6_1718x1198.png 848w, https://substackcdn.com/image/fetch/$s_!B9bJ!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F382a6366-ca55-45fd-b4bf-d32b16dba3d6_1718x1198.png 1272w, https://substackcdn.com/image/fetch/$s_!B9bJ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F382a6366-ca55-45fd-b4bf-d32b16dba3d6_1718x1198.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 believe the only roles in classic analytics are Data Analyst, BI Developer, Analytics Engineer, and Data Engineer, think again.<br><br>I've already shared roadmaps for these common roles above.<br><br>But there are more specialized roles with a different focus on data skills.<br><br>Let's dive in.<br><br>&#9989; Support Engineer<br>When data tools break, who fixes them? The Support Engineer. This role is often undervalued but offers unique benefits:<br>-&gt; No projects or deadlines, just ticket-based support with Service Level<br>-&gt; Agreements (SLAs) to assist customers.<br>-&gt; Influence on the product roadmap and feature releases.<br>-&gt; Significant time dedicated to learning new features, including beta and previews.<br>-&gt; Exposure to a variety of industries and architectural frameworks.<br>-&gt; High impact on customers, with the potential for rapid career progression.<br>-&gt; Independence, measured by ticket resolution time.<br>-&gt; Development of soft skills and conflict resolution abilities.<br><br>The main challenge? Adhering to SLAs, especially for initial responses. You should stay available during your shift, no excuses.<br><br>&#9989; Sales Engineer<br>Beyond the cold emails and calls of sales teams lies the Sales Engineer, a tech-savvy partner who assists with product demos and answers deep technical queries.<br><br>Past benefits have included:<br>-&gt;Continuous learning in both sales and technical areas.<br>-&gt;Opportunities to travel and meet new people.<br>-&gt;Presenting at conferences and business events.<br>-&gt;Focus on demos and proofs of concept, avoiding long-term implementation projects.<br><br>The downside? The travel requirement, which often involves trips outside your city.<br><br>&#9989; Evangelist and Product Advocate<br>If you're passionate about building data communities, storytelling about products, presenting at conferences, and writing blog posts, this role could be a perfect fit.<br><br>Evangelists are highly visible and can sometimes feel like industry rock stars. It's a role suited for those truly obsessed with their work and the products they represent.<br><br>Getting into this role typically requires active community involvement and strong vendor relationships.</p><div><hr></div><p>Wow, you scroll to the bottom? I have actually the video with explanation for roadmaps:</p><div id="youtube2-Bp6x8EK1Y7w" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;Bp6x8EK1Y7w&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/Bp6x8EK1Y7w?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><p></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://blog.surfalytics.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">The Surfalytics newsletter and YouTube channel are always free. Don't miss out on the next issue!</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[What is Surfalytics?]]></title><description><![CDATA[Surfalytics = Surfing &#127940;&#8205;&#9794;&#65039; + Analytics &#128202;.]]></description><link>https://blog.surfalytics.com/p/what-is-surfalytics</link><guid isPermaLink="false">https://blog.surfalytics.com/p/what-is-surfalytics</guid><dc:creator><![CDATA[Dmitry Anoshin]]></dc:creator><pubDate>Mon, 18 Dec 2023 06:44:57 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!IMBU!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faa1e3627-df67-4b47-93a7-de76add734f9_1288x1334.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://blog.surfalytics.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://blog.surfalytics.com/subscribe?"><span>Subscribe now</span></a></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!IMBU!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faa1e3627-df67-4b47-93a7-de76add734f9_1288x1334.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!IMBU!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faa1e3627-df67-4b47-93a7-de76add734f9_1288x1334.png 424w, https://substackcdn.com/image/fetch/$s_!IMBU!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faa1e3627-df67-4b47-93a7-de76add734f9_1288x1334.png 848w, https://substackcdn.com/image/fetch/$s_!IMBU!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faa1e3627-df67-4b47-93a7-de76add734f9_1288x1334.png 1272w, https://substackcdn.com/image/fetch/$s_!IMBU!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faa1e3627-df67-4b47-93a7-de76add734f9_1288x1334.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!IMBU!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faa1e3627-df67-4b47-93a7-de76add734f9_1288x1334.png" width="1288" height="1334" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/aa1e3627-df67-4b47-93a7-de76add734f9_1288x1334.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1334,&quot;width&quot;:1288,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1480298,&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_!IMBU!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faa1e3627-df67-4b47-93a7-de76add734f9_1288x1334.png 424w, https://substackcdn.com/image/fetch/$s_!IMBU!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faa1e3627-df67-4b47-93a7-de76add734f9_1288x1334.png 848w, https://substackcdn.com/image/fetch/$s_!IMBU!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faa1e3627-df67-4b47-93a7-de76add734f9_1288x1334.png 1272w, https://substackcdn.com/image/fetch/$s_!IMBU!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faa1e3627-df67-4b47-93a7-de76add734f9_1288x1334.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><h3>1. What is Surfalytics?</h3><p>Inspired by West Coast surfing spots &#127958;&#65039; and Pacific Ocean vibes &#127754;. Created to help you start a new career in the data analytics space, and develop data engineering and analytics skills through coaching. It will teach you not just dry skills, but will keep your focus on delivering significant value to businesses in the analytics realm as well as help to get fair compensation &#128176; for the work you&#8217;re passionate about &#10084;&#65039;&#8205;&#128293;. </p><div class="pullquote"><p>TL;DR: Surfalytics is a community-focused learning platform designed to assist individuals in launching and advancing their careers in data analytics and data engineering. </p><p>It offers practical skill development, career transition support, and guidance for securing top job offers, with a particular emphasis on achieving significant business value and fair compensation. </p><p>The platform targets a wide audience, from newcomers to veteran engineers, and is led by a founder with over 14 years of industry experience. Surfalytics emphasizes the power of community and collective learning to achieve professional growth and financial success in the data sector.</p></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!w3qs!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb695888c-d69e-47b6-a980-ebbf0cae9584_1280x1201.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!w3qs!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb695888c-d69e-47b6-a980-ebbf0cae9584_1280x1201.jpeg 424w, https://substackcdn.com/image/fetch/$s_!w3qs!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb695888c-d69e-47b6-a980-ebbf0cae9584_1280x1201.jpeg 848w, https://substackcdn.com/image/fetch/$s_!w3qs!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb695888c-d69e-47b6-a980-ebbf0cae9584_1280x1201.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!w3qs!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb695888c-d69e-47b6-a980-ebbf0cae9584_1280x1201.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!w3qs!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb695888c-d69e-47b6-a980-ebbf0cae9584_1280x1201.jpeg" width="1280" height="1201" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/b695888c-d69e-47b6-a980-ebbf0cae9584_1280x1201.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1201,&quot;width&quot;:1280,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:116991,&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;:false,&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_!w3qs!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb695888c-d69e-47b6-a980-ebbf0cae9584_1280x1201.jpeg 424w, https://substackcdn.com/image/fetch/$s_!w3qs!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb695888c-d69e-47b6-a980-ebbf0cae9584_1280x1201.jpeg 848w, https://substackcdn.com/image/fetch/$s_!w3qs!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb695888c-d69e-47b6-a980-ebbf0cae9584_1280x1201.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!w3qs!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb695888c-d69e-47b6-a980-ebbf0cae9584_1280x1201.jpeg 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></figure></div><p>Ok, enough emojis and nice phrases, let&#8217;s be real and highlight the killer focus I provide with Surfalytics:</p><ol><li><p>It is community. My goal to unite people with same goals and keep narrow focus on Data Analytics and Data Engineering covering several key data roles. They should extremely clear like Plumber or Electrician. Within community we can keep focus, learn together, elevate each other and achieve outstanding results in job searching, interview passing, offer negotiation, promotion path or career transitions. </p></li><li><p>With my 14 years of experience from analyst to staff data engineer, I know 100% how to:</p><ol><li><p>Entry to the data with no prior knowledge. I helped dozen people to do this. I didn&#8217;t care what background they had. Only requirement is able to read and understand Excel spreadsheet. In Average takes 3-5 months to learn and land the job.  Be the actor in your own &#8220;job hunting&#8221; theatre;)</p></li><li><p>Transition from Analyst or BI to data engineering role</p></li><li><p>Focus on promotion from Middle to Senior and beyond</p></li><li><p>Save money and avoid different kinds of certifications and courses. Especially nano degrees and Data Science and other non-sense.</p></li><li><p>Increase 50%-100% of total compensation.</p></li><li><p>Avoid burnout with false career expectations.</p></li><li><p>Choose the premium car or plan for mortgage to celebrate the success. I know, it is not a data topic, but I did this many time, I am partly expert here. </p></li></ol></li><li><p>I am seriously planning real Surfing bootcamp in Canada, US, Australia and Europe. Morning for surfing, afternoon for data and career grow. Next one is planning on August 2024 in <a href="https://tourismtofino.com/">Tofino, BC</a>.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!TFT7!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1fb10be7-7b86-4b3a-bb7b-b68d8302ed48_1306x1466.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!TFT7!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1fb10be7-7b86-4b3a-bb7b-b68d8302ed48_1306x1466.png 424w, https://substackcdn.com/image/fetch/$s_!TFT7!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1fb10be7-7b86-4b3a-bb7b-b68d8302ed48_1306x1466.png 848w, https://substackcdn.com/image/fetch/$s_!TFT7!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1fb10be7-7b86-4b3a-bb7b-b68d8302ed48_1306x1466.png 1272w, https://substackcdn.com/image/fetch/$s_!TFT7!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1fb10be7-7b86-4b3a-bb7b-b68d8302ed48_1306x1466.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!TFT7!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1fb10be7-7b86-4b3a-bb7b-b68d8302ed48_1306x1466.png" width="1306" height="1466" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/1fb10be7-7b86-4b3a-bb7b-b68d8302ed48_1306x1466.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1466,&quot;width&quot;:1306,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2571666,&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;:false,&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_!TFT7!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1fb10be7-7b86-4b3a-bb7b-b68d8302ed48_1306x1466.png 424w, https://substackcdn.com/image/fetch/$s_!TFT7!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1fb10be7-7b86-4b3a-bb7b-b68d8302ed48_1306x1466.png 848w, https://substackcdn.com/image/fetch/$s_!TFT7!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1fb10be7-7b86-4b3a-bb7b-b68d8302ed48_1306x1466.png 1272w, https://substackcdn.com/image/fetch/$s_!TFT7!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1fb10be7-7b86-4b3a-bb7b-b68d8302ed48_1306x1466.png 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></figure></div><p></p></li></ol><h3>2. Surfalytics Goals</h3><p>The goal of Surfalytics is to assist you in achieving one of the following:</p><ol><li><p><strong>Land your first job in the data industry</strong> with literally zero experience. I have accomplished this many times across the globe.</p></li><li><p>A<strong>dvance from a middle-level role to a senior position</strong> (as an Analyst or Engineer).</p></li><li><p><strong>Transition from a non-technical Analyst role to a technical Engineer role</strong>.</p></li></ol><p>Moreover, we will focus on creating a highly <strong>competitive CV</strong> and <strong>securing top job offers</strong>. We will not consider any lowball offers, focusing only on top-tier companies and well-paid opportunities.</p><p>Finally, Surfalytics is a <strong>results-driven community</strong> with a very narrow focus, resulting in a high return on investment (ROI). Here, &#8216;investment&#8217; does not mean money but your time. I am literally fighting for your attention to encourage you to study and work hard, instead of watching Netflix or playing video games.</p><h3>3. <strong>What is the target audience?</strong></h3><p>The primary audience for our services includes a diverse range of individuals at different stages in their data industry careers:</p><ul><li><p><strong>Newcomers</strong> <strong>to the data field</strong> with no prior experience, who are aiming to secure a job quickly with a competitive salary. Regardless of background, we focus on their end goal and the effort they are willing to put in, striving to make the impossible possible.</p></li><li><p><strong>Analysts and developers</strong> eager to enhance their skills and advance toward a data engineer role, as well as non-technical professionals with experience in tools like Microsoft Excel who want to secure a brighter future.</p></li><li><p><strong>Veteran engineers</strong> who feel they&#8217;ve reached a professional ceiling, are experiencing burnout, and are uncertain about their next steps. Drawing from personal experience, I offer guidance on navigating this phase and achieving more.</p></li><li><p><strong>Immigrants and professionals</strong> looking to relocate from Asia, Eastern Europe, or South America to North America, Australia, or Europe. These individuals often need quick familiarization with new technologies, tools, and resume standards to meet market expectations, and may seek advice on salary benchmarks and cost-of-living adjustments in their new locations.</p></li><li><p><strong>Master&#8217;s and MBA students</strong> ready to enter the market but unsure where to start or what skills they are missing.</p></li></ul><p>Our goal is to cater to each individual&#8217;s unique needs and challenges, providing tailored support and guidance to help them achieve their career aspirations in the data industry.</p><h3>4. Surfalytics Community</h3><p>I firmly believe that community is the most powerful method of learning.</p><p>I have always been involved in various user groups and meetups. During my time at Amazon, I managed one of the largest Tableau User Groups (ATUG), boasting over 2,500 active members. Simultaneously, I took over the BI team&#8217;s user group, which connected more than 150 analytics teams worldwide. This led to exceptionally effective knowledge sharing, problem resolution, and job searching within Amazon.</p><p>Upon joining Microsoft, I promptly initiated a new community there. Additionally, since 2018, I have been leading the largest data engineering community in Russia, with 18,000 active members.</p><p>I understand the power of community and advocate for this method of education and coaching.</p><p>At Surfalytics, I created a membership subscription that provides access to a Discord chat, monthly projects in Data Engineering and Business Intelligence, the opportunity to ask questions at any time, and continuous support throughout your journey, including career planning.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Lme6!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdfbb5030-264a-4564-9b7f-c873ed2a7432_2110x1598.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Lme6!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdfbb5030-264a-4564-9b7f-c873ed2a7432_2110x1598.png 424w, https://substackcdn.com/image/fetch/$s_!Lme6!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdfbb5030-264a-4564-9b7f-c873ed2a7432_2110x1598.png 848w, https://substackcdn.com/image/fetch/$s_!Lme6!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdfbb5030-264a-4564-9b7f-c873ed2a7432_2110x1598.png 1272w, https://substackcdn.com/image/fetch/$s_!Lme6!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdfbb5030-264a-4564-9b7f-c873ed2a7432_2110x1598.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Lme6!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdfbb5030-264a-4564-9b7f-c873ed2a7432_2110x1598.png" width="1456" height="1103" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/dfbb5030-264a-4564-9b7f-c873ed2a7432_2110x1598.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1103,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!Lme6!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdfbb5030-264a-4564-9b7f-c873ed2a7432_2110x1598.png 424w, https://substackcdn.com/image/fetch/$s_!Lme6!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdfbb5030-264a-4564-9b7f-c873ed2a7432_2110x1598.png 848w, https://substackcdn.com/image/fetch/$s_!Lme6!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdfbb5030-264a-4564-9b7f-c873ed2a7432_2110x1598.png 1272w, https://substackcdn.com/image/fetch/$s_!Lme6!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdfbb5030-264a-4564-9b7f-c873ed2a7432_2110x1598.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><strong>The primary goal of our community is to elevate each other on social media, assist in interview preparation, engage in mock interviews, tackle LeetCode tasks, review interviews, and share weekly progress.</strong></p><p>Moreover, every Saturday we ran data analytics and data engineering projects, learning new tools, discussing the solution architectures and etc.</p><p>Some of the recent projects:</p><ul><li><p>Snowflake, dbt core, Hex</p></li><li><p>Docker 101, CLI 101, GitHub 101</p></li><li><p>FinTech containerized analytics with Airflow, dbt, Jupyter, </p></li><li><p>Network configuration for Azure Databricks</p></li><li><p>TrinoDb</p></li><li><p>Open Source analytics with DuckDb, Meltano, dbt and Metabase </p></li><li><p>Looker end-to-end project</p></li><li><p>Getting Started with Microsoft Fabric</p></li></ul><h3>5. Surfalytics Analytics and Data Engineering course</h3><p>Firstly, I&#8217;ve distilled my 14 years of experience, transitioning from an analyst to a staff data engineer, into a comprehensive course <strong>Getting Started with Analytics and Data Engineering</strong>. I will publish the course on YouTube and upload hands-on labs to GitHub.</p><div class="pullquote"><p>The course, designed in a bootcamp format, is ready, and I have taught it in the past. It is constantly improving and updating based on industry evolutions. I decided to open source it to help people globally improve their skills and their lives. Currently, it is in progress of recording.</p></div><p>This will be divided into 12 modules:</p><ol><li><p><em>What, Why, Who, How Analytics?</em></p></li><li><p><em>Databases and SQL.</em></p></li><li><p><em>Business Intelligence with Tableau, Power BI, and Looker.</em></p></li><li><p><em>ETL Developer with dbt (ELT), Pentaho DI (classic UI ETL), and dimensional modelling.</em></p></li><li><p><em>Cloud Computing fundamentals with AWS and Azure.</em></p></li><li><p><em>Cloud Data Warehouse with Redshift, Synapse, Snowflake, BigQuery, Clickhouse.</em></p></li><li><p><em>Apache Spark and Databricks.</em></p></li><li><p><em>Hadoop on top of EMR, HDInsights with Hive.</em></p></li><li><p><em>Data Lake and Lakehouse with Trino, Athena, Synapse Serverless, and Databricks (Delta Lake and Spark Serverless).</em></p></li><li><p><em>Streaming with Apache Kafka, Apache Flink, Kinesis, Spark Structured Streaming, and Delta Streaming.</em></p></li><li><p><em>ML fundamentals for Data Engineers.</em></p></li><li><p><em>Best practices for Data Engineers with DevOps and SoftSkills.</em></p></li></ol><p>Notes:</p><pre><code><code>- Modules 1 - 3 are for roles of BI Engineer and Data Analyst. Module about Cloud Computing is helful for everyone. 
- Modules 1 - 6 are for Analytics Engineers and Gentle Data Engineers (no coding needed)
- Modules 1 - 9 are for modern Data Engineer
- Modules 10 and 11 are advanced topics and for more experienced folks
- Module 12 is for all.
</code>Copy</code></pre><p><strong>Why is it free?</strong></p><p>I don&#8217;t want to reinvent the wheel by creating yet another study platform. Knowledge is already freely available from vendors, books, and learning platforms. My goal is to guide you and help you learn the fundamentals of analytics and data engineering. You will acquire the right skills to learn effectively. Soon, you will realize that you can master any new topic and apply it at work. This is my approach to decentralizing education.</p><h3>6. What is Club 500?</h3><p><strong>What is club 500</strong></p><p>By &#8220;500&#8221;, I&#8217;m referring to an annual gross compensation of 500,000 CAD in Canada or 500,000 USD in the United States when I mention &#8216;500.&#8217; Such a target is admirable, particularly within the data sector. To achieve this level of income, one must possess the necessary skills, accumulate several years of experience, and have a definitive aim to enhance their life and circumstances. </p><blockquote><p>It's clearly challenging to earn such an amount, but the key is not the amount itself; rather, it's the mindset and goal. Beyond our primary work, we can invest in stocks, real estate, and other assets.</p></blockquote><p>Ultimately, it all boils down to one&#8217;s mindset. We should aim for significant achievements and take pride in our professional contributions. Our dedication is for our personal growth and the wellbeing of our families. As high achievers and dedicated professionals, we consistently deliver exceptional results.</p><p><strong>Why 500?</strong></p><p>Somehow, 500k has become the de facto benchmark for M(F)AANG companies, and every analyst, data scientist, and engineer dreams of this salary. Some of them achieved this easily, while others chose a different path.</p><p><strong>What is the goal of the club 500?</strong></p><p>I truly believe that to become the best version of ourselves, we should surround ourselves with smart, motivated, and ambitious individuals. The club provides an opportunity to connect with people who have reached significant milestones (and, indeed, paid a lot in taxes). More importantly, it offers a chance to engage with intelligent individuals on various topics:</p><ol><li><p>How to achieve even more: is it possible to double or scale your income?</p></li><li><p>Leveraging income: where should one invest, be it in real estate, stocks, or cryptocurrency?</p></li><li><p>What legal avenues exist to maximize tax benefits or credits?</p></li><li><p>Car choices: should one opt for a Mercedes or a Porsche?</p></li><li><p>Which businesses to start and how to go about it?</p></li><li><p>Contemplating the F.I.R.E (Financial Independence, Retire Early) movement?</p></li><li><p>And much more&#8230; Just name the topic.</p></li></ol><p>To earn more, we must allow ourselves to desire more and be willing to spend more. Money dislikes stagnancy; it thrives in circulation.</p><p>Let&#8217;s collaborate and assist one another in becoming better versions of ourselves! The guiding principle is clear: we are committed to constant professional and financial growth.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!zJyh!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff5715919-7e02-481c-ac58-2e76079c62be_268x151.gif" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!zJyh!,w_424,c_limit,f_webp,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff5715919-7e02-481c-ac58-2e76079c62be_268x151.gif 424w, https://substackcdn.com/image/fetch/$s_!zJyh!,w_848,c_limit,f_webp,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff5715919-7e02-481c-ac58-2e76079c62be_268x151.gif 848w, https://substackcdn.com/image/fetch/$s_!zJyh!,w_1272,c_limit,f_webp,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff5715919-7e02-481c-ac58-2e76079c62be_268x151.gif 1272w, https://substackcdn.com/image/fetch/$s_!zJyh!,w_1456,c_limit,f_webp,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff5715919-7e02-481c-ac58-2e76079c62be_268x151.gif 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!zJyh!,w_1456,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff5715919-7e02-481c-ac58-2e76079c62be_268x151.gif" width="320" height="180.29850746268656" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/f5715919-7e02-481c-ac58-2e76079c62be_268x151.gif&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:151,&quot;width&quot;:268,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;color picker&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="color picker" title="color picker" srcset="https://substackcdn.com/image/fetch/$s_!zJyh!,w_424,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff5715919-7e02-481c-ac58-2e76079c62be_268x151.gif 424w, https://substackcdn.com/image/fetch/$s_!zJyh!,w_848,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff5715919-7e02-481c-ac58-2e76079c62be_268x151.gif 848w, https://substackcdn.com/image/fetch/$s_!zJyh!,w_1272,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff5715919-7e02-481c-ac58-2e76079c62be_268x151.gif 1272w, https://substackcdn.com/image/fetch/$s_!zJyh!,w_1456,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff5715919-7e02-481c-ac58-2e76079c62be_268x151.gif 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><h3>7. About founder of Surfalytics?</h3><p>I have been lucky enough to work for over 14 years in analytics. I started my data career in Moscow as a BI engineer working with traditional Oracle Data Warehouse, Informatica, and SAP Business Objects. Later I joined Teradata. It was a very rewarding experience. I instantly got access to a worldwide knowledge base of leaders in the data warehousing space.</p><p>Later, I realized that it would be boring to spend all my life in Moscow so moved to Montenegro and then immigrated to Canada where I joined Amazon where I spent 5 years. I&#8217;ve worked in several teams, including Alexa AI (in Boston) and Customer Behaviour Analytics (in Seattle). I participated in genuinely innovative projects where data is the driving force. I&#8217;ve witnessed Big Data and Machine Learning in action at the scale of the world&#8217;s largest company.</p><p>After Amazon, I worked for 3 years at Microsoft Xbox and Microsoft Azure Data&amp;AI. I actively participated in the development and implementation of Microsoft products for analytics - Synapse, Fabric, and Azure Databricks. Now, I help create innovative analytical solutions, build data teams, and modernize outdated solutions. And of course, I teach those interested all over the world. </p><p>I have written several books on analytics:</p><ul><li><p><a href="https://www.amazon.com/Jumpstart-Snowflake-Step-Step-Analytics/dp/1484253272/ref=sr_1_1?crid=38JGF0SM61I5E&amp;keywords=dmitry+anoshin&amp;qid=1692685268&amp;sprefix=dmitry+anoshin%2Caps%2C153&amp;sr=8-1">Jumpstart Snowflake: A Step-by-Step Guide to Modern Cloud Analytics</a></p></li><li><p><a href="https://www.amazon.com/Azure-Data-Factory-Cookbook-integration/dp/1800565291/ref=sr_1_2?crid=38JGF0SM61I5E&amp;keywords=dmitry+anoshin&amp;qid=1692685311&amp;sprefix=dmitry+anoshin%2Caps%2C153&amp;sr=8-2">Azure Data Factory Cookbook: Build and manage ETL and ELT pipelines with Microsoft Azure&#8217;s serverless data integration service</a> (there new release is available)</p></li><li><p><a href="https://www.amazon.com/Azure-Data-Factory-Cookbook-integration-ebook/dp/B0CD7ZHC3M/ref=sr_1_8?crid=38JGF0SM61I5E&amp;keywords=dmitry+anoshin&amp;qid=1692685311&amp;sprefix=dmitry+anoshin%2Caps%2C153&amp;sr=8-8">Azure Data Factory Cookbook: Data engineers guide to build and manage ETL and ELT pipelines with data integration, 2nd Edition</a></p></li><li><p><a href="https://www.amazon.com/Tableau-Desktop-Certified-Associate-certification/dp/1838984135/ref=sr_1_4?crid=38JGF0SM61I5E&amp;keywords=dmitry+anoshin&amp;qid=1692685311&amp;sprefix=dmitry+anoshin%2Caps%2C153&amp;sr=8-4">Tableau Desktop Certified Associate: Exam Guide: Develop your Tableau skills and prepare for Tableau certification with tips from industry experts</a></p></li><li><p><a href="https://www.amazon.com/Tableau-2019-x-Cookbook-end-end-ebook/dp/B07KSXD69Z/ref=sr_1_5?crid=38JGF0SM61I5E&amp;keywords=dmitry+anoshin&amp;qid=1692685311&amp;sprefix=dmitry+anoshin%2Caps%2C153&amp;sr=8-5">Tableau 2019.x Cookbook: Over 115 recipes to build end-to-end analytical solutions using Tableau</a></p></li><li><p><a href="https://www.amazon.com/Mastering-Business-Intelligence-MicroStrategy-Anoshin-ebook/dp/B01DPR2EL2/ref=sr_1_3?crid=38JGF0SM61I5E&amp;keywords=dmitry+anoshin&amp;qid=1692685311&amp;sprefix=dmitry+anoshin%2Caps%2C153&amp;sr=8-3">Mastering Business Intelligence with MicroStrategy: Master Business Intelligence with Microstrategy 10</a></p></li><li><p><a href="https://www.amazon.com/Learning-Hunk-Dmitry-Anoshin-ebook/dp/B010DY80MM/ref=sr_1_7?crid=38JGF0SM61I5E&amp;keywords=dmitry+anoshin&amp;qid=1692685311&amp;sprefix=dmitry+anoshin%2Caps%2C153&amp;sr=8-7">Learning Hunk</a></p></li><li><p><a href="https://www.amazon.com/SAP-Lumira-Essentials-Dmitry-Anoshin-ebook/dp/B014WIPC58/ref=sr_1_6?crid=38JGF0SM61I5E&amp;keywords=dmitry+anoshin&amp;qid=1692685311&amp;sprefix=dmitry+anoshin%2Caps%2C153&amp;sr=8-6">SAP Lumira Essentials</a></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_!WILI!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9285c777-aa84-4507-a2f1-6a262ac5358f_2384x1792.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!WILI!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9285c777-aa84-4507-a2f1-6a262ac5358f_2384x1792.png 424w, https://substackcdn.com/image/fetch/$s_!WILI!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9285c777-aa84-4507-a2f1-6a262ac5358f_2384x1792.png 848w, https://substackcdn.com/image/fetch/$s_!WILI!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9285c777-aa84-4507-a2f1-6a262ac5358f_2384x1792.png 1272w, https://substackcdn.com/image/fetch/$s_!WILI!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9285c777-aa84-4507-a2f1-6a262ac5358f_2384x1792.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!WILI!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9285c777-aa84-4507-a2f1-6a262ac5358f_2384x1792.png" width="1456" height="1094" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/9285c777-aa84-4507-a2f1-6a262ac5358f_2384x1792.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1094,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2390127,&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;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!WILI!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9285c777-aa84-4507-a2f1-6a262ac5358f_2384x1792.png 424w, https://substackcdn.com/image/fetch/$s_!WILI!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9285c777-aa84-4507-a2f1-6a262ac5358f_2384x1792.png 848w, https://substackcdn.com/image/fetch/$s_!WILI!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9285c777-aa84-4507-a2f1-6a262ac5358f_2384x1792.png 1272w, https://substackcdn.com/image/fetch/$s_!WILI!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9285c777-aa84-4507-a2f1-6a262ac5358f_2384x1792.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></p><p>Since 2021 I have been teaching a Cloud Computing Fundamentals course at the <a href="https://www.uvic.ca/">University of Victoria</a>. </p><blockquote><p>I will run next cohort in January 2024 with University of Victoria and you can enrol to close all gaps in Cloud Computing and understand both AWS and Azure. This is what modern job market requires. Since it official university course, you can expense it with your employer. I promise you lots of hands on!</p></blockquote><p>I have extensive experience in developing data communities and speaking at conferences, meetups, and user groups. I was leading Snowflake, and Tableau user groups in Vancouver and presented myself across North America at local meetups or biggest data conferences. In 2017 I started a Canadian consulting company Rock Your Data with the goal to help companies adopt cloud analytics and migrate to the cloud. However, I realized that my primary passion is building and teaching.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!hQt9!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5e961226-daf7-4a38-ae49-ddf96ce0658e_800x533.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!hQt9!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5e961226-daf7-4a38-ae49-ddf96ce0658e_800x533.jpeg 424w, https://substackcdn.com/image/fetch/$s_!hQt9!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5e961226-daf7-4a38-ae49-ddf96ce0658e_800x533.jpeg 848w, https://substackcdn.com/image/fetch/$s_!hQt9!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5e961226-daf7-4a38-ae49-ddf96ce0658e_800x533.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!hQt9!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5e961226-daf7-4a38-ae49-ddf96ce0658e_800x533.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!hQt9!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5e961226-daf7-4a38-ae49-ddf96ce0658e_800x533.jpeg" width="800" height="533" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/5e961226-daf7-4a38-ae49-ddf96ce0658e_800x533.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:533,&quot;width&quot;:800,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Telling about Cloud Analytics benefits&quot;,&quot;title&quot;:&quot;Telling about Cloud Analytics benefits&quot;,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Telling about Cloud Analytics benefits" title="Telling about Cloud Analytics benefits" srcset="https://substackcdn.com/image/fetch/$s_!hQt9!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5e961226-daf7-4a38-ae49-ddf96ce0658e_800x533.jpeg 424w, https://substackcdn.com/image/fetch/$s_!hQt9!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5e961226-daf7-4a38-ae49-ddf96ce0658e_800x533.jpeg 848w, https://substackcdn.com/image/fetch/$s_!hQt9!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5e961226-daf7-4a38-ae49-ddf96ce0658e_800x533.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!hQt9!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5e961226-daf7-4a38-ae49-ddf96ce0658e_800x533.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>In 2018 I started consulting company <a href="https://rockyourdata.cloud/">Rock Your Data</a> in North America with a focus with focus on modern cloud analytics and data engineering.</p><h3><strong>8. How to Get Started</strong></h3><ol><li><p>Define your goal. If you feel that a career as a successful data professional is for you, then you are in the right place.</p></li><li><p>Join community. You can find more information under the <a href="https://surfalytics.com/">services</a></p></li></ol><p>Optional: Don&#8217;t know where to start? Book a <a href="https://buy.stripe.com/eVa8yieTufPh0msaER">1 hour consultation</a>.</p><p></p><div><hr></div><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://blog.surfalytics.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Dmitry&#8217;s Substack! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p></p>]]></content:encoded></item><item><title><![CDATA[Moving DataLearn to Surfalytics]]></title><description><![CDATA[why do you get this email from Dmitry Anoshin?!]]></description><link>https://blog.surfalytics.com/p/moving-datalearn-to-surfalytics</link><guid isPermaLink="false">https://blog.surfalytics.com/p/moving-datalearn-to-surfalytics</guid><dc:creator><![CDATA[Dmitry Anoshin]]></dc:creator><pubDate>Wed, 22 Nov 2023 03:35:22 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!a5U4!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fda3affd3-009b-4337-91c3-75d4b4265ea3_2634x1552.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_!a5U4!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fda3affd3-009b-4337-91c3-75d4b4265ea3_2634x1552.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!a5U4!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fda3affd3-009b-4337-91c3-75d4b4265ea3_2634x1552.png 424w, https://substackcdn.com/image/fetch/$s_!a5U4!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fda3affd3-009b-4337-91c3-75d4b4265ea3_2634x1552.png 848w, https://substackcdn.com/image/fetch/$s_!a5U4!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fda3affd3-009b-4337-91c3-75d4b4265ea3_2634x1552.png 1272w, https://substackcdn.com/image/fetch/$s_!a5U4!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fda3affd3-009b-4337-91c3-75d4b4265ea3_2634x1552.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!a5U4!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fda3affd3-009b-4337-91c3-75d4b4265ea3_2634x1552.png" width="1456" height="858" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/da3affd3-009b-4337-91c3-75d4b4265ea3_2634x1552.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:858,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:5629844,&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_!a5U4!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fda3affd3-009b-4337-91c3-75d4b4265ea3_2634x1552.png 424w, https://substackcdn.com/image/fetch/$s_!a5U4!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fda3affd3-009b-4337-91c3-75d4b4265ea3_2634x1552.png 848w, https://substackcdn.com/image/fetch/$s_!a5U4!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fda3affd3-009b-4337-91c3-75d4b4265ea3_2634x1552.png 1272w, https://substackcdn.com/image/fetch/$s_!a5U4!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fda3affd3-009b-4337-91c3-75d4b4265ea3_2634x1552.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>Hello everyone! (&#1042;&#1089;&#1077;&#1084; &#1087;&#1088;&#1080;&#1074;&#1077;&#1090;)</p><p>I was running and building Datalearn.ru for last 3 years and contributed my knowledge about Data Engineering and Analytics into our free learning program - <a href="https://datalearn.ru/kurs-po-getting-start-with-data-engineering">Getting Started with Data Engineering and Analytics</a>. We grew to over 10k students, 18k followers in telegram and 15k followers in YouTube. </p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://blog.surfalytics.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Surfalytics is a reader-supported publication. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><div class="pullquote"><p>If you are getting this email, it means you did sign up to DataLearn.ru and I imported the email. If you aren&#8217;t in data analytics, just skip but if you are then I will use this channel to continue to write interesting content about data analytics space and industry and help you up skill with modern data analytics content.</p></div><p>I decided to expand in new personal challenge and build similar useful content but available globally to help thousands of people entry data space and use well known shortcuts to succeed. </p><div class="pullquote"><p>Welcome Surfalytics!</p></div><p>Same idea as we had with DataLearn - data community around the key data roles like Data Engineer, BI engineer and data analyst. Free course that will consist from 12 modules, starting from Excel spreadsheets till the BigData, ML, Streaming, and DevOps. </p><p>With my 14 years of experience from analyst to staff data engineer, I know 100% how to:</p><ol><li><p>Entry to the data with no prior knowledge. I helped dozen people to do this. I didn&#8217;t care what background they had. Only requirement is able to read and understand Excel spreadsheet. In Average takes 3-5 months to learn and land the job.  Be the actor in your own &#8220;job hunting&#8221; theatre;)</p></li><li><p>Transition from Analyst or BI to data engineering role</p></li><li><p>Focus on promotion from Middle to Senior and beyond</p></li><li><p>Save money and avoid different kinds of certifications and courses. Especially nano degrees and Data Science and other non-sense.</p></li><li><p>Increase 50%-100% of total compensation.</p></li><li><p>Avoid burnout with false career expectations.</p></li><li><p>Choose the premium car or plan for mortgage to celebrate the success. I know, it is not a data topic, but I did this many time, I am partly expert here. </p></li></ol><p>Apart from it, I am running Discord (similar to Slack) channel where we discuss, content, solving data engineering and BI projects every Saturday:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!8fgF!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4db5bacd-fe8b-460f-ae7e-f62d9df8d70f_2122x1592.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!8fgF!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4db5bacd-fe8b-460f-ae7e-f62d9df8d70f_2122x1592.png 424w, https://substackcdn.com/image/fetch/$s_!8fgF!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4db5bacd-fe8b-460f-ae7e-f62d9df8d70f_2122x1592.png 848w, https://substackcdn.com/image/fetch/$s_!8fgF!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4db5bacd-fe8b-460f-ae7e-f62d9df8d70f_2122x1592.png 1272w, https://substackcdn.com/image/fetch/$s_!8fgF!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4db5bacd-fe8b-460f-ae7e-f62d9df8d70f_2122x1592.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!8fgF!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4db5bacd-fe8b-460f-ae7e-f62d9df8d70f_2122x1592.png" width="1456" height="1092" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/4db5bacd-fe8b-460f-ae7e-f62d9df8d70f_2122x1592.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;:566500,&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;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!8fgF!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4db5bacd-fe8b-460f-ae7e-f62d9df8d70f_2122x1592.png 424w, https://substackcdn.com/image/fetch/$s_!8fgF!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4db5bacd-fe8b-460f-ae7e-f62d9df8d70f_2122x1592.png 848w, https://substackcdn.com/image/fetch/$s_!8fgF!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4db5bacd-fe8b-460f-ae7e-f62d9df8d70f_2122x1592.png 1272w, https://substackcdn.com/image/fetch/$s_!8fgF!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4db5bacd-fe8b-460f-ae7e-f62d9df8d70f_2122x1592.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, next Saturday 25 November we will 2 projects:</p><ul><li><p>Snowflake + dbt + Fivetran - a typical data warehouse in the cloud</p></li><li><p>Microsoft Fabric + Power BI - modern Microsoft Analytics Solution</p></li></ul><p>If you actively developing your skills and want to learn the most popular data tools, you may extremely benefit to join Discord. </p><p>I am using subscription based model that will cover my expenses and time for running server, organize the projects and support the community. </p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://buy.stripe.com/5kA6qadPq1Yrglq289&quot;,&quot;text&quot;:&quot;Join Discord Server&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://buy.stripe.com/5kA6qadPq1Yrglq289"><span>Join Discord Server</span></a></p><p>You can check more in <a href="https://www.linkedin.com/posts/dmitryanoshin_dataengineering-datawarehouse-snowflake-activity-7132817393357094913-psTQ?utm_source=share&amp;utm_medium=member_desktop">linkedin post</a>:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!B9Ea!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb764d934-5d61-47c3-9c95-70adb7198fd9_992x1130.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!B9Ea!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb764d934-5d61-47c3-9c95-70adb7198fd9_992x1130.png 424w, https://substackcdn.com/image/fetch/$s_!B9Ea!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb764d934-5d61-47c3-9c95-70adb7198fd9_992x1130.png 848w, https://substackcdn.com/image/fetch/$s_!B9Ea!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb764d934-5d61-47c3-9c95-70adb7198fd9_992x1130.png 1272w, https://substackcdn.com/image/fetch/$s_!B9Ea!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb764d934-5d61-47c3-9c95-70adb7198fd9_992x1130.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!B9Ea!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb764d934-5d61-47c3-9c95-70adb7198fd9_992x1130.png" width="992" height="1130" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/b764d934-5d61-47c3-9c95-70adb7198fd9_992x1130.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1130,&quot;width&quot;:992,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:274782,&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;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!B9Ea!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb764d934-5d61-47c3-9c95-70adb7198fd9_992x1130.png 424w, https://substackcdn.com/image/fetch/$s_!B9Ea!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb764d934-5d61-47c3-9c95-70adb7198fd9_992x1130.png 848w, https://substackcdn.com/image/fetch/$s_!B9Ea!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb764d934-5d61-47c3-9c95-70adb7198fd9_992x1130.png 1272w, https://substackcdn.com/image/fetch/$s_!B9Ea!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb764d934-5d61-47c3-9c95-70adb7198fd9_992x1130.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>Or previous ones about Azure Databricks, Networking and DBT core with Github Actions:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!AOHk!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff236e7b9-9e19-491b-9d9e-c09c23364b5d_1064x1710.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!AOHk!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff236e7b9-9e19-491b-9d9e-c09c23364b5d_1064x1710.png 424w, https://substackcdn.com/image/fetch/$s_!AOHk!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff236e7b9-9e19-491b-9d9e-c09c23364b5d_1064x1710.png 848w, https://substackcdn.com/image/fetch/$s_!AOHk!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff236e7b9-9e19-491b-9d9e-c09c23364b5d_1064x1710.png 1272w, https://substackcdn.com/image/fetch/$s_!AOHk!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff236e7b9-9e19-491b-9d9e-c09c23364b5d_1064x1710.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!AOHk!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff236e7b9-9e19-491b-9d9e-c09c23364b5d_1064x1710.png" width="1064" height="1710" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/f236e7b9-9e19-491b-9d9e-c09c23364b5d_1064x1710.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1710,&quot;width&quot;:1064,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:352169,&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;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!AOHk!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff236e7b9-9e19-491b-9d9e-c09c23364b5d_1064x1710.png 424w, https://substackcdn.com/image/fetch/$s_!AOHk!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff236e7b9-9e19-491b-9d9e-c09c23364b5d_1064x1710.png 848w, https://substackcdn.com/image/fetch/$s_!AOHk!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff236e7b9-9e19-491b-9d9e-c09c23364b5d_1064x1710.png 1272w, https://substackcdn.com/image/fetch/$s_!AOHk!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff236e7b9-9e19-491b-9d9e-c09c23364b5d_1064x1710.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 interested you can:</p><ul><li><p>Connect with me on Linkedin https://www.linkedin.com/in/dmitryanoshin/</p></li><li><p>Follow announcements on Telegram https://t.me/surfalytics</p></li><li><p>Learn more about services I can provide for career development and coaching https://surfalytics.com/pages/services/</p></li></ul><p>You can also follow us on instagram: https://www.instagram.com/surfalytics </p><div class="pullquote"><p>&#8221;The goal is not money. The goal is lifestyle you don&#8217;t need vacation from&#8221;</p></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!o9-6!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc6fca7c3-348f-4bc4-9c7a-7359d8570ee1_972x1838.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!o9-6!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc6fca7c3-348f-4bc4-9c7a-7359d8570ee1_972x1838.png 424w, https://substackcdn.com/image/fetch/$s_!o9-6!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc6fca7c3-348f-4bc4-9c7a-7359d8570ee1_972x1838.png 848w, https://substackcdn.com/image/fetch/$s_!o9-6!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc6fca7c3-348f-4bc4-9c7a-7359d8570ee1_972x1838.png 1272w, https://substackcdn.com/image/fetch/$s_!o9-6!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc6fca7c3-348f-4bc4-9c7a-7359d8570ee1_972x1838.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!o9-6!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc6fca7c3-348f-4bc4-9c7a-7359d8570ee1_972x1838.png" width="972" height="1838" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c6fca7c3-348f-4bc4-9c7a-7359d8570ee1_972x1838.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1838,&quot;width&quot;:972,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:3909691,&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;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!o9-6!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc6fca7c3-348f-4bc4-9c7a-7359d8570ee1_972x1838.png 424w, https://substackcdn.com/image/fetch/$s_!o9-6!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc6fca7c3-348f-4bc4-9c7a-7359d8570ee1_972x1838.png 848w, https://substackcdn.com/image/fetch/$s_!o9-6!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc6fca7c3-348f-4bc4-9c7a-7359d8570ee1_972x1838.png 1272w, https://substackcdn.com/image/fetch/$s_!o9-6!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc6fca7c3-348f-4bc4-9c7a-7359d8570ee1_972x1838.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>See you! </p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://blog.surfalytics.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Surfalytics is a reader-supported publication. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item></channel></rss>