<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom" ><generator uri="https://jekyllrb.com/" version="3.10.0">Jekyll</generator><link href="https://rdrn.dev/feed.xml" rel="self" type="application/atom+xml" /><link href="https://rdrn.dev/" rel="alternate" type="text/html" /><updated>2026-07-16T09:02:27+00:00</updated><id>https://rdrn.dev/feed.xml</id><title type="html">Matt Arderne</title><subtitle>Data Engineering.</subtitle><author><name>Matt Arderne</name></author><entry><title type="html">A Modern Data Benchmark</title><link href="https://rdrn.dev/modern-data-benchmark/" rel="alternate" type="text/html" title="A Modern Data Benchmark" /><published>2026-02-09T12:00:00+00:00</published><updated>2026-02-09T12:00:00+00:00</updated><id>https://rdrn.dev/modern-data-benchmark</id><content type="html" xml:base="https://rdrn.dev/modern-data-benchmark/"><![CDATA[<p><em>This is a comparison of dbt (SQL) and Drizzle (TS) as an infra choice for Data Analysis. The findings seem to confirm my inkling that dbt might be more human coded than Coding Agent coded... I'm interested in hearing thoughts, as this is the first poke at this idea.<br /><br />Way back I wrote a </em><a href="https://groupby1.mattarderne.com/">few blogs</a><em> about the Modern Data Stack, this is the first look back into the space (and it was a brief look) since I stopped that and started a startup.</em></p>
<p><em>If you have any ideas for improving this investigation, I'm all ears! </em></p>

<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcde2203a-945a-451d-bb30-27d280f83f78_6720x4476.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcde2203a-945a-451d-bb30-27d280f83f78_6720x4476.jpeg 424w, https://substackcdn.com/image/fetch/w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcde2203a-945a-451d-bb30-27d280f83f78_6720x4476.jpeg 848w, https://substackcdn.com/image/fetch/w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcde2203a-945a-451d-bb30-27d280f83f78_6720x4476.jpeg 1272w, https://substackcdn.com/image/fetch/w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcde2203a-945a-451d-bb30-27d280f83f78_6720x4476.jpeg 1456w" sizes="100vw" /><img src="https://substack-post-media.s3.amazonaws.com/public/images/cde2203a-945a-451d-bb30-27d280f83f78_6720x4476.jpeg" width="1456" height="970" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcde2203a-945a-451d-bb30-27d280f83f78_6720x4476.jpeg 424w, https://substackcdn.com/image/fetch/w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcde2203a-945a-451d-bb30-27d280f83f78_6720x4476.jpeg 848w, https://substackcdn.com/image/fetch/w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcde2203a-945a-451d-bb30-27d280f83f78_6720x4476.jpeg 1272w, https://substackcdn.com/image/fetch/w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcde2203a-945a-451d-bb30-27d280f83f78_6720x4476.jpeg 1456w" sizes="100vw" fetchpriority="high" /></picture></div></a></figure></div>

<p><em>----------------------------</em></p>

<p>Since reading the <a href="https://openai.com/index/inside-our-in-house-data-agent/">OpenAI data stack post</a>, I've <a href="https://x.com/mattarderne/status/2017517042484568538">suspected</a> that dbt/SQL might get in the way of LLMs when looking at the data stack more holistically. </p>

<p>By data stack, I'm talking Modern Data Stack: ETL core app data into Snowflake/BigQuery, load other API data like Stripe in as well, do SQL joins to get answers (if unfamiliar then this post <em>might </em>not be that clear).</p>

<p>All the SQL + metadata might just be more human useful than LLM useful. </p>

<p>Or the system might have been better designed for when we didn't have Coding Agents. </p>

<p>I've wondered about this a bit:</p>

<div class="twitter-embed" data-attrs="{&quot;url&quot;:&quot;https://x.com/mattarderne/status/1897279053784383925&quot;,&quot;full_text&quot;:&quot;in 2025, what option does an LLM have but to do the data modelling in dbt?\n\nsomewhat serious question&quot;,&quot;username&quot;:&quot;mattarderne&quot;,&quot;name&quot;:&quot;Matt Arderne 🌊&quot;,&quot;profile_image_url&quot;:&quot;https://pbs.substack.com/profile_images/1784251602750103552/U1WgaMkf_normal.jpg&quot;,&quot;date&quot;:&quot;2025-03-05T13:32:30.000Z&quot;,&quot;photos&quot;:[],&quot;quoted_tweet&quot;:{&quot;full_text&quot;:&quot;in essence, what other option do startups have but to rely on data modelling done in dbt?&quot;,&quot;username&quot;:&quot;mattarderne&quot;,&quot;name&quot;:&quot;Matt Arderne 🌊&quot;,&quot;profile_image_url&quot;:&quot;https://pbs.substack.com/profile_images/1784251602750103552/U1WgaMkf_normal.jpg&quot;},&quot;reply_count&quot;:2,&quot;retweet_count&quot;:0,&quot;like_count&quot;:8,&quot;impression_count&quot;:1097,&quot;expanded_url&quot;:null,&quot;video_url&quot;:null,&quot;belowTheFold&quot;:true}" data-component-name="Twitter2ToDOM"></div>

<p>On a related note to dbt, a strongly coupled feeling, I've <a href="https://x.com/mattarderne/status/1891898809132650654">felt</a> that your main app's code is underutilized as a source of meaning and structure:</p>

<div class="twitter-embed" data-attrs="{&quot;url&quot;:&quot;https://x.com/mattarderne/status/1569674410675535874&quot;,&quot;full_text&quot;:&quot;What % of the data stack need would be entirely negated if data modelling was better applied at the application layer?\n\n*exclude multi-source centralising \n\n&lt;a class=\&quot;tweet-url\&quot; href=\&quot;https://blog.codecentric.de/en/2017/07/agile-database-design-using-anchor-modeling/\&quot;&gt;blog.codecentric.de/en/2017/07/agi…&lt;/a&gt;&quot;,&quot;username&quot;:&quot;mattarderne&quot;,&quot;name&quot;:&quot;Matt Arderne 🌊&quot;,&quot;profile_image_url&quot;:&quot;https://pbs.substack.com/profile_images/1784251602750103552/U1WgaMkf_normal.jpg&quot;,&quot;date&quot;:&quot;2022-09-13T13:08:37.000Z&quot;,&quot;photos&quot;:[],&quot;quoted_tweet&quot;:{},&quot;reply_count&quot;:1,&quot;retweet_count&quot;:0,&quot;like_count&quot;:7,&quot;impression_count&quot;:0,&quot;expanded_url&quot;:null,&quot;video_url&quot;:null,&quot;belowTheFold&quot;:true}" data-component-name="Twitter2ToDOM"></div>

<p>Then I see this point from Open AI, and I'm like, YES!</p>

<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1e4561bc-7658-4979-bf46-232fe5fe5399_856x974.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1e4561bc-7658-4979-bf46-232fe5fe5399_856x974.png 424w, https://substackcdn.com/image/fetch/w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1e4561bc-7658-4979-bf46-232fe5fe5399_856x974.png 848w, https://substackcdn.com/image/fetch/w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1e4561bc-7658-4979-bf46-232fe5fe5399_856x974.png 1272w, https://substackcdn.com/image/fetch/w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1e4561bc-7658-4979-bf46-232fe5fe5399_856x974.png 1456w" sizes="100vw" /><img src="https://substack-post-media.s3.amazonaws.com/public/images/1e4561bc-7658-4979-bf46-232fe5fe5399_856x974.png" width="856" height="974" class="sizing-normal" alt="Image" title="Image" srcset="https://substackcdn.com/image/fetch/w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1e4561bc-7658-4979-bf46-232fe5fe5399_856x974.png 424w, https://substackcdn.com/image/fetch/w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1e4561bc-7658-4979-bf46-232fe5fe5399_856x974.png 848w, https://substackcdn.com/image/fetch/w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1e4561bc-7658-4979-bf46-232fe5fe5399_856x974.png 1272w, https://substackcdn.com/image/fetch/w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1e4561bc-7658-4979-bf46-232fe5fe5399_856x974.png 1456w" sizes="100vw" loading="lazy" /></picture></div></a><figcaption class="image-caption"><a href="https://openai.com/index/inside-our-in-house-data-agent/#:~:text=Lesson%20%233%3A%20Meaning%20Lives%20in%20Code">https://openai.com/index/inside-our-in-house-data-agent/#:~:text=Lesson%20%233%3A%20Meaning%20Lives%20in%20Code</a></figcaption></figure></div>

<p>I've felt this acutely. Maintaining SQL files in dbt has just <strong>so much surface area, and so little logic!</strong></p>

<p>But also reading the OpenAI post, I see they are <a href="https://openai.com/index/inside-our-in-house-data-agent/#:~:text=Even%20with%20the,the%20right%20columns.">still running most of their analytics logic in</a> SQL!?<br /><br />I really struggled to believe that the OpenAI data, at the fastest-growing, most well-funded supercompany in recent memory, <strong>is doing exactly what I would do.</strong></p>

<p>They are running the Covid era MDS at the core of all the other stuff. </p>

<p>Same way, same tools, driven by the same FinOps need. </p>

<p>I don't expect SQL to go anywhere, that is not what I'm getting at. I also don't think dbt should go anywhere necessarily. <a href="https://x.com/mattarderne/status/1717204732882698378">Standards</a> are set in times of disruption, and if dbt is the analytics standard then so be it. </p>

<p>But I wanted to scratch the itch. So I built a benchmark.</p>

<p>I present <em>The Modern Data Benchmark (or MDS Gym?). </em></p>

<p>A small experiment comparing how LLM agents perform across different data architectures, given the same data and the same questions.</p>

<p><strong>The pro-forma result: </strong></p>

<p>Across 7 LLM models, warehouse+dbt had a 5% pass rate. App-unified architectures had 38-48%. </p>

<p>*the numbers in this post are directionally correct, like the MDS.</p>

<h2><strong>A quick history of how we got here</strong></h2>

<p>Before we dive into it, some context. </p>

<p>The Modern Data Stack came out of a specific organizational need. </p>

<ol><li><p>Marketing needs to track ad spend. </p></li><li><p>Finance needs to reconcile Stripe revenue. </p></li></ol>

<p>These are important but non-core functions, so they get staffed by analyst-operator types who can usually write SQL but not Python. Add Redshift/Snowflake and all roads lead to you SQL.</p>

<p>dbt emerged to give those SQL queries just enough software engineering discipline, version control, modularity, templating, without forcing anyone to leave SQL. It was a rational solution to a real constraint: <strong>these teams could not write very good code, and didn't have a place to write it.</strong></p>

<p>The gravity of that constraint pulled everything towards raw SQL against a data warehouse. No types, no abstractions, nothing but SQL. dbt came along to solve the obvious shortcomings (shitshow) of lots of SQL. Version Control+Jinja and it was, I was working in enterprise data before, dbt was wild!</p>

<p><strong>OpenAI's data warehouse confirms the pattern</strong> </p>

<p>What surprised me was looking at OpenAI's data warehouse. On the surface it looked sophisticated: context layers, embeddings, all the works. But at the core, two things stood out.</p>

<p><strong>First, it was driven by FinOps. </strong>The example given was revenue reconciliation from Stripe. Even at frontier AI companies, FinOps drives the data warehouse.</p>

<p><strong>Second, it uses SQL (and I guess dbt). </strong>The team likely had used dbt before, so they reached for it again. This isn't a criticism, it's how standards form. Not by systematic evaluation, but by repetition.</p>

<h2><strong>The question worth asking</strong></h2>

<p>dbt's value was making SQL manageable for human analysts. But at scale there are now tens of thousands of lines of SQL that no human is ever going to read. The SQL is increasingly being consumed by agents.</p>

<p>If the consumer is an agent, "easiest for humans to read" stops being that important. </p>

<p>The relevant question becomes:</p>

<p>For an agent answering business questions, which representation of the system is the most legible, robust, and correct?</p>

<p>It all felt rather benchmarkable.</p>

<p><strong>The split-brain problem </strong></p>

<p>The modern data stack creates a structural split. Your app has your core business logic: users, statuses, transactions. Separately, you have a data warehouse that holds a lagging copy of that data, <em>plus</em> third-party data like Stripe that only exists in the warehouse.</p>

<p>To answer anything useful, you need to join app data onto Stripe data inside the warehouse, using SQL, with constrained logic. The "single source of truth" in the warehouse is never truly trustworthy. Your actual source of truth is the production database and someone else's API, and the warehouse is always behind.</p>

<p>The crux: what if you brought the data closer to home? Shift left? Strongly typed? Asked Codex 5.3 to spar with Opus 4.6 on turbo mode? What would they do? </p>

<p>I guess they'd load Stripe data into a structure your app understands, with proper types and constraints, and they'd run analytics against the unified codebase..?</p>

<p><strong>If revenue is a key business capability, and we're no longer as code-constrained as we were, why not model it as a first-class concept?</strong></p>

<p>(this has a million small holes, but stay with me)</p>

<h2><strong>The benchmark</strong></h2>

<p>Three sandbox environments, same data, same three analytical tasks: <strong>ARPU</strong>, <strong>churn rate</strong>, and <strong>LTV</strong>. </p>

<p>Small data, known correct answers. Size isn't the test. We are looking at architecture.</p>

<div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F316d4130-98ee-408b-ae03-1e922a7c34fb_836x186.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F316d4130-98ee-408b-ae03-1e922a7c34fb_836x186.png 424w, https://substackcdn.com/image/fetch/w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F316d4130-98ee-408b-ae03-1e922a7c34fb_836x186.png 848w, https://substackcdn.com/image/fetch/w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F316d4130-98ee-408b-ae03-1e922a7c34fb_836x186.png 1272w, https://substackcdn.com/image/fetch/w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F316d4130-98ee-408b-ae03-1e922a7c34fb_836x186.png 1456w" sizes="100vw" /><img src="https://substack-post-media.s3.amazonaws.com/public/images/316d4130-98ee-408b-ae03-1e922a7c34fb_836x186.png" width="836" height="186" class="sizing-normal" alt="Image" title="Image" srcset="https://substackcdn.com/image/fetch/w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F316d4130-98ee-408b-ae03-1e922a7c34fb_836x186.png 424w, https://substackcdn.com/image/fetch/w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F316d4130-98ee-408b-ae03-1e922a7c34fb_836x186.png 848w, https://substackcdn.com/image/fetch/w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F316d4130-98ee-408b-ae03-1e922a7c34fb_836x186.png 1272w, https://substackcdn.com/image/fetch/w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F316d4130-98ee-408b-ae03-1e922a7c34fb_836x186.png 1456w" sizes="100vw" loading="lazy" /></picture></div></a></figure></div>

<p>In the app sandboxes, Stripe data is represented as internal data with types. </p>

<blockquote><p><em>App Tables + Stripe Tables &rarr; Single typed context &rarr; Code &rarr; Metric</em></p></blockquote>

<p>In the dbt sandbox, it follows the traditional pattern: third-party data loaded and joined via SQL. </p>

<blockquote><p><em>App DB + Stripe &rarr; Replication &rarr; DuckDB raw tables &rarr; Staging SQL &rarr; Marts SQL &rarr; Metric</em></p></blockquote>

<p>The model must discover the schema and produce executable code that returns the correct number. No hints, no hand-holding.</p>

<p>The key difference: in app architectures, the model has one typed context. In the warehouse, it must navigate staging models, column naming conventions, and SQL casting to arrive at the same answer.</p>

<p><strong>How the evaluation works</strong> </p>

<p>Each run works like this:</p>

<ol>
<li><p><strong>Fresh sandbox.</strong> A clean copy of the sandbox template is created with the synthetic data loaded. No prior work carries over between tasks.</p></li>
<li><p><strong>Agent loop.</strong> The model gets a system prompt describing the architecture and four tools: read_file, write_file, list_files, and done. It has up to 10 turns (API round-trips) to explore the codebase, discover the schema, write its solution, and signal completion. Temperature is set to 0.</p></li>
<li><p><strong>No hints.</strong> The model is told <em>what</em> to compute (e.g., "ARPU for active users") and given the function signature, but not <em>how</em>. It must figure out join keys (users.stripe_customer_id &rarr; invoices.customer_id), column names, and time anchoring on its own by reading files.</p></li>
<li><p><em><strong>Execution</strong> <strong>app-typed</strong>: the TypeScript function is imported and called with the data arrays. </em></p></li>
<li><p><em><strong>Execution app-drizzle</strong>: the async function runs against a pre-loaded SQLite database via Drizzle ORM. </em></p></li>
<li><p><em><strong>Execution warehouse-dbt</strong>: the SQL is executed in DuckDB with raw tables created from JSON (staging/mart views are built from any SQL files the model wrote)</em></p></li>
<li><p><strong>Scoring.</strong> Pass/fail is purely numeric: does the output match the expected value within tolerance? (&plusmn;1 for integers like ARPU/LTV, &plusmn;0.001 for rates like churn). No partial credit, no style points. If the code crashes, it's a fail. If it returns the wrong number, it's a fail.</p></li>
<li><p><strong>Flexible matching.</strong> The validator accepts naming variations (calculateARPU, computeArpu, getArpu, etc.) and searches multiple directories for SQL files, so models aren't penalized for reasonable naming choices.</p></li>
</ol>

<p>Expected values are computed from the same data by a reference implementation in the benchmark harness itself, not hand-coded, so they're guaranteed consistent.</p>

<h2><strong>THE RESULTS</strong></h2>

<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F62348d41-3465-4217-9374-f327fa74d2ea_900x623.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F62348d41-3465-4217-9374-f327fa74d2ea_900x623.jpeg 424w, https://substackcdn.com/image/fetch/w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F62348d41-3465-4217-9374-f327fa74d2ea_900x623.jpeg 848w, https://substackcdn.com/image/fetch/w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F62348d41-3465-4217-9374-f327fa74d2ea_900x623.jpeg 1272w, https://substackcdn.com/image/fetch/w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F62348d41-3465-4217-9374-f327fa74d2ea_900x623.jpeg 1456w" sizes="100vw" /><img src="https://substack-post-media.s3.amazonaws.com/public/images/62348d41-3465-4217-9374-f327fa74d2ea_900x623.jpeg" width="900" height="623" class="sizing-normal" alt="Image" title="Image" srcset="https://substackcdn.com/image/fetch/w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F62348d41-3465-4217-9374-f327fa74d2ea_900x623.jpeg 424w, https://substackcdn.com/image/fetch/w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F62348d41-3465-4217-9374-f327fa74d2ea_900x623.jpeg 848w, https://substackcdn.com/image/fetch/w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F62348d41-3465-4217-9374-f327fa74d2ea_900x623.jpeg 1272w, https://substackcdn.com/image/fetch/w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F62348d41-3465-4217-9374-f327fa74d2ea_900x623.jpeg 1456w" sizes="100vw" loading="lazy" /></picture></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/f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fec9b434b-be6c-4824-892d-3424074b4615_610x317.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fec9b434b-be6c-4824-892d-3424074b4615_610x317.png 424w, https://substackcdn.com/image/fetch/w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fec9b434b-be6c-4824-892d-3424074b4615_610x317.png 848w, https://substackcdn.com/image/fetch/w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fec9b434b-be6c-4824-892d-3424074b4615_610x317.png 1272w, https://substackcdn.com/image/fetch/w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fec9b434b-be6c-4824-892d-3424074b4615_610x317.png 1456w" sizes="100vw" /><img src="https://substack-post-media.s3.amazonaws.com/public/images/ec9b434b-be6c-4824-892d-3424074b4615_610x317.png" width="610" height="317" class="sizing-normal" alt="Image" title="Image" srcset="https://substackcdn.com/image/fetch/w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fec9b434b-be6c-4824-892d-3424074b4615_610x317.png 424w, https://substackcdn.com/image/fetch/w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fec9b434b-be6c-4824-892d-3424074b4615_610x317.png 848w, https://substackcdn.com/image/fetch/w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fec9b434b-be6c-4824-892d-3424074b4615_610x317.png 1272w, https://substackcdn.com/image/fetch/w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fec9b434b-be6c-4824-892d-3424074b4615_610x317.png 1456w" sizes="100vw" loading="lazy" /></picture></div></a></figure></div>

<p>The ORM sandbox was the clear winner: Opus got a perfect 3/3 every single run, and cheaper models like Kimi and Grok matched it.</p>

<p>The warehouse-dbt column is almost entirely zeros. Only Opus managed a single pass, and even that was inconsistent across runs.</p>

<p>Looking closer at variance on multi-run stability (n=5 per Anthropic model)</p>

<ul>
<li><p><strong>Opus</strong>: Zero variance.</p></li>
<li><p><strong>Sonnet</strong>: High variance (~0.9 std).</p></li>
<li><p><strong>Haiku</strong>: Fluctuates between 0-1 passes.</p></li>
</ul>

<p>Mid-tier models are at the edge, and the architecture is what pushes them over or pulls them back.</p>

<p><strong>Where dbt struggles</strong></p>

<p>The failure modes:</p>

<ul>
<li><p><strong>Schema mismatch</strong>: wrong column names (created_at vs usage_created_at, org_id vs organization_id). Staging conventions that the model has to guess.</p></li>
<li><p><strong>Type mismatch</strong>: interval math on VARCHAR timestamps without casting.</p></li>
<li><p><strong>File naming</strong>: incorrect output filenames or failure to write the metric model.</p></li>
</ul>

<p><strong>Even thorough models struggle with dbt</strong></p>

<p>Adding in a measure of unique files read per task in warehouse-dbt:</p>

<ul>
<li><p><strong>Haiku</strong>: 1.1 files (barely looks at the schema)</p></li>
<li><p><strong>Sonnet</strong>: 3.7 files (reads staging files but still gets column names wrong)</p></li>
<li><p><strong>Opus</strong>: 4.4 files (reads everything, still only 1/3 pass rate)</p></li>
</ul>

<p>Even when the model does its homework, the warehouse architecture introduces enough indirection to trip it up. It's not a laziness problem, the representation has too many seams.</p>

<p>In the <strong>app sandboxes</strong>, failures were simpler (wrong join key, missing function) and more recoverable in typed code.</p>

<h2><strong>What I take from this</strong></h2>

<p>This benchmark tests a narrow but important thing: can an agent read a schema, write executable logic, and return the correct metric? It doesn't test full dbt workflows with Jinja, ref/source, or materializations. It tests the core analytical task that everything else is built to support.</p>

<p>A few observations (not conclusions, this is early and the sample is small):</p>

<ol>
<li><p><strong>The architecture matters more than the model.</strong> The same model that fails at dbt can succeed in a typed environment. </p></li>
<li><p><strong>ORMs are surprisingly agent-friendly.</strong> Drizzle over SQLite was the strongest sandbox, even mid-tier models could navigate it. Typed schema + query builder + unified context seems to hit a sweet spot.</p></li>
<li><p><strong>Indirection has a cost that compounds.</strong> Each layer of staging, naming convention, and type casting is a place where an agent can silently go wrong. Types and co-location seem to reduce that surface area.</p></li>
</ol>

<h2><strong>What's next</strong></h2>

<p>The current tasks (ARPU, churn, LTV) are intentionally simple, canonical SaaS metrics on synthetic data. The architecture signal is clear, but the questions need to get harder to be convincing. </p>

<p>A few directions:</p>

<ol>
<li><p><strong>What is a "fair" dbt project?</strong> After the initial results I started adding hints to the dbt sandbox to get some passing runs, things like cast annotations in staging models so the model doesn't trip on DuckDB timestamp arithmetic. I added <code>CAST(created_at AS TIMESTAMP) AS usage_created_at</code> in the staging layer as it kept tripping up on that. It sort of helped: adding a single cast hint let Sonnet pass org_churn_rate where it previously crashed on a runtime error (<a href="https://github.com/mattarderne/modern-data-benchmarks/blob/main/architecture-compare/artifacts/reports/warehouse-dbt-documented-experiment-2026-02-09.md">details</a>), but it wasn't that consistently helpful. It also felt like a slippery slope. How much documentation and scaffolding do you add before the dbt sandbox stops being representative of what an AI agent would setup. Remember this was all setup by Codex 5.2, I didn't touch a thing! A real dbt project lives somewhere on this spectrum, and where exactly is an open question. But maybe that's the point. You can keep adding scaffolding to SQL, cast hints, schema docs, Jinja templating, ref() pointers, semantic YAML, and each one closes a small piece of the gap. At some point you have to ask: is the SQL architecture, with all the scaffolding you need to make it work for agents, converging on the thing you'd build if you just started with types and a unified codebase?</p></li>
<li><p><strong>Realistic drift.</strong> The current benchmark is static, the data is clean and complete. Real analytics is messier: late-arriving Stripe invoices, missing stripe_customer_id mappings, schema changes mid-pipeline. Adding sync delay scenarios would test whether the split-brain problem is as bad in practice as it is in theory.</p></li>
<li><p><strong>Linting as agent feedback.</strong> Early experiments with TypeScript typecheck + SQLFluff showed that giving agents lint feedback and extra fix attempts improved ORM more than dbt scores, but the improvement might just be from extra turns, not the lint signal. SQLFluff style rules seem to add noise that distracts smaller models. A schema-only mode that only surfaces missing tables/columns could be a cleaner signal. I tried some things there, but nothing clear.</p></li>
<li><p><strong>Information parity.</strong> A typed codebase inherently carries more structural information (types, constraints, relationships) than raw SQL with YAML docs. You could argue that's confounding. I guess so? But that's also the point: the architecture <em>is</em> the information density. Still, enriching the dbt sandbox with comprehensive YAML schema docs would test how much of the gap is "types help" vs "unified context helps."</p></li>
<li><p><strong>Turn-level analysis.</strong> Currently only tracking file-read counts. Understanding the step-by-step reasoning, where models go wrong, when they recover, would give sharper insight into why architecture matters.</p></li>
</ol>

<p>Other interesting things:</p>

<ul>
<li><p><strong>Semantic layer sandbox (<a href="https://github.com/cliftonc/drizzle-cube">Drizzle-Cube</a>).</strong> The baseline benchmark included Drizzle-Cube but the architecture benchmark didn't. Adding it would test whether pre-defined measures help or constrain agents. I'm hopeful this pushes Drizzle well beyond comparison!</p></li>
<li><p><strong>Does the "context layer" exist?</strong> There's a lot of hand-waving right now about "context layers" and "context graphs." When you boil these down, they often look like a data warehouse or semantic layer in new language. My position: <strong>if you can't demonstrate a simple instance of a complex idea, it doesn't meaningfully exist.</strong> Next step is to build sandboxes for the best-case context graph blogs and run them through the same benchmark.</p></li>
<li><p><strong>Harder queries.</strong> <a href="https://github.com/matsonj/bird-bench">@matsonj's platinum set</a> from the BIRD text-to-SQL benchmark covering complex joins, CTEs, NULL handling, and conditional aggregation. Also <a href="https://github.com/mitdbg/Kramabench">KramaBench</a> which tests full data pipelines, not just single queries, and from the benchmarks referenced by <a href="https://www.sphinx.ai/blog/sphinx-1-0-re-inventing-ai-for-data-science/">Sphinx</a> including DABStep (real Adyen payments data). If agents struggle with simple ARPU, what happens with real analytical complexity?</p></li>
<li><p><strong>Costs. </strong>I tracked the costs, the results were somewhat interesting, it seemed like Opus was actually often cheaper as it took fewer laps to get the answer. I need to benchmark this more carefully. <a href="https://github.com/mattarderne/modern-data-benchmarks/blob/main/architecture-compare/artifacts/benchmark_cost_curve.png">Pareto performance cost curve</a>. </p></li>
</ul>

<h2><strong>A request</strong></h2>

<p>I'm no longer that close to dbt. Things may have moved on. If you're actively working in dbt and you <a href="https://github.com/mattarderne/modern-data-benchmarks/tree/main/architecture-compare/sandboxes/warehouse-dbt">look at the warehouse sandbox</a> and think "that's not how we'd set it up," I genuinely want to hear that. Is this a realistic task? Is this a fair test? The benchmark is <a href="https://github.com/mattarderne/modern-data-benchmarks/tree/main/architecture-compare">open source</a>, you can set up the dbt sandbox the way you think it should be, and run the same evaluation. If a well-configured dbt project closes the gap, that's a finding worth publishing too.</p>

<p><strong>Caveats</strong>: </p>

<ol>
<li><p>Small n, synthetic data, single-pass runs for some models, no full dbt compilation. This is directional, not definitive. Run it yourself, add harder tasks, prove me wrong.</p></li>
<li><p>Claude wrote this out from a voice-note I recorded. </p></li>
</ol>

<p><em><a href="https://github.com/mattarderne/modern-data-benchmarks/tree/main/architecture-compare">Link to benchmark repo</a> &middot; <a href="https://openai.com/index/inside-our-in-house-data-agent/">Link to OpenAI data stack post</a></em></p>]]></content><author><name>Matt Arderne</name></author><category term="writing" /><category term="groupby1" /><category term="Data" /><category term="Data Systems" /><category term="Top Post" /><summary type="html"><![CDATA[I benchmarked dbt against what an LLM would build from scratch. Across 7 models, warehouse+dbt had a 5% pass rate. App-unified architectures had 38-48%.]]></summary></entry><entry><title type="html">Notes on Building Agentic Tools Using Local LLMs</title><link href="https://rdrn.dev/ai-agents/" rel="alternate" type="text/html" title="Notes on Building Agentic Tools Using Local LLMs" /><published>2025-12-31T01:17:00+00:00</published><updated>2025-12-31T01:17:00+00:00</updated><id>https://rdrn.dev/ai-agents</id><content type="html" xml:base="https://rdrn.dev/ai-agents/"><![CDATA[<p class="note"><strong>Update (2026-02-18):</strong> Anthropic published <a href="https://www.anthropic.com/engineering/advanced-tool-use">Advanced Tool Use</a> which formalises three patterns for scaling tool use: (1) a <strong>Tool Search Tool</strong> for dynamic discovery via <code class="language-plaintext highlighter-rouge">defer_loading</code> instead of loading all tools upfront, (2) <strong>Programmatic Tool Calling</strong> where the model writes code to call tools and process results outside its context, and (3) <strong>Tool Use Examples</strong> to teach correct invocation patterns. Combined with effort control and context compaction, these boosted Opus 4.5 deep research performance by ~15pp.</p>

<p>Over the Christmas break, I decided to explore code execution for AI agents, inspired by <a href="https://www.anthropic.com/engineering/code-execution-with-mcp">Anthropic’s blog on the topic</a>. The idea is appealing: reduce the amount of unnecessary context that gets fed into an agent’s working memory.</p>

<blockquote>
  <p>As MCP usage scales, there are two common patterns that can increase agent cost and latency:
Tool definitions overload the context window;
Intermediate tool results consume additional tokens.</p>
</blockquote>

<p>If you’ve spent any time with Claude Code or similar tools, you’ll know the problem. You really want to avoid the orchestrator seeing unnecessary logs, digging through dense files with low information density, or accumulating cruft that poisons the context window.</p>

<p>Anthropic’s  approach uses an orchestrator that composes agent tasks without ever seeing the results of those tasks directly. It only sees structured outputs <em>if the tool deems it necessary</em>. I wanted to understand how this actually works, particularly for small local models. <strong>Can you get a 7B model to operate coherently well beyond its context limits, and can the orchestrator agent be useful without needing to see all the tokens?</strong></p>

<p>The short answer is yes, sort of. But the interesting part is what that requires: tool design that makes composition obvious through what I’m calling tool ergonomics (python types) alone.</p>

<h2 id="starting-simple-bash-scripts-and-local-models">Starting Simple: Bash Scripts and Local Models</h2>

<p>I started basic, using a local Llama 7B model. My first attempt was a simple feedback loop:</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>Writer (draft) → Editor (feedback) → Writer (revision) → ...
</code></pre></div></div>

<p>The editor provides critique on structure, pacing, and prose quality. The writer interprets the feedback and revises. In theory, this preserves the writer’s voice across iterations.</p>

<p>Neither this nor the direct rewrite variant worked particularly well. The feedback loop used about 3x the tokens per round, while direct rewrite was around 1.5x. But it wasn’t much better than just loading one model and hitting the 8k context limit. I wanted to stay around 2k tokens per model run to keep things focused (they seem happier there?).</p>

<h2 id="the-iteration-loop-and-why-it-failed">The Iteration Loop (and Why It Failed)</h2>

<p>Next, I built an iteration loop with a planner, writer, and critic. The problem became obvious quickly. The orchestrator was still seeing all the context:</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>Iteration 1: prompt → draft (2000 tokens)
Iteration 2: prompt + draft + critique → revised (4500 tokens)
Iteration 3: prompt + draft + critique + revised + critique2 → ... (growing)
</code></pre></div></div>

<p>Four or five iterations and it fell apart. No meaningful reduction in context bloat.</p>

<h2 id="trying-smolagents-and-moving-on">Trying smolagents (and Moving On)</h2>

<p>I gave Hugging Face’s smolagents a go. The hope was that the LLM generates code, data flows through variables, and you get less context bloat.</p>

<p>The issue: smolagents uses ReAct (step-by-step reasoning), so the orchestrator maintains a memory of previous actions and observations at each step. My impression was that this meant tool outputs were still accumulating in context, making it worse than my bash scripts due to orchestrator overhead.</p>

<p><em>(Disclaimer: I didn’t rigorously measure this. I moved on fairly quickly because I wanted to build something from scratch that I understood fully. smolagents may well have optimisations or configuration options I missed. Take this with a grain of salt.)</em></p>

<h2 id="building-my-own-orchestrator">Building My Own Orchestrator</h2>

<p>This is where things got interesting. I (Claude) built an orchestrator that looks at a manifest of tools and writes code to invoke them. The key difference: <strong>the orchestrator generates the code once, then it runs in Python without the orchestrator seeing intermediate results.</strong></p>

<div class="language-python highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="k">def</span> <span class="nf">solve_task</span><span class="p">(</span><span class="n">user_prompt</span><span class="p">):</span>
    <span class="n">draft</span> <span class="o">=</span> <span class="n">writer</span><span class="p">(</span><span class="n">prompt</span><span class="o">=</span><span class="n">user_prompt</span><span class="p">)</span>
    <span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="mi">4</span><span class="p">):</span>
        <span class="n">critique</span> <span class="o">=</span> <span class="n">critic</span><span class="p">(</span><span class="n">content</span><span class="o">=</span><span class="n">draft</span><span class="p">,</span> <span class="n">requirements</span><span class="o">=</span><span class="n">user_prompt</span><span class="p">)</span>
        <span class="k">if</span> <span class="s">"DONE"</span> <span class="ow">in</span> <span class="n">critique</span><span class="p">:</span>
            <span class="k">break</span>
        <span class="n">draft</span> <span class="o">=</span> <span class="n">writer</span><span class="p">(</span><span class="n">prompt</span><span class="o">=</span><span class="n">user_prompt</span><span class="p">,</span> <span class="n">feedback</span><span class="o">=</span><span class="n">critique</span><span class="p">)</span>
    <span class="k">return</span> <span class="n">draft</span>

<span class="n">result</span> <span class="o">=</span> <span class="n">solve_task</span><span class="p">(</span><span class="n">user_prompt</span><span class="p">)</span>
</code></pre></div></div>

<p>The orchestrator only ever sees the first call and the final return. Everything in between is blind to it. This is what makes extended generation possible: <strong>the orchestrator’s context stays constant regardless of how many iterations run.</strong></p>

<p>This also opens up interesting possibilities around data privacy. Imagine processing bank statements where you don’t want the full statement in context. A tool returns just the insight: “the largest customer is X”. That gets passed to the next tool, which finds that customer in the accounting system, but it doesn’t return their details, just the necessary step for analysis (their payment terms), and those aren’t shown to the orchestrator, they go to the underwriting tool, and so on. The orchestrator never sees the raw data, just structured results flowing between steps.</p>

<p>This isolation pattern has side effects: It’s the exact mechanism that was <a href="https://www.anthropic.com/news/disrupting-AI-espionage">used to run Claude Code as a hacker</a>. As Anthropic reported, attackers “broke down their attacks into <strong>small, seemingly innocent tasks that Claude would execute without being provided the full context</strong> of their malicious purpose.” The orchestrator’s blindness enables privacy and extended context, but it also means the model can’t reason about the broader implications of what it’s being asked to do. Something to keep in mind when designing these systems.</p>

<h2 id="the-complexity-valley">The Complexity Valley</h2>

<p>But then I hit what I started calling the “complexity valley”. As I added more tools (writer, critic, planner, outliner, evaluator…), the generated code became a mess of manual state tracking:</p>

<div class="language-python highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="k">def</span> <span class="nf">solve</span><span class="p">(</span><span class="n">prompt</span><span class="p">,</span> <span class="n">emphasis</span><span class="o">=</span><span class="s">""</span><span class="p">):</span>
    <span class="n">chapters</span> <span class="o">=</span> <span class="n">planner</span><span class="p">(</span><span class="n">prompt</span><span class="p">)</span>
    <span class="n">combined</span> <span class="o">=</span> <span class="s">""</span>
    <span class="n">outline</span> <span class="o">=</span> <span class="s">""</span>

    <span class="k">for</span> <span class="n">i</span><span class="p">,</span> <span class="n">ch</span> <span class="ow">in</span> <span class="nb">enumerate</span><span class="p">(</span><span class="n">chapters</span><span class="p">):</span>
        <span class="n">prev</span> <span class="o">=</span> <span class="n">combined</span><span class="p">[</span><span class="o">-</span><span class="mi">1000</span><span class="p">:]</span> <span class="k">if</span> <span class="n">combined</span> <span class="k">else</span> <span class="s">""</span>
        <span class="n">remaining</span> <span class="o">=</span> <span class="n">chapters</span><span class="p">[</span><span class="n">i</span><span class="o">+</span><span class="mi">1</span><span class="p">:]</span>
        <span class="n">remaining_str</span> <span class="o">=</span> <span class="s">"</span><span class="se">\n</span><span class="s">"</span><span class="p">.</span><span class="n">join</span><span class="p">([</span><span class="sa">f</span><span class="s">"- </span><span class="si">{</span><span class="n">c</span><span class="p">[</span><span class="s">'title'</span><span class="p">]</span><span class="si">}</span><span class="s">: </span><span class="si">{</span><span class="n">c</span><span class="p">[</span><span class="s">'summary'</span><span class="p">]</span><span class="si">}</span><span class="s">"</span> <span class="k">for</span> <span class="n">c</span> <span class="ow">in</span> <span class="n">remaining</span><span class="p">])</span>
        <span class="c1"># ... and on and on
</span></code></pre></div></div>

<p>Small models couldn’t generate this reliably. They’d forget to update the outline, mishandle the slicing, or botch the string formatting.</p>

<h2 id="the-template-trap">The Template Trap</h2>

<p>My first fix was to make the code generation prompt extremely explicit:</p>

<div class="language-python highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="n">PROMPT</span><span class="p">:</span> <span class="n">Explore</span> <span class="o">-</span> <span class="n">write</span> <span class="p">{</span><span class="n">explore_chapters</span> <span class="o">+</span> <span class="mi">1</span><span class="p">}</span> <span class="n">chapters</span> <span class="n">organically</span><span class="p">.</span>
<span class="n">Pattern</span><span class="p">:</span>
  <span class="n">content</span> <span class="o">=</span> <span class="n">write</span><span class="p">(</span><span class="n">prompt</span><span class="p">,</span> <span class="n">emphasis</span><span class="p">)</span>
  <span class="n">contents</span> <span class="o">=</span> <span class="p">[</span><span class="n">content</span><span class="p">]</span>
  <span class="k">for</span> <span class="n">_</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">({</span><span class="n">explore_chapters</span><span class="p">}):</span>
      <span class="n">next_prompt</span> <span class="o">=</span> <span class="n">explore</span><span class="p">(</span><span class="n">content</span><span class="p">,</span> <span class="n">prompt</span><span class="p">)</span>
      <span class="n">content</span> <span class="o">=</span> <span class="n">write</span><span class="p">(</span><span class="n">next_prompt</span><span class="p">,</span> <span class="n">emphasis</span><span class="p">)</span>
      <span class="n">contents</span><span class="p">.</span><span class="n">append</span><span class="p">(</span><span class="n">content</span><span class="p">)</span>
  <span class="k">return</span> <span class="n">combine</span><span class="p">(</span><span class="n">contents</span><span class="p">)</span><span class="s">"""
</span></code></pre></div></div>

<p>This worked, but is it cheating? If we have to show the exact code pattern, the model isn’t composing tools; it’s copying templates. Maybe?</p>

<h2 id="the-discovery-types-guide-composition">The Discovery: Types Guide Composition</h2>

<p>After multiple iterations, it started working best <strong>when tools have type-aligned signatures.</strong>  The composition becomes obvious without explicit templates.</p>

<div class="language-python highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="n">write</span><span class="p">(</span><span class="n">prompt</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span>           <span class="c1"># string in, string out
</span><span class="n">plan</span><span class="p">(</span><span class="n">prompt</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">list</span><span class="p">[</span><span class="nb">str</span><span class="p">]</span>      <span class="c1"># string in, list out
</span><span class="n">explore</span><span class="p">(</span><span class="n">content</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span> <span class="n">original_prompt</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span>
<span class="n">combine</span><span class="p">(</span><span class="n">contents</span><span class="p">:</span> <span class="nb">list</span><span class="p">[</span><span class="nb">str</span><span class="p">])</span> <span class="o">-&gt;</span> <span class="nb">str</span> <span class="c1"># list in, string out
</span><span class="n">evaluate</span><span class="p">(</span><span class="n">content</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span> <span class="n">original_prompt</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span>
</code></pre></div></div>

<p>When <code class="language-plaintext highlighter-rouge">plan()</code> returns <code class="language-plaintext highlighter-rouge">list[str]</code>, the model knows it needs to iterate. When <code class="language-plaintext highlighter-rouge">combine()</code> takes <code class="language-plaintext highlighter-rouge">list[str]</code>, the model knows to collect results. The generated code became correct without explicit patterns:</p>

<div class="language-python highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="k">def</span> <span class="nf">solve</span><span class="p">(</span><span class="n">prompt</span><span class="p">,</span> <span class="n">emphasis</span><span class="o">=</span><span class="s">""</span><span class="p">):</span>
    <span class="n">chapters</span> <span class="o">=</span> <span class="n">plan</span><span class="p">(</span><span class="n">prompt</span><span class="p">)</span>
    <span class="n">contents</span> <span class="o">=</span> <span class="p">[</span><span class="n">write</span><span class="p">(</span><span class="n">ch</span><span class="p">)</span> <span class="k">for</span> <span class="n">ch</span> <span class="ow">in</span> <span class="n">chapters</span><span class="p">]</span>
    <span class="k">return</span> <span class="n">combine</span><span class="p">(</span><span class="n">contents</span><span class="p">)</span>
</code></pre></div></div>

<p>A 1.5B parameter model could figure this out based on the types.</p>

<p>Naming mattered too. I changed <code class="language-plaintext highlighter-rouge">explore(content, prompt)</code> to <code class="language-plaintext highlighter-rouge">explore(content: str, original_prompt: str)</code>. The name “original_prompt” signals “grounding context”. Models stopped inventing new prompts and started passing the original variable.</p>

<p>Early versions used rich dataclasses, but small models struggled with attribute access. The fix was just using strings. This allowed a 7B model to use it correctly 90-95% of the time, and a 1.5B model almost as well.</p>

<h2 id="when-it-goes-wrong">When It Goes Wrong</h2>

<p>The most common issue: the model would overwrite content rather than appending.</p>

<div class="language-python highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="c1"># What the model should generate:
</span><span class="n">contents</span> <span class="o">=</span> <span class="p">[]</span>
<span class="k">for</span> <span class="n">ch</span> <span class="ow">in</span> <span class="n">chapters</span><span class="p">:</span>
    <span class="n">content</span> <span class="o">=</span> <span class="n">write</span><span class="p">(</span><span class="n">ch</span><span class="p">)</span>
    <span class="n">contents</span><span class="p">.</span><span class="n">append</span><span class="p">(</span><span class="n">content</span><span class="p">)</span>

<span class="c1"># What it actually generated:
</span><span class="k">for</span> <span class="n">ch</span> <span class="ow">in</span> <span class="n">chapters</span><span class="p">:</span>
    <span class="n">contents</span> <span class="o">=</span> <span class="n">write</span><span class="p">(</span><span class="n">ch</span><span class="p">)</span>  <span class="c1"># Overwrites each time!
</span></code></pre></div></div>

<p>This happened less once the types were clear (<code class="language-plaintext highlighter-rouge">list[str]</code> signals “collect these”), but it never went away completely. Small models make small mistakes, and without a verification loop, garbage propagates.</p>

<p>[PLACEHOLDER: Include before/after example of generated text quality, the challenge is these are long passages]</p>

<h2 id="results">Results</h2>

<p>By the end, an 8B writing model paired with a 7B instructor model could work pretty seamlessly. Sometimes down to 1.5B for simple tasks.</p>

<p>I’d say it went from a 2/10 initially to maybe a 3-5/10 by the end. It would write a chapter, review it, write the next with tolerable handover, and string together coherent sequences. Not great literature, but the mechanics worked: <strong>small models running well beyond their context limits because the orchestrator carried zero burden.</strong></p>

<p>I experimented with two modes: “explore” (write freeform, let each chapter lead to the next) and “plan” (outline upfront, fill in the gaps). Explore worked better. The modal split feels like a hack, but maybe that’s fine. Different mental models want different tool behaviour.</p>

<h2 id="what-i-learned">What I Learned</h2>

<p>The thing that surprised me most was how much time went into tool design. Figuring out the most ergonomic way for tools to be usable by an agent, making them implicit and obvious and composed and intuitive. That was the work.</p>

<p>The best tools I created:</p>
<ul>
  <li>Use strings, not custom objects</li>
  <li>Signal iteration with types (<code class="language-plaintext highlighter-rouge">list[str]</code> means “iterate over this”)</li>
  <li>Keep content out of orchestrator context</li>
  <li>Name parameters semantically (<code class="language-plaintext highlighter-rouge">original_prompt</code> not <code class="language-plaintext highlighter-rouge">prompt</code>)</li>
  <li>Validate ruthlessly, because small models make small mistakes</li>
</ul>

<p><strong>The insight: tool design for LLMs is about ergonomics.</strong> If the types make composition self-evident, if the tool is easy to use right and hard to use wrong, small models can orchestrate complex workflows.</p>

<h2 id="next-steps">Next Steps</h2>

<p><strong>Better continuity management.</strong> I’m figuring out how to manage continuity more explicitly, which led to tools that work differently in explore vs plan mode. This feels like a hack, but maybe matching tool behaviour to user mental model is actually correct.</p>

<p><strong>Better verification.</strong> Right now, if the generated code is wrong, the output is garbage. I need lightweight checks before execution.</p>

<p><strong>Testing the Bitter Lesson.</strong> As models improve, does the scaffolding help or hurt? Worth checking whether this structure earns its keep on larger models or just adds overhead.</p>

<hr />

<p>One caveat to close on: this whole approach might age badly. As <a href="https://www.anthropic.com/engineering/code-execution-with-mcp">Peak noted</a>, agent harnesses can limit performance as models advance. The structure improves performance, but this structure can limit performance as compute grows.</p>

<p>For small local models, making the orchestrator blind to intermediate results while letting types guide composition seems to work.</p>

<hr />

<h1 id="appendix">Appendix</h1>

<h2 id="the-final-architecture">The Final Architecture</h2>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>┌─────────────────────────────────────────────────────────────┐
│  manifest.json (Public API)                                 │
│  - 5 tools with type signatures                             │
│  - Descriptions guide model selection                       │
└─────────────────────────────────────────────────────────────┘
                         │
                         ▼
┌─────────────────────────────────────────────────────────────┐
│  orchestrator.py (Code Generation)                          │
│  - Reads manifest                                           │
│  - Generates Python solve() function                        │
│  - Validates: forbidden patterns, param names, mock exec    │
└─────────────────────────────────────────────────────────────┘
                         │
                         ▼
┌─────────────────────────────────────────────────────────────┐
│  tools.py (Implementation)                                  │
│  - High-level: write, plan, explore, combine, evaluate      │
│  - Low-level: writer, critic, planner (internal only)       │
│  - TOOL_NAMESPACE exports only public tools                 │
└─────────────────────────────────────────────────────────────┘
                         │
                         ▼
┌─────────────────────────────────────────────────────────────┐
│  Generated Code Execution                                   │
│  - Content flows between tools                              │
│  - Orchestrator never sees intermediate results             │
│  - Constant context regardless of iterations                │
└─────────────────────────────────────────────────────────────┘
</code></pre></div></div>

<p>The manifest:</p>

<div class="language-json highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="p">{</span><span class="w">
  </span><span class="nl">"tools"</span><span class="p">:</span><span class="w"> </span><span class="p">[</span><span class="w">
    </span><span class="p">{</span><span class="w">
      </span><span class="nl">"name"</span><span class="p">:</span><span class="w"> </span><span class="s2">"write"</span><span class="p">,</span><span class="w">
      </span><span class="nl">"signature"</span><span class="p">:</span><span class="w"> </span><span class="s2">"write(prompt: str, emphasis: str = '') -&gt; str"</span><span class="p">,</span><span class="w">
      </span><span class="nl">"description"</span><span class="p">:</span><span class="w"> </span><span class="s2">"Write content with automatic revision."</span><span class="w">
    </span><span class="p">},</span><span class="w">
    </span><span class="p">{</span><span class="w">
      </span><span class="nl">"name"</span><span class="p">:</span><span class="w"> </span><span class="s2">"plan"</span><span class="p">,</span><span class="w">
      </span><span class="nl">"signature"</span><span class="p">:</span><span class="w"> </span><span class="s2">"plan(prompt: str) -&gt; list[str]"</span><span class="p">,</span><span class="w">
      </span><span class="nl">"description"</span><span class="p">:</span><span class="w"> </span><span class="s2">"Break a prompt into chapter summaries."</span><span class="w">
    </span><span class="p">},</span><span class="w">
    </span><span class="p">{</span><span class="w">
      </span><span class="nl">"name"</span><span class="p">:</span><span class="w"> </span><span class="s2">"explore"</span><span class="p">,</span><span class="w">
      </span><span class="nl">"signature"</span><span class="p">:</span><span class="w"> </span><span class="s2">"explore(content: str, original_prompt: str) -&gt; str"</span><span class="p">,</span><span class="w">
      </span><span class="nl">"description"</span><span class="p">:</span><span class="w"> </span><span class="s2">"Generate next chapter prompt from current content."</span><span class="w">
    </span><span class="p">},</span><span class="w">
    </span><span class="p">{</span><span class="w">
      </span><span class="nl">"name"</span><span class="p">:</span><span class="w"> </span><span class="s2">"combine"</span><span class="p">,</span><span class="w">
      </span><span class="nl">"signature"</span><span class="p">:</span><span class="w"> </span><span class="s2">"combine(contents: list[str]) -&gt; str"</span><span class="p">,</span><span class="w">
      </span><span class="nl">"description"</span><span class="p">:</span><span class="w"> </span><span class="s2">"Join chapters into final output."</span><span class="w">
    </span><span class="p">},</span><span class="w">
    </span><span class="p">{</span><span class="w">
      </span><span class="nl">"name"</span><span class="p">:</span><span class="w"> </span><span class="s2">"evaluate"</span><span class="p">,</span><span class="w">
      </span><span class="nl">"signature"</span><span class="p">:</span><span class="w"> </span><span class="s2">"evaluate(content: str, original_prompt: str) -&gt; str"</span><span class="p">,</span><span class="w">
      </span><span class="nl">"description"</span><span class="p">:</span><span class="w"> </span><span class="s2">"Evaluate content against requirements."</span><span class="w">
    </span><span class="p">}</span><span class="w">
  </span><span class="p">]</span><span class="w">
</span><span class="p">}</span><span class="w">
</span></code></pre></div></div>]]></content><author><name>Matt Arderne</name></author><category term="writing" /><category term="rdrn" /><category term="Tech" /><category term="Top Post" /><summary type="html"><![CDATA[Over the Christmas break, I decided to explore code execution for AI agents, inspired by Anthropic's blog on the topic.]]></summary></entry><entry><title type="html">The Way of Ways</title><link href="https://rdrn.dev/ways/" rel="alternate" type="text/html" title="The Way of Ways" /><published>2023-08-18T09:17:00+00:00</published><updated>2023-08-18T09:17:00+00:00</updated><id>https://rdrn.dev/ways</id><content type="html" xml:base="https://rdrn.dev/ways/"><![CDATA[<p><em>The beauty of ideas is that they cannot die. That said, many consider the Modern Data Stack <a href="https://twitter.com/matsonj/status/1691245983911567360">to have developed a bit of a rot</a><a class="footnote-anchor" data-component-name="FootnoteAnchorToDOM" id="footnote-anchor-1" href="#footnote-1" target="_self">1</a> I thought to pull out the eulogy I've had in the back of my mind for a while. It is a Tour de Links that follows the journey of <strong>the Modern Data Stack</strong>.</em> </p>
<p><em>The analysis tracks three frameworks for mapping the cyclical nature of cultural phenomenon (<a href="https://astralcodexten.substack.com/p/a-cyclic-theory-of-subcultures">one</a> <a href="https://twitter.com/johncutlefish/status/1616539104669470720">two</a> <a href="https://meaningness.com/geeks-mops-sociopaths">three</a>). These don’t map perfectly, and number three doesn’t fit the enterprise context. The idea: Something new catches on, it grows big, it loses its way, there is a fight / collapse / phase-change and then it stabilises. The subheadings are from <a href="https://twitter.com/johncutlefish/status/1616539104669470720">John Cutler</a>:</em></p>
<blockquote><p>Anything helpful will eventually become commodified, industrialized, and watered down to the point of being unrecognizable. It happened with Agile, and is happening with strands of product management, DevOps, design, etc.</p></blockquote>
<h1>Phase 1: Precycle</h1>
<div class="pullquote"><p>People start a movement around a weird thing, with no hope of payoff, <br /><strong><a href="https://astralcodexten.substack.com/p/a-cyclic-theory-of-subcultures">for sheer love of the thing.</a></strong><a href="https://astralcodexten.substack.com/p/a-cyclic-theory-of-subcultures"> </a></p></div>
<div class="captioned-image-container"><figure><a class="image-link is-viewable-img image2" target="_blank" href="https://substackcdn.com/image/fetch/f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffbd3edbd-f1f2-4776-ab37-09b6c5c1b52b_704x400.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffbd3edbd-f1f2-4776-ab37-09b6c5c1b52b_704x400.png 424w, https://substackcdn.com/image/fetch/w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffbd3edbd-f1f2-4776-ab37-09b6c5c1b52b_704x400.png 848w, https://substackcdn.com/image/fetch/w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffbd3edbd-f1f2-4776-ab37-09b6c5c1b52b_704x400.png 1272w, https://substackcdn.com/image/fetch/w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffbd3edbd-f1f2-4776-ab37-09b6c5c1b52b_704x400.png 1456w" sizes="100vw" /><img src="https://substack-post-media.s3.amazonaws.com/public/images/fbd3edbd-f1f2-4776-ab37-09b6c5c1b52b_704x400.png" width="704" height="400" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/fbd3edbd-f1f2-4776-ab37-09b6c5c1b52b_704x400.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:400,&quot;width&quot;:704,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:491375,&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}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffbd3edbd-f1f2-4776-ab37-09b6c5c1b52b_704x400.png 424w, https://substackcdn.com/image/fetch/w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffbd3edbd-f1f2-4776-ab37-09b6c5c1b52b_704x400.png 848w, https://substackcdn.com/image/fetch/w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffbd3edbd-f1f2-4776-ab37-09b6c5c1b52b_704x400.png 1272w, https://substackcdn.com/image/fetch/w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffbd3edbd-f1f2-4776-ab37-09b6c5c1b52b_704x400.png 1456w" sizes="100vw" fetchpriority="high" /></picture><div class="image-link-expand"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="#FFFFFF" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 "><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></div></div></a><figcaption class="image-caption">the early days camping out in the woods comparing SQL style guides</figcaption></figure></div>
<h4>MDS EMERGES FROM PRACTICE</h4>
<p>People like solving problems that resonate with other people, open source vibes, this was the early MDS scene. </p>
<p>Before MDS, there were enterprise data vendors and mostly they weren’t very useful for fast moving companies, in the sense that you could only afford them if you budgeted in the $xx millions and you planned in half decades. Redshift precipitated a change and Snowflake accelerated it. Pay-per-query.</p>
<p>Redshift and Snowflake laid the soil that led to the Modern Data Stack. They created the easiest to buy large scale data storage that anyone had ever seen. The problem now became keeping track of the transformations necessary to deal with the <strong><a href="https://twitter.com/mattarderne/status/1684462316278910976">vast data recycling centres</a></strong> that were suddenly viable to be created by smaller and smaller teams.</p>
<p><a href="https://github.com/dbt-labs/dbt-core/tree/549282110f393a22c6331ba828a4895bdee9c26e">dbt</a>, a relatively generic idea (<a href="https://news.ycombinator.com/item?id=12862474">SQL templating</a> in python) became the foundation for a new movement to deal with the issue, <a href="https://medium.com/fishtown-analytics/the-missing-layers-of-the-analytics-stack-af420e6214bd">right place, people, audience, right time</a>. </p>
<p>I was instantly hooked. dbt took the lead among <a href="https://medium.com/@jthandy/the-modern-data-platform-is-too-big-to-fit-on-one-slide-377b9d28d01e">an array of relatively fragmented solutions</a> all jockeying around the task at hand.</p>
<h4>MDS NAME COINED / FIRST BLOGS</h4>
<p>A brief google and it seems like dbt first used the term "Modern Data Stack” on <a href="https://www.getdbt.com/blog/how-do-you-decide-what-to-model-in-dbt-vs-lookml/#:~:text=The%20modern%20data%20stack%20is%20modular">January 29, 2018</a>, (I couldn’t be bothered to dig any deeper, history in the form of a sea-shanty with a broken banjo).</p>
<p>The concept caught on. I was working as a Data Engineer doing Redshift transformations, dbt achieved this in a far better way. Before that, doing this stuff was super expensive, testing and version control was tricky, everything was slow.</p>
<p>Blogs came out describing the way. Here I generously <a href="https://groupby1.substack.com/p/dataform-and-dbt#:~:text=They%20generously%20shared,startup%20data%20analytics">quote myself</a> describing the series of blog posts that introduced the new way</p>
<blockquote><p>We, the desperate, listened closely. The message I heard: <em>bring the best of software development to startup data analytics</em></p></blockquote>
<p>I was likely referring to this <a href="https://medium.com/fishtown-analytics/the-missing-layers-of-the-analytics-stack-af420e6214bd">blog post</a>. It all sounds rather exciting in retrospect, and it was!</p>
<h4>MDS MINDSET / MANIFESTO / PRINCIPLES / EVANGELISTS</h4>
<p>The whole thing coalesced (yup) around the <strong>Community</strong>. dbt slack and Locally Optimistic slack were the <a href="https://perell.com/fellowship/conjuring-scenius/#:~:text=When%20those%20inside%20the%20cutting%2Dedge%20scenes%20band%20together%20to%20support%2C%20teach%2C%20and%20create%20with%20each%20other%2C%20their%20niche%20and%20experimental%20projects%20can%20become%20the%20new%20normal%20on%20top%20of%20which%20the%20next%20generation%20builds">absolute centre</a>(s) of the data world for a fair amount of time.</p>
<blockquote><p>When those inside the cutting-edge scenes band together to support, teach, and create with each other, their niche and experimental projects can become the new normal on top of which the next generation builds.</p></blockquote>
<p>The <a href="https://docs.getdbt.com/community/resources/community-rules-of-the-road">vendor guidelines</a> kept things civil in the dbt chat, and Locally Optimistic was generally smaller and less frantic. Dbt was often the target of staffing firms who would point their junior devs at the dbt slack and say <em>“here is your technical support”</em> and they would paste 200 line error logs into the main chat and say <strong>“what do??” </strong>and then disappear. </p>
<p>I think a real kicker was the <strong>Open Source</strong> hook. Everyone wants to work with open source software. Now <a href="https://medium.com/fishtown-analytics/its-time-for-open-source-analytics-194902ae5c5">data people could do that</a>!  </p>
<p>There were reams of <strong>Guides</strong>, <a href="https://groupby1.substack.com/p/data-as-a-utility-tool">here is mine</a>. (filler content for <a href="https://dataform.co/blog/data-tools">Dataform</a>, now acquired by Google). The writing wasn’t very good in hindsight, but I stand by my suggestions, <em>move fast with</em> <em>simple tools</em>. Here is another <a href="https://locallyoptimistic.com/post/one-size-fits-none/">good guide</a>. These ideas were evaluated on some or other believability and the good ideas were amplified.</p>
<p>Alongside this, <strong>Validation</strong> that the <a href="https://www.getdbt.com/blog/analytics-is-a-trade/">data trade was noble</a> fanned the flames.</p>
<p>dbt ran their <a href="https://www.getdbt.com/blog/coalesce-2020/">first conference in 2020</a>. <a href="https://www.getdbt.com/coalesce-2021/keynote-how-big-is-this-wave/">2021 they ran their second</a>, this time it got big.</p>
<h1>Phase 2: Growth</h1>
<div class="pullquote"><p>Because it’s so new, there is a vast frontier, waiting to be explored. Anyone willing to work hard can go to some virgin tract of ideaspace and start mining it for status. <a href="https://astralcodexten.substack.com/p/a-cyclic-theory-of-subcultures">The returns on talent are high.</a></p></div>
<h4>MDS BIG WINS</h4>
<p>Snowflake IPO <a href="https://edition.cnn.com/2020/09/16/investing/snowflake-ipo/index.html">late 2020</a> set things in motion, the biggest software IPO ever was just the beginning of the end for MDS. dbt raised a <a href="https://www.crunchbase.com/organization/dbt-labs/company_financials">ton of money</a>, so did Fivetran and most of the others.</p>
<h4>EXPLOSION OF MDS PATTERNS / BEST PRACTICES</h4>
<p><a href="https://locallyoptimistic.com/post/category/tools/">Locally Optimistic</a> was always and remains an ardent supporter of delivering relatively hype-free and insightful best practices. Their community remains well moderated and insightful, with very friendly and well moderated non-vendor participants. Remains a top place to visit. </p>
<p><a href="https://clrcrl.com/2021/03/03/how-to-build-a-community-why">Community best practices</a> and advice about <a href="https://clrcrl.com/2022/05/06/mds-company-slack">starting a company community slack</a> started to pop up. If you were VC backed, you need 1000+ people in your slack otherwise how would you get any product feedback. This worked well in my opinion, despite the snark. If I am legitimately interested in your product I’d love to speak to the engineer building it. Companies started adding the slack activity into their go-to-market strategy, ELT’ing my activity into their CDP for better PLG or whatever. </p>
<h4>SMALL MDS CONSULTANCIES</h4>
<p>An acquaintance (or quite a few actually) went full throttle on consulting and quickly employed 100s of people and made a ton of revenue with massive companies.<a class="footnote-anchor" data-component-name="FootnoteAnchorToDOM" id="footnote-anchor-2" href="#footnote-2" target="_self">2</a></p>
<p>dbt has a huge <a href="https://partners.getdbt.com/english/directory/search?f0=Partner+Type&amp;f0v0=Consulting+Partner&amp;f1=Partner+Tier&amp;f1v0=Premier+Partner">list of vendors</a>. This was the most reliable way to make good money in the Modern Data Stack ecosystem, but the allure of building products pulled lots of people into building data tools instead.</p>
<h4>YOU ARE NOT DOING MDS / CERTIFICATIONS TITLES</h4>
<p>The need to teach analysts how to be <em><strong>Analytics Engineers </strong></em>was pretty clear, they needed git, python, jinja, Data models, star schemas, denormalization, Kimball.</p>
<p>A few courses came out doing this stuff, first was the <a href="https://analyticsengineers.club/course-overview/">Analytics Engineers Club</a>. I think the <strong>data modelling skills </strong>described are super useful, and generally fell into something that Data Engineers didn’t do and Analysts didn’t do, and so they were just ignored. </p>
<p>This wasn’t explicitly gatekeeping, more just demand being met by an increase in supply. I was firmly of the opinion that hiring ops people was beneficial in this space as they could easily grasp the tech and generally had a better sense for the problems that were worth addressing. </p>
<h4>MDS VENDORS FUND CONFERENCES</h4>
<p>There were a few <a href="https://www.moderndatastack.xyz/summit">smaller conferences</a> other than Coalesce (the conference), and Snowflake summits, <a href="https://www.datacouncil.ai/">Data Council</a> seemed to be the most consistently worthwhile.</p>
<p>In 2021 the dbt <a href="https://benn.substack.com/p/delirium#:~:text=This%20cultural%20energy%20reaches%20its%20crescendo%20during%20Coalesce%2C%20dbt%20Labs%E2%80%99%20annual%20conference">Coalesce conference</a> peaked:</p>
<blockquote><p>This cultural energy reaches its crescendo during <a href="https://coalesce.getdbt.com/">Coalesce</a>, dbt Labs’ annual conference. The conference ostensibly takes place over a number of live-streamed talks, but its beating heart is on Slack. Every talk inspires a tidal wave of excitement, encouragement, and general good cheer. Every channel is the parents’ section at track meet: Ready to erupt when their kid crosses the finish line, and equally ready to hop the fence and pick them up if they fall.&nbsp;</p></blockquote>
<h4>MDS ECOSYSTEM INFOGRAPHICS</h4>
<p>The vast ecosystem now needed a map, <a href="https://www.moderndatastack.xyz/community">ModernDataStack.XYZ</a> maps out the components, and I think does an adequate job of categorising them.</p>
<p>Here is <a href="https://www.indicative.com/resource/modern-data-infrastructure/">another map</a>, with their criteria giving you an idea of the qualifying criteria. <a class="footnote-anchor" data-component-name="FootnoteAnchorToDOM" id="footnote-anchor-3" href="#footnote-3" target="_self">3</a></p>
<h4>MDS VENDOR COMPETITION HEATS UP!</h4>
<p>Once the ball started rolling, there was a lot of money being poured into the space. New BI tools, new ELT, data quality, data reliability, observability, metrics, semantics, all started being picked over.  </p>
<p>I wrote a blog comparing dbt and Dataform. Dataform was acquired as mentioned, and dbt took centre stage, centre diagram. </p>
<div class="digest-post-embed" data-attrs="{&quot;nodeId&quot;:&quot;1742052e-9a70-40e9-b8ed-49cd9c32e113&quot;,&quot;caption&quot;:&quot;Welcome to my third post, one I have wanted to write from the beginning. Getting these posts done isn’t easy, and the time between publishing is a commitment that I undertook rather lightly. Like most good ideas, this one is late, irrelevant, and likely only to be marginally useful. That said, here is a quick rundown on two of the “indicative-of-the-fut…&quot;,&quot;size&quot;:&quot;sm&quot;,&quot;isEditorNode&quot;:true,&quot;title&quot;:&quot;Dataform and dbt&quot;,&quot;publishedBylines&quot;:[{&quot;id&quot;:10635483,&quot;name&quot;:&quot;Matt Arderne&quot;,&quot;bio&quot;:&quot;I write about data systems that improve business productivity.\n\nBuilding something new with friends\n\nTweet at https://twitter.com/mattarderne&quot;,&quot;photo_url&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/ff2ad675-4846-49d6-a397-599b7dd13538_1291x1104.jpeg&quot;,&quot;is_guest&quot;:false,&quot;bestseller_tier&quot;:null}],&quot;post_date&quot;:&quot;2021-06-21T14:10:04.539Z&quot;,&quot;cover_image&quot;:&quot;https://substackcdn.com/image/fetch/f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fe3d7da52-a627-40e5-87af-f383a32ae202_4445x6667.jpeg&quot;,&quot;cover_image_alt&quot;:null,&quot;canonical_url&quot;:&quot;https://groupby1.substack.com/p/dataform-and-dbt&quot;,&quot;section_name&quot;:null,&quot;id&quot;:37844886,&quot;type&quot;:&quot;newsletter&quot;,&quot;reaction_count&quot;:3,&quot;comment_count&quot;:4,&quot;publication_name&quot;:&quot;group by 1&quot;,&quot;publication_logo_url&quot;:&quot;https://substackcdn.com/image/fetch/f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F1d7fbee6-d181-479e-bd71-c4704b2b4c80_1216x1216.png&quot;,&quot;belowTheFold&quot;:true}"></div>
<p>Two big themes were <a href="https://mattturck.com/mad2023-part-iii/#:~:text=trend%20is%20noteworthy.-,Reverse%20ETL%20vs%20CDP,-Another%20somewhat%2Din">Reverse ETL and CDP</a>:</p>
<blockquote><p>Another somewhat-in-the-weeds, but fun to watch part of the landscape has been the tension between Reverse ETL (again, the process of taking data out of the warehouse and putting it back into SaaS and other applications) and Customer Data Platforms (products that aggregate customer data from multiple sources, run analytics on them like segmentation, and enable actions like marketing campaigns).&nbsp;</p></blockquote>
<p><strong>Reverse ETL</strong> was always a  tricky thing. I like the idea of reverse ETL, but ultimately it would often build on very weak foundations:<a class="footnote-anchor" data-component-name="FootnoteAnchorToDOM" id="footnote-anchor-4" href="#footnote-4" target="_self">4</a> </p>
<div class="captioned-image-container"><figure><a class="image-link is-viewable-img image2" target="_blank" href="https://substackcdn.com/image/fetch/f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7f2b8e2b-38ec-4088-bd50-a5eb3679f7ee_979x798.webp" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7f2b8e2b-38ec-4088-bd50-a5eb3679f7ee_979x798.webp 424w, https://substackcdn.com/image/fetch/w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7f2b8e2b-38ec-4088-bd50-a5eb3679f7ee_979x798.webp 848w, https://substackcdn.com/image/fetch/w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7f2b8e2b-38ec-4088-bd50-a5eb3679f7ee_979x798.webp 1272w, https://substackcdn.com/image/fetch/w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7f2b8e2b-38ec-4088-bd50-a5eb3679f7ee_979x798.webp 1456w" sizes="100vw" /><img src="https://substack-post-media.s3.amazonaws.com/public/images/7f2b8e2b-38ec-4088-bd50-a5eb3679f7ee_979x798.webp" width="528" height="430.3820224719101" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/7f2b8e2b-38ec-4088-bd50-a5eb3679f7ee_979x798.webp&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:798,&quot;width&quot;:979,&quot;resizeWidth&quot;:528,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Image&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}" class="sizing-normal" alt="Image" title="Image" srcset="https://substackcdn.com/image/fetch/w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7f2b8e2b-38ec-4088-bd50-a5eb3679f7ee_979x798.webp 424w, https://substackcdn.com/image/fetch/w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7f2b8e2b-38ec-4088-bd50-a5eb3679f7ee_979x798.webp 848w, https://substackcdn.com/image/fetch/w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7f2b8e2b-38ec-4088-bd50-a5eb3679f7ee_979x798.webp 1272w, https://substackcdn.com/image/fetch/w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7f2b8e2b-38ec-4088-bd50-a5eb3679f7ee_979x798.webp 1456w" sizes="100vw" loading="lazy" /></picture><div class="image-link-expand"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="#FFFFFF" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 "><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></div></div></a><figcaption class="image-caption">The data analytics marathon. <a href="https://twitter.com/mattarderne/status/1604528546784870402">My tweet on why Reverse ETL never took off</a> - Reverse ETL is the 5% at the end. That tweet did take off relatively speaking. <a href="https://www.forbes.com/sites/brentdykes/2022/01/12/data-analytics-marathon-why-your-organization-must-focus-on-the-finish/"> Source here</a></figcaption></figure></div>
<p><strong>The CDP space</strong> also sort of heated up, and had significant overlap with MDS. The MDS gave you the tools to construct your own solution, and design the specifics to suit your needs, whereas the CDP kinda gave you much deeper capabilities, but less control (for the customer analytics niche). </p>
<div class="captioned-image-container"><figure><a class="image-link is-viewable-img image2" target="_blank" href="https://substackcdn.com/image/fetch/f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb9acc96d-0060-402b-83dd-7a8816029ced_670x478.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb9acc96d-0060-402b-83dd-7a8816029ced_670x478.png 424w, https://substackcdn.com/image/fetch/w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb9acc96d-0060-402b-83dd-7a8816029ced_670x478.png 848w, https://substackcdn.com/image/fetch/w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb9acc96d-0060-402b-83dd-7a8816029ced_670x478.png 1272w, https://substackcdn.com/image/fetch/w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb9acc96d-0060-402b-83dd-7a8816029ced_670x478.png 1456w" sizes="100vw" /><img src="https://substack-post-media.s3.amazonaws.com/public/images/b9acc96d-0060-402b-83dd-7a8816029ced_670x478.png" width="670" height="478" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/b9acc96d-0060-402b-83dd-7a8816029ced_670x478.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:478,&quot;width&quot;:670,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:54958,&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}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb9acc96d-0060-402b-83dd-7a8816029ced_670x478.png 424w, https://substackcdn.com/image/fetch/w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb9acc96d-0060-402b-83dd-7a8816029ced_670x478.png 848w, https://substackcdn.com/image/fetch/w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb9acc96d-0060-402b-83dd-7a8816029ced_670x478.png 1272w, https://substackcdn.com/image/fetch/w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb9acc96d-0060-402b-83dd-7a8816029ced_670x478.png 1456w" sizes="100vw" loading="lazy" /></picture><div class="image-link-expand"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="#FFFFFF" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 "><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></div></div></a><figcaption class="image-caption">I don’t think either really get that high on the hierarchy triangle that often in practice. </figcaption></figure></div>
<h4>FIRST ENTERPRISE VENDOR MDS OFFERINGS</h4>
<p>Enterprise oriented MDS style tools and even direct clones started cropping up. The awkwardly named <a href="https://coalesce.io/">Coalesce</a> was the first early dbt alternative since Dataform (Coalesce is also the name of dbt’s conference). I don’t know much about it.</p>
<h4>MDS GARTNER MAGIC QUADRANT</h4>
<p>There isn’t a fully fledged Gartner Quadrant. The whole point of MDS was all the unbundled solutions. There was a <a href="https://www.gartner.com/peer-community/poll/modern-data-stack-component-looking">post on their forum</a>. I predict we will see a “new wave” once all the tools are more consolidated and Gartner figures out how to position all of this. </p>
<p>I guess there are likely enterprise equivalently branded MDS style solutions that have happened. The only funny one I could find within 5 seconds of Googling was <a href="https://www.ibm.com/products/z-and-cloud-modernization-stack">IBM Gen z/X</a>.   </p>
<h4>OFFERINGS TO SOLVE MDS PROBLEMS</h4>
<p>I <strong>almost</strong> wrote a blog decrying the state of things when I was spammed by an ex digitisation evangelist crypto expert, now selling <em><strong>data-something-dot-AI</strong></em>. Selling magic and then supplying junior analysts with git and SQL just stank of an enterprise sales cycle. This was indicative of the beginning of the end.</p>
<h4>DON'T DO MDS / ENTERPRISE MDS</h4>
<p><strong>Data mesh</strong> was the funniest part of the entire data hype cycle. Effectively a fully fledged framework to decentralise data ownership, it read like a<strong> Business School Blockchain Certification</strong> (apparently, I didn’t read it). The response from the MDS pure snark. <a href="https://databased.pedramnavid.com/p/the-last-thing-ill-ever-say-about">Pedram had the last word here</a>. I guess maybe you had to be there.</p>
<p>There was heated posturing on Linkedin about the failure of MDS to properly address the <strong>problem of data modelling</strong>. Data Vault, Anchor modelling. How about a full circle all the way back to <a href="https://twitter.com/EcZachly/status/1683583788998328320">one big table?</a></p>
<p>This was also an Enterprise / Startup culture clash, but probably mostly a mutual lack of context and incompatible cadence. A 100 person SF startup growing beyond terminal velocity vs a declining mid-tier bank in the Bavarian hinterland aren’t going to meet each other with much common language. I wrote something about that here:</p>
<div class="digest-post-embed" data-attrs="{&quot;nodeId&quot;:&quot;5d00e010-beac-4afd-8dd5-bf0275d3889f&quot;,&quot;caption&quot;:&quot;Enterprise data systems can often be quite distinct from their smaller startup cousins. This post takes a look at how our conversations around data systems and techniques need to be more sensitive to context, specifically when conversationalists have varying backgrounds.&quot;,&quot;size&quot;:&quot;sm&quot;,&quot;isEditorNode&quot;:true,&quot;title&quot;:&quot;Context, and the Lack Thereof&quot;,&quot;publishedBylines&quot;:[{&quot;id&quot;:10635483,&quot;name&quot;:&quot;Matt Arderne&quot;,&quot;bio&quot;:&quot;I write about data systems that improve business productivity.\n\nBuilding something new with friends\n\nTweet at https://twitter.com/mattarderne&quot;,&quot;photo_url&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/ff2ad675-4846-49d6-a397-599b7dd13538_1291x1104.jpeg&quot;,&quot;is_guest&quot;:false,&quot;bestseller_tier&quot;:null}],&quot;post_date&quot;:&quot;2023-01-18T11:57:42.399Z&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%2F255bcb25-cf47-45d7-bed6-6e604e99de9a_1989x970.png&quot;,&quot;cover_image_alt&quot;:null,&quot;canonical_url&quot;:&quot;https://groupby1.substack.com/p/context&quot;,&quot;section_name&quot;:null,&quot;id&quot;:97285650,&quot;type&quot;:&quot;newsletter&quot;,&quot;reaction_count&quot;:5,&quot;comment_count&quot;:0,&quot;publication_name&quot;:&quot;group by 1&quot;,&quot;publication_logo_url&quot;:&quot;https://substackcdn.com/image/fetch/f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F1d7fbee6-d181-479e-bd71-c4704b2b4c80_1216x1216.png&quot;,&quot;belowTheFold&quot;:true}"></div>
<h1>Phase 3: Involution / Stagflation</h1>
<div class="pullquote"><p>The movement has picked the low-hanging fruit of their object-level goals. Artistic movements have created enough works that it’s hard not to seem derivative. Intellectual movements have explored most of the implications of their ideas. Political movements have absorbed their natural base and are facing organized opposition. It’s still possible to do object-level work, but <strong><a href="https://astralcodexten.substack.com/p/a-cyclic-theory-of-subcultures">unless you’re a hard-working genius, someone will have beaten you to most good ideas</a></strong></p></div>
<div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F663642d0-f76f-4983-a053-b93aee17609f_347x191.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F663642d0-f76f-4983-a053-b93aee17609f_347x191.png 424w, https://substackcdn.com/image/fetch/w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F663642d0-f76f-4983-a053-b93aee17609f_347x191.png 848w, https://substackcdn.com/image/fetch/w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F663642d0-f76f-4983-a053-b93aee17609f_347x191.png 1272w, https://substackcdn.com/image/fetch/w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F663642d0-f76f-4983-a053-b93aee17609f_347x191.png 1456w" sizes="100vw" /><img src="https://substack-post-media.s3.amazonaws.com/public/images/663642d0-f76f-4983-a053-b93aee17609f_347x191.png" width="347" height="191" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/663642d0-f76f-4983-a053-b93aee17609f_347x191.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:191,&quot;width&quot;:347,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:47643,&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;:null}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F663642d0-f76f-4983-a053-b93aee17609f_347x191.png 424w, https://substackcdn.com/image/fetch/w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F663642d0-f76f-4983-a053-b93aee17609f_347x191.png 848w, https://substackcdn.com/image/fetch/w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F663642d0-f76f-4983-a053-b93aee17609f_347x191.png 1272w, https://substackcdn.com/image/fetch/w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F663642d0-f76f-4983-a053-b93aee17609f_347x191.png 1456w" sizes="100vw" loading="lazy" /></picture><div></div></div></a></figure></div>
<p>The cracks started to show in a few ways: cost, complexity, BI tools, sprawl. </p>
<p><strong>Cost:</strong> </p>
<p>Snowflake et-al being super expensive was the first ominous crack. When interrogated, massive cloud bills often weren’t attributable to any value. It was presumed when these at kick off that they would be <strong>both expensive and lead to value.</strong> The expensive part was duly stomached but then the value part was late to the party.</p>
<p>ELT, synonymous with MDS, came under cost pressure. People realised that the work was pretty predictable and so cheaper, better, faster options became abundant. </p>
<p>And then AWS, Salesforce and Snowflake all began to murmur about ‘<strong>zero-ETL</strong>’ which basically meant they will co-access or whatever the data that is in Salesforce from Snowflake. Basically ruining the <a href="https://benn.substack.com/p/how-fivetran-fails">Fivetran business model</a>. </p>
<blockquote><p>“<em>What if we could eliminate ETL entirely? That would be a world we would all love. This is our vision, what we’re calling a zero ETL future. </em></p></blockquote>
<p><strong>dbt: </strong></p>
<p>Dbt was really just a victim of success, when you push into the unknown you will find out, and dbt found out. Before dbt, teams kept their reliance on a data warehouse simple and un-collaborative. One engineer would generally be responsible, they would have de facto veto on data modelling changes. dbt <a href="https://roundup.getdbt.com/p/complexity-the-new-analytics-frontier">democratised that</a>:</p>
<blockquote><p>Did we achieve more collaboration on an analytics code base? ✅</p><p>Did we achieve more leverage through reusable and modular code? ✅</p><p>Did we also buy more complexity, resulting in longer maintenance and debugging cycles? Unfortunately, also ✅ 🤓</p><p>Turns out the price of enabling people to build a more complex code base is… <strong>a more complex codebase</strong>, and everything that comes with that.<strong> </strong></p></blockquote>
<p>Solving one problem and in doing so creating another is the essence of progress. I give dbt a pass here. Nonetheless, things got very complex, and not just limited to dbt.</p>
<p>There were numerous <a href="https://mattpalmer.io/posts/hot-takes/">hot takes</a> pointing to the shortcomings of dbt, and a slew of <a href="https://news.ycombinator.com/item?id=37121543">dbt alternatives popped up</a>, all “faster horses” in my mind. We need cars.<a class="footnote-anchor" data-component-name="FootnoteAnchorToDOM" id="footnote-anchor-5" href="#footnote-5" target="_self">5</a> </p>
<p>dbt having raised a ton of money, had to do <a href="https://www.getdbt.com/blog/dbt-labs-update-a-message-from-ceo-tristan-handy/">layoffs</a> and quickly <a href="https://www.getdbt.com/blog/consumption-based-pricing-and-the-future-of-dbt-cloud/">figure out a business model</a>.</p>
<p><strong>Complexity: </strong></p>
<p>You could be lead to believe that you need one from each of the following “MDS categories”. However <a href="https://www.moderndatastack.xyz/stacks/pitch">most teams</a> generally limited themselves to a BI tool, a database, an ETL tool and dbt. </p>
<p>The issue was the abundance of overlapping options.</p>
<div class="captioned-image-container"><figure><a class="image-link is-viewable-img image2" target="_blank" href="https://substackcdn.com/image/fetch/f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff760e11c-1a3b-459d-92e7-01bdf130e66a_1070x1295.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff760e11c-1a3b-459d-92e7-01bdf130e66a_1070x1295.png 424w, https://substackcdn.com/image/fetch/w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff760e11c-1a3b-459d-92e7-01bdf130e66a_1070x1295.png 848w, https://substackcdn.com/image/fetch/w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff760e11c-1a3b-459d-92e7-01bdf130e66a_1070x1295.png 1272w, https://substackcdn.com/image/fetch/w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff760e11c-1a3b-459d-92e7-01bdf130e66a_1070x1295.png 1456w" sizes="100vw" /><img src="https://substack-post-media.s3.amazonaws.com/public/images/f760e11c-1a3b-459d-92e7-01bdf130e66a_1070x1295.png" width="1070" height="1295" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/f760e11c-1a3b-459d-92e7-01bdf130e66a_1070x1295.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1295,&quot;width&quot;:1070,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:345045,&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}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff760e11c-1a3b-459d-92e7-01bdf130e66a_1070x1295.png 424w, https://substackcdn.com/image/fetch/w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff760e11c-1a3b-459d-92e7-01bdf130e66a_1070x1295.png 848w, https://substackcdn.com/image/fetch/w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff760e11c-1a3b-459d-92e7-01bdf130e66a_1070x1295.png 1272w, https://substackcdn.com/image/fetch/w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff760e11c-1a3b-459d-92e7-01bdf130e66a_1070x1295.png 1456w" sizes="100vw" loading="lazy" /></picture><div class="image-link-expand"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="#FFFFFF" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 "><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></div></div></a><figcaption class="image-caption">https://www.moderndatastack.xyz/categories</figcaption></figure></div>
<p><strong>Team size:</strong></p>
<p>The other awkward thing to address was the growth in MDS team size. I worked with a team that wanted to double their data team from 20 to 50. MDS became known to run on <a href="https://medium.com/@laurengreerbalik/the-modern-data-stack-through-the-gervais-principle-bfd4b4e33ac7">human middleware</a>:</p>
<blockquote><p>Cash is injected. This means more employees of all sorts are hired. More employees increases the demand for more reports and analytics. More demand means more human middleware is created in the Clueless layer when you adopt the Modern Data Stack paradigm of throwing everything into your cloud data warehouse of choice.</p><p>More Clueless human middleware creates more tables, tables, tables to many more reports and KPIs and metrics. They have to buy new products and hire new people to manage the complexity. </p></blockquote>
<p>This criticism was semi-reasonable<a class="footnote-anchor" data-component-name="FootnoteAnchorToDOM" id="footnote-anchor-6" href="#footnote-6" target="_self">6</a>, but honestly I think this is often just the cycle of technology. Something comes along, presents an opportunity to differentiate, it works for some, it doesn’t work for others. People need to be involved. How many people? Probably a few. Oops too many. OK less people.  </p>
<p>A more primary issue with <strong>buying anything</strong> <strong>is knowing</strong> <strong>if you are ready for it</strong>. Does this company need a better data capability? Falling behind is a <a href="https://erikbern.com/2020/12/16/giving-more-tools-to-software-engineers-the-reorganization-of-the-factory.html#:~:text=Lack%20of%20adoption%20of%20new%20tools%20means%20falling%20behind%20the%20companies%20leveraging%20those%20tools.">real risk, that compounds</a>!</p>
<p>The Data Stack was sold broadly, for some it worked, quite often it didn’t. </p>
<p><strong>BI tools:</strong></p>
<p>Business Intelligence tools continued to underwhelm, primarily because of the split between traditional reporting and exploratory analytics. </p>
<p>The paradigm of “reporting” is in my mind a dead end. <strong>Like delivering a menu and then never taking an order, BI tools were informative instead of interactive. </strong></p>
<p>Traditional BI just don’t move the needle in the same way that newer tools like Hex do. (Hex described this paradigm in <a href="https://web.archive.org/web/20211113014204/https://hex.tech/blog/bi-tools-hex/">deleted article</a>, they now position themselves as a data tool that does <a href="https://hex.tech/blog/data-driven-decisions-with-kpi-dashboards/#:~:text=They%20can%20be%20simple%20or%20complex%20depending%20on%20need%2C%20and%20as%20beautiful%20or%20sparse%20as%20you%20can%20make%20it.%20But%20the%20data%20always%20takes%20center%20stage.%20Your%20focus%20when%20building%20one%20should%20always%20be%20%E2%80%9Cdoes%20this%20help%20drive%20the%20organization%20forward%3F%E2%80%9D">reporting too</a>). I use Hex daily. It is relatively cheap, it works very well and has sufficient depth to replace a <a href="https://twitter.com/mattarderne/status/1656361016983265280">fair chunk of MDS and technology infrastructure</a> too. </p>
<p>To be fair to BI tools, they were the last mile delivery problem built on a relative house of cards, so were pretty much destined to be <a href="https://twitter.com/mattarderne/status/1679109539789000710">the pain cafe</a>. </p>
<p><strong>Sprawl</strong></p>
<p>There was Vocal Criticism from product analytics people about the sprawling nature of MDS. </p>
<p>Product analytics is a mature side-car to the MDS, and the tooling built by Posthog et al is generally end-to-end integrated. From <a href="https://substack.timodechau.com/p/why-product-analytics-is-completely#:~:text=If%20you%20already,for%20this%20job.">their perspective</a>, the MDS approach led to poor outcomes:<a class="footnote-anchor" data-component-name="FootnoteAnchorToDOM" id="footnote-anchor-7" href="#footnote-7" target="_self">7</a></p>
<div class="captioned-image-container"><figure><a class="image-link is-viewable-img image2" target="_blank" href="https://substackcdn.com/image/fetch/f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2951bfd7-0934-4002-926f-df7e84c6d303_1502x1300.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2951bfd7-0934-4002-926f-df7e84c6d303_1502x1300.png 424w, https://substackcdn.com/image/fetch/w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2951bfd7-0934-4002-926f-df7e84c6d303_1502x1300.png 848w, https://substackcdn.com/image/fetch/w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2951bfd7-0934-4002-926f-df7e84c6d303_1502x1300.png 1272w, https://substackcdn.com/image/fetch/w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2951bfd7-0934-4002-926f-df7e84c6d303_1502x1300.png 1456w" sizes="100vw" /><img src="https://substack-post-media.s3.amazonaws.com/public/images/2951bfd7-0934-4002-926f-df7e84c6d303_1502x1300.png" width="327" height="282.9807692307692" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/2951bfd7-0934-4002-926f-df7e84c6d303_1502x1300.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1260,&quot;width&quot;:1456,&quot;resizeWidth&quot;:327,&quot;bytes&quot;:2049001,&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;:null}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2951bfd7-0934-4002-926f-df7e84c6d303_1502x1300.png 424w, https://substackcdn.com/image/fetch/w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2951bfd7-0934-4002-926f-df7e84c6d303_1502x1300.png 848w, https://substackcdn.com/image/fetch/w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2951bfd7-0934-4002-926f-df7e84c6d303_1502x1300.png 1272w, https://substackcdn.com/image/fetch/w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2951bfd7-0934-4002-926f-df7e84c6d303_1502x1300.png 1456w" sizes="100vw" loading="lazy" /></picture><div class="image-link-expand"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="#FFFFFF" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 "><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></div></div></a><figcaption class="image-caption">A meme from <a href="https://posthog.com/blog/modern-data-stack-sucks">posthog</a>.</figcaption></figure></div>
<p>Those are a few of the criticisms that illustrate the point. Essentially the <a href="https://en.wikipedia.org/wiki/Bellwether#:~:text=bellewether%2C%20which%20referred%20to%20the%20practice%20of%20placing%20a%20bell%20around%20the%20neck%20of%20a%20castrated%20ram%20(a%20wether)%20leading%20a%20flock%20of%20sheep.%20A%20shepherd%20could%20then%20note%20the%20movements%20of%20the%20animals%20by%20hearing%20the%20bell%2C%20even%20when%20the%20flock%20was%20not%20in%20sight.%5B3%5D">belleweather</a> for the change in direction of the flock. </p>
<h4>MDS IS DEAD POSTS</h4>
<p>There were <a href="https://duckduckgo.com/?q=%22modern+data+stack%22+%22dead%22&amp;va=a&amp;t=hp&amp;ia=web">a few</a>. This became a bit of a trope. Meta analysis of the trope is far more palatable. Hope you agree. </p>
<h4>BACK TO BASICS MOVEMENT</h4>
<p>There was always talk of a <strong>bundling</strong>. In essence the MDS was unbundling, and at some stage the tide would turn.</p>
<p>This was actually <a href="https://towardsdatascience.com/the-great-data-debate-unbundling-or-bundling-7d7721ee8514#:~:text=What%20actually%20happened%3F">discussed at length</a> in early 2022, where most everyone agreed that the unbundled approach was great for many things (experimentation, investing, entertainment, curiosity), but it <strong>wasn’t very productive.</strong> </p>
<h4>MDS LATE ADOPTERS</h4>
<p>There is still the <a href="https://www.mdsfest.com/">MDSFest</a>:</p>
<blockquote><p>“A community-led celebration of ideas and perspectives on the modern data stack”. </p></blockquote>
<p>Sounds great but I literally just came across it researching for this blog so I don’t actually know much about it</p>
<p>I don’t know where this video comes from but I think it demonstrates the idea that <strong>one person can pull together an entirely viable, semi-scalable data platform </strong>from the best of the open-source stuff, as was always intended. Silver lining. </p>
<div id="youtube2-WlpnVvPpS8U" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;WlpnVvPpS8U&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/WlpnVvPpS8U?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>
<h4>EVANGELISTS MOURN STATE OF WAY</h4>
<p>Some of the early evangelists <a href="https://twitter.com/sethrosen/status/1508425872268746755">mourned their loss</a>. It did literally feel magic. You could achieve so much with so little. This was a reality.</p>
<div class="captioned-image-container"><figure><a class="image-link is-viewable-img image2" target="_blank" href="https://substackcdn.com/image/fetch/f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8c0adfd3-9f1a-4e5b-bc8f-aedc970d5c3e_1312x856.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8c0adfd3-9f1a-4e5b-bc8f-aedc970d5c3e_1312x856.png 424w, https://substackcdn.com/image/fetch/w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8c0adfd3-9f1a-4e5b-bc8f-aedc970d5c3e_1312x856.png 848w, https://substackcdn.com/image/fetch/w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8c0adfd3-9f1a-4e5b-bc8f-aedc970d5c3e_1312x856.png 1272w, https://substackcdn.com/image/fetch/w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8c0adfd3-9f1a-4e5b-bc8f-aedc970d5c3e_1312x856.png 1456w" sizes="100vw" /><img src="https://substack-post-media.s3.amazonaws.com/public/images/8c0adfd3-9f1a-4e5b-bc8f-aedc970d5c3e_1312x856.png" width="615" height="401.25" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/8c0adfd3-9f1a-4e5b-bc8f-aedc970d5c3e_1312x856.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:856,&quot;width&quot;:1312,&quot;resizeWidth&quot;:615,&quot;bytes&quot;:226769,&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;:null}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8c0adfd3-9f1a-4e5b-bc8f-aedc970d5c3e_1312x856.png 424w, https://substackcdn.com/image/fetch/w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8c0adfd3-9f1a-4e5b-bc8f-aedc970d5c3e_1312x856.png 848w, https://substackcdn.com/image/fetch/w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8c0adfd3-9f1a-4e5b-bc8f-aedc970d5c3e_1312x856.png 1272w, https://substackcdn.com/image/fetch/w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8c0adfd3-9f1a-4e5b-bc8f-aedc970d5c3e_1312x856.png 1456w" sizes="100vw" loading="lazy" /></picture><div class="image-link-expand"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="#FFFFFF" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 "><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></div></div></a></figure></div>
<p>A shrinking pie makes zero sum games more likely too. A shrinking pie means you have to work pretty hard just to <a href="https://databased.pedramnavid.com/p/what-the-hell-is-going-on-with-data">stem the flow</a>:</p>
<blockquote><p><strong>Everyone Wants a Piece of the Pie, Nobody Wants to Bake<br /></strong>…<br />if you don’t build things to solve a pain you’ve had in the hopes that it’ll solve someone else’s, if you don’t give away your hard work for free, then kindly, please, shut the fuck up.</p></blockquote>
<p>Matt Turk knows all <a href="https://mattturck.com/mad2023-part-iii/#:~:text=of%20Fiddler.-,The%20Modern%20Data%20Stack%20under%20pressure,-A%20hallmark%20of">about all of this</a>, having documented the data space for ages: </p>
<blockquote><p>The MDS is now under pressure. In a world of tight budgets and rationalization, it is almost too obvious a target. It’s <strong>complex</strong> (as customers need to stitch everything together and deal with multiple vendors). It’s <strong>expensive</strong> (lots of copying and moving data; every vendor in the chain wants their revenue and margin; customers often need an in-house team of data engineers to make it all work, etc). And it is, <strong>arguably, elitist</strong> (as those are the most bleeding-edge, best-in-breed tools, serving the needs of the more sophisticated users with the more advanced use cases).</p></blockquote>
<p>Overfunded startups, overcrowded teams, too many compute credits, too much badly structured SQL and lots of criticism. </p>
<p>The substance boiled down: </p>
<p><strong>MDS was a series of relatively experimental tools strung together to demonstrate varyingly good levels of Product Market Fit, but not quite demonstrating an ideal operating model . </strong></p>
<p><strong>The result is a great target for more refined, more niche, bundled equivalents. </strong></p>
<div class="captioned-image-container"><figure><a class="image-link is-viewable-img image2" target="_blank" href="https://substackcdn.com/image/fetch/f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa5a1c705-cf73-4e24-a26d-11b3f16182f7_735x484.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa5a1c705-cf73-4e24-a26d-11b3f16182f7_735x484.png 424w, https://substackcdn.com/image/fetch/w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa5a1c705-cf73-4e24-a26d-11b3f16182f7_735x484.png 848w, https://substackcdn.com/image/fetch/w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa5a1c705-cf73-4e24-a26d-11b3f16182f7_735x484.png 1272w, https://substackcdn.com/image/fetch/w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa5a1c705-cf73-4e24-a26d-11b3f16182f7_735x484.png 1456w" sizes="100vw" /><img src="https://substack-post-media.s3.amazonaws.com/public/images/a5a1c705-cf73-4e24-a26d-11b3f16182f7_735x484.png" width="727.9948120117188" height="479.3870598825468" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a5a1c705-cf73-4e24-a26d-11b3f16182f7_735x484.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:false,&quot;imageSize&quot;:&quot;normal&quot;,&quot;height&quot;:484,&quot;width&quot;:735,&quot;resizeWidth&quot;:727.9948120117188,&quot;bytes&quot;:452539,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:&quot;&quot;,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa5a1c705-cf73-4e24-a26d-11b3f16182f7_735x484.png 424w, https://substackcdn.com/image/fetch/w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa5a1c705-cf73-4e24-a26d-11b3f16182f7_735x484.png 848w, https://substackcdn.com/image/fetch/w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa5a1c705-cf73-4e24-a26d-11b3f16182f7_735x484.png 1272w, https://substackcdn.com/image/fetch/w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa5a1c705-cf73-4e24-a26d-11b3f16182f7_735x484.png 1456w" sizes="100vw" loading="lazy" /></picture><div class="image-link-expand"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="#FFFFFF" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 "><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></div></div></a><figcaption class="image-caption">“Mrs Armitage full-send on her MDS”  - The analogy here is that the bike demonstrates the makings of a motorcar. <a href="https://www.quentinblake.com/gallery/mrs-armitage-under-full-sail">I’d love a copy of this poster. - rights reserved Quentin Blake </a></figcaption></figure></div>
<h1>Phase 4: Postcycle</h1>
<div class="pullquote"><p>At some point, everyone realizes you can’t get easy status from the subculture anymore. <br /><strong><a href="https://astralcodexten.substack.com/p/a-cyclic-theory-of-subcultures">The people who want easy status stop joining</a></strong><a href="https://astralcodexten.substack.com/p/a-cyclic-theory-of-subcultures">, </a><br />and the movement stabilizes in a low-growth state.</p></div>
<h4>END OF MDS STATUS GAMES</h4>
<p>There is less attention and so less opportunity for status games. Most people have some <a href="https://benn.substack.com/">trusted source of information</a> and they rely on it, less interested in the minutia and more worried with whatever their pressing problems are. </p>
<p>A large chunk of data practitioners are now<strong> product focussed, in role, in company, in orientation</strong>. This is sensible as product is probably one of the best maturation directions, as it was a primary consumer of data outputs. ex-Data know how far to trust the data systems and what lies they tell. The same applies to operations. </p>
<h4>MDS CONSOLIDATES WITH FOCUS</h4>
<p>The <strong>data systems are largely </strong><em><strong>good enough</strong></em> and so the bottleneck becomes what to do with the data. Data engineering <em><strong>was</strong></em> the bottleneck. In January 2022 I gave the opinion that Data Engineering was <a href="https://groupby1.substack.com/p/data-engineering">no longer the primary bottleneck</a> to delivering insights/value/whatever.</p>
<p>Now in August 2023, I will now say that <strong>the Data Function is no longer the primary bottleneck</strong> in delivering insights/value<strong>. </strong>A good data team can ingest, model, analyse and distribute insights pretty easily. The challenges are now more subtle:<a class="footnote-anchor" data-component-name="FootnoteAnchorToDOM" id="footnote-anchor-8" href="#footnote-8" target="_self">8</a> </p>
<p>Track 1: “<a href="https://benn.substack.com/p/all-i-want-is-to-know-whats-different">All I want is to know what's different</a>”</p>
<p>Track 2: “<a href="https://benn.substack.com/p/the-emotionally-informed-company">The emotionally informed company</a>”</p>
<p>Track 3: “<a href="https://benn.substack.com/p/the-truth-is-out-there">The truth is out there The only thing stopping us from finding it is us</a>”</p>
<p>Track 4: “<a href="https://benn.substack.com/p/will-we-ever-have-clean-data">Will we ever have clean data? Probably not, but maybe we can work with messy data</a>”</p>
<p>Matt Turk describes where things <a href="https://mattturck.com/mad2023-part-iii/#:~:text=Throughout%20this%20section,analytical%20(OLAP)%20workloads">go from here</a>:</p>
<blockquote><p>The convergence of streaming and batch processing is an evergreen, and important theme. So is the convergence of transactional (OLTP) and analytical (OLAP) workloads</p></blockquote>
<p>This Analytics vs Operational thing is critical. All I will add is that <strong>all data problems stem from the fact that the blue and a pink blob are handled by different teams. </strong></p>
<div class="captioned-image-container"><figure><a class="image-link is-viewable-img image2" target="_blank" href="https://substackcdn.com/image/fetch/f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc4a88021-fbf1-4e40-b47b-d4c9cf2dcddc_772x321.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc4a88021-fbf1-4e40-b47b-d4c9cf2dcddc_772x321.png 424w, https://substackcdn.com/image/fetch/w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc4a88021-fbf1-4e40-b47b-d4c9cf2dcddc_772x321.png 848w, https://substackcdn.com/image/fetch/w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc4a88021-fbf1-4e40-b47b-d4c9cf2dcddc_772x321.png 1272w, https://substackcdn.com/image/fetch/w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc4a88021-fbf1-4e40-b47b-d4c9cf2dcddc_772x321.png 1456w" sizes="100vw" /><img src="https://substack-post-media.s3.amazonaws.com/public/images/c4a88021-fbf1-4e40-b47b-d4c9cf2dcddc_772x321.png" width="772" height="321" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c4a88021-fbf1-4e40-b47b-d4c9cf2dcddc_772x321.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:321,&quot;width&quot;:772,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:29734,&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}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc4a88021-fbf1-4e40-b47b-d4c9cf2dcddc_772x321.png 424w, https://substackcdn.com/image/fetch/w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc4a88021-fbf1-4e40-b47b-d4c9cf2dcddc_772x321.png 848w, https://substackcdn.com/image/fetch/w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc4a88021-fbf1-4e40-b47b-d4c9cf2dcddc_772x321.png 1272w, https://substackcdn.com/image/fetch/w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc4a88021-fbf1-4e40-b47b-d4c9cf2dcddc_772x321.png 1456w" sizes="100vw" loading="lazy" /></picture><div class="image-link-expand"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="#FFFFFF" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 "><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></div></div></a><figcaption class="image-caption">https://materialize.com/blog/warehouse-abuse</figcaption></figure></div>
<h4>MDS LEFT US WITH MORE / PRACTITIONERS STILL CARE</h4>
<p>The whole argument around MDS now mostly dusty, it can simply be described as a good idea that explored all the avenues and turned over all the stones. </p>
<div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc089dd66-1859-4995-9150-e0d7a73aef7b_806x231.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc089dd66-1859-4995-9150-e0d7a73aef7b_806x231.png 424w, https://substackcdn.com/image/fetch/w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc089dd66-1859-4995-9150-e0d7a73aef7b_806x231.png 848w, https://substackcdn.com/image/fetch/w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc089dd66-1859-4995-9150-e0d7a73aef7b_806x231.png 1272w, https://substackcdn.com/image/fetch/w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc089dd66-1859-4995-9150-e0d7a73aef7b_806x231.png 1456w" sizes="100vw" /><img src="https://substack-post-media.s3.amazonaws.com/public/images/c089dd66-1859-4995-9150-e0d7a73aef7b_806x231.png" width="435" height="124.6712158808933" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c089dd66-1859-4995-9150-e0d7a73aef7b_806x231.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:231,&quot;width&quot;:806,&quot;resizeWidth&quot;:435,&quot;bytes&quot;:102321,&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}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc089dd66-1859-4995-9150-e0d7a73aef7b_806x231.png 424w, https://substackcdn.com/image/fetch/w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc089dd66-1859-4995-9150-e0d7a73aef7b_806x231.png 848w, https://substackcdn.com/image/fetch/w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc089dd66-1859-4995-9150-e0d7a73aef7b_806x231.png 1272w, https://substackcdn.com/image/fetch/w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc089dd66-1859-4995-9150-e0d7a73aef7b_806x231.png 1456w" sizes="100vw" loading="lazy" /></picture><div></div></div></a></figure></div>
<p>Data technology was <a href="https://davidsj.substack.com/p/the-modern-data-stack-is-dead-long">just a nightmare before</a>, and a better solution is always necessary. The unbundling of the big systems into discrete elements was effective, and allowed people to experiment, learn, share and iterate on that cycle towards something that was very effective. <a href="https://substack.timodechau.com/p/after-the-modern-data-stack-welcome">Timo Dechau</a> describes this:</p>
<blockquote><p>The funny thing about evolution and potentially the one often missed out. Evolution is never linear. It branches out, explores, and creates massive amounts of variants. That is the beauty of it.</p><p>But it is also why there is never “the” next. But hundreds of next. And out of them, at some point, we will see a step changing the ways in such a good way that we could declare it as a new paradigm.</p><p>We are not there yet. But we can already see the branches, which is exciting.</p></blockquote>
<p>He has another good line on of thinking that maybe <a href="https://substack.timodechau.com/p/leaving-product-analytics#:~:text=Product%20analytics%20on%20top%20of%20your%20events%20in%20your%20data%20warehouse.%20No%20more%20weird%20data%20loadings%20and%20enrichment%20(where%20most%20of%20them%20never%20worked).%20And%20mostly%2C%20no%20two%20setups%20for%20classic%20BI%20and%20product%20analytics%20use%20cases.%20We%20spent%20some%20more%20time%20with%20this%20approach%20later.">Product and MDS will converge</a>. </p>
<blockquote><p>Product analytics on top of your events in your data warehouse. No more weird data loadings and enrichment (where most of them never worked). And mostly, no two setups for classic BI and product analytics use cases. We spent some more time with this approach later.</p></blockquote>
<h1>IN CLOSING</h1>
<h4>STILL REAL PROBLEMS TO BE SOLVED </h4>
<p>The opportunities are there. My core issue with MDS was <strong>that data modelling remained a complete nightmare</strong>. As the SaaS systems that run a business got more complex, the effort to consolidate went up and the accuracy of the consolidation went down. </p>
<div class="captioned-image-container"><figure><a class="image-link is-viewable-img image2" target="_blank" href="https://substackcdn.com/image/fetch/f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F45f72c34-94b5-4be0-82ae-656cf535ae1c_2088x1242.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F45f72c34-94b5-4be0-82ae-656cf535ae1c_2088x1242.png 424w, https://substackcdn.com/image/fetch/w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F45f72c34-94b5-4be0-82ae-656cf535ae1c_2088x1242.png 848w, https://substackcdn.com/image/fetch/w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F45f72c34-94b5-4be0-82ae-656cf535ae1c_2088x1242.png 1272w, https://substackcdn.com/image/fetch/w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F45f72c34-94b5-4be0-82ae-656cf535ae1c_2088x1242.png 1456w" sizes="100vw" /><img src="https://substack-post-media.s3.amazonaws.com/public/images/45f72c34-94b5-4be0-82ae-656cf535ae1c_2088x1242.png" width="1456" height="866" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/45f72c34-94b5-4be0-82ae-656cf535ae1c_2088x1242.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;:null,&quot;bytes&quot;:726311,&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}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F45f72c34-94b5-4be0-82ae-656cf535ae1c_2088x1242.png 424w, https://substackcdn.com/image/fetch/w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F45f72c34-94b5-4be0-82ae-656cf535ae1c_2088x1242.png 848w, https://substackcdn.com/image/fetch/w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F45f72c34-94b5-4be0-82ae-656cf535ae1c_2088x1242.png 1272w, https://substackcdn.com/image/fetch/w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F45f72c34-94b5-4be0-82ae-656cf535ae1c_2088x1242.png 1456w" sizes="100vw" loading="lazy" /></picture><div class="image-link-expand"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="#FFFFFF" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 "><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></div></div></a><figcaption class="image-caption"><a href="https://twitter.com/mattarderne/status/1599818945401262080/photo/1">more in the thread</a></figcaption></figure></div>
<p>My take on data modelling:</p>
<ol><li><p>There is an optimum level of data modelling done by software developers building apps and not just <a href="https://news.ycombinator.com/item?id=37010349">leaving it to the data team</a> (Analytics vs Operational) </p><div class="captioned-image-container"><figure><a class="image-link is-viewable-img image2" target="_blank" href="https://substackcdn.com/image/fetch/f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff15790a0-2dfb-4a78-b6ba-f4011c9ef068_1160x306.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff15790a0-2dfb-4a78-b6ba-f4011c9ef068_1160x306.png 424w, https://substackcdn.com/image/fetch/w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff15790a0-2dfb-4a78-b6ba-f4011c9ef068_1160x306.png 848w, https://substackcdn.com/image/fetch/w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff15790a0-2dfb-4a78-b6ba-f4011c9ef068_1160x306.png 1272w, https://substackcdn.com/image/fetch/w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff15790a0-2dfb-4a78-b6ba-f4011c9ef068_1160x306.png 1456w" sizes="100vw" /><img src="https://substack-post-media.s3.amazonaws.com/public/images/f15790a0-2dfb-4a78-b6ba-f4011c9ef068_1160x306.png" width="1160" height="306" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/f15790a0-2dfb-4a78-b6ba-f4011c9ef068_1160x306.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:306,&quot;width&quot;:1160,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:62186,&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}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff15790a0-2dfb-4a78-b6ba-f4011c9ef068_1160x306.png 424w, https://substackcdn.com/image/fetch/w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff15790a0-2dfb-4a78-b6ba-f4011c9ef068_1160x306.png 848w, https://substackcdn.com/image/fetch/w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff15790a0-2dfb-4a78-b6ba-f4011c9ef068_1160x306.png 1272w, https://substackcdn.com/image/fetch/w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff15790a0-2dfb-4a78-b6ba-f4011c9ef068_1160x306.png 1456w" sizes="100vw" loading="lazy" /></picture><div class="image-link-expand"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="#FFFFFF" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 "><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></div></div></a></figure></div></li><li><p>There is more work to be done exposing better data models via API from SaaS companies, and <a href="https://twitter.com/mattarderne/status/1593251129147920386">especially internally</a>.</p></li><li><p>There absolutely has to be <strong>better (</strong>easier, pre-populated, more automated, less fragile, less complicated) data modelling techniques. </p></li></ol>
<p><strong>The immediate future for data modelling involves an important role in the next <a href="https://twitter.com/mattarderne/status/1679107249233436675">big thing</a></strong></p>
<div class="captioned-image-container"><figure><a class="image-link is-viewable-img image2" target="_blank" href="https://substackcdn.com/image/fetch/f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6529334e-144b-41f3-92f6-4052ed46d661_533x722.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6529334e-144b-41f3-92f6-4052ed46d661_533x722.png 424w, https://substackcdn.com/image/fetch/w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6529334e-144b-41f3-92f6-4052ed46d661_533x722.png 848w, https://substackcdn.com/image/fetch/w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6529334e-144b-41f3-92f6-4052ed46d661_533x722.png 1272w, https://substackcdn.com/image/fetch/w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6529334e-144b-41f3-92f6-4052ed46d661_533x722.png 1456w" sizes="100vw" /><img src="https://substack-post-media.s3.amazonaws.com/public/images/6529334e-144b-41f3-92f6-4052ed46d661_533x722.png" width="533" height="722" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/6529334e-144b-41f3-92f6-4052ed46d661_533x722.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:722,&quot;width&quot;:533,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:225722,&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}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6529334e-144b-41f3-92f6-4052ed46d661_533x722.png 424w, https://substackcdn.com/image/fetch/w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6529334e-144b-41f3-92f6-4052ed46d661_533x722.png 848w, https://substackcdn.com/image/fetch/w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6529334e-144b-41f3-92f6-4052ed46d661_533x722.png 1272w, https://substackcdn.com/image/fetch/w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6529334e-144b-41f3-92f6-4052ed46d661_533x722.png 1456w" sizes="100vw" loading="lazy" /></picture><div class="image-link-expand"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="#FFFFFF" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 "><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></div></div></a></figure></div>
<div><hr /></div>
<div class="subscription-widget-wrap" data-attrs="{&quot;url&quot;:&quot;https://groupby1.mattarderne.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">If you’d like to hear from me again, drop the email in the box. No spam, just fresh insights cooked up in a flurry of procrastination. </p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email…" 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="footnote" data-component-name="FootnoteToDOM"><a id="footnote-1" href="#footnote-anchor-1" class="footnote-number" contenteditable="false" target="_self">1</a><div class="footnote-content"><p>Jacob epitomised the true spirit of MDS - he built a <a href="https://www.dataduel.co/modern-data-stack-in-a-box-with-duckdb/">data analytics “in a box”</a> using entirely open source tools. It just seems like the absolute best way to demonstrate the value of the idea:<br /><em>TLDR: A fast, free, and open-source Modern Data Stack (MDS) can now be fully deployed on your laptop or to a single machine using the combination of&nbsp;<a href="https://duckdb.org/">DuckDB</a>,&nbsp;<a href="https://meltano.com/">Meltano</a>,&nbsp;<a href="https://www.getdbt.com/">dbt</a>, and&nbsp;<a href="https://superset.apache.org/">Apache Superset</a>.</em></p></div></div>
<div class="footnote" data-component-name="FootnoteToDOM"><a id="footnote-2" href="#footnote-anchor-2" class="footnote-number" contenteditable="false" target="_self">2</a><div class="footnote-content"><p>I started a small consultancy, of which we never had more than 4 or 5 people operating at any one time, but we worked with many great companies and some exceptional ones. I never pushed that hard on this as the learning balance quickly falls in the favour of the client (initially you learn, then once you’ve stopped learning then they start to benefit, and you just hopefully get paid enough).</p></div></div>
<div class="footnote" data-component-name="FootnoteToDOM"><a id="footnote-3" href="#footnote-anchor-3" class="footnote-number" contenteditable="false" target="_self">3</a><div class="footnote-content"><p>Based on those criteria, I will riff a bit and say that in 2023 and onward, the following are clear <strong>requirements for buying data tools</strong></p><ol><li><p>The product must be aware of the data warehouse, the CRM and the related tools. Complementary technology is essential. </p></li><li><p>The <strong>intro-demo-trial-buy</strong> process must be accessible without hand holding, screening calls, hidden pricing and other crap. (once in growth phase out of beta etc)</p></li><li><p>Some form of value must be obvious and demonstrated within 3 hours of the trial. </p></li></ol></div></div>
<div class="footnote" data-component-name="FootnoteToDOM"><a id="footnote-4" href="#footnote-anchor-4" class="footnote-number" contenteditable="false" target="_self">4</a><div class="footnote-content"><p>Niche verticalized versions of the Reverse ETL concept do very well, as do niche CDPs.</p></div></div>
<div class="footnote" data-component-name="FootnoteToDOM"><a id="footnote-5" href="#footnote-anchor-5" class="footnote-number" contenteditable="false" target="_self">5</a><div class="footnote-content"><p>My two favourite cars - <a href="https://github.com/malloydata/malloy">Malloy</a> and <a href="https://relational.ai/blog/losing-the-middle-tier">Relational.ai</a> are both sensible concept cars that take a novel approach to the heart of the problem - data modelling is a nightmare!</p></div></div>
<div class="footnote" data-component-name="FootnoteToDOM"><a id="footnote-6" href="#footnote-anchor-6" class="footnote-number" contenteditable="false" target="_self">6</a><div class="footnote-content"><p>What started out as reasoned rapidly became directed <a href="https://twitter.com/oldjacket/status/1686210267539988482">at individuals</a> that kinda gave you that awkward vibe that is difficult to engage with but to me indicated the <a href="https://twitter.com/mattarderne/status/1689631249286242304">signs of the end</a>. </p></div></div>
<div class="footnote" data-component-name="FootnoteToDOM"><a id="footnote-7" href="#footnote-anchor-7" class="footnote-number" contenteditable="false" target="_self">7</a><div class="footnote-content"><p>There is some irony that they then propose Posthog as a Data warehouse <em>and</em> CDP, but I’ve used Posthog and it is a good product analytics tool. </p></div></div>
<div class="footnote" data-component-name="FootnoteToDOM"><a id="footnote-8" href="#footnote-anchor-8" class="footnote-number" contenteditable="false" target="_self">8</a><div class="footnote-content"><p><em>These read as if you asked chatGPT to write a song list for an angsty B2B data team leader’s third album</em></p></div></div>]]></content><author><name>Matt Arderne</name></author><category term="writing" /><category term="groupby1" /><category term="Data" /><category term="Data Systems" /><category term="Top Post" /><summary type="html"><![CDATA[a Tour de Links that follows the journey of the Modern Data Stack.]]></summary></entry><entry><title type="html">Context, and the Lack Thereof</title><link href="https://rdrn.dev/context/" rel="alternate" type="text/html" title="Context, and the Lack Thereof" /><published>2023-01-18T09:17:00+00:00</published><updated>2023-01-18T09:17:00+00:00</updated><id>https://rdrn.dev/context</id><content type="html" xml:base="https://rdrn.dev/context/"><![CDATA[<div>

* * *

</div>

<p><em>Enterprise data systems can often be quite distinct from their smaller startup cousins. This post takes a look at how our conversations around data systems and techniques need to be more sensitive to context, specifically when conversationalists have varying backgrounds.</em></p>
<p><em>A puddle-deep dive into the world of enterprises and how they compare to startups.</em></p>
<h1>Does it generalise?</h1>
<p>A key thing I come back to with working it data, writing about it and especially reading about it, is the following: does this generalise? Does this apply to a general context?</p>
<p>We all have a specific set of experiences and sufficient time to learn from others. This gives each of us the perspective that forms our opinions on the world.</p>
<p>So occasionally, we will say something like<a class="footnote-anchor" id="footnote-anchor-1" href="#footnote-1">1</a>:</p>
<div class="tweet" data-attrs="{&quot;url&quot;:&quot;https://twitter.com/rdrn_/status/1593251129147920386&quot;,&quot;full_text&quot;:&quot;I think tech/SW teams should (be required) to build APIs of core business data concepts (customers, orders, products) way earlier\n\nThe anti-pattern of this being defined by a new (data) team in a new tech paradigm (dbt) and then exposed in a new tool (BI) causes much pain&quot;,&quot;username&quot;:&quot;mattarderne&quot;,&quot;name&quot;:&quot;Matt Arderne&quot;,&quot;date&quot;:&quot;Thu Nov 17 14:34:05 +0000 2022&quot;,&quot;photos&quot;:[],&quot;quoted_tweet&quot;:{},&quot;retweet_count&quot;:2,&quot;like_count&quot;:39,&quot;expanded_url&quot;:{},&quot;video_url&quot;:null,&quot;belowTheFold&quot;:false}"><a class="tweet-link-top" href="https://twitter.com/rdrn_/status/1593251129147920386" target="_blank"><div class="tweet-header"><img class="tweet-header-avatar" src="https://substackcdn.com/image/twitter_name/w_96/mattarderne.jpg" alt="Twitter avatar for @mattarderne" /><div class="tweet-header-text"><span class="tweet-author-name">Matt Arderne </span><span class="tweet-author-handle">@mattarderne</span></div></div><div class="tweet-text">I think tech/SW teams should (be required) to build APIs of core business data concepts (customers, orders, products) way earlier

The anti-pattern of this being defined by a new (data) team in a new tech paradigm (dbt) and then exposed in a new tool (BI) causes much pain</div></a><a class="tweet-link-bottom" href="https://twitter.com/rdrn_/status/1593251129147920386" target="_blank"><div class="tweet-footer"><span class="tweet-date">2:34 PM ∙ Nov 17, 2022</span><hr /><div class="tweet-ufi"><span href="https://twitter.com/rdrn_/status/1593251129147920386/likes" class="likes"><span class="like-count">39</span>Likes</span><span href="https://twitter.com/rdrn_/status/1593251129147920386/retweets" class="retweets"><span class="rt-count">2</span>Retweets</span></div></div></a></div>
<p>This tweet led to fascinating conversations with many people, experts and non-experts alike.</p>
<p>What is even more fascinating, is that the context that caused this statement to resonate so strongly<strong> is entirely presumed</strong>, or even unknown.<a class="footnote-anchor" id="footnote-anchor-2" href="#footnote-2">2</a> The context, the specific experiences that led to the specific insight, is unknown.</p>
<p>This I would argue is a key issue with a few of the rifts in data discussions. <a href="https://twitter.com/petehanssens/status/1426517732023963649">Data mesh</a>, modern data stack, bundling, data modelling, dbt, human middleware, contracts, <a href="https://benn.substack.com/p/day-of-reckoning#:~:text=But%20what%20if,that%20owns%20it%3F">purpose</a>, <a href="https://stkbailey.substack.com/p/what-exactly-isnt-dbt#:~:text=To%20execute%20%E2%80%9Cdbt,a%20new%20age.">gods</a>, etcetera.<a class="footnote-anchor" id="footnote-anchor-3" href="#footnote-3">3</a></p>
<p>How many of these rifts are due to a lack of generalised context?</p>
<p>Let’s have a look.</p>
<h1>Who are we?</h1>
<p>Data people do come from a pretty consistent set of <a href="https://stkbailey.substack.com/p/perennial-truth-architectures">contexts</a>:<a class="footnote-anchor" id="footnote-anchor-4" href="#footnote-4">4</a></p>
<blockquote><p>The monolithic startup driven by a charismatic CEO. The meshy enterprise and its tangled mess of systems. The methodical R&amp;D group with its tinkering innovators. The mutinous midsize company and its C-Suite fights over whose department initiatives are&nbsp;<em>really</em>&nbsp;driving growth.</p></blockquote>
<p>Across all of these complexity busting teams, possibly the clearest dimension that I've noticed is the different, almost opposed operating models between the scrappy <strong>startup/scaleup</strong> mode and the sprawling <strong>enterprise</strong> mode when it comes to implementing data solutions and systems.</p>
<p>Here are a few key ways of describing characteristics that really distinguish:</p>
<ul><li><p>CTO vs CIO<a class="footnote-anchor" id="footnote-anchor-5" href="#footnote-5">5</a> responsible for data</p></li><li><p>Data needs to be useful vs data needs to be accurate</p></li><li><p>Growing vs stable (<a href="https://twitter.com/hkarthik/status/1581339228515930112">dying</a>)</p></li><li><p>Emergent vs traditional</p></li><li><p>Product market fit vs risk averse</p></li></ul>
<p>This is worth discussing because we have long since reached the point where these conversations feel quite like <em>worlds colliding</em> </p>
<p>(the enterprise data-mesh car crash through the fence of startup analytics world), </p>
<p>and this was like two previously un-contacted tribes with each their own gods and deities coming together and not loving the look of each other. People just screaming right past each other. Here is me screaming:</p>
<div class="tweet" data-attrs="{&quot;url&quot;:&quot;https://twitter.com/rdrn_/status/1580469472783056900&quot;,&quot;full_text&quot;:&quot;&lt;span class=\&quot;tweet-fake-link\&quot;&gt;@mullinsms&lt;/span&gt; &lt;span class=\&quot;tweet-fake-link\&quot;&gt;@DSJayatillake&lt;/span&gt; &lt;span class=\&quot;tweet-fake-link\&quot;&gt;@DomenicRavita&lt;/span&gt; &lt;span class=\&quot;tweet-fake-link\&quot;&gt;@getdbt&lt;/span&gt; &lt;span class=\&quot;tweet-fake-link\&quot;&gt;@fivetran&lt;/span&gt; This circular conversation seems most common when the enterprise context clashes with rapid growth context. \n\nDecay vs Acceleration orientation largely not reconcilable, which IMO explain these&quot;,&quot;username&quot;:&quot;mattarderne&quot;,&quot;name&quot;:&quot;Matt Arderne&quot;,&quot;date&quot;:&quot;Thu Oct 13 08:04:20 +0000 2022&quot;,&quot;photos&quot;:[],&quot;quoted_tweet&quot;:{},&quot;retweet_count&quot;:0,&quot;like_count&quot;:1,&quot;expanded_url&quot;:{},&quot;video_url&quot;:null,&quot;belowTheFold&quot;:true}"><a class="tweet-link-top" href="https://twitter.com/rdrn_/status/1580469472783056900" target="_blank"><div class="tweet-header"><img class="tweet-header-avatar" src="https://substackcdn.com/image/twitter_name/w_96/mattarderne.jpg" alt="Twitter avatar for @mattarderne" loading="lazy" /><div class="tweet-header-text"><span class="tweet-author-name">Matt Arderne </span><span class="tweet-author-handle">@mattarderne</span></div></div><div class="tweet-text"><span class="tweet-fake-link">@mullinsms</span> <span class="tweet-fake-link">@DSJayatillake</span> <span class="tweet-fake-link">@DomenicRavita</span> <span class="tweet-fake-link">@getdbt</span> <span class="tweet-fake-link">@fivetran</span> This circular conversation seems most common when the enterprise context clashes with rapid growth context. 

Decay vs Acceleration orientation largely not reconcilable, which IMO explain these</div></a><a class="tweet-link-bottom" href="https://twitter.com/rdrn_/status/1580469472783056900" target="_blank"><div class="tweet-footer"><span class="tweet-date">8:04 AM ∙ Oct 13, 2022</span></div></a></div>
<h2>My Background</h2>
<p>I have always worked in and with smaller businesses, the median people number being ~150. I briefly worked as a solutions engineer for a company that nearly exclusively sold products to big enterprise companies, multinationals, banks.</p>
<p>This experience was <em>not agreeable</em> and shocked me in a few ways. Primarily, how incredibly complicated the enterprise customer operations can be, and how dysfunctionally the enterprise customers ran their technology projects.</p>
<p>Complicated is fine, <a href="https://www.mindtools.com/pages/article/cynefin-framework.htm">complicated is not inherently complex</a>, and just requires careful consideration, rather than rocket science, to figure out what to do. But in these older businesses, what to do is staggeringly complicated.</p>
<p>And so if you have worked in a startup, you may experience enterprise as static, as if nothing happens.</p>
<p>Well, things happen, just nothing changes,</p>
<p>At least not satisfyingly so, and certainly not quick enough for any feedback loops to develop, and absolutely not long enough for anyone to be around for long enough to be held accountable for their actions.</p>
<p>What ends up happening is pretty organic, often incredibly misguided, and very likely even counterproductive without realising <a href="https://en.wikipedia.org/wiki/Systemantics#cite_note-%5BPink2011%5D-4">it</a>:</p>
<blockquote><p>Not only do systems expand well beyond their original goals, but as they evolve they tend to oppose even their own original goals. … For example, incentive reward systems set up in business can have the effect of institutionalizing mediocrity. This leads to the following principle. <em><strong>Systems tend to oppose their own proper function.</strong></em></p></blockquote>
<p>Working in a company selling software was great, but selling to such established mega-corps was not my style of toasted cheese sandwich. </p>
<p>This blog has simmered as a comparison between Startup-land and "your typical lower tier enterprise". <strong>The result is a massive generalisation</strong>, highlighting the best of startups and comparing them to the worst of enterprise. I have a minor sliver of context, and I'm adding it to the mix. I'm not an enterprise/startup expert, but I do have experience, which means I have some context to share.</p>
<p>Many people in this space go their whole lives not looking under the hood of an enterprise, or startup, and this is for them.</p>
<div class="captioned-image-container"><figure><a class="image-link is-viewable-img image2" target="_blank" href="https://substackcdn.com/image/fetch/f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F255bcb25-cf47-45d7-bed6-6e604e99de9a_1989x970.png"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F255bcb25-cf47-45d7-bed6-6e604e99de9a_1989x970.png 424w, https://substackcdn.com/image/fetch/w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F255bcb25-cf47-45d7-bed6-6e604e99de9a_1989x970.png 848w, https://substackcdn.com/image/fetch/w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F255bcb25-cf47-45d7-bed6-6e604e99de9a_1989x970.png 1272w, https://substackcdn.com/image/fetch/w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F255bcb25-cf47-45d7-bed6-6e604e99de9a_1989x970.png 1456w" sizes="100vw" /><img src="https://substack-post-media.s3.amazonaws.com/public/images/255bcb25-cf47-45d7-bed6-6e604e99de9a_1989x970.png" width="1456" height="710" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/255bcb25-cf47-45d7-bed6-6e604e99de9a_1989x970.png&quot;,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:710,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:5283102,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;internalRedirect&quot;:null}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F255bcb25-cf47-45d7-bed6-6e604e99de9a_1989x970.png 424w, https://substackcdn.com/image/fetch/w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F255bcb25-cf47-45d7-bed6-6e604e99de9a_1989x970.png 848w, https://substackcdn.com/image/fetch/w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F255bcb25-cf47-45d7-bed6-6e604e99de9a_1989x970.png 1272w, https://substackcdn.com/image/fetch/w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F255bcb25-cf47-45d7-bed6-6e604e99de9a_1989x970.png 1456w" sizes="100vw" loading="lazy" /></picture><div class="image-link-expand"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="#FFFFFF" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" y1="3" x2="14" y2="10"></line><line x1="3" y1="21" x2="10" y2="14"></line></svg></div></div></a><figcaption class="image-caption">LinkedIn or Twitter - <a href="https://www.artmajeur.com/en/magazine/29-pop-culture/octavio-ocampo-s-metamorphic-paintings/331291">source</a></figcaption></figure></div>
<h1>So what about startups</h1>
<p>Anyone reading this probably has an <a href="https://en.wikipedia.org/wiki/Silicon_Valley_(TV_series)">idea</a> of startup land.</p>
<p>Startups have the benefit of a mostly clean slate, minimal baggage and an attitude of <strong>must take the time to get the tech systems right.</strong> Data is very often part of the strategic differentiation (guided or <a href="https://benn.substack.com/p/day-of-reckoning">misguided</a> as it may be).</p>
<p>Single data system, single tech, migrate quickly, do it now, cutting edge, <em>sorry cancel the contract we turned that off</em>.</p>
<p>Often wrong but always correcting, both the data stack and the company. Startups pivot on a cent(dime/penny), making extremely confident moves, with everyone in the team ready to have their role/responsibility severely disrupted, and be thrilled about it (unless you get fired).</p>
<p>Some great points I seem to have copied from <a href="https://locallyoptimistic.slack.com/archives/CHF1E9NUS/p1641404224097000">a slack</a> about what to expect at a startup if you’ve only worked in an enterprise:</p>
<blockquote><p>You will ALWAYS be building the plane as you fly it. Take time to step back and really think about your foundation and the scale it needs to operate at.<br /><br />My advice would be to try to be as ‘T’ shaped as possible. Don’t worry about being amazing at lots of things - just be <em>good enough</em> at lots of things and <em>best-in-team</em> at one thing in particular.</p><p>Just do things, permission is unaffordable overhead.</p><p>Prioritize aggressively because if you do the wrong things the company dies.</p></blockquote>
<p>Hot on the trail of customer needs and wants, iterating through the early stages of getting product market fit, and then once the <em>scaleup stage</em> is reached, all hands to the optimisation engine.</p>
<p>Startups are relatively simple - everyone is aligned. If not then it is probably just a small enterprise.</p>
<p><strong>Summary</strong></p>
<ul><li><p>Uncompromised, as everything matters, and the business will probably fail</p></li><li><p>Any single failure could be fatal, but only can be minimally mitigated</p></li><li><p>Aligned incentives</p></li><li><p>Fragile, like a newly lit fire with massive potential 🧨</p></li></ul>
<h3>Scale-ups?</h3>
<p>Scale-ups are what happens when a startup does exceedingly well (product market fit or excessive funding) and transitions from chaos into chaos on a mad hiring spree. The metamorphosis is described <a href="https://compilerqueen.substack.com/p/when-growth_stage-pupa">here</a>:</p>
<blockquote><p>The growth of a company from startup to enterprise has a lot in common with the growth of a caterpillar into a butterfly. And those parallels are especially meaningful when you’re in the goopy, amorphous pupa phase.</p><p>It can be disorienting to go from a stage where the emphasis is on quick execution for immediate results to a stage where ideas take longer to incubate and impact is measured in years, not days.</p></blockquote>
<p>Often enough a chaotic nightmare where no one knows what truly matters. The inherent value of this stage is being tested by the current lack of growth VC funding. </p>
<p>Pouring fuel on the fire now that you won’t smother it 🔥</p>
<h1>So then what about enterprise</h1>
<p>Enterprise is entirely different. With endless silos, centralising and decentralising efforts, complicated by mergers, locations, borders, timezones and subdivisions. The focus of data is on basic coherence, control, and standardisation.</p>
<p>I'm not talking about Apple here. <a href="twitter.com/GergelyOrosz/status/1574729116850561024">FAANG</a> doesn't have this issue, they just build solutions. CV buffering for engineers, they have other issues. They have issues relating to hiring people they don't need to prevent other FAANGs from having access to them, and other rumours about <a href="https://twitter.com/Austen/status/1412322657907793925">deliberately depressing profits</a>.<a class="footnote-anchor" id="footnote-anchor-6" href="#footnote-6">6</a></p>
<p>I am talking about your mid-tier banks, in forgotten regions. Companies that need technology to survive, but have a complicated relationship with it. Think COBOL stories. Think of General Electric post-merger with one of the 100's of companies in one of the very many sectors. Declining profits, fired CEOs, disillusioned staff. Failed <a href="https://www2.deloitte.com/content/dam/Deloitte/mx/Documents/human-capital/01_ERP_Top10_Challenges.pdf">ERP</a> implementations. The long tail of companies that just exist on momentum and middle management careering.</p>
<p>At a true enterprise, one can expect many legacy tech stacks, each with a plan and migration timeline. Keep it reliable, supported, staffed and contracted, ideally a single vendor.</p>
<p>What this leads to is <a href="https://earthly.dev/blog/bullshit-software-projects/#:~:text=the%20Zombie%20Projects.-,Zombie%20Projects,was%20the%20case%20at%20the%20networking%20start%2Dup%20he%20worked%20at%3A,-We%20had%20no">Zombie Projects</a>, with incredibly disillusioned teams running them:</p>
<blockquote><p>when a project has failed or has ballooned in size to the extent that it will never be completed, and everyone knows it. When that happens, and no one wants to face the facts, and so the project continues to move forward, then it becomes a BS project.</p></blockquote>
<p>Individuals start to realise that the project has died but will remain funded, and the system supports itself. They realise that despite whether they work or not, nothing happens and nothing matters, other than the charade itself. A reminder that this really <a href="https://earthly.dev/blog/bullshit-software-projects/#:~:text=Marcelle%2C%20another%20developer%2C%20also%20found%20doomed%20projects%20hard%20to%20handle%3A">drains motivation</a>.</p>
<p><em>That intro is probably a bit harsh, What does the enterprise do well? <br />Running incredibly complex, massively scaled businesses, often <a href="https://twitter.com/rkoutnik/status/1501346600202825731">successfully</a>, credit where it is due.</em></p>
<div class="tweet" data-attrs="{&quot;url&quot;:&quot;https://twitter.com/rkoutnik/status/1501346600202825731&quot;,&quot;full_text&quot;:&quot;Working at an early startup is like driving a go-kart.  Feels fast only because it's small, you're not actually going quickly.\n\nWorking at a mature company is like riding a plane.  Doesn't feel like you're moving at all until you look out the window and have gone 100s of miles&quot;,&quot;username&quot;:&quot;rkoutnik&quot;,&quot;name&quot;:&quot;Randall Koutnik&quot;,&quot;date&quot;:&quot;Tue Mar 08 23:58:17 +0000 2022&quot;,&quot;photos&quot;:[],&quot;quoted_tweet&quot;:{},&quot;retweet_count&quot;:2,&quot;like_count&quot;:21,&quot;expanded_url&quot;:{},&quot;video_url&quot;:null,&quot;belowTheFold&quot;:true}"><a class="tweet-link-top" href="https://twitter.com/rkoutnik/status/1501346600202825731" target="_blank"><div class="tweet-header"><img class="tweet-header-avatar" src="https://substackcdn.com/image/twitter_name/w_96/rkoutnik.jpg" alt="Twitter avatar for @rkoutnik" loading="lazy" /><div class="tweet-header-text"><span class="tweet-author-name">Randall Koutnik </span><span class="tweet-author-handle">@rkoutnik</span></div></div><div class="tweet-text">Working at an early startup is like driving a go-kart.  Feels fast only because it's small, you're not actually going quickly.

Working at a mature company is like riding a plane.  Doesn't feel like you're moving at all until you look out the window and have gone 100s of miles</div></a><a class="tweet-link-bottom" href="https://twitter.com/rkoutnik/status/1501346600202825731" target="_blank"><div class="tweet-footer"><span class="tweet-date">11:58 PM ∙ Mar 8, 2022</span><hr /><div class="tweet-ufi"><span href="https://twitter.com/rkoutnik/status/1501346600202825731/likes" class="likes"><span class="like-count">21</span>Likes</span><span href="https://twitter.com/rkoutnik/status/1501346600202825731/retweets" class="retweets"><span class="rt-count">2</span>Retweets</span></div></div></a></div>
<h3>Hero Warship</h3>
<p>Another recognisable enterprise pattern is hiring <a href="https://twitter.com/sergey_brine/status/1594726277554094082">saviours</a>. </p>
<p>Person X, accolade Y, education Z (<a href="https://benn.substack.com/p/the-emperor-and-his-clothes#:~:text=None%20of%20this,some%20harebrained%20catastrophe">MBA</a>) is heralded as the big new hire with the big new plan, assigned a big new budget to (finally) achieve the big broad goal.</p>
<p>Hero comes off the back of recent success in the exact same situation at a competitor. They start with an investigation into the “business needs” through many committees, leading to a feature hit-list-box-ticking exercise. Eventually, only massive companies like Oracle or IBM are in the running.</p>
<p>Cynically, this project is entirely for the purpose of leveraging it into a new role at a new bank (<a href="https://twitter.com/shreyas/status/1339997380335128576">Failing Up</a>), years before the project has any chance of fruition.</p>
<p>Another version of this game: In walk the management consultants. Strategise the flavour of the month (Modern Data Mesh), sell the dream, plan the diagram:</p>
<p><em>optimise cut reduce expand single source modern truth AI prediction profit, drops mic</em></p>
<p>The <a href="https://doomedprojects.com/post/it-would-be-career-limiting">contract staffing</a> company arrives, waterfall chart in hand and by the time the paint has dried most of the original stakeholders have jumped ship as <s>digitisation</s> <s>data</s> <s>AI</s> <s>blockchain</s> cost management experts, and are <a href="https://twitter.com/Stonks_dot_com/status/1581395492977618944">spamming</a> the success of the project before it has even begun!   </p>
<h3>What are you sinking about</h3>
<p>I think of enterprise as a system that has built so many incredibly reliable systems to prevent the business from failing that they become rigid. </p>
<p>Incredibly strong. Incredibly inflexible. Entire functional areas begin to decay, while the <a href="https://experimentalhistory.substack.com/p/bureaucratic-psychosis">rigidity remains</a>.</p>
<blockquote><p>Put people in charge of rules, meetings, and forms, and their first inkling will be “there should be more rules, meetings, and forms”.</p></blockquote>
<p>The rigidity and strength prevent flexibility, and so change becomes increasingly unlikely. This eventually leads to a state of dysfunction. The structure remains, but the function gradually dissolves. Idiosyncrasies like change review boards outright inhibiting changes.</p>
<p>Broken systems, operating in an organic state of <a href="https://how.complexsystems.fail/#5">failure</a>:</p>
<blockquote><p>The system continues to function because it contains so many redundancies and because people can make it function, despite the presence of many flaws. After accident reviews nearly always note that the system has a history of prior ‘proto-accidents’ that nearly generated catastrophe. </p></blockquote>
<div class="captioned-image-container"><figure><a class="image-link is-viewable-img image2" target="_blank" href="https://images.unsplash.com/photo-1596248723887-3b002a4c1c90?ixlib=rb-4.0.3&amp;q=80&amp;fm=jpg&amp;crop=entropy&amp;cs=tinysrgb"><div class="image2-inset"><picture><source type="image/webp" srcset="https://images.unsplash.com/photo-1596248723887-3b002a4c1c90?ixlib=rb-4.0.3&amp;q=80&amp;fm=jpg&amp;crop=entropy&amp;cs=tinysrgb 424w, https://images.unsplash.com/photo-1596248723887-3b002a4c1c90?ixlib=rb-4.0.3&amp;q=80&amp;fm=jpg&amp;crop=entropy&amp;cs=tinysrgb 848w, https://images.unsplash.com/photo-1596248723887-3b002a4c1c90?ixlib=rb-4.0.3&amp;q=80&amp;fm=jpg&amp;crop=entropy&amp;cs=tinysrgb 1272w, https://images.unsplash.com/photo-1596248723887-3b002a4c1c90?ixlib=rb-4.0.3&amp;q=80&amp;fm=jpg&amp;crop=entropy&amp;cs=tinysrgb 1456w" sizes="100vw" /><img src="https://images.unsplash.com/photo-1596248723887-3b002a4c1c90?ixlib=rb-4.0.3&amp;q=80&amp;fm=jpg&amp;crop=entropy&amp;cs=tinysrgb" width="4096" height="3072" data-attrs="{&quot;src&quot;:&quot;https://images.unsplash.com/photo-1596248723887-3b002a4c1c90?ixlib=rb-4.0.3&amp;q=80&amp;fm=jpg&amp;crop=entropy&amp;cs=tinysrgb&quot;,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:3072,&quot;width&quot;:4096,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;https://images.unsplash.com/photo-1596248723887-3b002a4c1c90?ixlib=rb-4.0.3&amp;q=80&amp;fm=jpg&amp;crop=entropy&amp;cs=tinysrgb&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;internalRedirect&quot;:null}" class="sizing-normal" alt="https://images.unsplash.com/photo-1596248723887-3b002a4c1c90?ixlib=rb-4.0.3&amp;q=80&amp;fm=jpg&amp;crop=entropy&amp;cs=tinysrgb" title="https://images.unsplash.com/photo-1596248723887-3b002a4c1c90?ixlib=rb-4.0.3&amp;q=80&amp;fm=jpg&amp;crop=entropy&amp;cs=tinysrgb" srcset="https://images.unsplash.com/photo-1596248723887-3b002a4c1c90?ixlib=rb-4.0.3&amp;q=80&amp;fm=jpg&amp;crop=entropy&amp;cs=tinysrgb 424w, https://images.unsplash.com/photo-1596248723887-3b002a4c1c90?ixlib=rb-4.0.3&amp;q=80&amp;fm=jpg&amp;crop=entropy&amp;cs=tinysrgb 848w, https://images.unsplash.com/photo-1596248723887-3b002a4c1c90?ixlib=rb-4.0.3&amp;q=80&amp;fm=jpg&amp;crop=entropy&amp;cs=tinysrgb 1272w, https://images.unsplash.com/photo-1596248723887-3b002a4c1c90?ixlib=rb-4.0.3&amp;q=80&amp;fm=jpg&amp;crop=entropy&amp;cs=tinysrgb 1456w" sizes="100vw" loading="lazy" /></picture><div class="image-link-expand"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="#FFFFFF" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" y1="3" x2="14" y2="10"></line><line x1="3" y1="21" x2="10" y2="14"></line></svg></div></div></a></figure></div>
<p><strong>Summary</strong></p>
<ul><li><p>Compromised, primarily due to risk aversion</p></li><li><p>Severe misalignment</p></li><li><p>Hot embers, of a big fire 📛</p></li></ul>
<h1>Looking Ahead</h1>
<p>As we have seen, the enterprise has largely taken note of the successes (and failings) of the organic brew of recent data tech.</p>
<p>My guess is that over the next few years, we will see this accelerate (they don’t read the salty tweets), but it will largely squish the pulp out of it in the outsourced and cross-matrix-managed divisional regional organisational chaos, and after decades of implementation, will abandon it to the pile of supported and business-critical but largely ignored technology.</p>
<p>Alongside we’ll see ever more of the offering of cargo-cult as a service from the consultancies forcing their way into the fray, with AI names and outsourced quasi-bundled solutions. </p>
<p>Often these kinds of trends are misguided, but some are indeed necessary. Digitisation? Yes if you must, no one wants to call for a delivery update. Cloud? Probably.</p>
<p>So Modern Data Stack then? Well, it comes with a way of working, an ethos around software best practices, some thoughts around who is responsible for what, and how to engage as an impactful product minded team.</p>
<p>Therein lies hope. Where Hadoop was a big data solution, Modern analytics is possibly a <a href="https://twitter.com/bennstancil/status/1605969780636205057">process</a> improvement. Doing things a bit more coherently. A slightly easier way to do the same old.</p>
<p>But I worry that it is probably not enough, or not even the case.</p>
<p>The ease with which enterprise data modelling experts have co-opted the data modelling conversation on LinkedIn tells me that the more likely post-fact analysis is going to lead to something along the lines of:</p>
<div class="preformatted-block"><label class="hide-text" contenteditable="false"></label><pre class="text">MDS brought Enterprise capabilities to Startups, <strong>and not the other way around.</strong></pre></div>
<p>That is a shuddering thought if there ever was one?</p>
<p>As mentioned, and regardless, Modern Data Stack has started simmering in the Enterprise, and is now well on its way. A new song with the same dance.</p>
<h1>So what?</h1>
<p>Back to the opening point on context. </p>
<p>Take a moment to understand the context behind opinions, product features, books, blogs, tweets and toots. </p>
<p>When consuming in this space it is critical to ensure the relevance of what you are reading, <strong>to you.</strong></p>
<p>Is that (this) advice or content applicable to you?</p>
<p>More importantly, the person writing that (this) blog. What is their background? What are they saying. What have they not said?</p>
<div><hr /></div>
<p><em>Thanks to <a href="https://twitter.com/sspaeti/">Simon Späti</a> for insightful feedback on an early draft. Simon published a very insightful analysis on how enterprise data systems <a href="https://airbyte.com/blog/modern-data-stack-struggle-of-enterprise-adoption">actually work</a>. Also thanks to my team of <a href="https://en.wikipedia.org/wiki/Extended_family">editors</a> for the proofreading.</em></p>
<p><em><strong>20 Feb 2023 edit</strong> - Google <a href="https://medium.com/@pravse/the-maze-is-in-the-mouse-980c57cfd61a">is indeed an enterprise</a> by the definition broadly described in this post</em></p>
<div class="subscription-widget-wrap" data-attrs="{&quot;url&quot;:&quot;https://groupby1.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;}"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading! Sign up below for my nearly annual insight.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email…" 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="footnote"><a id="footnote-1" href="#footnote-anchor-1" class="footnote-number" contenteditable="false">1</a><div class="footnote-content"><p><a href="https://twitter.com/mattarderne/status/1593251129147920386">The tweet</a> was inspired by a conversation with a company, who have tasked their newest team member with building a Data Warehouse so that the Engineering team could keep shipping.</p></div></div>
<div class="footnote"><a id="footnote-2" href="#footnote-anchor-2" class="footnote-number" contenteditable="false">2</a><div class="footnote-content"><p>The reason slack/twitter/Linkedin works at all is that we broadly presume everyone is of the following: data folks, largely all working in tech, scaling and not so much, generally all building web-apps, B2B and B2C, VC funded, ~Head of Data consulting, engineers too, building a modern Data Analytics practice, hate Data Mesh, jaded Jaffles, ~SQL, mostly ready to move into Product.</p></div></div>
<div class="footnote"><a id="footnote-3" href="#footnote-anchor-3" class="footnote-number" contenteditable="false">3</a><div class="footnote-content"><p>I could try find a link for each of those but as a reader I find the pressure to discover ALL of the context a bit <a href="https://benn.substack.com/p/the-modern-data-experience#:~:text=To%20analytics%20engineers,would%20care%20about.">overwhelming</a>.</p></div></div>
<div class="footnote"><a id="footnote-4" href="#footnote-anchor-4" class="footnote-number" contenteditable="false">4</a><div class="footnote-content"><p><em>Data people do actually come from a pretty consistent set of <a href="https://stkbailey.substack.com/p/perennial-truth-architectures">contexts</a>. </em>Why is this? My guess, data people are the glue that is applied to deal with complexity. Filling the <a href="https://youtu.be/wB0ulHmvU7E?t=1287">gaps in the matrix</a>. People, varyingly hired to fix the complexity problem.</p></div></div>
<div class="footnote"><a id="footnote-5" href="#footnote-anchor-5" class="footnote-number" contenteditable="false">5</a><div class="footnote-content"><p>CIO? <a href="https://www.joincolossus.com/episodes/75184353/slootman-narrow-the-focus-increase-the-quality?tab=transcript">Frank Slootman</a> on the enterprise CIO:</p><blockquote><p>It used to be IT was king of the hill, it still is in some place. But now business is just as technical as IT. So their roles are shifting and you get a much more balanced environment between what the business makes decisions on and what IT is really in charge of, because IT doesn't really know how to apply technology to the business, but the business does. We see that balance changing.</p><p>And I have that conversation often, by the way, with CIOs who are your typical infrastructure guys, they manage for cost and risk and these kinds of things. But they're infrastructure people, they really are enablers, but they don't really know how technology impacts the business. The business does.</p></blockquote></div></div>
<div class="footnote"><a id="footnote-6" href="#footnote-anchor-6" class="footnote-number" contenteditable="false">6</a><div class="footnote-content"><p>This was written before they started firing people.</p><p></p></div></div>]]></content><author><name>Matt Arderne</name></author><category term="writing" /><category term="groupby1" /><category term="Data" /><category term="Data Systems" /><category term="Top Post" /><summary type="html"><![CDATA[Enterprise data systems can often be quite distinct from their smaller startup cousins. This post takes a look at how our conversations around data systems and techniques need to be more sensitive to context, specifically when conversationalists have varying backgrounds. A puddle-deep dive into the world of enterprises and how they compare to startups.]]></summary></entry><entry><title type="html">The Ocean is Not Full</title><link href="https://rdrn.dev/the-ocean-is-not-full/" rel="alternate" type="text/html" title="The Ocean is Not Full" /><published>2022-10-31T01:17:00+00:00</published><updated>2022-10-31T01:17:00+00:00</updated><id>https://rdrn.dev/the-ocean-is-not-full</id><content type="html" xml:base="https://rdrn.dev/the-ocean-is-not-full/"><![CDATA[<p><em>Seeking flow state on the foil in the first week of September, a reflection on the pursuit of an open-faced wave.</em></p>

<p></p>
<blockquote><p>No one surfs anymore, it’s too crowded</p></blockquote>
<div class="captioned-image-container"><figure><a class="image-link is-viewable-img image2" target="_blank" href="https://substackcdn.com/image/fetch/f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F6fcc5ade-05bd-4d20-baaf-681f44180952_6237x4158.jpeg"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F6fcc5ade-05bd-4d20-baaf-681f44180952_6237x4158.jpeg 424w, https://substackcdn.com/image/fetch/w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F6fcc5ade-05bd-4d20-baaf-681f44180952_6237x4158.jpeg 848w, https://substackcdn.com/image/fetch/w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F6fcc5ade-05bd-4d20-baaf-681f44180952_6237x4158.jpeg 1272w, https://substackcdn.com/image/fetch/w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F6fcc5ade-05bd-4d20-baaf-681f44180952_6237x4158.jpeg 1456w" sizes="100vw" /><img src="https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/6fcc5ade-05bd-4d20-baaf-681f44180952_6237x4158.jpeg" width="1456" height="971" data-attrs="{&quot;src&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/6fcc5ade-05bd-4d20-baaf-681f44180952_6237x4158.jpeg&quot;,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:971,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:8600830,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;internalRedirect&quot;:null}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F6fcc5ade-05bd-4d20-baaf-681f44180952_6237x4158.jpeg 424w, https://substackcdn.com/image/fetch/w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F6fcc5ade-05bd-4d20-baaf-681f44180952_6237x4158.jpeg 848w, https://substackcdn.com/image/fetch/w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F6fcc5ade-05bd-4d20-baaf-681f44180952_6237x4158.jpeg 1272w, https://substackcdn.com/image/fetch/w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F6fcc5ade-05bd-4d20-baaf-681f44180952_6237x4158.jpeg 1456w" sizes="100vw" /></picture><div class="image-link-expand"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="#FFFFFF" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" y1="3" x2="14" y2="10"></line><line x1="3" y1="21" x2="10" y2="14"></line></svg></div></div></a><figcaption class="image-caption"><a href="https://www.instagram.com/grahamwiles/">Photo: @grahamwiles</a></figcaption></figure></div>
<p>September arrives, and coincidence or not, the first week of Autumn brings with it two long-period hurricane swells, colder days, rain, frontal weather and a few days of brisk Northerly winds. The changing of the seasons in the Northern Hemisphere can be pretty punctual, as if a queue of storms had already formed, waiting ready for departure (something to do with the jet stream). Departing in an orderly fashion, right on time - one two three straight into the coast.</p>
<p>Their arrival, much predicted by the breathless call over the <a href="https://www.surfline.com/surf-forecasts/north-cornwall/58581a836630e24c44879188/premium-analysis">premium online emergency global wave alert</a> system, much like the <a href="https://en.wikipedia.org/wiki/2018_Hawaii_false_missile_alert">Hawaiian missile alert system</a>, is prone to false positives.</p>
<p>Nonetheless, the surfers of London heed the call, firing up the chic-camper-conversions, having phoned up ahead to book a soft board for 2.5hrs, or more likely ordered a new hybrid twin-pin with same-day delivery.</p>
<p>With Flo in tow, swimming wetsuits and dry robes in the back for the 4/5hr Friday burn “down country” (down must be the opposite of up, as in “up country” - the other direction meaning London).</p>
<p>And so set out the Dry Robe Wankers, the pejorative term for the influx, and the sales of camouflage having dropped since this made the news (I don’t own a robe, but I did live in London. Conflicted).(<i>Update: I now own a robe, best ever!)</i></p>
<h3>Intermediates Only Please, this is Britain</h3>
<p>Saturday 3rd September arrives, with it a stern warning on the global alert “beginners stick to sheltered bays”. The rule abiders abide, strictly. Surfing, hilariously, has no UK commissioner, no council and apparently no regulatory body, which is quite literally unheard of in the UK hobby scene. There is the BSA (I guess the acronym) that run the surf contests, but there is no RYA (Royal Yachting Association) equivalent, to hand out “intermediate” badges. And so the majority remains in a state of purgatory, formally a nation of beginners.</p>
<p>The swell arrives, and the high tide shelters formed by the <a href="https://magicseaweed.com/User-Report/79795/">bays</a> provide some much-needed orientation for the hordes. A natural queue is formed, and beyond it lies a wild ocean. The wildest ocean I’d seen in months.</p>
<p>The irony is that the reason I was in attendance alongside the horde was purely to find some sheltered waves to continue my foil journey. As I indicated previously, I am somewhat hooked, and thus need a place to practice my art. The summer months lead me to exposed beach breaks, honestly occasionally wishing that I had my 6’6 mid-life-mid-length instead of the bloody foil.</p>
<div class="captioned-image-container"><figure><a class="image-link is-viewable-img image2" target="_blank" href="https://substackcdn.com/image/fetch/f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F9a7bc764-f202-46f3-b9d2-3fa70ca63876_2567x833.jpeg"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F9a7bc764-f202-46f3-b9d2-3fa70ca63876_2567x833.jpeg 424w, https://substackcdn.com/image/fetch/w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F9a7bc764-f202-46f3-b9d2-3fa70ca63876_2567x833.jpeg 848w, https://substackcdn.com/image/fetch/w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F9a7bc764-f202-46f3-b9d2-3fa70ca63876_2567x833.jpeg 1272w, https://substackcdn.com/image/fetch/w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F9a7bc764-f202-46f3-b9d2-3fa70ca63876_2567x833.jpeg 1456w" sizes="100vw" /><img src="https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/9a7bc764-f202-46f3-b9d2-3fa70ca63876_2567x833.jpeg" width="1456" height="472" data-attrs="{&quot;src&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/9a7bc764-f202-46f3-b9d2-3fa70ca63876_2567x833.jpeg&quot;,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:472,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:271357,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;internalRedirect&quot;:null}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F9a7bc764-f202-46f3-b9d2-3fa70ca63876_2567x833.jpeg 424w, https://substackcdn.com/image/fetch/w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F9a7bc764-f202-46f3-b9d2-3fa70ca63876_2567x833.jpeg 848w, https://substackcdn.com/image/fetch/w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F9a7bc764-f202-46f3-b9d2-3fa70ca63876_2567x833.jpeg 1272w, https://substackcdn.com/image/fetch/w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F9a7bc764-f202-46f3-b9d2-3fa70ca63876_2567x833.jpeg 1456w" sizes="100vw" loading="lazy" /></picture><div class="image-link-expand"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="#FFFFFF" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" y1="3" x2="14" y2="10"></line><line x1="3" y1="21" x2="10" y2="14"></line></svg></div></div></a></figure></div>
<p>For the majority of this time, the surf has been perfect, absolutely perfect for a beginner. Not to mention the water has been incredibly warm (hot in a 4/3mm), and endless sunny days (also in duration, 6am to 9pm) meant that for the bulk of the summer, double sessions were viable. Adding to this the foiling game of pumping out to link 2 or 3 waves at a time means that the annual wave count has certainly started to rip up away from the 1 year moving average.</p>
<p>This abundance of knee-high ripplers went unchallenged, and the only people that joined us were a euro couple who even went so far as to comment to our crew on the beach that we were the friendliest and most accommodating foilers they had encountered. How many foilers and how many surf sessions they could possibly have had to form this opinion I don’t know, but they both were taking off on green waves and heading down the line, along our perfectly formed peak that faded into a nice big rip which ripped us right back out to sea.</p>
<h3>The bay of plenty</h3>
<p>Back to <em>The Big Saturday</em>, and the bay was jam-packed. Ominous signs forming in the typically deserted 7am car park.</p>
<p>Many, <em>many,</em> campervans, and quite a few with surf kayaks emerging.</p>
<p>The parking lot is usually rather sparse at this time, weekend or not, but today was quite a scene. Immediate reservations around adding a foil to the mix, but a quick look at the water satisfies me that if I’m quick, the session won’t last that long and I’ll be in and out before the bulk boat up.</p>
<p>Summerleaze bay in Bude is a relatively protected bay at mid tide upwards, with a seawall providing a barrier for boats and thus a natural haven from the elements for surfers too. Coupled with a very high tide, it takes all the energy out of swells and makes for a very peaceful sleepy running wave.</p>
<p>My arrival was carefully timed to match the tide, and as the tide had topped out and was starting to ebb, I had about an hour or two before the tide starts to pinch in the mouth of the bay, between Barrel - a green barrel channel marker, very useful navigation aid marking the Starboard channel boundary, and the relatively un-documented <a href="https://www.facebook.com/VisitBude/videos/we-get-asked-about-rock-pools-this-is-cross-rock-it-marks-the-half-tide-point-on/1504267912962774/">Cross Rock</a> - an iron cross embedded into a rock, below the water level at any boat-approachable tide, and rather deadly looking. (<i>Update: apparently it marks mid-tide)</i></p>
<div class="captioned-image-container"><figure><a class="image-link is-viewable-img image2" target="_blank" href="https://substackcdn.com/image/fetch/f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fe680b386-286f-46b0-ad38-a7f6d42cbcc1_600x398.png"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fe680b386-286f-46b0-ad38-a7f6d42cbcc1_600x398.png 424w, https://substackcdn.com/image/fetch/w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fe680b386-286f-46b0-ad38-a7f6d42cbcc1_600x398.png 848w, https://substackcdn.com/image/fetch/w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fe680b386-286f-46b0-ad38-a7f6d42cbcc1_600x398.png 1272w, https://substackcdn.com/image/fetch/w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fe680b386-286f-46b0-ad38-a7f6d42cbcc1_600x398.png 1456w" sizes="100vw" /><img src="https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/e680b386-286f-46b0-ad38-a7f6d42cbcc1_600x398.png" width="534" height="354.22" data-attrs="{&quot;src&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/e680b386-286f-46b0-ad38-a7f6d42cbcc1_600x398.png&quot;,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:398,&quot;width&quot;:600,&quot;resizeWidth&quot;:534,&quot;bytes&quot;:325014,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;internalRedirect&quot;:null}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fe680b386-286f-46b0-ad38-a7f6d42cbcc1_600x398.png 424w, https://substackcdn.com/image/fetch/w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fe680b386-286f-46b0-ad38-a7f6d42cbcc1_600x398.png 848w, https://substackcdn.com/image/fetch/w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fe680b386-286f-46b0-ad38-a7f6d42cbcc1_600x398.png 1272w, https://substackcdn.com/image/fetch/w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fe680b386-286f-46b0-ad38-a7f6d42cbcc1_600x398.png 1456w" sizes="100vw" loading="lazy" /></picture><div class="image-link-expand"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="#FFFFFF" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" y1="3" x2="14" y2="10"></line><line x1="3" y1="21" x2="10" y2="14"></line></svg></div></div></a></figure></div>
<p>On the foil we can use the boat entrance as a channel to pump the foil back out to catch another wave. This “pump” is the main cause of derision towards foilers. “Stupid things why do they bounce around so much”.</p>
<p>This is the exact same mechanism that surfers employ to generate speed, in surfing known as the <a href="https://youtu.be/qy_NlLejp_U?t=225">Hungtington Hop</a> (not sure I agree with the physics prof on why it works, but then I’m not a prof). In surfing, this is applied to stay on the wave, but usually only when the waves are especially gutless.</p>
<h3>foiling is pumping - you’ve got to pump (it up)</h3>
<p>With foiling, the same technique is also applied, but can lead to significant advantages as it allows you to do two things: 1. accelerate down the wave, 2. accelerate beyond the wave, carrying the momentum and then continue adding to it, allowing you to pump out and catch another wave as part of the same takeoff. This “link” is the first hurdle of foiling. Much like doing pull-ups, the first hurdle to foiling quickly becomes a physical endurance repetition game.</p>
<p>How quickly can I get off this wave and pump back out to get another, this weighed against riding the wave to the end and having to pump further back out for another.</p>
<p>In <a href="https://youtu.be/M0xj2GIP9t4?t=42">2018 Kai Lenny managed 11 waves in a row</a> with what would today be regarded as a ridiculously inefficient way to pump for only one wave, all the credit to Kai who is quite the human-machine. An antipodal man recently went on to smash the record by catching a wave and <a href="https://www.instagram.com/p/Chv4PBAPIgq/">continuously pumping between waves for 2.5 hours</a>.</p>
<p>Catching 4 waves leaves me wishing I’d rather hit Cross Rock, and so the recent record clearly indicates that the technique involved transforms the pump from anaerobic to aerobic, where the body can maintain lactate levels etcetera!</p>
<p>So the pumping is a big part of the thing. Pump pump <em>glide</em>, pump pump <em>glide.</em></p>
<p>The idea is that once you can pump effectively and reliably, you can catch as many waves as you please. The other attraction is pumping out away from the crowd, as you only need a breaking wave to takeoff on, and once you are up, you can very reliably head out to sea at about 15kph, to catch ocean swells long before they break.</p>
<p>Another attraction is “laddering” up a set, where you pump out to sea, and on the way out catch a short break by catching a wave, getting some speed on each wave or second wave of the set, giving yourself a quick rest and a speed boost. Interestingly, the faster you go, the less effort is required to maintain the speed (caveats etc), and also when you catch a wave, you go fastest down the line. This is the same as with surfing, but the acceleration and top speed that a wave provides to the foil is quite incredible, and the same physics that applies to squeezing a olive/watermelon seed to shoot it applies here - you get squeezed and shot down the line, taking that speed with you as you quickly dip in and out of waves to keep the momentum up and the heart-rate down.</p>
<p>Summerleaze provides a very gutless wave, so much so that traditional short-board surfers mostly ignore it. We foilers can takeoff on a small breaking bump, and as it fades out (so the surfers generally ignore these), we ride the swell through the deep water channel and pump back along the breakwater channel, boosted by the very strong rip that forms, out to catch another wave in the set. The mouth of the bay at high tide provides a natural sand bar that causes the waves to pitch up, making the link easier and more attainable, but still not of interest to the surf crew. Riding this wave back along the channel, making a few cutbacks to stay near the “pocket” of the wave.</p>
<p>The foil feels like an oversensitive highly calibrated instrument and amplifies every single impulse of the sea. A bump needs to be navigated, double-up waves create a half-pipe, turbulence from a broken wave is literally like flying through a massive storm, hoping that just holding tight will get you through it. Pumping back out to sea, swells provide an opportunity to pump up and down like a skateboard ramp, further accelerating if you get it right and stopping you short if you get it wrong.</p>
<p>Foils also have a critical altitude, above which the foil “breaches” the water and you leave the board as if it hit a pothole or stone on a skateboard, an instant stop as the wing loses lift. These are avoided by keeping lower on the mast, but the more of the mast that is in the water, the less efficiently it rides as you have the mast not generating lift but generating significant drag. A delicate balance as you navigate the bumps and troughs of the sea, trying to eke out energy from the ocean and conserve it.</p>
<p>Combining these aspects means you have set yourself up with an invisible snakes and ladders obstacle course, a literally multi-dimensional game of strategy and endurance to try and get as far and as many as you can. Ideally, you’d catch a smaller wave before a set arrives, timing it so that you arrived back at the main peak to coincide with a set wave, and then laddering through the set to find the biggest lump. Riding that wave through to the inside carving as many or as few turns as needed and then pumping back to the takeoff for a rest. No surfers are at all interested in the same waves, and so the bay turns into something of a skateboard pump track, but without constraints and only your fitness and ability preventing you from riding an endless flowing wave.</p>
<p>Our ideal wave is one that breaks and then fades. This is optimal for a few reasons. The fade means that it is running into deeper water and so our 75cm+ draft won’t run aground. We need a wave to break as the boards are generally smaller and stubbier, to maximise pump efficiency. I have never been as finely tuned into a barely breaking wave and whether I can catch it with my 32 litre 4’4 board. Strong shoulders and a tired back. These “chip-in” waves are potentially the only part of the experience that has any interference with the regular surf crew, and we try and minimise them as much as possible.</p>
<h3>Kayaks. KAYAKS!</h3>
<p>As the session progressed, and the boats started to arrive, it became clear we had a slight clash of wavelength. For some reason that I do not yet understand, they seemed to be partial to the same waves that we needed to chip in. The boats in question are a novel creation, something that I had literally never encountered in my 20 and a few years of ocean interest. They are formally <a href="https://duckduckgo.com/?q=surf+kayak&amp;t=ffab&amp;iar=images&amp;iax=images&amp;ia=images">surf kayaks</a>, though you’d still be puzzled clicking on that link as to which variant. The 11th resulting image is the answer.</p>
<p>It is a sit-in wave-ski type boat (right below), which I think primarily stems from the river kayaking scene in the UK (riverless SA might explain the African drought of these). Apparently, they are easier than the traditional wave-ski so common in SA in the 80s (or <a href="http://www.millerslocal.co.za/the-man-behind-macski---john-macleod.html">MacSki</a>, left below) as the centre of gravity is lower, and they are generally a bit longer. They have a splash hood and quite a smooth long rocker line and seem to be generally quite a bit easier to throw around, and also paddle more easily, with a few of them getting into waves surprisingly early, with much less wild windmilling.</p>
<div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fc326760f-a613-43ae-b0ce-524dcbd111ee_1882x690.png"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fc326760f-a613-43ae-b0ce-524dcbd111ee_1882x690.png 424w, https://substackcdn.com/image/fetch/w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fc326760f-a613-43ae-b0ce-524dcbd111ee_1882x690.png 848w, https://substackcdn.com/image/fetch/w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fc326760f-a613-43ae-b0ce-524dcbd111ee_1882x690.png 1272w, https://substackcdn.com/image/fetch/w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fc326760f-a613-43ae-b0ce-524dcbd111ee_1882x690.png 1456w" sizes="100vw" /><img src="https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/c326760f-a613-43ae-b0ce-524dcbd111ee_1882x690.png" data-attrs="{&quot;src&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/c326760f-a613-43ae-b0ce-524dcbd111ee_1882x690.png&quot;,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:null,&quot;width&quot;:null,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2689625,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;internalRedirect&quot;:null}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fc326760f-a613-43ae-b0ce-524dcbd111ee_1882x690.png 424w, https://substackcdn.com/image/fetch/w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fc326760f-a613-43ae-b0ce-524dcbd111ee_1882x690.png 848w, https://substackcdn.com/image/fetch/w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fc326760f-a613-43ae-b0ce-524dcbd111ee_1882x690.png 1272w, https://substackcdn.com/image/fetch/w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fc326760f-a613-43ae-b0ce-524dcbd111ee_1882x690.png 1456w" sizes="100vw" loading="lazy" /></picture><div></div></div></a></figure></div>
<p>This early entry also meant that they could glide through the slow parts of the wave, linking the outside section into the inside, typically the domain of the foil. And there were lots of them. An incredible amount, an unnatural amount. It turns out that the world champs are being held <a href="https://worldsurfkayak2022.com/">in Bude in 2022</a>, and this appeared to be the England crew, hunting in packs as it seems, turning up for some team building and last-minute coaching. As fellow marginalised surf craft, we discussed rockers and foils while trying to keep out of each others way. I say marginalised because that is the category, distinct from “<a href="https://www.realsurfingmagazine.com/general-1">alternative</a>”, which is far more fashionable and palatable for the core surf fashionista, and typically is approved only because it can catch <em>less waves than a surfer.</em></p>
<p>Alternative is shorthand for bodysurf, Alaia, surf-mat.</p>
<p>Marginalised are the SUP, kayak, and most certainly the foil brigade, and probably for good reason.</p>
<p>Through all of this, the tide started to drain and the bay became smaller, the rip became more pronounced, and the session became slightly more location-condensed. The double takeoff spot started to merge into one, and the fishing-boat channel became more narrow, and also started to become the shoulder to the main peak when larger sets arrived. The effect was that the foil could no longer comfortably ride the rip out as it became crowded, and the sets were pushing through with too much energy to really ride comfortably. It was at this point that I realised I would be no longer a sensible participant in this session, but hung around for another 30min to catch a “wave in”.</p>
<h3>Beginners take care</h3>
<p>The observation primarily in this period of time was around how the median competence level was somewhat lower than I had realised. This is an evolving observation and will require some baseline comparison when I’m back in SA, SA being the baseline, specifically a few spots around that coast that have a similar attraction to beginner/intermediate surfers. Excluding the surf boats for now as they are more of an oddity than anything else.</p>
<p>Surfing in the UK is incredibly popular, but as I discovered on my recent Bude Surf Life Saving club induction, “do you surf” equates in most people’s ears to “have you ever tried to surf”, with a confident Yes being the answer.</p>
<p>Much like my answer any time, erring on the side of blinding overconfidence lest it cost me an opportunity for fun; “yes I can certainly ride/drive/operate/command that bike/plane/digger/fleet”</p>
<p>Thus the whole country in effect surfs, as it is a seemingly compulsory part of the summer beach kit to add a £35 supermarket-bought wetsuit to the kit, along with the beach windscreen. Both peculiarities I have not encountered in SA. The wetsuits potentially because there are too few surfers in SA to make a commodity wetsuit viable for retail, and the windscreen because the SA sun is too intense to prioritise a windscreen over a beach umbrella.</p>
<p>In fairness I think the screen is great, as it reduces the likelihood of the umbrella blowing away, and reduces the wind-chill factor, which in the UK is quite a factor indeed for the marginal summer days. I wonder if they would be a hit in SA if offered.</p>
<p>And so the observation continued, as a BIG set rolled in, now hitting the only peak square on, the channel (or shoulder), which was now indeed shoulder to shoulder, full of boats and the more competent surfers taking the rip back out, and the inside section a chaotic mix of intermediates bailing their boards to the chest high set (that’s 1-2ft South African, don’t @me). I blame The Wave, as the world’s easiest scapegoat for ruining surfing, primarily because they have created a national benchmark, and stamped a label on the <a href="https://www.thewave.com/surf/surf-sessions/intermediate-surf-session/">Intermediate</a>:</p>
<blockquote><p>Surfers who consistently ride white water waves and are able to catch an unbroken wave The intermediate surf session is open to everyone aged 6+ who are able to swim 25m unaided and are confident they have the required skills to ride this wave</p></blockquote>
<p>Swim 25m unaided! Well there you have it, a lower bar I cannot fathom.</p>
<p>Intermediates at The Wave (capitalising in case it isn’t clear the link is to THE W.A.V.E!) have potentially equated their Wave ripping abilities in the knee-high chlorine mush as a global accreditation, and also a verifiable licence to ignore the MagicSurfLineWeed advice that applies to beginners - “beginners stick to sheltered bays/wait this one out”.</p>
<p>What they do teach you at The Wave is that if you keep f&amp;*king up The Wave for everyone else, then you get kicked out of the water and sent to an easier session. Having spent £60 for an hour session to watch as Advanced™️ surfers attempt the Expert takeoff and blow it 7 times, I must admit I would love Love LOVE for The Wave to more aggressively police this, maybe printing NFT badges for those that don’t ruin the session and allow them to level up rather than the self accreditation system.</p>
<p>What <strong>they don’t</strong> teach at The Wave is how to spot a cleanup set that has quietly coaxed all the Interbeginners into the inside. These cleanup sets now draining neatly off a more pronounced sandbank with few fewer meters of waver over it, and starting to peel into the shoulder. Subtle carnage ensues as every single person ditches their board regardless of the chances of pushing through this now chest high wave, boards rattling and bashing as the crew untangles and flops towards another wave.</p>
<h3>Clogged Arteries</h3>
<p>The overwhelming feeling through all of this is that there are too many people for any one individual to progress.</p>
<p>Progression is a combination of repetition in a valid environment and a feedback loop. Coaches abound in the busy lineup inside, but the beginner cannot make the leap to intermediate (and I mean here the global intermediate - can surf varying conditions, get into position reliably and reliably catch most waves, and most importantly, not cause grief to another surfer).</p>
<p>There is a certain limit to the number of waves that can be surfed per day. Assuming around 4 to 5 surfers can reasonably surf each wave (at true beginner level), and there are 4-5 waves in a set, that means 20 surfers can at best get a wave in each set, at the most generous. 5 surfers surfing a wave doesn’t lead to much progression other than avoiding bashing (or not) into each other.</p>
<p>This is all a very roundabout way of saying that a Covid-driven growth of surfing due to any number of interacting elements has led to an overshoot, whereby the component surfers of the surfing mass are starving each other of waves, clamouring for some photosynthetic light that feeds growth (waves), and in the clamour are preventing growth. A Malthusian reading on this would say that surfing has overshot the carrying capacity, and I suppose the evidence was in favour, as I would suggest that the perfect spot on a perfect day was just far too crowded.</p>
<p>This is not to say that the ocean is full, but the commodified surfing experience has potentially been tapped out, the objective becoming self-defeating. To learn to surf today must be the easiest and hardest thing in history. Easiest because there is nothing undocumented, nothing that can’t be coached <a href="https://surfstrengthcoach.com/">1</a>,<a href="https://tutorials.barefootsurftravel.com/">2</a>,<a href="https://www.ombe.co/">3</a> (some things <a href="https://www.surfertoday.com/surfing/paying-for-surf-has-the-maldives-gone-too-far">money can buy)</a>, and hardest because there is very little chance of progression in the quagmire of the beginner surf zone. Waves have a very inelastic supply, no matter the demand.</p>
<p>I often wonder if this is what causes the UK to have a markedly different feeling in the water to what I’m familiar with in SA. The UK crowd seems slightly more dense, slightly less competent and there is a significant breakdown at the intermediate level, with far too few people aware of what is going on, leading to more drop-ins, more bailed boards, and far more close calls in an otherwise perfectly viable lineup than I have ever experienced.</p>
<p>Perhaps this is more due to my foiling perspective. It is like living at toddler height again, taking on an old perspective on familiar terrain and realising the make-up of the ecosystem has changed. Perhaps in SA, the lineups are equally clogged, and it is only because I’m foiling on the periphery of beginner waves that this has become apparent to me.</p>
<p>Like with all things, people lose interest and move on, this will be the likely outcome like it was with sailing, windsurfing, kitesurfing, and especially <a href="https://youtu.be/xVB6ef9JWSk?t=1031">Rollerblading</a>. Without some or other invention, the carrying capacity has been hit. I imagine it felt the same way for any surfer of a previous generation as the lineups became more crowded, and no doubt the true carrying capacity was always beyond the current generation’s imagination to believe.</p>
<h3>Foil Therapy</h3>
<p>This brings me back to my foil, and its ability to artificially increase the carrying capacity of this humble bay in North Cornwall. Suddenly the spot became alive with an entirely new dimension, untapped waves that were going un-ridden. We early brave pioneers who break out of the blinkered obsession with the last gasp of a wave ending its monumental trans-Atlantic journey, looking out to sea and seeing the lines for what they truly are, opportunities to be surfed, and not just opportunities for a brief burst of fleeting joy over a sufficiently shallow sandbank.</p>
<p>I probably should exclude Me from that We. I participate as a likely candidate for the “something new” brigade. Competent at everything, excellent at nothing, never an expert. <a href="https://commoncog.com/the-difference-between-experience-and-expertise/">Experience does not cause expertise</a>, lest someone insist that they’ve been surfing for Xteen years and consider themselves something of an expert, myself included, despite my 3 sessions on expert setting at The Wave.</p>
<p>Foiling attracts those who can’t help themselves but try something new, and it proves the point that all the surf foilers I know are varyingly ex-kiters/windsurfers (and naturally lifelong surfers) who got bored and decided they needed to learn something new.</p>
<p>So who are foilers? They are addicts. Addicts to the progression curve. Flow state demons. What usually happens is the challenges become too high and the experience falls to boredom.</p>
<div class="captioned-image-container"><figure><a class="image-link is-viewable-img image2" target="_blank" href="https://substackcdn.com/image/fetch/f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F82de651e-01cc-4acb-baa2-09d4683eff0d_660x553.png"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F82de651e-01cc-4acb-baa2-09d4683eff0d_660x553.png 424w, https://substackcdn.com/image/fetch/w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F82de651e-01cc-4acb-baa2-09d4683eff0d_660x553.png 848w, https://substackcdn.com/image/fetch/w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F82de651e-01cc-4acb-baa2-09d4683eff0d_660x553.png 1272w, https://substackcdn.com/image/fetch/w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F82de651e-01cc-4acb-baa2-09d4683eff0d_660x553.png 1456w" sizes="100vw" /><img src="https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/82de651e-01cc-4acb-baa2-09d4683eff0d_660x553.png" width="410" height="343.530303030303" data-attrs="{&quot;src&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/82de651e-01cc-4acb-baa2-09d4683eff0d_660x553.png&quot;,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:553,&quot;width&quot;:660,&quot;resizeWidth&quot;:410,&quot;bytes&quot;:60401,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;internalRedirect&quot;:null}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F82de651e-01cc-4acb-baa2-09d4683eff0d_660x553.png 424w, https://substackcdn.com/image/fetch/w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F82de651e-01cc-4acb-baa2-09d4683eff0d_660x553.png 848w, https://substackcdn.com/image/fetch/w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F82de651e-01cc-4acb-baa2-09d4683eff0d_660x553.png 1272w, https://substackcdn.com/image/fetch/w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F82de651e-01cc-4acb-baa2-09d4683eff0d_660x553.png 1456w" sizes="100vw" loading="lazy" /></picture><div class="image-link-expand"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="#FFFFFF" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" y1="3" x2="14" y2="10"></line><line x1="3" y1="21" x2="10" y2="14"></line></svg></div></div></a></figure></div>
<p>Ask any foiler if they can kitesurf, wing, foil, surf, hang-glide, fly and wakeboard. Yes.</p>
<p>Ask them if they are world-class at anything. No.</p>
<p>Expert generalists are a unifying theme. I surprised everyone at a work office party when there was a cable-ski on hand and threw some backrolls, later surprising no-one. “First Try Arderne” at the climbing gym, giving away the expectation.</p>
<p>And as I called out in the previous post on foiling, I’ve actively avoided getting involved, waiting until such time as the foil was sufficiently developed and enhanced to a degree that was ready for my growth oriented interest, with a range of brands, teams and disciplines. It is no surprise that I have joined as the ground swell is strongest.</p>
<p>It amounts to the same thing in the end - surfers who can spot an opportunity for a new thrill, and it is certainly thrilling to ride big open swells, as much fun as it is to rip down otherwise unremarkable waves at incredible speeds, and carry this momentum out the wave and into the otherwise flat sea, to link into the next surge in energy, in a true and continuous flow state.</p>
<div><hr /></div>
<h1>Appendix: </h1>
<h3>It is indeed rather crowded</h3>
<p>This is the most astounding little sequence, from a surf-spot that I have spent months surfing, to see this is almost beyond comprehension, and yet here we have it, an illustration of the point.</p>
<blockquote><p>“When I told them the safest would be that they leave paddling through the channel as it was dangerous for them, he looked at me and answered with an eastern european accent <strong>“We know what we are doing”.”</strong></p></blockquote>
<p>Clearly.</p>
<div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F5778bbb3-dedf-4842-b283-6e0ec621f3fe_2316x1008.png"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F5778bbb3-dedf-4842-b283-6e0ec621f3fe_2316x1008.png 424w, https://substackcdn.com/image/fetch/w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F5778bbb3-dedf-4842-b283-6e0ec621f3fe_2316x1008.png 848w, https://substackcdn.com/image/fetch/w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F5778bbb3-dedf-4842-b283-6e0ec621f3fe_2316x1008.png 1272w, https://substackcdn.com/image/fetch/w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F5778bbb3-dedf-4842-b283-6e0ec621f3fe_2316x1008.png 1456w" sizes="100vw" /><img src="https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/5778bbb3-dedf-4842-b283-6e0ec621f3fe_2316x1008.png" data-attrs="{&quot;src&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/5778bbb3-dedf-4842-b283-6e0ec621f3fe_2316x1008.png&quot;,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:null,&quot;width&quot;:null,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2094410,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;internalRedirect&quot;:null}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F5778bbb3-dedf-4842-b283-6e0ec621f3fe_2316x1008.png 424w, https://substackcdn.com/image/fetch/w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F5778bbb3-dedf-4842-b283-6e0ec621f3fe_2316x1008.png 848w, https://substackcdn.com/image/fetch/w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F5778bbb3-dedf-4842-b283-6e0ec621f3fe_2316x1008.png 1272w, https://substackcdn.com/image/fetch/w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F5778bbb3-dedf-4842-b283-6e0ec621f3fe_2316x1008.png 1456w" sizes="100vw" loading="lazy" /></picture><div></div></div></a></figure></div>
<p><a href="https://old.reddit.com/r/surfing/comments/y35n1e/kookslams_pure_gold/is7a47l/">Source with details</a></p>
<h3>South Africa is possibly less crowded</h3>
<p><a href="https://www.surf-forecast.com/breaks/Big-Bay">Big bay</a>, a popular city surf break in the city of Cape Town with a larger population, similar if slightly colder water, many more sharks and similarly mediocre waves, seemed to have generally fewer surfers, and possibly unusually, a higher ratio of female to male surfers. </p>
<p>(not scientific, I was chasing seagulls)</p>
<div class="captioned-image-container"><figure><a class="image-link is-viewable-img image2" target="_blank" href="https://substackcdn.com/image/fetch/f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F76a8e272-a23b-448c-9638-b2d99b8bafe1_3708x1966.jpeg"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F76a8e272-a23b-448c-9638-b2d99b8bafe1_3708x1966.jpeg 424w, https://substackcdn.com/image/fetch/w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F76a8e272-a23b-448c-9638-b2d99b8bafe1_3708x1966.jpeg 848w, https://substackcdn.com/image/fetch/w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F76a8e272-a23b-448c-9638-b2d99b8bafe1_3708x1966.jpeg 1272w, https://substackcdn.com/image/fetch/w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F76a8e272-a23b-448c-9638-b2d99b8bafe1_3708x1966.jpeg 1456w" sizes="100vw" /><img src="https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/76a8e272-a23b-448c-9638-b2d99b8bafe1_3708x1966.jpeg" width="1456" height="772" data-attrs="{&quot;src&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/76a8e272-a23b-448c-9638-b2d99b8bafe1_3708x1966.jpeg&quot;,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:772,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1491898,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;internalRedirect&quot;:null}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F76a8e272-a23b-448c-9638-b2d99b8bafe1_3708x1966.jpeg 424w, https://substackcdn.com/image/fetch/w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F76a8e272-a23b-448c-9638-b2d99b8bafe1_3708x1966.jpeg 848w, https://substackcdn.com/image/fetch/w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F76a8e272-a23b-448c-9638-b2d99b8bafe1_3708x1966.jpeg 1272w, https://substackcdn.com/image/fetch/w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F76a8e272-a23b-448c-9638-b2d99b8bafe1_3708x1966.jpeg 1456w" sizes="100vw" loading="lazy" /></picture><div class="image-link-expand"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="#FFFFFF" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" y1="3" x2="14" y2="10"></line><line x1="3" y1="21" x2="10" y2="14"></line></svg></div></div></a><figcaption class="image-caption"><a href="https://www.instagram.com/grahamwiles/">Photo: @grahamwiles</a></figcaption></figure></div>
<p></p>]]></content><author><name>Matt Arderne</name></author><category term="writing" /><category term="rdrn" /><category term="Hobbies" /><category term="Top Post" /><summary type="html"><![CDATA[Seeking flow state on the foil in the first week of September, a reflection on the pursuit of an open-faced wave.]]></summary></entry><entry><title type="html">Data Navigators</title><link href="https://rdrn.dev/navigators/" rel="alternate" type="text/html" title="Data Navigators" /><published>2022-08-19T19:17:00+00:00</published><updated>2022-08-19T19:17:00+00:00</updated><id>https://rdrn.dev/navigators</id><content type="html" xml:base="https://rdrn.dev/navigators/"><![CDATA[<p><em>Rich with historical trivia, linking to great practical insights, and sublime section headings. A must skim for any slow Friday - </em>Data Workers Daily </p>
<h1><strong>Where am I?</strong></h1>
<p>Throughout history, this question has usually been resolved somewhat approximately, but always with a strong desire for better accuracy.</p>
<p>From the perspective of explorers deep in the fog of discovering new worlds, each incremental step in <strong>increasingly</strong> <strong>accurate methods of navigation was a new opportunity</strong>, much like an entrepreneur sees the incremental tech capabilities as a wonder of possibilities.</p>
<p>Let us pick up the thread of increasing accuracy at the very interesting inflection point of <a href="https://www.celestialnavigation.info/what-is-celestial-navigation/">celestial navigation</a>.</p>
<div class="captioned-image-container"><figure><a class="image-link is-viewable-img image2" target="_blank" href="https://substackcdn.com/image/fetch/f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fbe91da8e-94d5-48c8-8ebb-b818921db2c9_564x508.jpeg"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fbe91da8e-94d5-48c8-8ebb-b818921db2c9_564x508.jpeg 424w, https://substackcdn.com/image/fetch/w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fbe91da8e-94d5-48c8-8ebb-b818921db2c9_564x508.jpeg 848w, https://substackcdn.com/image/fetch/w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fbe91da8e-94d5-48c8-8ebb-b818921db2c9_564x508.jpeg 1272w, https://substackcdn.com/image/fetch/w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fbe91da8e-94d5-48c8-8ebb-b818921db2c9_564x508.jpeg 1456w" sizes="100vw" /><img src="https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/be91da8e-94d5-48c8-8ebb-b818921db2c9_564x508.jpeg" width="344" height="309.84397163120565" data-attrs="{&quot;src&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/be91da8e-94d5-48c8-8ebb-b818921db2c9_564x508.jpeg&quot;,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:508,&quot;width&quot;:564,&quot;resizeWidth&quot;:344,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Sextant_(PSF).png (2320×2090) | Tattoo | Pinterest&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;internalRedirect&quot;:null}" class="sizing-normal" alt="Sextant_(PSF).png (2320×2090) | Tattoo | Pinterest" title="Sextant_(PSF).png (2320×2090) | Tattoo | Pinterest" srcset="https://substackcdn.com/image/fetch/w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fbe91da8e-94d5-48c8-8ebb-b818921db2c9_564x508.jpeg 424w, https://substackcdn.com/image/fetch/w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fbe91da8e-94d5-48c8-8ebb-b818921db2c9_564x508.jpeg 848w, https://substackcdn.com/image/fetch/w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fbe91da8e-94d5-48c8-8ebb-b818921db2c9_564x508.jpeg 1272w, https://substackcdn.com/image/fetch/w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fbe91da8e-94d5-48c8-8ebb-b818921db2c9_564x508.jpeg 1456w" sizes="100vw" /></picture><div class="image-link-expand"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="#FFFFFF" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" y1="3" x2="14" y2="10"></line><line x1="3" y1="21" x2="10" y2="14"></line></svg></div></div></a><figcaption class="image-caption">Pinterest <a href="https://www.pinterest.co.uk/pin/461337555552779242/">captures the gist of how it works</a></figcaption></figure></div>
<p>Using the angle of stars to the horizon, coupled with some maths and reference charts, one can approximate latitude, with fair accuracy.</p>
<p>Latitude (remember, steps on a La(t)dder) are the ones that go across the map. How far North or South.</p>
<div class="captioned-image-container"><figure><a class="image-link is-viewable-img image2" target="_blank" href="https://substackcdn.com/image/fetch/f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F06185b53-46cf-4f83-bb2f-7308d5a4aa8e_1599x933.png"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F06185b53-46cf-4f83-bb2f-7308d5a4aa8e_1599x933.png 424w, https://substackcdn.com/image/fetch/w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F06185b53-46cf-4f83-bb2f-7308d5a4aa8e_1599x933.png 848w, https://substackcdn.com/image/fetch/w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F06185b53-46cf-4f83-bb2f-7308d5a4aa8e_1599x933.png 1272w, https://substackcdn.com/image/fetch/w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F06185b53-46cf-4f83-bb2f-7308d5a4aa8e_1599x933.png 1456w" sizes="100vw" /><img src="https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/06185b53-46cf-4f83-bb2f-7308d5a4aa8e_1599x933.png" width="504" height="294.2307692307692" data-attrs="{&quot;src&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/06185b53-46cf-4f83-bb2f-7308d5a4aa8e_1599x933.png&quot;,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:850,&quot;width&quot;:1456,&quot;resizeWidth&quot;:504,&quot;bytes&quot;:843648,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;internalRedirect&quot;:null}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F06185b53-46cf-4f83-bb2f-7308d5a4aa8e_1599x933.png 424w, https://substackcdn.com/image/fetch/w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F06185b53-46cf-4f83-bb2f-7308d5a4aa8e_1599x933.png 848w, https://substackcdn.com/image/fetch/w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F06185b53-46cf-4f83-bb2f-7308d5a4aa8e_1599x933.png 1272w, https://substackcdn.com/image/fetch/w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F06185b53-46cf-4f83-bb2f-7308d5a4aa8e_1599x933.png 1456w" sizes="100vw" loading="lazy" /></picture><div class="image-link-expand"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="#FFFFFF" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" y1="3" x2="14" y2="10"></line><line x1="3" y1="21" x2="10" y2="14"></line></svg></div></div></a><figcaption class="image-caption">Figure 1 - Latitude and Atlantic Ocean — Encyclopedia Britannica</figcaption></figure></div>
<p>Longitude (the down ones), however could only <a href="https://en.wikipedia.org/wiki/Lunar_distance_(navigation)">be very roughly estimated</a> due to the lack of effective seagoing clocks and the process being more complicated.</p>
<p>For most of history, Marine Navigators could at best get to the latitude they knew their destination was on, and sail along along that latitude until they bumped into their destination (Land Ho!), or whatever was between them and the destination.</p>
<p>Often this was something hard and sharp.</p>
<p>Crossing the Atlantic Ocean between Europe and the Caribbean (see figure 1) was pretty attainable, with a great heuristic: </p>
<p><strong>Sail South until the butter melts, and then follow the Sun</strong>. </p>
<p>The butter melting is the approximate Latitude that you are aiming for in the Caribbean. Following the Sun is heading West. When you spot land, you have arrived!</p>
<p>Beyond that, things get far trickier.</p>
<p>Rounding Cape Horn or Cape of Storms are both formidable challenges, even today. Without accurate East/West determination, you were left with far fewer heuristics and some mediocre workarounds:</p>
<blockquote><p>As the Crow Flies – When lost or unsure of their position in coastal waters, ships would release a caged crow. The crow would fly straight towards the nearest land thus giving the vessel some sort of a navigational fix. <a class="footnote-anchor" id="footnote-anchor-1" href="#footnote-1">1</a></p></blockquote>
<p>The race to map the world meant that enhancing location accuracy was as valuable then as it is now (maps, the new oil).</p>
<div class="captioned-image-container"><figure><a class="image-link is-viewable-img image2" target="_blank" href="https://substackcdn.com/image/fetch/f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fc22fff2e-1ab7-4f48-844e-f100a3849e34_800x506.png"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fc22fff2e-1ab7-4f48-844e-f100a3849e34_800x506.png 424w, https://substackcdn.com/image/fetch/w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fc22fff2e-1ab7-4f48-844e-f100a3849e34_800x506.png 848w, https://substackcdn.com/image/fetch/w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fc22fff2e-1ab7-4f48-844e-f100a3849e34_800x506.png 1272w, https://substackcdn.com/image/fetch/w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fc22fff2e-1ab7-4f48-844e-f100a3849e34_800x506.png 1456w" sizes="100vw" /><img src="https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/c22fff2e-1ab7-4f48-844e-f100a3849e34_800x506.png" width="800" height="506" data-attrs="{&quot;src&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/c22fff2e-1ab7-4f48-844e-f100a3849e34_800x506.png&quot;,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:506,&quot;width&quot;:800,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:520530,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;internalRedirect&quot;:null}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fc22fff2e-1ab7-4f48-844e-f100a3849e34_800x506.png 424w, https://substackcdn.com/image/fetch/w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fc22fff2e-1ab7-4f48-844e-f100a3849e34_800x506.png 848w, https://substackcdn.com/image/fetch/w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fc22fff2e-1ab7-4f48-844e-f100a3849e34_800x506.png 1272w, https://substackcdn.com/image/fetch/w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fc22fff2e-1ab7-4f48-844e-f100a3849e34_800x506.png 1456w" sizes="100vw" loading="lazy" /></picture><div class="image-link-expand"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="#FFFFFF" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" y1="3" x2="14" y2="10"></line><line x1="3" y1="21" x2="10" y2="14"></line></svg></div></div></a><figcaption class="image-caption"><a href="https://en.wikipedia.org/wiki/James_Cook#First_voyage_(1768%E2%80%931771)">James Cook</a>, without much sensitivity for how it would be interpreted after the fact, hammered around the earth, charting the world with only a rough idea of his latitude. Here he is running aground on the Great Barrier Reef, presumably due to an intern’s PR.</figcaption></figure></div>
<p>And so, a 1700s <a href="https://en.wikipedia.org/wiki/Longitude_rewards#Establishing_the_rewards">British government-sponsored</a> technical arms race was established, matched only by the Data Stack sparring of 2021 in terms of strong narratives. The desired outcome - a better clock.</p>
<p>The marine chronometer (a much better clock) was conceived of and improved to such a degree that it enabled navigators to <a href="https://en.wikipedia.org/wiki/James_Cook#Second_voyage_(1772%E2%80%931775)">know where they were</a>.&nbsp;</p>
<p>The chronometer enabled better longitude determination. With an extreme emphasis on better (just a tiny snippet of the history of navigation, which may or may not be fascinating, I won’t impose).</p>
<p>The point, and why I find this a relevant thing to idle upon, is because this approximate location resolution process still exists. When you learn to navigate a modern sailboat, you are instructed to determine your location by taking 3 compass readings, resulting in a triangle, resolving to a fair chance that you are <strong>or at least were </strong>in that triangle.</p>
<div class="captioned-image-container"><figure><a class="image-link is-viewable-img image2" target="_blank" href="https://substackcdn.com/image/fetch/f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fc6cee5b7-07f7-4672-a557-5c2cab02fc75_620x412.jpeg"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fc6cee5b7-07f7-4672-a557-5c2cab02fc75_620x412.jpeg 424w, https://substackcdn.com/image/fetch/w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fc6cee5b7-07f7-4672-a557-5c2cab02fc75_620x412.jpeg 848w, https://substackcdn.com/image/fetch/w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fc6cee5b7-07f7-4672-a557-5c2cab02fc75_620x412.jpeg 1272w, https://substackcdn.com/image/fetch/w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fc6cee5b7-07f7-4672-a557-5c2cab02fc75_620x412.jpeg 1456w" sizes="100vw" /><img src="https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/c6cee5b7-07f7-4672-a557-5c2cab02fc75_620x412.jpeg" width="620" height="412" data-attrs="{&quot;src&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/c6cee5b7-07f7-4672-a557-5c2cab02fc75_620x412.jpeg&quot;,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:412,&quot;width&quot;:620,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;https://i1.wp.com/www.paddlinglight.com/pl/wp-content/uploads/2011/02/fix-example.jpg?fit=620%2C412&amp;ssl=1&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;internalRedirect&quot;:null}" class="sizing-normal" alt="https://i1.wp.com/www.paddlinglight.com/pl/wp-content/uploads/2011/02/fix-example.jpg?fit=620%2C412&amp;ssl=1" title="https://i1.wp.com/www.paddlinglight.com/pl/wp-content/uploads/2011/02/fix-example.jpg?fit=620%2C412&amp;ssl=1" srcset="https://substackcdn.com/image/fetch/w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fc6cee5b7-07f7-4672-a557-5c2cab02fc75_620x412.jpeg 424w, https://substackcdn.com/image/fetch/w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fc6cee5b7-07f7-4672-a557-5c2cab02fc75_620x412.jpeg 848w, https://substackcdn.com/image/fetch/w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fc6cee5b7-07f7-4672-a557-5c2cab02fc75_620x412.jpeg 1272w, https://substackcdn.com/image/fetch/w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fc6cee5b7-07f7-4672-a557-5c2cab02fc75_620x412.jpeg 1456w" sizes="100vw" loading="lazy" /></picture><div class="image-link-expand"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="#FFFFFF" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" y1="3" x2="14" y2="10"></line><line x1="3" y1="21" x2="10" y2="14"></line></svg></div></div></a><figcaption class="image-caption">3 lines are better than 2. You are possibly within that <a href="https://www.paddlinglight.com/articles/navigation-fixes-and-triangulation/">red triangle</a>. </figcaption></figure></div>
<p>One does this despite having a GPS, for obvious reasons to anyone who has ever relied on any highly available service - backup and validate.</p>
<p>And no, the numbers don’t match. Find peace therein.</p>
<p>The point is that within the context of “where am I?” there is always a certain uncertainty around how well all the data feeds are working. Quite literally in the rules of of the ocean, you need to continuously consult “all available means” to assure yourself that you know where you are. Granted <a href="https://ecolregs.com/index.php?option=com_k2&amp;view=item&amp;id=281:using-all-available-means-to-determine-if-risk-of-collision-exists&amp;lang=en">the rule is for avoiding a collision</a>, the point is that you may not presume to trust a single data point from a single system.</p>
<h2><strong>The link to the data</strong></h2>
<p>…is still coming, first another bit of history.</p>
<p><a href="https://en.wikipedia.org/wiki/Francis_Chichester#Aviator">Sir Francis Chichester</a> was another straightforward British navigator type with an entrepreneurial streak, having gone to New Zealand to set up a forestry startup with NZ Combinator. He later picked up an interest in flying, and went to the UK to buy a plane and fly it BACK to New Zealand over a few months -  a new Tesla the modern equivalent I presume.</p>
<div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F94e15e2a-e505-4767-9b68-6273c9517b00_253x183.png"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F94e15e2a-e505-4767-9b68-6273c9517b00_253x183.png 424w, https://substackcdn.com/image/fetch/w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F94e15e2a-e505-4767-9b68-6273c9517b00_253x183.png 848w, https://substackcdn.com/image/fetch/w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F94e15e2a-e505-4767-9b68-6273c9517b00_253x183.png 1272w, https://substackcdn.com/image/fetch/w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F94e15e2a-e505-4767-9b68-6273c9517b00_253x183.png 1456w" sizes="100vw" /><img src="https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/94e15e2a-e505-4767-9b68-6273c9517b00_253x183.png" width="397" height="287.15810276679844" data-attrs="{&quot;src&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/94e15e2a-e505-4767-9b68-6273c9517b00_253x183.png&quot;,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:183,&quot;width&quot;:253,&quot;resizeWidth&quot;:397,&quot;bytes&quot;:59288,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;internalRedirect&quot;:null}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F94e15e2a-e505-4767-9b68-6273c9517b00_253x183.png 424w, https://substackcdn.com/image/fetch/w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F94e15e2a-e505-4767-9b68-6273c9517b00_253x183.png 848w, https://substackcdn.com/image/fetch/w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F94e15e2a-e505-4767-9b68-6273c9517b00_253x183.png 1272w, https://substackcdn.com/image/fetch/w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F94e15e2a-e505-4767-9b68-6273c9517b00_253x183.png 1456w" sizes="100vw" loading="lazy" /></picture><div></div></div></a><figcaption class="image-caption">The plane spent a fair bit of its time upside down, and this was not the most spectacular nor dangerous of the <a href="https://www.a-e-g.org.uk/sir-francis-chichester.html">calamities</a> he suffered in his plane.</figcaption></figure></div>
<p>Through this long and dangerous trip (England to New Zealand in 1929 in the above single-seater float plane), he encountered a few setbacks in terms of knowing where he was.</p>
<p>Once in NZ, he decided to tackle crossing the Tasman sea, thought to be a bad idea at the time because navigation would be an issue. He needed to stop halfway across to refuel, and the tolerance for missing the refuelling stop at Lord Howe Island was near zero. If he wasn’t able to land there, <strong>he’d certainly be beyond rescue or recovery.</strong></p>
<p>He was suddenly outrunning the metrics layer of a previous generation (neat), so he needed to <a href="https://www.a-e-g.org.uk/sir-francis-chichester.html">develop his own</a>:</p>
<blockquote><p>The challenge of the Tasman remained and Chichester realised that he could reach Australia if he fitted [the plane] with floats to alight on the sea and refuel at Norfolk Island and Lord Howe Island.</p><p>The real problem now was to find these tiny spots in the sea. The only method of position-fixing available was to take sunshots with a sextant - not easy when you’re alone in the cramped vibrating cockpit - then laboriously work out the fix with pencil and paper.</p><p>He decided to use the principle of ‘off-course navigation’ i.e. deliberately aiming for a point to one side of the island. When this point was reached there would be no doubt which way to make a 90º turn for the final leg to the island. To reduce potential errors in calculation, Chichester worked out a series of examples based on his estimate of the sun’s position at the time of his expected arrival at critical points on his course.</p></blockquote>
<div class="captioned-image-container"><figure><a class="image-link is-viewable-img image2" target="_blank" href="https://substackcdn.com/image/fetch/f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F0558efd2-2ff4-40a6-96b5-f90adb84168b_700x367.png"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F0558efd2-2ff4-40a6-96b5-f90adb84168b_700x367.png 424w, https://substackcdn.com/image/fetch/w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F0558efd2-2ff4-40a6-96b5-f90adb84168b_700x367.png 848w, https://substackcdn.com/image/fetch/w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F0558efd2-2ff4-40a6-96b5-f90adb84168b_700x367.png 1272w, https://substackcdn.com/image/fetch/w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F0558efd2-2ff4-40a6-96b5-f90adb84168b_700x367.png 1456w" sizes="100vw" /><img src="https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/0558efd2-2ff4-40a6-96b5-f90adb84168b_700x367.png" width="700" height="367" data-attrs="{&quot;src&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/0558efd2-2ff4-40a6-96b5-f90adb84168b_700x367.png&quot;,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:367,&quot;width&quot;:700,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:298199,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;internalRedirect&quot;:null}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F0558efd2-2ff4-40a6-96b5-f90adb84168b_700x367.png 424w, https://substackcdn.com/image/fetch/w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F0558efd2-2ff4-40a6-96b5-f90adb84168b_700x367.png 848w, https://substackcdn.com/image/fetch/w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F0558efd2-2ff4-40a6-96b5-f90adb84168b_700x367.png 1272w, https://substackcdn.com/image/fetch/w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F0558efd2-2ff4-40a6-96b5-f90adb84168b_700x367.png 1456w" sizes="100vw" loading="lazy" /></picture><div class="image-link-expand"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="#FFFFFF" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" y1="3" x2="14" y2="10"></line><line x1="3" y1="21" x2="10" y2="14"></line></svg></div></div></a><figcaption class="image-caption">Notice the dog-leg about 1 3rd of the way across (East to West) — <a href="https://www.a-e-g.org.uk/sir-francis-chichester.html">More pics</a></figcaption></figure></div>
<p>The primary issue was around the speed at which he moved, but through a clever application of logic and tolerance for approximations, he managed (quite literally barely based on the reading of his book) to make it across.</p>
<p>He then went on to become the Chief Data Officer for the Royal Airforce flying school (training WW2 pilots), a prolific seller of maps, as well as a solo sailor (which is where he became famous).</p>
<p>The point here is that he was moving too fast for existing methods. The dynamic was changing too quickly for existing technologies. SQL Server SSIS was no longer sufficient. It may have been sufficient if you were doing milk runs in a steamship from Bristol to Londonderry (or a mid-tier bank with a CIO intent on minimal risk), but certainly not if you were trying to set a navigation record across the Tasman sea.</p>
<h1><strong>The Data Navigator</strong></h1>
<p>This is the link: Data + Navigation</p>
<p>Today, the problem of longitude has been solved to centimetre accuracy through satellite navigation<a class="footnote-anchor" id="footnote-anchor-2" href="#footnote-2">2</a>. However, the reason for the strong nautical-themed trivia, is that they demonstrate an excellent ability to manage and thrive with uncertainty.</p>
<p>Both Chichester and Cook knew the limitations of the BI tools of their time. They supplemented these with experience and intelligence to surmount what were pretty tough odds, to get to wherever they felt needed arriving.</p>
<p>For clarity, most navigators are indeed supporting roles to the Captain. The Navigator would use their combined technical skills, intuition and experience (collectively, wisdom) to give the Captain guidance on where and when. The Captain would then integrate all insights into their resource planning (a startup on the sea).</p>
<p>What is clear is that the Navigator didn’t rely on navigation aids as a crutch, but rather as means to better outcomes through a clear understanding of the weaknesses and an attempt at improving them.</p>
<p>So what is all of this leading to?</p>
<p><strong>First,</strong> the Data Navigator is a useful analogy for startups and their data abuse. </p>
<p>When exploring, there is a benefit to be had from pushing into the unknown, and new methods are often required.</p>
<p><strong>Second,</strong> bad data causes problems. Often it’s not the data, but rather the navigator.</p>
<p><strong>Third,</strong> the navigator provides context which can be used as part of a higher purpose: alignment, motivation and maybe even consensus.</p>
<p>Three thoughts, three sections. Back to the sea, from whence we came.</p>
<h1><strong>1 - Exploration as a startup analogy</strong></h1>
<p>Navigation is well applied to the data team when the team is supporting the exploration of new worlds.</p>
<p>What the navigator does is supplement and confirm a mental model that someone has built about how the world works.</p>
<h3><strong>The map is not the territory</strong></h3>
<p>The idea maze maps nicely from historical exploration to startups - barely anything is known and there is a commercial framework based on discovery leading to reward. A startup is entirely lost, by definition, in the <a href="https://spark-public.s3.amazonaws.com/startup/lecture_slides/lecture5-market-wireframing-design.pdf">idea maze</a>:</p>
<blockquote><p>A good founder is capable of anticipating which turns lead to treasure and which lead to certain death. A bad founder is just running to the entrance of (say) the “movies/music/filesharing/P2P” maze …&nbsp; without any sense for the history of the industry, the players in the maze, the casualties of the past, and the technologies that are likely to move walls and change assumptions.</p></blockquote>
<p>The navigator has a theory about where they are and are going. This information complements the plan.</p>
<p>The startup has a plan of action and looks for confirmation or invalidation.</p>
<p>A navigator needs to understand their science in addition to the history and futures of their space. This becomes acutely more important when there is some form of race, as was typically the case with all historic navigation.</p>
<h3><strong>Innovation mixed in with luck and intuition</strong></h3>
<p>A great supplement to this is that the navigator doesn’t rely entirely on data. They use it to complement their intuition.</p>
<p>In a rapidly developing environment, the intuition delivered by a navigator gives an indication of which inputs can be trusted over others, what to prioritise and how to simplify the decision space.<a class="footnote-anchor" id="footnote-anchor-3" href="#footnote-3">3</a></p>
<p>I think the Data Navigator concept echoes the purpose of data within a risky environment, where there is upside to getting <em>it</em> right.</p>
<h1><strong>2 - When it goes wrong</strong></h1>
<p>There are many documented situations where among other failings, huge ships just run aground.</p>
<blockquote><p>He left her on autopilot, but strong currents overnight pushed the ship to the north and east and the chief officer altered her course towards the north. When Captain Rugiati awoke he saw that the Scilly Isles were unexpectedly off his port, not starboard bow<a class="footnote-anchor" id="footnote-anchor-4" href="#footnote-4">4</a></p></blockquote>
<p>The issue arises when the Captain receives information from the navigator that undermines the model. That number doesn’t look right. That island doesn’t look right.</p>
<p>Twitter bots, Substack daily views. These issues are easily overlooked until they blow up.</p>
<blockquote><p>It ain’t what you don’t know that gets you into trouble. It’s what you know for sure that just ain’t so. </p><p>— <a href="https://quoteinvestigator.com/2018/11/18/know-trouble/">?</a></p></blockquote>
<p>Dealing with these is the actual skill of the navigator. Being sure of what they know, and balancing this with what they don’t.</p>
<p>Navigators provide the best supplement to decision making, trading off speed against accuracy, and relying on intuition, and overcoming ingrained preconceptions and bias.</p>
<h3><strong>Speed not haste</strong></h3>
<p>Accuracy trades off against speed almost directly.</p>
<p>Crucially, this needs to be seen in the appropriate context. Some data teams function to ensure accuracy. In that context, the Navigator mindset is likely misapplied, and it’s probably better to rely on an auditor/historian mindset<a class="footnote-anchor" id="footnote-anchor-5" href="#footnote-5">5</a>.</p>
<p>Startups require speed, due to competition. Accounting requires accuracy, due to compliance.</p>
<p>Speed and hurry should not be seen as excuses for bad data. As with navigation, so with data, there are pretty firm fundamentals that are easy to achieve, can be effectively relied upon and supplement measurement and improvement of the basics.<a class="footnote-anchor" id="footnote-anchor-6" href="#footnote-6">6</a></p>
<blockquote><p>"To err is human, but to persist [in error] is diabolical." </p><p>— <a href="https://en.wiktionary.org/wiki/errare_humanum_esthttps://en.wiktionary.org/wiki/errare_humanum_est">Latinum Sayinum</a></p></blockquote>
<p>As a navigation route starts to mature and grow in traffic, then the balance favours accuracy, to drive efficiency. Similar dynamic when a startup becomes an established scale-up.</p>
<h3><strong>Hierarchy</strong></h3>
<p>It should be noted that the Nautical Navigator operates in a strictly hierarchical environment. There are no committees at sea, the Captain has the final word, typically for good reason, though the shipping disaster earlier indicates how this becomes an issue, as described in <a href="https://www.samuelthomasdavies.com/book-summaries/business/black-box-thinking/">Black Box Thinking</a>:</p>
<blockquote><p>When we are confronted with evidence that challenges our deeply held beliefs we are more likely to reframe the evidence than we are to alter our beliefs. We simply invent new reasons, new justifications, new explanations. Sometimes we ignore the evidence altogether.</p></blockquote>
<p>Many maritime disasters, when deconstructed, relate to power dynamic issues, indicating mental inflexibility around what was true. Running your ship into a reef or ignoring a warning about a storm are great examples of ignoring the data.</p>
<p>This is because new insights are disruptive and hard to integrate. People are happier with consensus than they are with uncertainty, even when the uncertainty might save them.</p>
<blockquote><p>Organisations think they want more insights and innovation.</p><p>They are deluding themselves.</p><p>Organisations suppress insights for reasons that are locked inside their corporate DNA: <strong>organisations prize predictability and they recoil from errors</strong>. </p><p>— <a href="https://www.wired.co.uk/article/gary-klein">Gary Klein</a></p></blockquote>
<p>Granted that the above line was in the context of innovation, not avoiding disaster, but the same “don’t rock the boat” mentality underlies both aversions to innovation and failing to avert course.</p>
<p>My anecdote - If you are on a UK train and someone is in your seat, and has the same seat booked, <strong>then</strong> <strong>at least</strong> <strong>one of you is on the wrong train</strong> - an uncomfortable insight.</p>
<p>The hardest thing for the navigator to overcome is an unwanted insight.</p>
<h1><strong>3 - Purpose</strong></h1>
<p>To bring things closer to the point then. A data team ultimately brings a shared context to an organisation. <strong>We are here, and aiming there.</strong></p>
<p>As we know, the shared context is abstract, flexible, and transient. All the data does is add a foundation to the abstraction of reality we use to support and enhance our shared context. The data tends to be the one part that is consistent, reliable and infallible.</p>
<p>This has an underlying seemingly heretical belief: <strong>a single source of truth is an abstraction</strong>.</p>
<p>Single source of truth is a fairytale, data teams help reconcile this untruth.</p>
<p>What it looks like is shared context, with firmly drawn lines, in pen, on paper, that indicate that the boundary of the territory is exactly HERE.</p>
<h3>Trails </h3>
<p>And so what the data team does is simplify, create some abstractions, and identify options, and trails:</p>
<blockquote><p>Complete freedom is not what a trail offers. Quite the opposite; a trail is a tactful reduction of options.</p><p>― Robert Moor, <a href="https://www.goodreads.com/work/quotes/47328278">On Trails: An Exploration</a></p></blockquote>
<p>This is to simplify and create shorthands, narratives, and reasonable decisions.</p>
<p>However, the Data Navigator needs to keep this simplification in mind, always apply their experience and skill to avoid disaster, and ensure the drift from reality to map isn’t too severe:</p>
<p>The map maker, the surveyor, the compass reader, the ships crew, and everyone that had some part in the determination of the final pen to paper knows that there are many sources of uncertainty, each possibly extending the truth in their own limited capacity that may indeed lead to the pen on paper determination being slightly but disastrously off.</p>
<blockquote><p>We had 424,000 daily active users yesterday.” The pessimetricist thinks — hopefully, he does not say this — “Actually, you had in excess of 424,000 HTTP requests from devices associated at least temporarily with unique user accounts registered in your internal systems over a 24-hour time period that survived a number of arbitrary assumptions in your data processing systems that passed muster six months ago but which haven’t been re-evaluated meaningfully since. </p><p>— <a href="https://stkbailey.substack.com/p/beyond-one-and-zerohttps://stkbailey.substack.com/p/beyond-one-and-zero">Stephen Bailey</a></p></blockquote>
<p>But pen to paper it is, and from that moment onwards, and until a better map is created, that is the single source of truth, the true story.<a class="footnote-anchor" id="footnote-anchor-7" href="#footnote-7">7</a></p>
<div class="captioned-image-container"><figure><a class="image-link is-viewable-img image2" target="_blank" href="https://substackcdn.com/image/fetch/f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F2018d8ac-c395-405a-ab5d-30268500b8a5_516x271.png"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F2018d8ac-c395-405a-ab5d-30268500b8a5_516x271.png 424w, https://substackcdn.com/image/fetch/w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F2018d8ac-c395-405a-ab5d-30268500b8a5_516x271.png 848w, https://substackcdn.com/image/fetch/w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F2018d8ac-c395-405a-ab5d-30268500b8a5_516x271.png 1272w, https://substackcdn.com/image/fetch/w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F2018d8ac-c395-405a-ab5d-30268500b8a5_516x271.png 1456w" sizes="100vw" /><img src="https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/2018d8ac-c395-405a-ab5d-30268500b8a5_516x271.png" width="516" height="271" data-attrs="{&quot;src&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/2018d8ac-c395-405a-ab5d-30268500b8a5_516x271.png&quot;,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:271,&quot;width&quot;:516,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:46106,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;internalRedirect&quot;:null}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F2018d8ac-c395-405a-ab5d-30268500b8a5_516x271.png 424w, https://substackcdn.com/image/fetch/w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F2018d8ac-c395-405a-ab5d-30268500b8a5_516x271.png 848w, https://substackcdn.com/image/fetch/w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F2018d8ac-c395-405a-ab5d-30268500b8a5_516x271.png 1272w, https://substackcdn.com/image/fetch/w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F2018d8ac-c395-405a-ab5d-30268500b8a5_516x271.png 1456w" sizes="100vw" loading="lazy" /></picture><div class="image-link-expand"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="#FFFFFF" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" y1="3" x2="14" y2="10"></line><line x1="3" y1="21" x2="10" y2="14"></line></svg></div></div></a><figcaption class="image-caption">Substack doesn’t embed replies, <a href="https://twitter.com/imightbemary/status/1501059963036209152">so I took a screenshot</a></figcaption></figure></div>
<h3><strong>Certainty Matters</strong></h3>
<p>If the way we are collecting data, storing data, transforming data, distributing data, consuming data and then sharing data each have between 0.1% and 1% chance of error, then that error gets accumulated, and in some cases amplified, <strong>apply a narrative and suddenly the truth could be anything.</strong></p>
<p>Is the data correct? What is correct? What is?</p>
<p>This doesn’t land well with people on the receiving end of data systems and old maps. Accountants doing financial reconciliation on data warehouses, and someone who has smashed their fibreglass boat into an<a href="https://www.notion.so/blog-Data-Navigators-Accurate-data-ce52ac5c4201401a91112b35f6eda130"> uncharted granite rock</a><a class="footnote-anchor" id="footnote-anchor-8" href="#footnote-8">8</a>.</p>
<p>When a data team gives an indication of uncertainty - this causes thoughts along the lines of YOU CANNOT BE SAYING WHAT YOU ARE SAYING.</p>
<p>The map, still, is not the territory. It is part of building consensus and alignment.</p>
<h3><strong>In the same boat</strong></h3>
<p>Context isn’t enough, one needs consensus:</p>
<blockquote><p>Data professionals can <strong>build consensus</strong> as the company becomes more diverse. Data systems can <strong>establish methods</strong> for understanding the world even as it becomes more complex. [My emphasis]</p><p>— Stephen Bailey again! <a href="https://stkbailey.substack.com/p/perennial-truth-architectures?utm_campaign=myspace">Perennial Truth Architectures</a></p></blockquote>
<p>What that means, is that using context (meaning), the navigator and the team need to build from that shared context towards consensus (opinion or position reached by a group as a whole).</p>
<p>Without consensus, we get stuck in the wrong quadrant of a 2x2 matrix, where autonomy and indirection lead to the night watch sailing the boat in one direction and then the day watch on handover reversing course and backtracking. Consensus is king.<a class="footnote-anchor" id="footnote-anchor-9" href="#footnote-9">9</a></p>
<h1><strong>Last Words</strong></h1>
<p>To wrap things up, the story here is as follows:</p>
<ol><li><p>Help your team/company by navigating. Reconciling uncertainty is your special responsibility.</p></li><li><p>Hierarchy and inertia are cultural issues that flummox good intentions and amplify bad data. A purely technical orientation will only get the message so far, a voice and an opinion are necessary to succeed. </p></li><li><p>Build a shared context, and use it to reach consensus.</p></li></ol>
<blockquote><p>Navigation <strong>[Data]</strong> is easy. </p><p>If it wasn't, they wouldn't be able to teach it to Sailors <strong>[Business People]</strong>. </p><p>— <strong>James Lawrence</strong></p></blockquote>
<div class="subscription-widget-wrap" data-attrs="{&quot;url&quot;:&quot;https://groupby1.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;}"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading! Subscribe to receive new posts</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email…" 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="captioned-image-container"><figure><a class="image-link is-viewable-img image2" target="_blank" href="https://substackcdn.com/image/fetch/f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fb796b558-2b1f-48fd-a099-7d383e7fea9b_976x549.png"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fb796b558-2b1f-48fd-a099-7d383e7fea9b_976x549.png 424w, https://substackcdn.com/image/fetch/w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fb796b558-2b1f-48fd-a099-7d383e7fea9b_976x549.png 848w, https://substackcdn.com/image/fetch/w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fb796b558-2b1f-48fd-a099-7d383e7fea9b_976x549.png 1272w, https://substackcdn.com/image/fetch/w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fb796b558-2b1f-48fd-a099-7d383e7fea9b_976x549.png 1456w" sizes="100vw" /><img src="https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/b796b558-2b1f-48fd-a099-7d383e7fea9b_976x549.png" width="976" height="549" data-attrs="{&quot;src&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/b796b558-2b1f-48fd-a099-7d383e7fea9b_976x549.png&quot;,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:549,&quot;width&quot;:976,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:985101,&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;internalRedirect&quot;:null}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fb796b558-2b1f-48fd-a099-7d383e7fea9b_976x549.png 424w, https://substackcdn.com/image/fetch/w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fb796b558-2b1f-48fd-a099-7d383e7fea9b_976x549.png 848w, https://substackcdn.com/image/fetch/w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fb796b558-2b1f-48fd-a099-7d383e7fea9b_976x549.png 1272w, https://substackcdn.com/image/fetch/w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fb796b558-2b1f-48fd-a099-7d383e7fea9b_976x549.png 1456w" sizes="100vw" loading="lazy" /></picture><div class="image-link-expand"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="#FFFFFF" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" y1="3" x2="14" y2="10"></line><line x1="3" y1="21" x2="10" y2="14"></line></svg></div></div></a><figcaption class="image-caption">Cook Inc team building off-site — Australia </figcaption></figure></div>
<div class="footnote"><a id="footnote-1" href="#footnote-anchor-1" class="footnote-number" contenteditable="false">1</a><div class="footnote-content"><p>The best list of <a href="https://spiritofbuffalo.com/nautical-resources/nautical-phrases-and-terms/">nautical phrases</a>, some need a fact-check (Windfall)</p></div></div>
<div class="footnote"><a id="footnote-2" href="#footnote-anchor-2" class="footnote-number" contenteditable="false">2</a><div class="footnote-content"><p>Accuracy is still not “solved” if you need sub-centimetre precision. Precision is probably another post or line of thinking</p></div></div>
<div class="footnote"><a id="footnote-3" href="#footnote-anchor-3" class="footnote-number" contenteditable="false">3</a><div class="footnote-content"><p>Excellent podcast on why product teams need to take more risk, and a great perspective on data vs intuition <a href="https://www.thetwentyminutevc.com/grant-lafontaine/">20VC: Startups Fail Because They Do Not Take Enough Risk, Why A/B Testing is Inefficient and Slows You Down</a></p></div></div>
<div class="footnote"><a id="footnote-4" href="#footnote-anchor-4" class="footnote-number" contenteditable="false">4</a><div class="footnote-content"><p>So much detail around SS Torrey Canyon running aground: <a href="https://professionalmariner.com/torrey-canyon-alerted-the-world-to-the-dangers-that-lay-ahead/">summary details</a>, <a href="https://www.fedcourt.gov.au/digital-law-library/judges-speeches/justice-rares/rares-j-20171005">legal proceedings</a>, <a href="https://timharford.com/2019/02/lessons-from-the-wreck-of-the-torrey-canyon/">excellent podcast</a></p></div></div>
<div class="footnote"><a id="footnote-5" href="#footnote-anchor-5" class="footnote-number" contenteditable="false">5</a><div class="footnote-content"><p>Once we go beyond generalists and into specialists, we start to see the need for all kinds of data archetypes. A few that I’ve plucked from the mind space, in order of likely usefulness from startup to enterprise</p><ul><li><p>Data Navigators - less worried about the truth, more concerned about the objective</p></li><li><p>Data Plumbers - quality, speed, reliability</p></li><li><p>Data Journalists - truth-seeking, relentless, individual</p></li><li><p>Data Librarians - availability, discoverability, comprehensive</p></li><li><p>Citizen navigators - business users who can navigate data without engineering skills</p></li></ul><p>I’d like to think further on how to matrix these against the notion of <a href="https://twitter.com/swardley/status/1509478040174305282">Pioneer - Settle - Plan concept</a>.</p></div></div>
<div class="footnote"><a id="footnote-6" href="#footnote-anchor-6" class="footnote-number" contenteditable="false">6</a><div class="footnote-content"><p>I deliberately didn’t include considerations around mistakes - which while they should be expected, <a href="https://seattledataguy.substack.com/p/data-horror-stories-what-could-possibly">are their own category</a>.</p></div></div>
<div class="footnote"><a id="footnote-7" href="#footnote-anchor-7" class="footnote-number" contenteditable="false">7</a><div class="footnote-content"><p>When asked if I would task the embedding of “data-stack analytics” into a web app, my first question is <em>how important accuracy?</em> This is probably too inflammatory, but ultimately comes to an important point - it is much easier to constrain the possibilities of embedding analytics if the system is one coherent stack, same DB, same framework, same developer.</p><p>Introduce an entirely different stack, with different latencies, different processes, a DIFFERENT TEAM, well then the chance for amplifying error increases, just like if you subcontract the printing of your maps to the lowest bidder and they distort the scaling inadvertently to get it to fit into their printer. </p><p>Substack had this issue, where they were double counting the readers of posts, presumably root cause is related.</p></div></div>
<div class="footnote"><a id="footnote-8" href="#footnote-anchor-8" class="footnote-number" contenteditable="false">8</a><div class="footnote-content"><p>Crazy <a href="https://www.youtube.com/watch?v=lmw7_DzM2JI">replay</a> of this boat running aground, to be fair to that rock, it’s actually an island!</p></div></div>
<div class="footnote"><a id="footnote-9" href="#footnote-anchor-9" class="footnote-number" contenteditable="false">9</a><div class="footnote-content"><p><a href="https://roundup.getdbt.com/p/two-types-of-power">dbt captures an important subtlety</a> on the road to consensus - <strong>power.</strong> As we’ve seen (in boats above, in varying political systems and in companies we’ve worked for), how we reach consensus can be reached in varying ways.</p><blockquote><p>[There are] two paths to growth in an organization that represent two different approaches to truth: the path of power, in which the word of God CEO comes down and slowly diverges via apostles organizational hierarchy; and the path of consensus, in which multiple humans converge on a truth based on shared principles</p></blockquote><div class="poll-embed" data-attrs="{&quot;id&quot;:7447}"></div><p></p></div></div>]]></content><author><name>Matt Arderne</name></author><category term="writing" /><category term="groupby1" /><category term="Data" /><summary type="html"><![CDATA[Rich with historical trivia, linking to great practical insights, and sublime section headings. A must skim for any slow Friday - Data Workers Daily]]></summary></entry><entry><title type="html">Foils Have Hooks</title><link href="https://rdrn.dev/foils-have-hooks/" rel="alternate" type="text/html" title="Foils Have Hooks" /><published>2022-08-18T01:17:00+00:00</published><updated>2022-08-18T01:17:00+00:00</updated><id>https://rdrn.dev/foils-have-hooks</id><content type="html" xml:base="https://rdrn.dev/foils-have-hooks/"><![CDATA[<p><em>Foils are pretty easy to ignore, ask me. I managed for nearly 8 years. I managed to miss the barbed hooks and swim on. Surfing, bouldering, drones, wave pools, offshore sailing for a seasick summer, you name it.</em></p>
<p><em>This is a story about how you need patience to let the barbs catch.</em></p>
<div><a href="https://www.youtube.com/watch?app=desktop&amp;v=fzig8JR2iT0">(What is a foil)</a><div class="captioned-image-container"><figure><a class="image-link is-viewable-img image2" target="_blank" href="https://substackcdn.com/image/fetch/f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F400eeaa3-b6e8-4358-969b-1c3df7a02d02_512x300.png"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F400eeaa3-b6e8-4358-969b-1c3df7a02d02_512x300.png 424w, https://substackcdn.com/image/fetch/w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F400eeaa3-b6e8-4358-969b-1c3df7a02d02_512x300.png 848w, https://substackcdn.com/image/fetch/w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F400eeaa3-b6e8-4358-969b-1c3df7a02d02_512x300.png 1272w, https://substackcdn.com/image/fetch/w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F400eeaa3-b6e8-4358-969b-1c3df7a02d02_512x300.png 1456w" sizes="100vw" /><img src="https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/400eeaa3-b6e8-4358-969b-1c3df7a02d02_512x300.png" width="512" height="300" data-attrs="{&quot;src&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/400eeaa3-b6e8-4358-969b-1c3df7a02d02_512x300.png&quot;,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:300,&quot;width&quot;:512,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:69160,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F400eeaa3-b6e8-4358-969b-1c3df7a02d02_512x300.png 424w, https://substackcdn.com/image/fetch/w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F400eeaa3-b6e8-4358-969b-1c3df7a02d02_512x300.png 848w, https://substackcdn.com/image/fetch/w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F400eeaa3-b6e8-4358-969b-1c3df7a02d02_512x300.png 1272w, https://substackcdn.com/image/fetch/w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F400eeaa3-b6e8-4358-969b-1c3df7a02d02_512x300.png 1456w" sizes="100vw" /></picture><div class="image-link-expand"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="#FFFFFF" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" y1="3" x2="14" y2="10"></line><line x1="3" y1="21" x2="10" y2="14"></line></svg></div></div></a></figure></div><p>The first time I ever saw a foil in the flesh was in 2014, working on a super yacht in Phuket. An older couple were taking turns towing each other behind a small boat. At the time I thought I wish they’d give me a go, it looked like they were really hacking at it. With the confidence of someone who was effectively a professional boat driver and cleaner, with a lifetime of dragging people behind boats on nearly anything, this looked like easy money to me. They never came back and I was too busy chasing barrels in Bali for it to cross my mind again, and so the barbed hook missed me for the first time.</p><p>The first time I tried a foil was in 2017. Clifford of UniFoil had been in touch with my dad about something to do with surfskis, and it surfaced that he was building a foil. We got in touch and offered our boat to do some towing in the river in exchange for a go. We have a few cracks at it, I nearly swallowed the foil wing whole in a jack-knife fall, and Gumby who had a few hours on it over us even managed to surf the tiny wake. My brother linked up with them the next day and had a go at surf foiling. I was already back in Cape Town as I had a new job, was recently married, was building RC gliders, and so slipped the barbs once again. I was definitely tempted as Clifford/Unifoil was even offering a local orders discount. I asked him if he had any used setups going cheap, but never heard back. Back to Cape Town I went, without space for another consuming hobby in my life<a class="footnote-anchor" id="footnote-anchor-1" href="#footnote-1">1</a>.</p><p>Fast forward to 2021, having moved to London (not conducive to anything other than indoor bouldering) and then Oxford (even more landlocked!), I found myself in a riverside apartment for the summer. A friend from Zurich instructed me to get an Axis 1150. Foiling is happening, he said. These things were not cheap, in fact they are blindingly expensive, but somehow fate handed me the only used 1150 I’ve seen listed. Some hyper aggressive scrounging and I managed to put together a reasonable, if metallurgically tired setup. I was going to learn to dockstart.</p><div><hr /></div><p>I have a theory for how to spend your time: do what is going. (what is going? Do that). This means that based on your current and near immediate future, choose your current hobbies and interests based on what is optimal for that present and future. Do what is going. Wherever you are in the world, find the thing that catches your interest, gets you excited but most importantly is appropriately selected for your life/lifestyle. When in London, bouldering &amp; cycling are appropriate. When in Cape Town in summer, don’t hate the 3 month long 40kn gale, ditch the surfboard and get some kiting in. </p><p>The advice is to be water, dear friend. Go with the flow rather than dogmatically hounding your calendar for your next trip.</p><p>Advice easily given, and yet poorly applied. I no longer kite and so spend many months in Cape Town eeking out icy surfs while the wind nukes. In London I spent hours getting to Southampton to crew on racing yachts. You can’t reason with your own curiosity really, but what you can do is use this theory to justify something new. And so applying my theory to myself, living 100m from the river Thames, with a push from a friend, the challenge of learning to pump a foil off the dock felt like it was right.&nbsp;</p><div><hr /></div><p>Having not seen a foil since 2017, and with a grand total of well below 5 min of foil time, I was cautiously optimistic that I would just nail it. This being a semi-reliable hunch, as the more things you crack, the easier the incremental new things become.</p><p>Not so with the dockstart. I stand by the 30 attempts per day for 3 days<a class="footnote-anchor" id="footnote-anchor-2" href="#footnote-2">2</a> as an approximate minimum effort to get over the first hump (not falling immediately). Your brain needs time, and especially sleep to synthesise the new experiences, and eventually you just hit a wall each day. Fascinating. </p><p>Save yourself the trouble and spend an hour behind a boat if you have never foiled before, or just go for it - learning and getting spitting mad while doing it is part of the fun.&nbsp;</p><div class="captioned-image-container"><figure><a class="image-link is-viewable-img image2" target="_blank" href="https://substackcdn.com/image/fetch/f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F9067c3b1-e84e-46d3-96cc-598ea5e60dad_1887x1103.jpeg"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F9067c3b1-e84e-46d3-96cc-598ea5e60dad_1887x1103.jpeg 424w, https://substackcdn.com/image/fetch/w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F9067c3b1-e84e-46d3-96cc-598ea5e60dad_1887x1103.jpeg 848w, https://substackcdn.com/image/fetch/w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F9067c3b1-e84e-46d3-96cc-598ea5e60dad_1887x1103.jpeg 1272w, https://substackcdn.com/image/fetch/w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F9067c3b1-e84e-46d3-96cc-598ea5e60dad_1887x1103.jpeg 1456w" sizes="100vw" /><img src="https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/9067c3b1-e84e-46d3-96cc-598ea5e60dad_1887x1103.jpeg" width="1456" height="851" data-attrs="{&quot;src&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/9067c3b1-e84e-46d3-96cc-598ea5e60dad_1887x1103.jpeg&quot;,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:851,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:202965,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F9067c3b1-e84e-46d3-96cc-598ea5e60dad_1887x1103.jpeg 424w, https://substackcdn.com/image/fetch/w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F9067c3b1-e84e-46d3-96cc-598ea5e60dad_1887x1103.jpeg 848w, https://substackcdn.com/image/fetch/w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F9067c3b1-e84e-46d3-96cc-598ea5e60dad_1887x1103.jpeg 1272w, https://substackcdn.com/image/fetch/w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F9067c3b1-e84e-46d3-96cc-598ea5e60dad_1887x1103.jpeg 1456w" sizes="100vw" loading="lazy" /></picture><div class="image-link-expand"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="#FFFFFF" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" y1="3" x2="14" y2="10"></line><line x1="3" y1="21" x2="10" y2="14"></line></svg></div></div></a><figcaption class="image-caption">This is not what I meant by saving yourself time. Step offs are challenge in their own right!</figcaption></figure></div><p>Cracking dock starting is possibly worthwhile. It is ridiculously challenging initially, but eventually your brain just rewires itself, and you can cruise, work on efficiency, strength, technique in order to get beyond the breathless bursts and up to 1 minute flights and beyond. The main value ultimately, as jumping off the dock is a means to an end, is that it gives you the very useful sensitivity to low speed near-stall riding, and very quick feedback to the feeling of different setups. The only casualty was a few gashes from The Knives as my brother likes to call them, and a nearly toasted 4/3mm wetsuit that took the brunt of the 1000’s of times elegantly climbing (flopping seal) up the concrete jetty.</p><p>What the dock doesn’t teach you is to deal with the dynamic and turbulent sea, least of all the incredible surges of energy in a wave.</p><div><hr /></div><p>Cornwall was always the final destination, and with the foil hooks starting to bite, we headed to that rugged North C. coastline. This being Autumn, the surf started to turn on. The foil was parked. The 6’1 was freshly waxed with an Insta worthy base-coat/top-coat textured landscape, and the mind focussed itself on chasing big walls of raw Atlantic energy dragging themselves over reefs along the coast. </p><p>In the back of my mind the foil was still there, but only having the massive 1150cm span wing and a kiteboard, surf foiling eluded my invalid attempts, stuck as I was between the urge to buy a surf foil setup and the desire for a new mid-length board. </p><p>Front of mind, the mid-length won. </p><p>Foil gear sits near the “how much!?” range for most, and the inflexible nature of each bit, and incompatibility between brands, is really all just stinging nettle in a surfer’s wallet. Up to £1000 for a board and nearly the same again for the foil bits I needed just wasn’t happening, especially when a mid-length in SA costs less than a foil front-wing alone (a used one!).&nbsp;</p><p>Back to South Africa for December, with the pump foil still in tow, but not really getting a look in over the mid-length and a few runs of good surf, and a freakish meaty swell to light up some beaches. The kiteboard that I brought with got wet once in the sea, and a few dock sessions, but it really wasn’t working on that board, and I was loath to part with any more money. </p><p>My hometown of St Francis Bay is pretty well renowned for fun easy surf, and is high on the list for local foilers. This has led to a few grumbles from the locals at the prime longboard surf spot, frequented by all craft, all ages, and probably has become too festive with foils thrown into the mix. </p><p>The whole town is oriented to water spots, and so leaving the foil aside, I surfed my dad’s new noserider, the first time I’ve surfed a longboard with a flatter tail rocker, and it was quite perfect. Equally good was the malibu surf rescue board. I bumped into the local foil crew and chatted shop about buying one of their progression boards, and considered chatting to the local surf-pro who looked to be foil hooked, but the spots were all rammed with tourists and the surf was good enough. </p><p>Clearly the foil's hooks were slipping.</p><p>The foil does work in mysterious ways, and someone my dad knew (or knew of) had bought the Flite efoil franchise for SA, and had got chatting when he paddled past. “Don’t ask, don’t get” applies here. Turns out he was keen for people to try it out, and so the 3 brothers paddled over to the slipway that next morning for a go. Efoils are like jet skis, best to have a buddy who owns one. </p><p>The novelty was epic, but the appeal wears thin, rather it feels functional, like a jetski. And so another barb slipped, and I headed back to winter in Cornwall, ready to challenge some winter walls.</p><div><hr /></div><p>It is no secret that the North Atlantic slows down in the summer. If you’ve grown up surfing the Southern Oceans, you’d be excused for not believing quite how flat it gets. The winter months see the full brunt of the gulf-stream born storms hammering straight into the coast, month on month of swell, and the wind backing just frequently enough to give the attentive surfer some dreamy cold water moments while the tide is just so (whipping up and down its 8 metre range).&nbsp;</p><p>Suddenly it stops.&nbsp;</p><p>Late spring sees a big high pressure system parking itself in the North Atlantic and deflects and neutralises any semblance of a storm, only the odd hurricane pulse can traverse the gap. This leaves the western Europe coast, at least from a surf perspective, in a state of lake-like tranquillity. From ravaged sea cliffs to inviting coastal swims. Polarised is the word.</p><p>And so with this in store, I felt the stars starting to align, and a surf foil would start to sell itself in my mimetic subconscious. A few things needed to line up for this to work, and allow for the metamorphosis to take place. </p><p>Primarily, it was viability. Are the circumstances correct and ready? Alluding to this theory earlier, the circumstances had up until this point not been ready. </p><p>Now, close to the beach, a few GBP saved for a used board, nearly flat ocean. Perfect.</p><div><hr /></div><p>Next on the list is more subtle. <strong>The Scene.</strong> </p><p>The best stoke in life is shared stoke, and there is nothing quite like the shared froth of a bunch of people facing into the unknown possibilities of a new thing to learn. This is amplified when the thing itself is experiencing an inflection point in its growth or innovation. </p><p>One of my formative experiences was the sudden growth of downhill skateboarding in 2009, of which I and a few friends were reasonably influential (before it was a thing). This surge was triggered by many factors, technological, economical, but what lit the spark was a 
<a href="https://www.youtube.com/watch?v=JMLFZcONQAs">few video clips</a> showing a new way of doing something otherwise quite familiar<a class="footnote-anchor" id="footnote-anchor-3" href="#footnote-3">3</a>.<br /><br />Something I reflect on often about that skateboarding time is that I spent the year prior to getting involved in skateboarding working on a yacht that was doing a refit in Mallorca. The year was spent mostly discovering life as a newly minted yachty, and while I dragged along a longboard (and making a replacement when it snapped, in the lazarette of certainly one of the most beautiful classic sailing yachts in the world), I never bothered to notice that Mallorca has some of the best skateboarding in Europe, and home to the only 360deg corner I know of. Skip forward a few years and I was straight back there, amazed at how perfect the hills were.</p><p>The point is, neither skateboarding nor I was in a position for that level of attention. I had all the time in the world, but I was on an adventure already, and didn’t necessarily need nor was I looking for additional ways to hurt myself in the pursuit of adrenaline. </p><p>I often wonder what my skateboarding career would have looked like if I had pursued skateboarding with the focus I did pursue it, but starting exactly 18 months earlier, with literally every race I would come to dream of within a few hours travel.</p><p>In the end, with luck and enthusiasm to thank, we led the charge of South Africans in the downhill racing scene, and travelled to a few continents, but mostly the Alps, shooting video parts from the nascent growth, right up until 2015 when it hit a relative plateau, and my interests moved on, my ligaments grateful. Downhill skateboarding has many ebbs and flows, like skateboarding itself, but this was the first time it hit mainstream for a brief blip.</p><p>Regardless of where foiling ends, the scene is what sustains and drives the hook deeper. </p><p>Foiling is at this point. Once (still?) a kooky fringe activity, the estranged child of SUP. Foiling is slowly developing a coherent style, and eventually it may even establish a place in the line-up.</p><div><hr /></div><p>Presently, I am finding my glides along the North Cornwall coast, finding the best chip’n’rip opportunities on a low tide, up the beach away from anyone. Foiling is at a point where it is still rare enough and early enough to mean that everyone at my level (linked my first few waves as of writing this) is a likely candidate for shared sessions, shared tips and shared stoke. Myself and another Matt are now partners in bump hunting and gear tuning . A sandbar that fades into a hole is optimal, giving us an easy entry and then space to turn the massive dock start oriented foils out to find another wave. </p><p>The gear I have is enviable to someone who has no gear, while frustrating to me in it’s lack of relative performance, and causing much time lost, foil-brained to the max, in pursuit of what might speed things along, as seems to be the case with all the foilers along the North Cornwall coast, a tight knit crew with a friendly attitude, known as the <a href="http://KernowFoilCrew.co.uk.">KernowFoilCrew.co.uk</a></p><p>The best solution to the foil-froth-brain feeling is more time in the water, trying smaller waves, <strong>try try try</strong> other people’s gear, but ultimately, I have found no shortcuts.</p><p>What is clear is that the humble foil might finally be having a moment. In the greater scheme of things, people were foiling as a hobby all the way back to the 90’s - with pedal assisted foiling canoes and all manner<a class="footnote-anchor" id="footnote-anchor-4" href="#footnote-4">4</a>. Readers may wonder (if not already hooked), if now is their moment. If the water is ready. To that I would say, let yourself be drawn in. If you find yourself hooked, let the hook settle.&nbsp;</p><p>The rest of us that are in various states of the flow should maintain perspective. Nothing lasts forever, this too shall pass, and life will go on. That said, embracing the present is what it is about. What a special thing to be a part of. From my experience with downhill skateboarding, a combination of things lead to a plateau - gear performance plateau, saturated market, public pushback, governing body collapse, trends changing, bodies aching.&nbsp;</p><p>With foiling, the key risks are likely negative perceptions from surfing, and a crowded foil line-up won’t get anyone stoked - which we are likely closer to critical capacity than we realise.</p><p>A note to the other things that have their hooks but have yet to pan out, remaining on the distant horizon of possibility. To me, this is sailing, far away. These things sit waiting patiently, possibly forever, but will also sink a few hooks if the moment is right.</p><p>Foiling is here. The line-ups are probably not ready for a critical mass of new novices, and etiquette, rules, lawsuits and probably worse are likely still in store, but this post serves as a tribute to all the curious tinkerers and surfers who have bent aluminium and carbon to the current point, and especially those who spread the stoke even further.</p><p>As I write this, having completed my first 3 wave link (entirely marginal link, and after far too many attempts, and a serious limp from getting ridden over by my foil in the shorebreak), I wondered who this is for. </p><p>If you’re hooked, commiserations and joy to you, your attention span and your wallet. </p><p>If not, then this is maybe for you. Nearly everyone who got hooked was somewhat sceptical, maybe even had a go or bought a foil only for it to fall to the side. You can’t force it (you could I suppose), but when the time is right, let yourself take the bait, and run with it a bit.</p><div class="captioned-image-container"><figure><a class="image-link is-viewable-img image2" target="_blank" href="https://substackcdn.com/image/fetch/f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F9eb187a6-ab64-4722-9857-2911eb92e9da_2049x1536.jpeg"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F9eb187a6-ab64-4722-9857-2911eb92e9da_2049x1536.jpeg 424w, https://substackcdn.com/image/fetch/w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F9eb187a6-ab64-4722-9857-2911eb92e9da_2049x1536.jpeg 848w, https://substackcdn.com/image/fetch/w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F9eb187a6-ab64-4722-9857-2911eb92e9da_2049x1536.jpeg 1272w, https://substackcdn.com/image/fetch/w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F9eb187a6-ab64-4722-9857-2911eb92e9da_2049x1536.jpeg 1456w" sizes="100vw" /><img src="https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/9eb187a6-ab64-4722-9857-2911eb92e9da_2049x1536.jpeg" width="1456" height="1091" data-attrs="{&quot;src&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/9eb187a6-ab64-4722-9857-2911eb92e9da_2049x1536.jpeg&quot;,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1091,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:538798,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F9eb187a6-ab64-4722-9857-2911eb92e9da_2049x1536.jpeg 424w, https://substackcdn.com/image/fetch/w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F9eb187a6-ab64-4722-9857-2911eb92e9da_2049x1536.jpeg 848w, https://substackcdn.com/image/fetch/w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F9eb187a6-ab64-4722-9857-2911eb92e9da_2049x1536.jpeg 1272w, https://substackcdn.com/image/fetch/w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F9eb187a6-ab64-4722-9857-2911eb92e9da_2049x1536.jpeg 1456w" sizes="100vw" loading="lazy" /></picture><div class="image-link-expand"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="#FFFFFF" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" y1="3" x2="14" y2="10"></line><line x1="3" y1="21" x2="10" y2="14"></line></svg></div></div></a></figure></div><div class="footnote" id="footnote-1"><a href="#footnote-anchor-1" class="footnote-number" contenteditable="false">1</a><div class="footnote-content"><p>Another piece of irony that foils are entirely aerodynamics nerd heaven, and I lost interest in RC planes pretty quickly because of the lack of physical challenge to complement the very interesting wing design elements - washout, foil section, dihedral, reynolds…</p></div></div><div class="footnote" id="footnote-2"><a href="#footnote-anchor-2" class="footnote-number" contenteditable="false">2</a><div class="footnote-content"><p>If you’ve never seen a foil before, don’t beat yourself up, I estimate I must have had around 1000 attempts before feeling any semblance of control.</p></div></div><div class="footnote" id="footnote-3"><a href="#footnote-anchor-3" class="footnote-number" contenteditable="false">3</a><div class="footnote-content"><p>Early GoPro on a <a href="https://vimeo.com/13144036">stick pioneer</a>, to my credit. Netsky even met me with some tickets to his SA concert.</p></div></div><div class="footnote" id="footnote-4"><a href="#footnote-anchor-4" class="footnote-number" contenteditable="false">4</a><div class="footnote-content"><p><a href="https://www.youtube.com/watch?v=1DdY4Y4pu-0">Laird in 2003</a>, <a href="https://www.youtube.com/watch?v=RvE6Xd6tgPA">a race in 2000</a></p></div></div><a href="#footnote-anchor-5" class="footnote-number" contenteditable="false"></a><div class="footnote-content"><p><a href="https://magicseaweed.com/news/flattest-spell-forever/12528/">Edit: 2022 was the flattest summer ever</a></p></div></div>]]></content><author><name>Matt Arderne</name></author><category term="writing" /><category term="rdrn" /><category term="Hobbies" /><summary type="html"><![CDATA[Foils are pretty easy to ignore, ask me. I managed for nearly 8 years. I managed to miss the barbed hooks and swim on. Surfing, bouldering, drones, wave pools, offshore sailing for a seasick summer, you name it. This is a story about how you need patience to let the barbs catch.]]></summary></entry><entry><title type="html">The future history of Data Engineering</title><link href="https://rdrn.dev/data-engineering/" rel="alternate" type="text/html" title="The future history of Data Engineering" /><published>2022-01-07T19:17:00+00:00</published><updated>2022-01-07T19:17:00+00:00</updated><id>https://rdrn.dev/data-engineering</id><content type="html" xml:base="https://rdrn.dev/data-engineering/"><![CDATA[<p>These get posted at <a href="https://groupby1.substack.com/">groupby1.substack.com</a> first and posted here as a backup. Comments enabled here and on substack, appreciate any questions.</p>

<p><em>Trigger warning: this may trip your thought leadership nerve, but I’m mostly riffing, and I think it is additive. This post was easy to start, a pain to finish and lots of fun in the middle.</em></p>
<p><em>This is a narrative for the near future of Data Engineering in startups, and I think makes some interesting points. I do think the post has avenues for expansion, especially counter-arguments in the context of enterprise tech.&nbsp;</em></p>
<p><em>Hello to new subscribers, and a shoutout to anyone using the RSS feed.</em></p>
<p><em>Thanks to the <a href="https://locallyoptimistic.com/community/">LocallyOptimistic.com</a> community for some lively discussions on an early draft of this post.</em></p>
<div><hr /></div>
<h2><strong>Intro</strong></h2>
<p>The core premise of this post is:</p>
<p>Most businesses' <strong>data engineering</strong> needs have been solved or will shortly be solved by managed services that 10 years ago would require endless and extensive self-built ETL pipelines, databases and tools.</p>
<p>For the exceeding majority of businesses, this means they can and should focus on building capacity for business logic, analysis and predictions instead of data engineering. </p>
<p>The minority of businesses that need streaming services / low latency batch data, will further push the boundary, using specialist Data Engineers.</p>
<p>The implications are that while Data Engineering is growing rapidly, so too are the forces that will undermine the need for Data Engineers, and the current under-supply of competent engineers will lead to an over-supply of junior engineers (this should ring a bell to the Web-dev then Full-stack then Data Science boot camps).</p>
<p>Let us break down the premise further, as that is a massive generalisation, and to the reader of this niche corner of opinion, may seem counterintuitive, inflammatory, and frankly, stupid.&nbsp;</p>
<p>6 points, expanded into 6 sections. Let's go.</p>
<h3><strong>1. Majority</strong></h3>
<p>Keep in mind the context for the majority of businesses - technology is often an expensive misdirect when implemented badly. This is exceedingly true when the technology is not directly aligned with their competitive advantage. Majority here means all businesses investing in technology, not just the typecast "blitz scale tech business". All businesses should take advantage of data tooling, or they will in effect be flying blind relative to their peers (or get an advantage over their peers if they get it right).</p>
<h3><strong>2. Data engineering</strong></h3>
<p>Plumbing of the data - ETL, data warehouse, streaming, batch, orchestration, infra etc. Niche skills that are hard to hire for.&nbsp;</p>
<p>Distinct from Software Engineering. Mostly not backend developers, more commonly generalists, occasionally highly skilled specialists.&nbsp;</p>
<p>Data Engineering is quite contentiously named as is made clear later.</p>
<h3><strong>3. Business logic</strong></h3>
<p>This is covered elsewhere - but in the most abstract terms - businesses should hope that their engineers’ primary focus is on improving the ability to represent the businesses various states, and enhance the ability to interact and modify these states, and even predict outcomes to modifications.</p>
<p>Businesses should strive not to have people worrying about managing infrastructure, plumbing, ops etc over and above what is strictly necessary. Playing on the margin of this point is what the CTO does.&nbsp;</p>
<h3><strong>4. Managed services</strong></h3>
<p>Think about Sysadmins of the mid-2000s, arcane knowledge that is now redundant in almost every business, due to AWS, then Heroku, now Vercel, Supabase etc flying up the stack. (Or hadoop specialists. Big Data DBA anyone?).</p>
<p>Same with Data Engineering. <strong>Tech abstraction as a service.</strong> Managed Services are arriving fast with the likes of Snowflake, Fivetran and the commodifying follow-ons. They’re aggressively <a href="https://benn.substack.com/p/data-and-the-almighty-dollar">chasing down the almighty dollar,</a> undercutting margins, offering better cost structures, as well as a flurry of bundling mergers and consolidation.</p>
<h3><strong>5. The minority</strong></h3>
<p>Many businesses will still have an exceedingly strong need to increase their advantage through data engineering. Take High-Frequency Trading as an example. These businesses will progress the field, and the best data specialists will be needed in those spaces.</p>
<h3><strong>6. Implications</strong></h3>
<p>This one is clear, don’t get caught on the wrong side of any sea change. I would (do) argue that the ETL engineer skill-set is mostly going to be marginalised until :skull:.</p>
<p>In much the same way that the market demand for boot-camp Data Scientists is low, due in part to oversupply, better tooling and additionally a reorientation around the expectations of a Data Scientist, so too do I propose that Data Engineering demand dynamics will change.&nbsp;</p>
<p>I'd like to hope that the rate of ETL code being written is in decline because most can rely on managed services or open-source ELT extractors.&nbsp;</p>
<p>This point gets some pushback, discussed further in part 6.</p>
<p>But more generally, here is something about changes in the tide:</p>
<p>When the tide turns, there is a definite moment when the tide has indeed turned, but that change in direction becomes apparent to different boats at different times. This depends on context, location, keel depth and distance from both the equator and the moon (not to mention the sun). The gravitational pull has changed, but the water doesn’t start moving everywhere at the same time.&nbsp;</p>
<p>This blog also, as it became clear through writing it, and quoting sources, agrees with a certain viewpoint on specialisation, the link shall possibly become obvious.</p>
<p>So, that is the intro, I’m going to stick with those 6 sections so that coherence abounds, and explain / expand the points in finer detail.&nbsp;</p>
<h1><strong>1. Majority&nbsp;</strong></h1>
<p><strong>Nearly every company needs a data person</strong>. Any company that has ambitions to beat market returns on their investor’s capital and doesn't have someone in a broadly data-dedicated data role will certainly struggle to compete.</p>
<p>10-15 years ago an easy indication that a company wasn't keeping up was having no IT person, the modern equivalent is having no Data Person.&nbsp;</p>
<p><strong>But the premise is that that person no longer needs to be a Data Engineer.</strong></p>
<p>Reference the sysadmin/dba type roles, which for 99.99% of businesses does not exist, because cloud providers hire those people and abstract their role into a service.</p>
<p>The thrust is that Data Engineering could go the way of the dba. Niche, specialised.</p>
<h3><strong>Who/What is the data person then?</strong></h3>
<p>Data engineering in the ETL/ELT sense has historically been complex, difficult, emergent, at times chaotic, and required niche software engineering skills.</p>
<p>Now, Extract and Load for most businesses using generic SaaS tools, is solved. Using the standard set of CRM, HR, Finance, and Ops tools, 80% of your ELT work is done for you at a standard, predictable price.&nbsp;</p>
<p>Commoditised EL SaaS is ubiquitous, with the <em>second wave</em> (of EL providers) offering better services at more favourable terms than Fivetran, with <em>multiple variants and mutations.</em></p>
<p><strong>T for transform, with general best practices courtesy of dbt, is where the bulk of the&nbsp; analytics work lies. Critically this is where the data person should start.&nbsp;</strong></p>
<p>They should be, to some degree, what is known as an Analytics Engineer, but possibly more usefully, <strong>not a specialist Data Engineer </strong>(nor a Data Scientist for that matter, but that bridge has been crossed). </p>
<p><strong>They should be a<a href="https://blog.getdbt.com/we-the-purple-people/"> purple data generalist</a>:</strong></p>
<blockquote><p>The data world needs more purple people — generalists who can navigate both the business context and the modern data stack. Let's put aside skillset dichotomies, and learn to feel comfortable in the space between.</p></blockquote>
<p>If you do need a Data Engineer, probably for some or other niche API that isn’t supported by your EL tool, then this is great work to outsource! (My day-to-day work: Supporting companies on their fringe data engineering needs when their internal team wants some extra capacity or capability).</p>
<p><strong>But the first full time data hire needs to be obsessed with business impact.</strong></p>
<h1><strong>2. Data Engineering</strong></h1>
<p><strong>A tale of two types of data Engineers: </strong>Again with the generalisations! In my view and from what I've seen in the job market, there are two types of data engineers at the moment:</p>
<h3><strong>(1) Data Engineers: Software engineers, Data</strong></h3>
<p><strong>Described as</strong>: Software engineering specialists, with data as the core specialisation, who can focus on the niche areas of data engineering and can work with complex real-time data systems.</p>
<p><strong>Needed When</strong>: Only required in tech businesses, and only when software engineers cannot assist. This is not needed for 99% of businesses and these candidates know what they want to work on and have the agency to decide.</p>
<p><strong>Characteristics:</strong></p>
<ul><li><p>Tools-oriented</p></li><li><p>Computer scientists / Very good software engineers</p></li><li><p>Driven by curiosity</p></li><li><p>Driven towards perfection of the craft</p></li><li><p>Want the solutions to be elegant, optimised</p></li><li><p>A specialised role for a specialised business problem</p></li></ul>
<p><strong>Currently and into the future</strong> hired to do the following (quote from a slack group from someone who may or may not want the shoutout):</p>
<blockquote><p>When building out some data-focused applications, like, say, a streaming data enrichment layer that serves up some curated data real-time to other micro-services, we need software engineers and data engineers. Occasionally you’ll find unicorns who can do it all (we have a few of them), but the vast majority of software engineers aren’t experienced enough with data to also be able to solve complex, big-data, non-SQL problems as well as someone more specialised could.</p></blockquote>
<h3><strong>(2) Data Engineers: Solutions oriented engineers, Data</strong></h3>
<p><strong>Described as</strong>: Business optimisers. Data engineers that engineer data because it is the biggest blocker in the optimisation of a bigger picture issue, namely <strong>analytics</strong> as it relates to business improvement efforts. I love this post from <a href="https://erikbern.com/2021/07/07/the-data-team-a-short-story.html">erikbern.com</a>:</p>
<blockquote><p>You work with the recruiting team to define a profile for a generalist data role, that emphasizes core software skills, but with a generalist attitude and a deep empathy for business needs. For now, you remove all the mentions of artificial intelligence and machine learning from the job posting.</p></blockquote>
<p><strong>Needed when:</strong> Data engineering data extraction and centralisation is identified as the key issue in a long line of issues. The primary bottleneck in the optimisation process.</p>
<p><strong>Characteristics:</strong></p>
<ul><li><p>Goals oriented</p></li><li><p>Background in an adjacent engineering field</p></li><li><p>Driven by optimisation, the ultimate goal</p></li><li><p>Utilitarian problem solvers, relied upon to get the job done</p></li><li><p>Functionally broader skill set, maybe even new to the domain, and not (yet) experts in technology</p></li></ul>
<p><strong>Historically</strong> hired to <a href="https://www.getdbt.com/what-is-analytics-engineering/">do the following:</a></p>
<blockquote><p>If you were on a “traditional data team” pre 2012, your first data hire was probably a data engineer. You needed this person to build your infrastructure: extract data from the Postgres database and SaaS tools that ran your business, transform that data, and then load it into your data warehouse.</p></blockquote>
<p><strong>Currently</strong> hired to:</p>
<p>Build data warehouse, pipelines, dimensional modelling, deploy analytics tools, string it together, but critically, to drive change in a business.</p>
<p>In short - Type 2 wants the solution to be cheaper, easier, faster, best fit, 80/20, is less intrinsically interested in the how and more interested in the impact on outcomes.&nbsp;</p>
<p>In my opinion, this is basically now Analytics Engineers, and if you disagree with my take on this concept, speak to an Analytics Engineer who had the title Data Engineer, and ask them if they can relate. Similar experience to those <a href="https://jasnonaz.medium.com/data-scientist-or-analytics-engineer-how-i-made-the-decision-that-defined-my-career-1646d4296467">Data Scientists who preferred Analytics Engineering</a>.</p>
<p><strong>Another way to think about these distinctions is (</strong><a href="https://erikbern.com/2021/07/23/what-is-the-right-level-of-specialization.html">erikbern.com</a><strong> </strong>again<strong>):</strong></p>
<blockquote><p>I often think of people as (and this is an unfair crude generalization etc) roughly on a spectrum between tools-oriented and goal-oriented.</p></blockquote>
<p><strong>Memed as:</strong></p>
<h1><strong>3. Business Logic</strong></h1>
<h3><strong>Engineers as optimisation specialists</strong></h3>
<p>My background is in industrial engineering, which is broadly a stats'y engineering field incubated in the optimisation of systems (typically factories).</p>
<p>Layouts, flows, bottlenecks, JIT, supply chain etc. Mostly a solved field in many regards (shout out to the bullwhip effect 🚛 🚚 🚛).</p>
<p>The broad optimisation process for <strong>most of those businesses</strong> looks something like</p>
<ol><li><p>Collection of SaaS and ERP-like systems to track and account for things</p></li><li><p>Data engineering to extract the various states</p></li><li><p>Analytics on the states</p></li><li><p>Decisions to change the states</p></li><li><p>Track decisions in ERP (i.e. repeat)</p></li></ol>
<p>When I left engineering school, ERP implementation was where the demand was, and large chunks of engineers ended up implementing/consulting/suggesting various guises of a(n) ERP / CRM / database / app / spreadsheet / chalkboard.</p>
<p>However, it became clear to me (with hindsight) that this was quickly becoming a commodity technology and skillset <strong>(i.e. outsource to contractors)</strong>, and that Data Engineering was the real skill bottleneck.</p>
<p>Businesses were amassing large data sets but struggling to access them, let alone analyse them, and so having lucked into a DE role, I made this transition.</p>
<h3><strong>Optimising down the optimisation list</strong></h3>
<p>Data Engineering is no longer the bottleneck! This is a huge relief, because Data Engineering is not optimising, rather just a necessary lift and shift. It is purely an operational burden brought about by decisions made with siloed data as the tradeoff.&nbsp;</p>
<p>Now surely <strong>3. Analytics on the states </strong>is the biggest hurdle and opportunity.&nbsp;</p>
<p>Analytics is currently a headache, which requires significant investment, and where I suggest the investment is made. There is much more value in time spent on the building of “Business Logic”. In this case, Analytics.&nbsp;</p>
<p>Analytics extends far beyond data modelling and analysis, encompassing business processes, people processes, management and communication.&nbsp;</p>
<p>Analytics also pushes back into software engineering, system designing and overall value chain analysis.&nbsp;</p>
<h1><strong>4. Managed services</strong></h1>
<h3><strong>The Data engineering "type (2)" makeover</strong></h3>
<p>My day to day is where I form this opinion. I have done much less data engineering as it relates to Data Warehouse fine tuning, and ELT troubleshooting since the tools became so much easier. I do a lot more analytics and a lot more modelling. The problem has moved, onwards, up-system. The old bottleneck has largely been removed and solved. Optimised.</p>
<p>To quantify this stance, consider why&nbsp; there is a literal tsunami of new spins on data products: metric-stores, reverse ETL, metadata, discovery, quality, etc etc. <a href="https://benn.substack.com/p/the-data-os">Great data from Benn Stancil:</a></p>
<blockquote><p>In 2017, Y Combinator—an incubator of both startups and the Silicon Valley zeitgeist—funded 15 analytics, data engineering, and AI and ML companies. <strong>In 2021, they funded</strong> <strong>100</strong> (my emphasis)</p></blockquote>
<p>These are viable partly because the EL bottleneck was eased, the storage got cheaper and <a href="https://www.getdbt.com/">dbt</a> made the whole thing more manageable.</p>
<p>Suddenly the problem wasn't getting the data, <strong>it was using the data.</strong></p>
<p>Typically the domain of the elite. The reason Airbnb, Linkedin etc have needed a data catalog for near decades is because they had the engineering clout to make it necessary.</p>
<p>The sudden simplification of this process has meant that the next, hitherto unknown bottleneck gets suddenly bashed into, and there is<a href="https://duckduckgo.com/?t=ffab&amp;q=snowflake+ipo&amp;ia=web"> immense</a> value to be gained by unlocking it.</p>
<p><strong>Build it, will they come?</strong></p>
<p>If offered, many businesses will jump at a SaaS subscription, rather than spending that money on hiring/expanding an engineering team.</p>
<blockquote><p>The term engineering is derived from the Latin ingenium, meaning "cleverness" and ingeniare, meaning "to contrive, devise" <a href="https://en.wikipedia.org/wiki/Engineering">wiki</a></p></blockquote>
<p>When the data is easy to centralise, combine and analyse, engineers won't be needed to <strong>devise and contrive</strong> data combining solutions.</p>
<p>They can go and contrive and devise something else, that is complex, and that gives the company a competitive advantage.</p>
<p>Eventually, analytics engineering could face the same turn of the tide. When the tooling gets so good that the <strong>team is composed entirely of analysts and product people, and no contriving engineers.</strong></p>
<p>In the same way that structural engineers are only required when building on quicksand, data engineers are only required when building upon a dataswamp. As the tooling gets better, so do the foundations stabilise.</p>
<h3><strong>On the margin</strong></h3>
<p>The companies I advise and work with often have much less need for Data Engineering at the outset.</p>
<p>However to clarify one point - when they do need Data Engineering, it is a requirement for specialisation. There is indeed more Data Engineering to be done, but this is increasingly specialised (this is a semi-deliberate contradiction to this entire post that I am OK with).</p>
<p>The companies need help with the edge-case, marginally viable solution, where something emerges, crucial to them, that falls through the cracks of the 80/20 SaaS solutions. The point is that these needs come later down the line. Not at the outset of a data project, but later, once the bulk of the crucial, impactful elements are working and generalist data practitioners have exhausted their options.</p>
<p><strong>A caveat: the assemblage of the appropriate tools in the appropriate order to match business needs and maturity is a tricky problem indeed. Probably something that would benefit from the skills of a Data Engineer. More on that in section 6.</strong></p>
<h1><strong>5. Minority</strong></h1>
<h3><strong>Data ENGINEERING isn't going anywhere.</strong></h3>
<p>I recently discussed this with someone from a quant hedge fund, and while they had a computer science background, they were "data" + "engineering" to a profound degree. They needed a real-time (real time real-time) data feed from all of the brokers, with extensive transformation across all of them. Multiple decision systems integrated with predictive models, and then reliably send orders back into that system, in near real-time.</p>
<p>This system literally was the business. Complex, differentiating. Building this was one of maybe two things that the company needed to execute to beat the competition. </p>
<p><strong>Data engineering in certain contexts is necessary, but likely to be a specialisation increasingly of interest to the minority.</strong></p>
<p>The above point alone isn't that contentious. </p>
<p>What is contentious is the WHEN. </p>
<p>Has the tied turned, is it still rising. Who is seeing the signs and who is missing them. Who is seeing evidence where there is none. </p>
<h1><strong>6. Implications and Evidence from the field</strong></h1>
<p>Hello?</p>
<p>2 more minutes, less hand waving I promise.</p>
<h3><strong>Implications for Engineers</strong></h3>
<p>This entire post makes the same point as this specialisation bombshell:</p>
<p><a href="https://erikbern.com/2021/07/23/what-is-the-right-level-of-specialization.html">What is the right level of specialization? For data teams and anyone else.</a></p>
<blockquote><p>It seems fair that, if tools didn't require so much knowledge to use (I'm looking at you, Kubernetes), then on the margin, the need for specialisation would be less.</p></blockquote>
<p>The extension of this point is that because the data engineering toolset got so much better, the specialisation required is now less. Snowflake and BigQuery users agree.&nbsp;</p>
<p>The implication for engineers whose work is now easier is the following:</p>
<p><strong>Either you move in the direction of the new business problem.</strong></p>
<p><strong>Or you move to a new business that still has the old problem.&nbsp;</strong></p>
<p><strong>Or you specialise further until you find another domain to play in, and wait for the tide to turn again.</strong></p>
<p>Erik's blog above makes another point, which made me realise this is a mostly “deeply inspired” notion, so much so that I've used the <strong>tools/goals oriented</strong> concept in an earlier section.</p>
<blockquote><p>I often think of people as (and this is an unfair crude generalisation etc) roughly on a spectrum between tools-oriented and goal-oriented. Some people have their favourite tools, and that's what they like to use. They make their whole career about honing a craft with those skills. Other people are more entrepreneurial, and don't care about what tools they use: they care about the ultimate goal.</p></blockquote>
<p>This topic was quite contentious on Twitter. People made some very stern remarks about specialisation when Erik posted it initially, and I guess I'm not surprised. People are very likely going to fight against any concept that undermines their career domain.</p>
<p>However, this contentiousness further highlights the opportunity:</p>
<p><strong>Contrarian ideas, when right, are "the valuable thing" from the Taleb and Zero to One books:</strong></p>
<blockquote><p>“What important truth do very few people agree with you on?”</p></blockquote>
<p>Should this point be right, it will be proven right by (another) tool that reduces the need for specialisation and sells for ${LOTS} because it enables achieving Goal X (data-driven-whatnot) without hiring a team of 100 ludicrously demanding human specialists with endless needs.</p>
<p>Arguments, of which there are a few, against this, include that the <strong>startup ELT paradigm</strong> is a minority and that data engineering work is firmly entrenched in the structures of larger businesses, especially enterprises. The refinement I think is worth making, is that while this may be true, the hope is that it will become less so. Like the shift to the cloud, I would hope that what we describe as ELT now leads to us finding a better way of doing things, whatever it may end up being, that is as transformational for Data Teams as cloud computing was for Software Teams. (Noteworthy that “hybrid-cloud” has proven so popular with enterprise)</p>
<p>And a pushback to this: enterprises aren’t most businesses. Most businesses don’t have a large tech team, most businesses didn’t exist a decade ago. However most Data Engineers are not employed by most businesses, hence this disconnect. <strong>Most Data Engineers would disagree with this premise, but the point is that most businesses won’t need a Data Engineer</strong>.&nbsp;</p>
<p>Looking at history, this happened before, take a look at<a href="https://www.youtube.com/watch?v=gmFhOJhJ_aI"> Data Science as a field</a>, maybe due for a renaissance in the guise of ML. “Data Science” was a crutch for companies not knowing what to do with their data.&nbsp;</p>
<h3><strong>Implications for Businesses</strong></h3>
<p>The message from the communities and my experience is clear - Data Engineering as it once was is generally less of a challenge - but building a coherent “data platform” remains a chore.&nbsp;</p>
<p>What is possibly the most complex part of “Data”, and what they really need help with is, what I suppose quite fairly is called<strong> Data Platform Engineering:</strong></p>
<ul><li><p>EL tool can start costing inordinate amounts relative to the value gained.&nbsp;</p></li><li><p>X tool sunsetting Y feature&nbsp;</p></li><li><p>Adding a new business tool with an unsupported API that needs a singer tap built. This work typically is open-sourced, so eventually, there will be fewer needing singer taps (pray)</p></li><li><p>Airflow proving to be a headache. According to Slack, 90% of airflow users are using managed services, so less specialisation in airflow will be needed (pray pray)</p></li></ul>
<p>As an example of this, I’ve recently consulted on the best way to ELT some data from a few API sources unsupported by Fivetran, as well as Stitch/Airbyte. The decision complexity is quite high:</p>
<ol><li><p>Is an orchestration tool such as Airflow/Prefect needed yet, and if so, which one?</p><ul><li><p>If Airflow, then the AWS instance, the Astronomer version, or self-host?</p></li><li><p>Do we try at the outset to use Kubernetes? Is Airflow stable yet? It still feels overcomplicated.</p></li><li><p>If Prefect, will they as a new entrant be more reliable or still have teething issues?</p></li><li><p>What level of CI/CD for the tools?&nbsp;</p></li><li><p>Would they benefit from Terraform?</p></li></ul></li><li><p>Meltano, Airbyte or Singer extractor/tap spec?</p><ul><li><p>Meltano [1] seems to be making excellent progress, but requires some minor hosting effort, and also requires an orchestrator.&nbsp;</p></li><li><p>Airbyte seems to (seems to) be making more of a commitment to quality.</p></li><li><p>Both are wrangling with the ways of incentivising community maintainers.</p></li></ul></li></ol>
<p>This is just one “component” of the team’s ELT, not even the full picture of their Data Platform, and it is a subtly complex and consuming decision for those familiar.&nbsp;</p>
<p>A great way to frame this is quasi-architectural DataOps flavoured generalist Data Guru role of the <strong>Data Platform Engineer (DPE):</strong></p>
<blockquote><p>DPE are thinking about what data exists, who should have which access, how to make it available for usage by people and tools, how to make it redundant (disaster recovery), how to enable discovery (catalog), etc&nbsp;&nbsp;&nbsp;</p></blockquote>
<p>Or another spin:</p>
<blockquote><p>DPE just means that you are the Tech Lead of the Analytics Engineering.</p></blockquote>
<p>While I don’t necessarily care for the DPE term over DE, I do think DPE aptly captures the key work that many Data Engineers now do, combining and ensuring cooperation between competing tools to build a coherent consumable data platform.&nbsp;</p>
<p>More than anything, the developer experience for most of the necessary Data Platforms tools is just garbage. Airflow is a nightmare, GCP really a frightening pain, and AWS is just so much worse. The correct abstractions over all of this is a huge opportunity and the thing that the DPE needs to keep an eye on.&nbsp;&nbsp;</p>
<p><em>[1] Worth your time to have a look at the <a href="http://sdk.meltano.com/">Meltano SDK</a> if you need to build an API extractor. Great team, developer experience and ambition. If you are a Data Engineer (either type), these open source projects are possibly the best intersection of your skills, interests and market demand. I set up the most lightweight way to run a Meltano <a href="https://github.com/mattarderne/meltano-batch">ELT on AWS, using Terraform</a>, and could use a review!</em></p>
<h1><strong>Closing</strong></h1>
<p>In closing, I broadly see the below chart as usefully inflammatory and marginally useful.</p>
<p>As Data Science gave way to Data Engineering enthusiasm, I'll say that Data Engineering enthusiasm possibly will have to give way to Analytics, currently called Analytics Engineering.</p>
<p>Following this will be the traditional Data Analyst role, in whatever new guise, which will make some resurgence.</p>
<p>However, the core Data Engineering skill-set, technological awareness and systems thinking, will remain vitally important, but perhaps not in the historical and existing notion of a Data Engineer.&nbsp;</p>
<h1><strong>Appendix</strong></h1>
<p>Questions to ponder, hit the comments if you have some thoughts:</p>
<ol><li><p>Will data science re-emerge now that the data wrangling tooling is getting so much better? What will this do to the hierarchy of data science? Maybe<a href="https://twitter.com/AmplifyPartners/status/1468327066873565189"> ML Engineer is a better candidate</a>.</p></li><li><p>Where does MLops sit, it largely has felt disconnected from “Modern Data Stack”?</p></li><li><p>The enterprise dynamic is entirely different. Enterprise companies will need ETL engineers until the heat death of the sun, and no I don’t want to hear about it.</p></li><li><p>Is training Data Engineers a lost cause, along with Training Data Scientists, Front-end devs?</p></li><li><p>Remember that 92% of startups disappear, but while we are stealing fun from tomorrow, we can satisfy ourselves knowing that someone will get it right, but for someone to be right someone else must be wrong.</p></li></ol>
<div><hr /></div>
<p><em>Please consider subscribing for more on the subject of data systems thinking</em></p>
<p><em>What is <a href="https://groupby1.substack.com/about">group by 1</a></em></p>
<p><em>Who is <a href="https://rdrn.dev/?utm_source=groupby1.substack.com">Matt Arderne</a></em></p>]]></content><author><name>Matt Arderne</name></author><category term="writing" /><category term="groupby1" /><category term="Data" /><category term="dbt" /><category term="Top Post" /><summary type="html"><![CDATA[On Data Engineers and their place in a Data SaaS world. This is a narrative for the near future of Data Engineering in startups, and I think makes some interesting points. I do think the post has avenues for expansion, especially counter-arguments in the context of enterprise tech.]]></summary></entry><entry><title type="html">Getting into Data</title><link href="https://rdrn.dev/getting-into-data/" rel="alternate" type="text/html" title="Getting into Data" /><published>2021-08-08T19:17:00+00:00</published><updated>2021-08-08T19:17:00+00:00</updated><id>https://rdrn.dev/getting-into-data</id><content type="html" xml:base="https://rdrn.dev/getting-into-data/"><![CDATA[<p><em>I’ve been asked frequently enough about making a transition into the Data Analytics space, aka my day job, that I thought it would be useful to combine my thoughts into a coherent post. This is a quick take on who this industry/job/role suits, what the skills required typically&nbsp; look like, and some background info on the industry as a whole. Note that this is oriented towards the Data Analyst / Analytics Engineer. Also note this post is mostly links.</em></p>
<div><hr /></div>
<p>The barrier to entry to working as a data analyst is reducing rapidly. If you are a combination of curious, technically astute, outcomes-oriented, driven, observant, people-oriented and a natural leader then the technology should not be a hindrance, as it is quite literally being made easier every single day.</p>
<p>Consider this as a primer, and <strong>reach out to me directly</strong> if you think you’d like to work in this space, especially if you are motivated and have <em>any</em> data experience. </p>
<h2><strong>Is it a good fit for me/you?</strong></h2>
<ol><li><p>It is a great fit for people with good soft skills, strong intuition for business operations and a desire to make a difference in how a company operates. Are you interested in finding out the facts about what happened in the past and suggesting changes as to how they should operate in the future? To tell the CEO this? To back the decision and measure the changes? To possibly have been wrong? Good things to like the sound of.</p></li><li><p>There is Very Strong Demand in the startup space for these kinds of roles, so if you can convince the right person that you have what it takes then it is entirely possible to transition into this career, without any formal qualification. Typically good transitions are from engineering and technical operations in fast moving businesses.</p></li><li><p>With that goes the obvious implication that the current high demand may not be sustainable in the long term.&nbsp;</p></li><li><p>The term Data Scientist has largely been merged into the analytics roles, as pure data science is very niche, and often misapplied. Typically companies need more data analytics than they do data science unless their core product is somehow related to data science, and even if they say it is, it often in reality very much is not.</p></li><li><p>I prefer working in or as a provider to startups and scaleups, as this environment is more dynamic. Larger organisations and enterprises have analytics functions, but they often have more functionally or departmentally specialised roles, which means less exposure to the business as a whole. As you become more senior, larger companies will provide a great growth opportunity.&nbsp;</p></li></ol>
<h2><strong>Data Analyst &amp; Analytics Engineer stuff: </strong></h2>
<p><em>Necessary tech skills. </em></p>
<ol><li><p>The Data Analyst / Data engineer concepts have been pushed together into a single role, <a href="https://www.getdbt.com/what-is-analytics-engineering/">Analytics Engineer</a>, which broadly makes sense, and can be considered a role related to the Data Scientist. I explained this to some extent visually in <a href="https://twitter.com/rdrn_/status/1314115799951515649">this tweet</a>. Further, <a href="https://www.holistics.io/blog/what-we-know-and-dont-know-about-analytics-engineering/">this describes</a> in a bit more detail what we do and don’t know about analytics engineering.</p></li><li><p>These roles are generally distinct from or work alongside Business Analyst and Product Manager roles. </p></li><li><p>If you can do some part-time education, <a href="https://analyticsengineers.club/">this short course</a> from one of the ex-dbt employees looks to be worthwhile considering. It is brand new, but they intend to teach the exact thing I usually look to hire for.</p></li><li><p>So, onto <em>The Analytics Engineer skills/tools to know</em></p><p><em><strong>&nbsp;I’d give 60% focus on SQL, with maybe 10% each for Git, CLI, Python, BI tools.</strong></em></p><ol><li><p>SQL</p><ol><li><p>Analytical queries <a href="https://mode.com/sql-tutorial/">like this tutorial</a>, especially the “advanced” section, also this <a href="https://popsql.com/sql-templates">tutorial</a></p></li><li><p><a href="https://mode.com/blog/use-common-table-expressions-to-keep-your-sql-clean/">CTEs</a></p></li><li><p>Window functions</p></li><li><p>Focus on consistency, neatness, style</p></li></ol></li><li><p>Git basics</p><ol><li><p>Pull, branch, commit, merge</p></li><li><p>Most people don’t need to know much more</p></li></ol></li><li><p>Command-line basics</p><ol><li><p>Navigation, creating, deleting, moving</p></li></ol></li><li><p>Python</p><ol><li><p>Python is a huge domain, super useful but harder to get to grips with, and also less useful unless you are in a specific niche that calls for it</p></li><li><p>Jupyter notebooks</p></li><li><p>Basic pandas for data manipulation</p></li><li><p><a href="https://realpython.com/defining-your-own-python-function/#the-importance-of-python-functions">Functions</a></p></li><li><p>Virtual environments basics</p>
        </li></ol></li><li><p>BI Tools</p><ol><li><p>BI tools are often prohibitively expensive, so the experience is often limited to one, and often the wrong one or an old one.</p></li><li><p><a href="https://www.metabase.com/">Metabase</a> is the defacto open source quick and simple option, it functions in a reasonably useful way. It is worth downloading and testing out.&nbsp;</p></li><li><p>Another shoutout to <a href="https://www.lightdash.com/">lightdash</a>, a very simple BI tool that runs with dbt, and is familiar to users of Looker.</p>
        </li></ol></li><li><p><b>Amendment: *Excel*</b></p><ol><li><p>This post strongly assumes Excel expertise, but some readers pointed out that this would be worth stating.</p></li><li><p>Pivots, xlookup etc.&nbsp;</p></li><li><p>Highly recommend reading the post <a href="https://counting.substack.com/p/doing-better-with-excel">Doing Better With Excel</a>.
        </p></li></ol></li></ol></li></ol>
<h2><strong>Analytics industry context:</strong> </h2>
<p><em>Articles/books etc that I think worth having a look at to add some colour to the above.</em></p>
<ol><li><p><a href="https://groupby1.substack.com/">I wrote some articles</a> about what I think about technology, the <a href="https://groupby1.substack.com/p/data-as-a-utility-tool">data-as-a-utility-tool</a> one is probably the only one worth reading.</p></li><li><p><a href="https://erikbern.com/2021/07/07/the-data-team-a-short-story.html">Building a data team at a mid-stage startup: a short story</a></p><ol><li><p>This very neatly describes my jobs and career so far&nbsp;</p></li><li><p>A good representation of what the “data” industry looks like</p></li></ol></li><li><p><a href="https://blog.getdbt.com/future-of-the-modern-data-stack/">The Modern Data Stack: Past, Present, and Future</a></p><ol><li><p>dbt is the tool that I use for SQL transformations. It is probably the single most useful thing to learn in addition to the SQL, git, command line, Python list</p></li><li><p>They are doing lots of thought leadership in the analytics space, with very good blog posts</p></li></ol></li><li><p><a href="https://technically.dev/posts/what-your-data-team-is-using">Technology in Data Analytics</a></p><ol><li><p>Simplest, shortest overview of the most important tech tools, anything not on this list is possibly out of date or redundant, or used in a different context</p></li></ol></li><li><p><a href="https://www.holistics.io/books/setup-analytics/start-here-introduction/">The Analytics Setup Guidebook</a></p><ol><li><p>This is a deep dive into modern analytics, opinions are now pretty generic, but it is a <strong>BOOK</strong></p></li><li><p>Some interesting meta-analysis takes on the jobs in the industry <a href="https://www.holistics.io/books/setup-analytics/data-servicing-a-tale-of-three-jobs/">here</a></p></li><li><p>Possibly the thing that is&nbsp; done most badly in the analytics space is data modelling, <a href="https://www.holistics.io/books/setup-analytics/data-modeling-layer-and-concepts/">with the background here</a>. This is probably what will be the hardest to attain, and near impossible to hire for, but something that is mostly trial and error anyway!</p></li></ol></li></ol>
<div><hr /></div>
<p>That is all I’ve got. Topical and relevant as of publishing. I’ll continue to add and amend, but for now, if you know of someone interested in Data, send them this. There is a world of nuance not covered here, the most interesting themes all covered in due course in a post here. Or not.&nbsp;</p>
<p>As may be obvious from the long list of articles, there are lots of thoughts and opinions in this space. I have personally experienced the tension and growth of data analytics alongside data science and data engineering, (and also a frustrated relationship with software engineering). In very many contexts the data science/engineering/analytics terms are used overly interchangeably, and often end up meaning the exact same thing, but often not meaning anything similar at all, just to make it confusing, especially <a href="https://news.ycombinator.com/item?id=27779264">data engineering</a>. See an upcoming post on <strong>Data Engineering: Backend Developer, or Data Analyst.</strong></p>
<p>And as I said, I’d love to hear from you if you are making this transition, or feel like understanding it in more detail. The above is just a primer! Get in touch to set up time directly, quickest via the dreaded: <a href="https://www.linkedin.com/in/m-ard/">https://www.linkedin.com/in/m-ard/</a></p>
<p><em>Please consider subscribing for more on the subject of data systems thinking</em></p>
<p><em>What is <a href="https://groupby1.substack.com/about">group by 1</a></em></p>
<p><em>Who is <a href="https://rdrn.dev/?utm_source=groupby1.substack.com">Matt Arderne</a></em></p>]]></content><author><name>Matt Arderne</name></author><category term="writing" /><category term="groupby1" /><category term="Data" /><summary type="html"><![CDATA[Rapid fire thoughts on transitioning from a technical role into data. I’ve been asked frequently enough about making a transition into the Data Analytics space, aka my day job, that I thought it would be useful to combine my thoughts into a coherent post. This is a quick take on who this industry/job/role suits, what the skills required typically&nbsp; look like, and some background info on the industry as a whole. Note that this is oriented towards the Data Analyst / Analytics Engineer.]]></summary></entry><entry><title type="html">dataform and dbt</title><link href="https://rdrn.dev/dataform-and-dbt/" rel="alternate" type="text/html" title="dataform and dbt" /><published>2021-06-21T19:17:00+00:00</published><updated>2021-06-21T19:17:00+00:00</updated><id>https://rdrn.dev/dataform-and-dbt</id><content type="html" xml:base="https://rdrn.dev/dataform-and-dbt/"><![CDATA[<p><em>Welcome to my third post, one I have wanted to write from the beginning. Getting these posts done isn’t easy, and the time between publishing is a commitment that I undertook rather lightly. Like most good ideas, this one is late, irrelevant, and likely only to be marginally useful. That said, here is a quick rundown on two of the “indicative-of-the-future” SQL tools in data analytics at the moment.</em></p>
<div><hr /></div>
<h1>Dataform and dbt, Dbt and dataform</h1>
<p>If neither dbt nor Dataform is familiar to you, stop and read my <a href="https://groupby1.substack.com/p/data-as-a-utility-tool">primer post</a> on the modern data analytics stack. This post will still likely be a bit meta unless you are familiar with at least one of these tools. The below two-liner explanation from <a href="http://tamaszilagyi.com/blog/2019/2019-03-05-dbt/">No frills data warehousing with dbt</a> might be sufficient to get you through.</p>
<blockquote><p>To use [dbt/Dataform], you only need to be familiar with SQL. The package relies on templating using [jinja/javascript] to enable nifty features like dependency graphs, macros or schema tests. Upon compilation, everything is translated into pure SQL and run on the database’s execution engine. It is quite fascinating how much you can do with such a minimalist tool.</p></blockquote>
<h1>Context</h1>
<p>Because I find it interesting, here is my understanding of the history of these tools. Cmd+f to THE TLDR if the <em>what why how and hearsay</em> of technology isn’t your thing.</p>
<p>dbt was born from a common need. Fishtown Analytics, an analytics consulting team, solved their need for a <em><strong>better way to transform data inside a data warehouse</strong></em>. They built a way to manage SQL transformations, as an open-source tool <a href="https://github.com/fishtown-analytics/dbt/tree/549282110f393a22c6331ba828a4895bdee9c26e">way back in 2016</a> (epic to git time-travel).</p>
<p>They generously shared their experience through a transformative series of blog posts from their CEO <a href="https://blog.getdbt.com/author/tristan/">Tristan</a> <a href="https://medium.com/@jthandy">Handy</a>. <a href="[https://medium.com/@jthandy](https://twitter.com/smalter/status/1569789777582641154)">Edit: Here is a full history! </a>. He captured many struggling engineer/analysts attention with his “new way” of doing analytics in startups. We, the desperate, listened closely. The message I heard: <em>bring the best of software development to startup data analytics</em></p>
<p>This was great, but what set this apart amongst the ever-growing set of open-source developer tools was, in my opinion, the “hype house” that was the early dbt slack community.</p>
<blockquote><p>The Hype House is part of a millennia-old tradition of collaboration among those at the avant-garde of new forms of media, technology, and thought. Outsiders like me have always dismissed the novel as silly, faddish, or worse. When those inside the cutting-edge scenes band together to support, teach, and create with each other, their niche and experimental projects can become the new normal on top of which the next generation builds.</p><p><a href="https://perell.com/fellowship/conjuring-scenius/">Source</a> (I’ve waited a long time to paste this snippet. Scenius is quite a word, but the article is epic)</p></blockquote>
<p>The building of this dbt tool was “in the open”, and a community was incubated alongside it. An enthusiastic community. An <em>investible</em> community. The new paradigm was incubated in the dbt slack channel, with contribution, opinion and criticism all weighed and measured in the passionate and growing community.</p>
<p>dbt was first a CLI tool. As is the trend with open-source, evolution is dynamic and open. Dataform was born when a front-end was created by a team of engineers who spotted the opportunity to bring dbt to even less technical analysts through a GUI. Later on, Dataform decided to migrate to a newly built dbt replacement backend for their frontend (also open-source). To match this development, or they had planned to anyway, dbt launched their own GUI SaaS tool (called Sinter, now dbt Cloud for the historians).</p>
<p>Personally, dbt led me to Dataform, and as a consulting data-engineer turned head-of-data, I was drawn by Dataform’s relative ease of getting started. I wanted a tool that I could stick in the hands of a Looker developer and have them hitting the same notes as I was hitting with dbt, with less friction, less cognitive burden, and less fiddle.</p>
<p>So, this post. We’ll briefly run through the most notable differences between dbt and Dataform, how/why to choose, and end with some thoughts on evolution.</p>
<p>Why me? I’ve been working with these tools for a while. I deployed dbt at a company and then migrated to Dataform when Dataform launched. I’ve deployed Dataform with another client and recently worked on a dbt project that used some of the dbt plugins. I now consider both on their relative merits when I make the assessments below.</p>
<p>If you’ve got this far but can go no further, these tools function similarly, with the TLDR worth a look.</p>
<p>The bulk of the value for me has been in having these tools as “ready to use” for data analysts who are strong with LookML, SQL and have exposure to data modelling concepts, but are less familiar with Airflow, CLI tools, Python environments, and git workflows (<a href="https://ohshitgit.com/">git undo everything</a>). The singular terror that it is to do anything Python-related on Windows (as a Mac user) has been reason enough to default to avoid having to set someone up with the CLI, enabling git, managing Python dependencies, C++ redistributables, :shock:. Both tools allow developers to move in that direction if they choose, but offer easier onboarding via the SaaS version.</p>
<p>Thus, dbt/Dataform <strong>cloud</strong> is my primary point of consideration, because that has been my primary interest. Both are extensively used as CLI tools, which for many is the go-to. My focus has been in enabling teams that initially do not have the time/resources to upskill/maintain/support the tech, and so my considerations are within the context of the cloud offering. This may be contentious, but on average the analysts who come from Bizops or something of that nature seem to make for more rounded data analysts, and enabling them is key.</p>
<p>*complete aside, Denodo, a previous employer and data integration technology company, was born out of the need of their consulting team working with large multinationals. They too built a successful enterprise Data Virtualisation tool, which in a way achieves a similar outcome to dbt + Snowflake. In essence a powerful enterprise database multi-plug adaptor, and a SQL DAG builder.</p>
<h1>dbt</h1>
<p>dbt is an open-source tech success story. A dedicated team created the technology they wished they could pay for, built in the open, engaging the community and incubating a “new way” that enthusiasts began to feel very enthusiastic about.</p>
<p>dbt’s strengths lie in the powerful ecosystem they have developed. Illustrative of this are the integrations with <a href="https://www.getdbt.com/ecosystem/">tools</a> such as Fivetran, Census, Databricks, that make raw dbt projects pretty mobile and feel like the beginnings of a standard for SQL transformation DAGs.</p>
<p>This ecosystem enables developers to build powerful <a href="https://hub.getdbt.com/">open-source</a> plugins, available to use and improve. These include useful macros, prebuilt transformations for specific sources, infrastructure management and even some interesting machine learning plugins. The community has built the tools they need on a common standard.</p>
<p>Because dbt is platform-agnostic it feels like an ecosystem rather than a tool alone. Any modern data warehouse is a viable engine to run it, and any modern data tool is likely considering how they can incorporate elements of it to take advantage of the momentum.</p>
<p>When considering dbt cloud, the online version it feels like an online IDE rather than a standalone tool, and according to the founder as of a 1 year ago they’re</p>
<blockquote><p>in the very early days in improving the developer experience of writing dbt code. The dbt Cloud IDE is still in its infancy, and is only one of the many ways in which we ultimately believe that users will write dbt code that we want to facilitate. <a href="https://blog.getdbt.com/four-years-in-from-misfits-to-mainstream/">source</a></p></blockquote>
<p>My take is that this rings true. The usability features are not quite there, a simple example is no autocomplete, which readily exists as a VSCode plugin. [TODO: Validate this is still true (please comment below)]</p>
<h1>Dataform</h1>
<p>Dataform built a great user interface and my initial impression was that it felt like an easy transition for someone from Looker to orientate and become productive quickly. The user interface has continuously been improved and the backlog of feature requests was quickly moved through, as the team was reactive to suggestions and rapidly added features that provided better prompts, insights and contextual information. Things like prompting about an unbuilt view being referenced, an effective autocomplete, and continuously compiling the SQL to raise errors like typos, glitches, invalid elements introduced prior to execution. These all added to the great user experience of developing.</p>
<p>My least favourite feature is that any templating is done in Javascript (instead of jinja in dbt). Ideally, I’d prefer something closer to Python than either, but jinja feels easier and more intuitive to a non <code>.js</code> type.&nbsp;</p>
<p>[Ammendment] A <a href="https://lightdash.com/">friend’s</a> opinion, below, which runs counter to mine on the jinja/js thing, and I agree with him, especially if you have a team who know Javascript! My counterpoint is that Looker analysts often find jinja easier to get started. Jinja does get very complicated if you try and do things like cohort funnel analysis. </p>
<blockquote><p>Your main disadvantage of dataform I actually found to be a great advantage: templating is just javascript. Sometimes jinja starts feeling like a programming language (macros in macros etc.). But that makes a horrible developer experience. In dataform, you can just declare models in a regular old .js file, meaning you’re completely free to build whatever you want. Plus you have all the power and tooling of a mature programming language. </p></blockquote>
<p>[End Ammendment]</p>
<p>Like dbt, Dataform has benefitted from community-maintained packages.</p>
<p>The most interesting thing about this story is that Dataform was acquired by Google. It seems likely that Dataform will be incorporated into Google’s Big Query data warehouse, I suppose as a “transformation” feature, or perhaps still standalone? This has interesting implications but it does mean that there will be some time getting Dataform integrated. It also means that as a tool it may have less of their historic great responsiveness to user suggestions and demands as they run through the enterprise compliance backlog. This does mean that it will be an easy first choice for Big Query customers to test out this paradigm of data transformation. Sadly, it also means that support for other data warehouses has been sunset.</p>
<h1>Implications</h1>
<p>The implications of the Google acquisition of Dataform are interesting to me, maybe given my unique experience with both tools, in that it pretty firmly plants dbt as the SQL data transformation standard. This has likely been the case regardless, based purely on momentum and head start that dbt has maintained.&nbsp;</p>
<p>However, had Google maintained Dataform as an independent entity rather than incorporating it into Big Query as an exclusive feature or tool, it may have given Dataform the staging area and resources to properly pose a serious threat as an alternative. This would have been a preferable outcome for me personally. Dataform going exclusively Big Query suggests that the play is likely a more direct threat towards Snowflake’s dominance in the data warehouse space, as the feature race heats up.</p>
<p>From a more practical perspective, the TLDR comes into play. When heading along this road, the first decision you’re likely to make is&nbsp;Big Query or Snowflake (or even Redshift if you have lots of AWS credits… (those are ominous dot dots)) decision, and then if Big Query, deciding between dbt and Dataform. My preference is due to my familiarity with Snowflake, and as a practitioner and consultant, my bet is generally with the coverage and standard-setting dbt.&nbsp;</p>
<h1>TLDR</h1>
<p><code>THE TLDR/</code></p>
<ul><li><p>Dataform was acquired by Google and is now exclusively GCP, and my guess is that it will be integrating directly into the Big Query platform. If you’re a startup in the GCP ecosystem, then that is compelling. If you like or are already using Snowflake, then Dataform is no longer an option.</p></li><li><p>dbt has a huge ecosystem built around it, with real momentum benefitting from plugins, integrations and general compatibility across all the analytics tools.</p></li><li><p>Both tools have a SaaS offering, effectively a cloud IDE + CICD. Great for getting connected and developing quickly. Both happily run a hybrid of cloud IDE and open-source core.</p></li><li><p>The dbt community has led to many ecosystem “gap fillers” such as <a href="https://spectacles.co/">spectacles</a>, <a href="https://lightdash.com">lightdash</a>, and technically even Dataform itself, all taking the dbt base and extending it or recombining it in different ways.</p></li></ul>
<p>The modern ELT data stack that no one is going to second guess has Snowflake as the data warehouse, Fivetran doing the ExtractLoad and dbt doing the T for transforms. Note that Snowflake and Fivetran are doing the heavy-lifting, but don’t provide the magic. They are doing the quiet and dependable, probably get taken for granted (other than the price tag), but developing is where insight is captured, and developing is done with dbt.</p>
<p><code>/ THE TLDR</code></p>
<h1>Evolution</h1>
<p>If you jumped to the TLDR and then went further, this is likely where you’d want to stop. The rest is a quick self-indulgent attempt at hypotho-philosophising the evolutionary aspects of software building. Beware!</p>
<p>Watching the evolution of dbt and then Dataform quite closely and with entrenched interest, I have found the dynamics at play interesting, engaging, and commentable. What was also interesting is the entrenched alliances that quickly developed along with people’s preferences or opportunities. Sentiment generally went something along the lines of <em>Dataform ripped the idea off dbt</em>, which I feel is mostly wrong, as the idea <a href="https://hn.algolia.com/?q=sql+template">isn’t novel</a>, just very well executed and well-timed (IMO, comment below)<em>.</em></p>
<p>I made a meta-take comment on the sentiment in another <a href="https://locallyoptimistic.slack.com">wonderful slack channel</a>, the comment has now been repurposed for this section, as rambly and raw as it is, I thought captured some of the point:</p>
<blockquote><p>The tribalism vibe on this was always a weird one for me. us/them always felt counter-productive and tribal [1], but then perhaps that was inevitable. Early dbt felt very much like the beginnings of a tribe: lots of in-jokes, data-eology, new/old. Exciting!&nbsp;</p><p>Dataform beginning public life as a dbt front-end ~early 2018 [2] felt pretty confirming.</p><p>It did two things for (us) users:&nbsp;</p><p>1. affirmed the dbt value prop [3]&nbsp;</p><p>2. made using the "new-paradigm" much more accessible to non-techy-data-devs [4]&nbsp;</p><p>For reasons, Dataform built their own backend dbt replacement (Google software engineers, I don't know, but they probably do). This change positioned them at odds with one another, but besides that point, the 2 different tools enabled more users to adopt the new paradigm[5].</p><p>For me, as a user of dbt and then early dataform, best enabling this new paradigm was a combination of the two, and it was/is great! Collectively this is all a quantum leap for SQL analysts. I'm beyond thrilled that I don't have to use the tools I had to use pre-dbt.&nbsp;</p><p>My post-ramble point: I think evolutionary pressure on technology is bloody brilliant for users. Competition is great, iteration should be encouraged. I'm looking forward to someone building an iteration on Looker to this same end.</p><p>The evolutionary pressure did two interesting things:</p><p>1. It affirmed the need for a SaaS tool for smaller and larger teams. dbt may never have needed to create a user interface, which would have frustrated my team building analytics efforts in smaller tech communities.</p><p>2. It created _an alternative_, which is the most important way to add creativity to the space. In real-time users expressed their preferences for different ways of achieving the same goal, in one great experiment.</p><p>Interesting parallels to this comparison can loosely be considered in other data tools such as Fivetran &amp; Stitch (closed vs open-source), Snowflake vs Redshift (developer-friendly vs cheaper on paper) and even Tableau vs Looker (old way vs new way).</p><p>Both dbt and Dataform now have relatively independent niches, having benefited from the existence of the other. I'm personally glad for having met and got to know the Dataform team and enjoyed being tangentially involved in their growth. The product is great and has been a pleasure to use, and they are nice people who have put a lot of thought into solving my team’s problems.</p><p>I think dbt's success in raising lots of VC money is great, they have created many hours of additional output for each hour of development, and more broadly for an enhancement on the thinking in this space, also great people to deal with!</p><p>---comment footnotes---</p><p>[1] - Tribal ie The Robbers Cave Study</p><blockquote><p>The Robbers Cave experiment studied how hostilities quickly developed between two groups of boys at a summer camp. The researchers were later able to reduce the tensions between the two groups by having them work towards shared goals. The Robbers Cave study helps to illustrate several key ideas in psychology, including realistic conflict theory, social identity theory, and the contact hypothesis. <a href="https://www.thoughtco.com/robbers-cave-experiment-4774987">Source</a> (disclaimer - I read about robbers cave this week) </p></blockquote><p>[2] - <a href="https://getdbt.slack.com/archives/C0VLZM3U2/p1527001713000902">dataform announcement date ~ May 2018</a></p><p>[3] - <a href="https://getdbt.slack.com/archives/C0VLNUUTZ/p1562825154386300">dbt on dataform</a></p><blockquote><p>Hah! This is one of the implications of open-source! ... In my 3-year post, I explicitly called out this likelihood and embraced it</p></blockquote><p>[4] - <a href="https://app.slack.com/client/T0VLPD22H/CTMTMFNH5/thread/C0VLNUUTZ-1562825154.386300">early dbt-cloud called Sinter, early 2017</a></p><p>[5] See superordinate goals conveniently linked in [1]</p></blockquote>
<h1>Closing</h1>
<p>I enjoyed witnessing first-hand the evolution of "a new technology". But I think it probably fairer to call it a recombination, or a reorg. Bottoms up top-down shuffle.</p>
<p>The reshuffle rather than blinding innovation here is made clear by the fact that I could port the code I wrote in 2016 in Denodo’s VQL query language, designed in 2008, which was a large and involved SQL DAG, into something that dbt and Snowflake would happily use. Entirely independently from dbt, and I’d bet mutually unknown, a company created from a users perspective in essence the same way of working. I’m sure from an evolutionary perspective this divergent and now convergent evolution is an interesting quirk.</p>
<p>In that sense, nothing here is “new” enough to interest a computer scientist. The computer scientists I know have an allergic reaction to most of the analytics tooling. Messy and inefficient new ways of doing things, which then become the standards and that look like inflexion points after the fact, and I think for an analyst this change is in progress. Going back to the hype house concept:</p>
<blockquote><p>Outsiders … always dismissed the novel as silly, faddish, or worse. When those inside the cutting-edge scenes band together to support, teach, and create with each other, their niche and experimental projects can become the new normal</p></blockquote>
<p>The user is one of the many pressures that drive the evolutionary development of these tools but is best served by choice. Consolidation of technology into profit mode leaves the user’s needs as a low priority, whereas competitive pressure and alternatives put the users at the front. Current trends are about enabling a data analyst turned developer to <em>create as much insight with as little engineering as possible,</em> making it a great time to be an analyst. The users ultimately benefit when the technology scene is in inclusive, collaborative and open mode. Ultimately we are probably due for a period of consolidation mode, but perhaps more on that later.</p>
<p><strong>Please comment if you have any feedback on any of this, I aim to improve with your help.</strong></p>
<div><hr /></div>
<p>* again interesting aside: Denodo was part of a different paradigm, with virtualisation being the word. Instead of ETL’ing your data into a data warehouse, you’d rather leave it where it lives and query it directly. Whether in a data warehouse, API, transaction database, or many others! A dream for a data architect faced with decades of legacy tech and a desperate need to unify access for analytics and as a data bus. Dremio is now continuing this trend, focussing more on the data lake concept.</p>
<div><hr /></div>
<p><em>Please consider subscribing for more on the subject of data systems thinking</em></p>
<p><em>What is <a href="https://groupby1.substack.com/about">group by 1</a></em></p>
<p><em>Who is <a href="https://rdrn.dev/?utm_source=groupby1.substack.com">Matt Arderne</a></em></p>]]></content><author><name>Matt Arderne</name></author><category term="writing" /><category term="groupby1" /><category term="Data" /><category term="dbt" /><category term="Top Post" /><summary type="html"><![CDATA[A quick rundown on two of the “indicative-of-the-future” SQL tools in data analytics at the moment. Dataform and dbt. Welcome to my third post, one I have wanted to write from the beginning. Getting these posts done isn’t easy, and the time between publishing is a commitment that I undertook rather lightly. Like most good ideas, this one is late, irrelevant, and likely only to be marginally useful. That said, here is a quick rundown on two of the “indicative-of-the-future” SQL tools in data analytics at the moment]]></summary></entry></feed>