<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" xmlns:googleplay="http://www.google.com/schemas/play-podcasts/1.0"><channel><title><![CDATA[Skewed Thoughts by Adriano Sanges]]></title><description><![CDATA[Engineering manager & data architect. Sharing unfiltered thoughts on leading teams, building data platforms, and juggling life as a tech dad. This is where I brain-dump what doesn’t fit in a dashboard.]]></description><link>https://newsletter.dataskew.io</link><image><url>https://substackcdn.com/image/fetch/$s_!SWLy!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9294b422-be8e-4ceb-a985-8994d2523c30_1024x1024.png</url><title>Skewed Thoughts by Adriano Sanges</title><link>https://newsletter.dataskew.io</link></image><generator>Substack</generator><lastBuildDate>Mon, 20 Apr 2026 15:20:15 GMT</lastBuildDate><atom:link href="https://newsletter.dataskew.io/feed" rel="self" type="application/rss+xml"/><copyright><![CDATA[Adriano Sanges]]></copyright><language><![CDATA[en]]></language><webMaster><![CDATA[skewedthoughts@substack.com]]></webMaster><itunes:owner><itunes:email><![CDATA[skewedthoughts@substack.com]]></itunes:email><itunes:name><![CDATA[Adriano Sanges]]></itunes:name></itunes:owner><itunes:author><![CDATA[Adriano Sanges]]></itunes:author><googleplay:owner><![CDATA[skewedthoughts@substack.com]]></googleplay:owner><googleplay:email><![CDATA[skewedthoughts@substack.com]]></googleplay:email><googleplay:author><![CDATA[Adriano Sanges]]></googleplay:author><itunes:block><![CDATA[Yes]]></itunes:block><item><title><![CDATA[GDPR, Data Governance, and Why “It’s Just a Log” Is Never Just a Log]]></title><description><![CDATA[From legal checkbox to architectural blueprint]]></description><link>https://newsletter.dataskew.io/p/gdpr-data-governance-and-why-its</link><guid isPermaLink="false">https://newsletter.dataskew.io/p/gdpr-data-governance-and-why-its</guid><dc:creator><![CDATA[Adriano Sanges]]></dc:creator><pubDate>Fri, 05 Sep 2025 11:31:21 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!PdHL!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2b305802-236b-4f1e-a385-7ac75a879b15_2048x2048.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>First of all, let me apologise for not having been active here for a while, life happened, summer struck and time went by.</p><p>I will try to post at least once a month from now on!</p><p>Moving on, I&#8217;ve been pretty vocal lately on LinkedIn about Governance and Privacy by design in relation to GDPR and what practices are good and what are absolutely bad to have in your engineering team.</p><p>There&#8217;s a recurring scene I&#8217;ve lived through (and I bet many of you have too): someone asks for a data subject access request (DSAR), and suddenly the entire company is playing hide and seek with databases, backups, and log files. Marketing swears the data is in HubSpot. Engineering shrugs toward Postgres. Someone remembers a dusty S3 bucket with &#8220;user_logs_2018.zip.&#8221;</p><p>That&#8217;s not compliance. That&#8217;s chaos.</p><p>And under GDPR, chaos is expensive.</p><div><hr></div><h2>GDPR Isn&#8217;t Just Law, It&#8217;s Architecture</h2><p>The GDPR gets framed as legal overhead, a box ticking exercise for the lawyers. But the truth is simpler (and scarier): it&#8217;s an architecture problem. The regulation is clear about what you can&#8217;t do: hoard personal data forever, forget about retention, or shrug off backups.</p><p>The less obvious part? GDPR pushes you to <em>design systems differently</em>. Privacy by design and by default isn&#8217;t a slogan, it&#8217;s Article 25 of the regulation. It means your database schemas, pipelines, and log configurations need to assume that data must one day be deleted, anonymized, or ported elsewhere.</p><p>Treating compliance as an add on is like deciding you&#8217;ll install brakes after the car&#8217;s already on the highway. You can try, but you&#8217;ll either crash or pay a fine the size of your annual revenue.</p><div><hr></div><h2>Data Governance: Boring Until It Saves You</h2><p>Nobody gets excited about data governance. It&#8217;s rarely celebrated at board meetings, and if you call it a &#8220;cost center,&#8221; you won&#8217;t be wrong about how most execs see it. But it&#8217;s the only way GDPR stops being an existential risk and starts being a competitive advantage.</p><p>If you don&#8217;t know where data lives, who can touch it, or how long it stays, you don&#8217;t have governance, you have a time bomb.</p><p>And GDPR doesn&#8217;t care whether you&#8217;re Meta or a 10 person SaaS startup. You&#8217;re expected to know, to control, to prove. &#8220;We think it&#8217;s in staging&#8221; is not a compliance strategy.</p><div><hr></div><h2>The Myths We Tell Ourselves</h2><ul><li><p><strong>&#8220;It&#8217;s just a log.&#8221;</strong> Nope. IP addresses, device IDs, session tokens, all personal data. Keep them forever &#8220;just in case&#8221; and you&#8217;re violating storage limitation. Legitimate interest for debugging exists, but it doesn&#8217;t give you a free pass to hoard.</p></li><li><p><strong>&#8220;We&#8217;ll clean this up later.&#8221;</strong> Translation: &#8220;we&#8217;ll wait until a regulator or a breach forces us.&#8221; By then, &#8220;later&#8221; comes with a 4% of revenue price tag.</p></li><li><p><strong>&#8220;We&#8217;re too small to matter.&#8221;</strong> Small businesses don&#8217;t dodge fines. They just get <em>smaller fines more often</em>, cookie banners misconfigured, DSARs ignored, data retained too long. Death by a thousand cuts.</p></li></ul><div><hr></div><h2>Privacy by Default Means Building Differently</h2><p>Here&#8217;s the cultural shift GDPR forces: instead of designing systems that <em>can</em> delete or anonymize data if needed, you design them so they <em>always</em> do, unless there&#8217;s a reason not to. Retention policies, automated deletions, anonymized logs, those aren&#8217;t edge case features. They&#8217;re defaults.</p><p>When you hear &#8220;privacy by design,&#8221; don&#8217;t picture a checkbox. Picture:</p><ul><li><p>Every pipeline with a retention mechanism.</p></li><li><p>Every backup with an expiration timestamp.</p></li><li><p>Every log with anonymization baked in.</p></li></ul><p>And yes, that means telling your engineers that &#8220;keep everything forever&#8221; is no longer a valid data model.</p><p></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!PdHL!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2b305802-236b-4f1e-a385-7ac75a879b15_2048x2048.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!PdHL!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2b305802-236b-4f1e-a385-7ac75a879b15_2048x2048.png 424w, https://substackcdn.com/image/fetch/$s_!PdHL!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2b305802-236b-4f1e-a385-7ac75a879b15_2048x2048.png 848w, https://substackcdn.com/image/fetch/$s_!PdHL!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2b305802-236b-4f1e-a385-7ac75a879b15_2048x2048.png 1272w, https://substackcdn.com/image/fetch/$s_!PdHL!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2b305802-236b-4f1e-a385-7ac75a879b15_2048x2048.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!PdHL!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2b305802-236b-4f1e-a385-7ac75a879b15_2048x2048.png" width="1456" height="1456" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/2b305802-236b-4f1e-a385-7ac75a879b15_2048x2048.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1456,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:4041693,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://newsletter.dataskew.io/i/172720801?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2b305802-236b-4f1e-a385-7ac75a879b15_2048x2048.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!PdHL!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2b305802-236b-4f1e-a385-7ac75a879b15_2048x2048.png 424w, https://substackcdn.com/image/fetch/$s_!PdHL!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2b305802-236b-4f1e-a385-7ac75a879b15_2048x2048.png 848w, https://substackcdn.com/image/fetch/$s_!PdHL!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2b305802-236b-4f1e-a385-7ac75a879b15_2048x2048.png 1272w, https://substackcdn.com/image/fetch/$s_!PdHL!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2b305802-236b-4f1e-a385-7ac75a879b15_2048x2048.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><div><hr></div><h2>How to Actually Build Privacy by Design</h2><p>It&#8217;s one thing to say <em>&#8220;privacy should be baked in from the start.&#8221;</em> It&#8217;s another to make that real in pipelines, schemas, and day-to-day decisions. Here are some patterns I&#8217;ve seen work (and break less often under audit):</p><ul><li><p><strong>Purpose-driven schemas.</strong> Don&#8217;t dump everything into one giant warehouse. Split by purpose (marketing, finance, support) and tie access roles directly to those purposes. In Snowflake, that looks like:</p></li></ul><p><code>create schema marts_marketing;</code></p><p><code>grant usage on schema marts_marketing to role role_marketing_read;</code></p><p><code>grant select on all tables in schema marts_marketing to role role_marketing_read;</code></p><p>If you can&#8217;t answer <em>why</em> you&#8217;re storing something, you probably shouldn&#8217;t.</p><p></p><ul><li><p><strong>Minimize early.</strong> Don&#8217;t collect everything &#8220;just in case.&#8221; Strip or anonymize PII at ingestion&#8212;especially logs. In app pipelines, it can be as simple as masking emails before they ever land:</p></li></ul><p><code># Example regex for log redaction</code></p><p><code>s/[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,}/[redacted]/gi</code></p><p>If you don&#8217;t land it, you don&#8217;t need to delete it later.</p><p></p><ul><li><p><strong>Retention as default.</strong> Data should die on schedule. Lifecycle rules in storage buckets, TTL columns in databases, and automated jobs to purge expired rows. For example, in Snowflake:</p></li></ul><p><code>create or replace task purge_user_events</code></p><p><code>schedule = 'USING CRON 0 3 * * * Europe/Rome'</code></p><p><code>as delete from user_events where expires_at &lt;= current_timestamp();</code></p><p>Deletion shouldn&#8217;t be a sprint you run before an audit.</p><p></p><ul><li><p><strong>Mask or tokenize by default.</strong> Keep analytics useful with hashed identifiers or masking policies, and reserve raw access for the rare role that truly needs it.</p></li></ul><p><code>create masking policy mask_email as (val string) returns string -&gt;</code></p><p><code>  case</code></p><p><code>    when current_role() in ('ROLE_PRIVACY') then val</code></p><p><code>    else '***'</code></p><p><code>  end;</code></p><p><code>alter table raw.users modify column email set masking policy mask_email;</code></p><p>Most queries never need the real email address anyway.</p><p></p><ul><li><p><strong>DSAR readiness.</strong> A subject index or crosswalk model that maps all identifiers back to one subject saves you from the DSAR scavenger hunt. In dbt, that might be a simple crosswalk model. If a user asks for their data, you should know exactly where to look.</p><p></p></li><li><p><strong>Synthetic data in dev/staging.</strong> Stop pushing prod PII into lower environments. If you must sample, mask deterministically so joins still work. With dbt + Faker seeds, it&#8217;s trivial. Debugging shouldn&#8217;t require real customer data.</p></li></ul><p></p><h2>Compliance as Strategy</h2><p>Here&#8217;s the real kicker: companies that take GDPR seriously don&#8217;t just stay out of trouble, they build trust. Users feel safer. Deals close faster when procurement sees strong governance. And ironically, systems that are compliant are usually cleaner, cheaper, and easier to maintain.</p><p>The worst fines don&#8217;t come from regulators. They come from the wasted time, the messy architectures, and the seven year old zip file nobody remembers until it lands you in the news.</p><p>So next time someone tells you GDPR is &#8220;just legal stuff,&#8221; remind them: it&#8217;s actually technical debt. And unlike other kinds of technical debt, you don&#8217;t get to decide when you&#8217;ll pay it down.</p><div><hr></div><p><strong>Final thought:</strong> GDPR isn&#8217;t going away. It will keep evolving, AI, biometrics, whatever comes next. The only winning move is to stop thinking of compliance as a tax, and start thinking of it as design.</p><p>Because &#8220;just a log&#8221; can end up costing a lot more than a log.</p>]]></content:encoded></item><item><title><![CDATA[Conflict Resolvers: What Sets Great Data Professionals Apart]]></title><description><![CDATA[The real job isn't writing SQL. It's making sense of conflicting definitions, unclear goals, and unspoken assumptions.]]></description><link>https://newsletter.dataskew.io/p/conflict-resolvers-what-sets-great</link><guid isPermaLink="false">https://newsletter.dataskew.io/p/conflict-resolvers-what-sets-great</guid><dc:creator><![CDATA[Adriano Sanges]]></dc:creator><pubDate>Thu, 22 May 2025 12:03:12 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!eATk!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5fbf3898-fb97-4ffe-a172-ed754b6f9ae5_1024x1024.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>A few months ago, my team was asked to build an ARR dashboard.</p><p>Simple enough, right?</p><p>But within an hour, we realized we had a problem:<br><strong>What exactly did they mean by ARR?</strong></p><p>Because Finance had one definition.<br>RevOps had another.<br>Same acronym. Same company. Two conflicting truths.</p><p>If we had jumped straight into the build, we would&#8217;ve delivered something technically sound and strategically useless.</p><p>What no one had said out loud (but everyone assumed):<br><strong>Their definition of ARR was </strong><em><strong>the</strong></em><strong> definition.</strong></p><div><hr></div><h2>The Real Skill: Mediation</h2><p>This is the quiet part of the job that no one teaches:</p><ul><li><p>Interpreting vague requests before they become misaligned outputs.</p></li><li><p>Mediating between stakeholders who think they&#8217;re aligned, but aren&#8217;t.</p></li><li><p>Unpacking not just <em>what</em> someone&#8217;s asking for but <em>why</em> they&#8217;re asking in the first place.</p></li></ul><p>When you do that well, you don&#8217;t just build dashboards.<br>You reconcile competing worldviews.<br>You turn tension into clarity.<br>You stop being just the &#8220;data person&#8221; and become something else entirely:<br><strong>a conflict resolver.</strong></p><p>It&#8217;s uncomfortable work. It means slowing things down. It means telling smart people they&#8217;re not aligned. But it&#8217;s what turns data from a function into a force.</p><p></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!eATk!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5fbf3898-fb97-4ffe-a172-ed754b6f9ae5_1024x1024.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!eATk!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5fbf3898-fb97-4ffe-a172-ed754b6f9ae5_1024x1024.png 424w, https://substackcdn.com/image/fetch/$s_!eATk!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5fbf3898-fb97-4ffe-a172-ed754b6f9ae5_1024x1024.png 848w, https://substackcdn.com/image/fetch/$s_!eATk!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5fbf3898-fb97-4ffe-a172-ed754b6f9ae5_1024x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!eATk!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5fbf3898-fb97-4ffe-a172-ed754b6f9ae5_1024x1024.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!eATk!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5fbf3898-fb97-4ffe-a172-ed754b6f9ae5_1024x1024.png" width="1024" height="1024" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/5fbf3898-fb97-4ffe-a172-ed754b6f9ae5_1024x1024.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1024,&quot;width&quot;:1024,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1737624,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://newsletter.dataskew.io/i/164111049?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5fbf3898-fb97-4ffe-a172-ed754b6f9ae5_1024x1024.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!eATk!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5fbf3898-fb97-4ffe-a172-ed754b6f9ae5_1024x1024.png 424w, https://substackcdn.com/image/fetch/$s_!eATk!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5fbf3898-fb97-4ffe-a172-ed754b6f9ae5_1024x1024.png 848w, https://substackcdn.com/image/fetch/$s_!eATk!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5fbf3898-fb97-4ffe-a172-ed754b6f9ae5_1024x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!eATk!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5fbf3898-fb97-4ffe-a172-ed754b6f9ae5_1024x1024.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><div><hr></div><h2>Where This Shows Up Every Day</h2><p><strong>Business &#8594; Data</strong><br>A request like &#8220;build an ARR dashboard&#8221; sounds clear.<br>But unless you ask:</p><ul><li><p><em>Who uses this?</em></p></li><li><p><em>What&#8217;s it for: forecasting, performance reviews, investor reporting?</em></p></li><li><p><em>Why is this definition different from the others?</em></p></li></ul><p>...you&#8217;ll end up reinforcing silos and confusion. You&#8217;ll bake disagreement into production.</p><p><strong>Data &#8594; Business</strong><br>The other half of the job is making the outputs legible.<br>It&#8217;s not enough to be technically correct, you need to communicate in a way that builds consensus and action.</p><p>Interpretation isn&#8217;t about dumbing things down.<br>It&#8217;s about making complexity useful. And usable.</p><div><hr></div><h2>Why It&#8217;s Rare (and Why It Matters)</h2><p>This skill doesn&#8217;t show up in bootcamps.<br>It&#8217;s not measured in performance reviews.<br>There&#8217;s no &#8220;cross-functional nuance&#8221; badge on LinkedIn.</p><p>But it&#8217;s the skill that prevents:</p><ul><li><p>Useless reports</p></li><li><p>Mismatched goals</p></li><li><p>&#8220;Why doesn&#8217;t this metric match what Finance has?&#8221; Slack threads</p></li></ul><p>It&#8217;s the invisible thread that holds real impact together.</p><div><hr></div><h2>How to Practice It</h2><p>A few things that help me when the ambiguity kicks in:</p><ul><li><p><strong>Assume nothing.</strong> Especially when two teams use the same word. Clarify it out loud. Put definitions in writing.</p></li><li><p><strong>Ask how the data will be used.</strong> A dashboard for Finance isn&#8217;t the same as one for the exec team, even if the metrics look similar.</p></li><li><p><strong>Reflect misalignment back to the room.</strong> &#8220;It sounds like we&#8217;ve got three different ARR definitions. Can we agree on which one serves this use case best?&#8221;</p></li><li><p><strong>Write documentation that captures trade-offs.</strong> &#8220;Here&#8217;s why we chose this version of ARR and what it does <em>not</em> represent.&#8221;</p></li></ul><p>These aren&#8217;t technical skills.<br>They&#8217;re connective ones.<br>And they&#8217;re what separate <em>builders</em> from <em>strategic operators.</em></p><div><hr></div><h2>Final Thought</h2><blockquote><p>If your stakeholders always agree with your dashboards, you&#8217;re probably just confirming their biases</p></blockquote><p>If your job was just to write code, you&#8217;d already be done.</p><p>But that&#8217;s not the job.<br>The job is to make meaning out of ambiguity and still ship something that works.</p><div><hr></div><p><strong>Have you ever had to reconcile conflicting definitions across teams?</strong><br>How did you handle it?</p><p>Drop a story in the comments. I promise that someone else has lived it too.</p><p></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!xuY6!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7ccfcd39-b2a1-41fa-af3b-b24c94751b78_1024x1024.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!xuY6!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7ccfcd39-b2a1-41fa-af3b-b24c94751b78_1024x1024.png 424w, https://substackcdn.com/image/fetch/$s_!xuY6!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7ccfcd39-b2a1-41fa-af3b-b24c94751b78_1024x1024.png 848w, https://substackcdn.com/image/fetch/$s_!xuY6!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7ccfcd39-b2a1-41fa-af3b-b24c94751b78_1024x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!xuY6!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7ccfcd39-b2a1-41fa-af3b-b24c94751b78_1024x1024.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!xuY6!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7ccfcd39-b2a1-41fa-af3b-b24c94751b78_1024x1024.png" width="1024" height="1024" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/7ccfcd39-b2a1-41fa-af3b-b24c94751b78_1024x1024.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1024,&quot;width&quot;:1024,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1906002,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://newsletter.dataskew.io/i/164111049?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7ccfcd39-b2a1-41fa-af3b-b24c94751b78_1024x1024.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!xuY6!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7ccfcd39-b2a1-41fa-af3b-b24c94751b78_1024x1024.png 424w, https://substackcdn.com/image/fetch/$s_!xuY6!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7ccfcd39-b2a1-41fa-af3b-b24c94751b78_1024x1024.png 848w, https://substackcdn.com/image/fetch/$s_!xuY6!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7ccfcd39-b2a1-41fa-af3b-b24c94751b78_1024x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!xuY6!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7ccfcd39-b2a1-41fa-af3b-b24c94751b78_1024x1024.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p>]]></content:encoded></item><item><title><![CDATA[Self-Service Isn’t a Strategy. It’s a Bet.]]></title><description><![CDATA[How we built a flexible data platform without falling into the &#8220;set-it-and-forget-it&#8221; trap.]]></description><link>https://newsletter.dataskew.io/p/self-service-isnt-a-strategy-its</link><guid isPermaLink="false">https://newsletter.dataskew.io/p/self-service-isnt-a-strategy-its</guid><dc:creator><![CDATA[Adriano Sanges]]></dc:creator><pubDate>Thu, 15 May 2025 06:30:44 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!_5Yr!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe8d7c5a0-d22b-40de-8190-8b86aec011c3_1536x1024.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>When I joined my current company, we had maybe 30 people in tech.<br>Small enough that most teams still knew what each other were doing.<br>Small enough that spreadsheets still solved half our problems.</p><p>So of course, I decided to build a self-service data platform.</p><p>It wasn&#8217;t an obvious move.<br>People usually wait until pain becomes intolerable. Until the data team is swamped, dashboards are breaking, and nobody trusts the numbers. That&#8217;s when self-service feels justified.</p><p>I didn&#8217;t wait.</p><p>Not because I wanted to future-proof everything. Not because I love semantic layers.<br>But because I knew that if we didn&#8217;t start early, we&#8217;d bake in bottlenecks that would cost us 10x later.</p><div><hr></div><h2><strong>The Vision: Data Without a Middleman</strong></h2><p>The idea was simple.<br>Product teams should be able to onboard their own data, calculate metrics, and build dashboards without depending on us for every step.</p><p>That meant rethinking the data team&#8217;s role.<br>Not support. Not dashboard monkeys.<br>But enablers. Builders of a platform that others could use.</p><p>We shifted toward that mindset early. And it&#8217;s already paying off.</p><p>But as with anything ambitious, reality had other plans.</p><div><hr></div><h2><strong>Where Theory Breaks Down</strong></h2><p>Self-service sounds clean in theory.<br>In practice, it&#8217;s a balancing act. And some days, a circus act.</p><p>Here&#8217;s what we learned.</p><h3>1. <strong>Self-service doesn&#8217;t mean stepping away</strong></h3><p>When the stakes are high, a new product launch, a major strategic shift,  you don&#8217;t wait for teams to become fluent in your data tooling. You jump in. You work alongside them. You act like a product team.</p><p>The platform helps them move fast. Your hands-on support helps them not crash.</p><h3>2. <strong>Context isn&#8217;t optional</strong></h3><p>You can give people the sharpest tools in the world.<br>But if they don&#8217;t understand the data, its lineage, quirks, caveats, they&#8217;ll misuse it.</p><p>Self-service requires storytelling. Documentation. Slack threads.<br>Sometimes, it just means sitting down and talking through what a metric actually means.</p><h3>3. <strong>Some things just shouldn&#8217;t be self-served</strong></h3><p>Recurring reports? Go for it.<br>Prepping metrics for a board meeting with three definitions of 'active user'? Maybe not.</p><p>We learned to pick our battles.<br>Not everything needs to be democratized. And that&#8217;s okay.</p><div><hr></div><h2><strong>So What Does &#8220;Success&#8221; Look Like?</strong></h2><p>Not perfection. Not purity.<br>Just adaptability.</p><p>A good self-service setup doesn&#8217;t remove the data team.<br>It frees the data team, to focus on deeper problems, build smarter tools, and step in where it actually matters.</p><p>Here&#8217;s what&#8217;s working for us:</p><ul><li><p><strong>Flexible roles</strong>. We help when needed, fade into the background when we&#8217;re not.</p></li><li><p><strong>Data literacy, not just access</strong>. Teaching teams how to interpret data is more valuable than giving them more dashboards.</p></li><li><p><strong>Iterating in the open</strong>. We update our tools, metrics, and training in response to real needs, not just a roadmap.</p></li></ul><p></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!_5Yr!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe8d7c5a0-d22b-40de-8190-8b86aec011c3_1536x1024.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!_5Yr!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe8d7c5a0-d22b-40de-8190-8b86aec011c3_1536x1024.png 424w, https://substackcdn.com/image/fetch/$s_!_5Yr!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe8d7c5a0-d22b-40de-8190-8b86aec011c3_1536x1024.png 848w, https://substackcdn.com/image/fetch/$s_!_5Yr!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe8d7c5a0-d22b-40de-8190-8b86aec011c3_1536x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!_5Yr!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe8d7c5a0-d22b-40de-8190-8b86aec011c3_1536x1024.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!_5Yr!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe8d7c5a0-d22b-40de-8190-8b86aec011c3_1536x1024.png" width="1456" height="971" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/e8d7c5a0-d22b-40de-8190-8b86aec011c3_1536x1024.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:971,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2707513,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://newsletter.dataskew.io/i/162692239?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe8d7c5a0-d22b-40de-8190-8b86aec011c3_1536x1024.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!_5Yr!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe8d7c5a0-d22b-40de-8190-8b86aec011c3_1536x1024.png 424w, https://substackcdn.com/image/fetch/$s_!_5Yr!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe8d7c5a0-d22b-40de-8190-8b86aec011c3_1536x1024.png 848w, https://substackcdn.com/image/fetch/$s_!_5Yr!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe8d7c5a0-d22b-40de-8190-8b86aec011c3_1536x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!_5Yr!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe8d7c5a0-d22b-40de-8190-8b86aec011c3_1536x1024.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><div><hr></div><h2><strong>The Hard Truth</strong></h2><p>Self-service is not a checkbox you tick.<br>It is not a maturity model level.<br>It is a bet, that with the right scaffolding, people will step up and use data well.</p><p>Sometimes they do. Sometimes they need help.<br>But when it works, it scales better than any dashboard ever could.</p><div><hr></div><p>If you're navigating a similar transition, I&#8217;d love to hear your take. What&#8217;s worked in your org? Where did it break down?</p><p>(And if you need a laugh, this comic absolutely nails it: <a href="https://www.holistics.io/blog/self-service-analytics-comic/">Self-Service Analytics Comic &#8211; Holistics</a>)</p>]]></content:encoded></item><item><title><![CDATA[Leading Data Teams: The Lessons Nobody Prepares You For]]></title><description><![CDATA[Technical skills get you the job. Human skills keep the team alive.]]></description><link>https://newsletter.dataskew.io/p/leading-data-teams-the-lessons-nobody</link><guid isPermaLink="false">https://newsletter.dataskew.io/p/leading-data-teams-the-lessons-nobody</guid><dc:creator><![CDATA[Adriano Sanges]]></dc:creator><pubDate>Thu, 08 May 2025 06:56:06 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!9gLA!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faa6c2127-1a71-4537-bf67-15338ed6093f_1024x1024.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Nobody warned me that leading a data team would feel less like engineering, and more like therapy.</p><p>I thought the hardest part would be scaling pipelines, setting up architectures, choosing the right stack.<br>I was wrong.</p><p>The real challenge?<br>Building belief: in the data, in the systems and in each other.</p><p>Because when the numbers get uncomfortable, when dashboards reveal inconvenient truths, when people start quietly doubting the story the data tells, that is when leadership shows up.<br>Or doesn&#8217;t.</p><p></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!9gLA!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faa6c2127-1a71-4537-bf67-15338ed6093f_1024x1024.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!9gLA!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faa6c2127-1a71-4537-bf67-15338ed6093f_1024x1024.png 424w, https://substackcdn.com/image/fetch/$s_!9gLA!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faa6c2127-1a71-4537-bf67-15338ed6093f_1024x1024.png 848w, https://substackcdn.com/image/fetch/$s_!9gLA!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faa6c2127-1a71-4537-bf67-15338ed6093f_1024x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!9gLA!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faa6c2127-1a71-4537-bf67-15338ed6093f_1024x1024.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!9gLA!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faa6c2127-1a71-4537-bf67-15338ed6093f_1024x1024.png" width="1024" height="1024" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/aa6c2127-1a71-4537-bf67-15338ed6093f_1024x1024.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1024,&quot;width&quot;:1024,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1468920,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://newsletter.dataskew.io/i/162358170?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faa6c2127-1a71-4537-bf67-15338ed6093f_1024x1024.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!9gLA!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faa6c2127-1a71-4537-bf67-15338ed6093f_1024x1024.png 424w, https://substackcdn.com/image/fetch/$s_!9gLA!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faa6c2127-1a71-4537-bf67-15338ed6093f_1024x1024.png 848w, https://substackcdn.com/image/fetch/$s_!9gLA!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faa6c2127-1a71-4537-bf67-15338ed6093f_1024x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!9gLA!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faa6c2127-1a71-4537-bf67-15338ed6093f_1024x1024.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><div><hr></div><h2>The Myth of Technical Leadership</h2><p>When you first step into leadership, it&#8217;s easy to think the hardest work will be technical.</p><p>After all, that is what got you here:</p><ul><li><p>Knowing the tools</p></li><li><p>Debugging the weird failures</p></li><li><p>Writing the plans everyone else followed</p></li></ul><p>But managing data teams isn&#8217;t about out-coding your team.<br>It&#8217;s about creating an environment where people can face uncertainty together, and keep moving.</p><p>The best systems in the world are useless if the people around them don't believe in what they are building.</p><p>And belief isn&#8217;t built by architecture diagrams.<br>It is built, slowly and stubbornly, through trust.</p><div><hr></div><h2>Three Lessons Nobody Tells You</h2><p>There are things you only learn the hard way.<br>Here are three of them.</p><div><hr></div><h3>1. Trust Is Your Real Product</h3><p>Your dashboards?<br>Temporary.<br>Your tech stack?<br>Already aging.</p><p>But trust?<br>Trust compounds.</p><p>If your team, and your company, trust the data, they make better decisions, faster.<br>If they don&#8217;t, every meeting becomes a battlefield of second-guessing.</p><p>Technical issues are solvable.<br>Broken trust quietly erodes everything until the team falls apart.</p><div><hr></div><h3>2. Translation Beats Perfection</h3><p>Early in my career, I obsessed over getting every data model just right.</p><p>Now?<br>I know that half my job is <strong>translation</strong>.</p><p>Translating messy business questions into technical requirements.<br>Translating complicated models back into language normal humans can act on.</p><p>The best data leaders are not the ones who build the perfect pipeline.<br>They are the ones who can explain what the pipeline actually means, and why it matters.</p><div><hr></div><h3>3. Data Work Is Emotional Work</h3><p>You are not just building systems.</p><p>You are dealing with:</p><ul><li><p>Founders terrified their KPIs are a lie</p></li><li><p>Teams who feel blamed by the numbers</p></li><li><p>Analysts scared they will be scapegoated when data exposes bad decisions</p></li></ul><p>Good leadership means making space for these emotions, without letting them derail the work.</p><p>The hardest conversations you will have will not be about schemas or queries.<br>They will be about <strong>what the numbers say, and whether people are ready to hear it.</strong></p><div><hr></div><h2>Closing Reflection</h2><p>Nobody prepares you for this side of data leadership.</p><p>They hand you technical books.<br>They recommend project management frameworks.<br>They tell you to learn the latest tool.</p><p>But nobody tells you the real work is human.<br>Hard conversations, quiet moments of doubt, small daily choices to tell the truth even when it is easier not to.</p><p>Leading data teams is not about having all the answers.</p><p>It is about helping people trust the journey, even when the numbers feel uncomfortable.</p><p>And maybe that is why it matters so much.</p>]]></content:encoded></item><item><title><![CDATA[Italian Real Estate Prices with Streamlit]]></title><description><![CDATA[Playing with public data, Streamlit, and a pile of new tools to answer the age-old question: what&#8217;s a fair price for a home in Italy?]]></description><link>https://newsletter.dataskew.io/p/italian-real-estate-prices-with-streamlit</link><guid isPermaLink="false">https://newsletter.dataskew.io/p/italian-real-estate-prices-with-streamlit</guid><dc:creator><![CDATA[Adriano Sanges]]></dc:creator><pubDate>Fri, 02 May 2025 13:28:08 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!jWQD!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1248c467-80af-426a-b746-2ba934a381d6_1536x1024.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>I found out that the Italian Revenue Office (Agenzia delle Entrate) has some data, that can be requested by citizens, about real estate prices. You can ask for a csv of a specific semester in any year since they started collecting it.</p><p>Since I moved back I started being interested in the Italian real estate market because I might want to buy soonish. However here the market is very different from what I&#8217;ve been used in Ireland.</p><p>In Ireland when you want to sell your house you set a price, usually pretty low, to get people in the door and then there will be an auction with all interested parties bidding against each other until a set time.</p><p>In Italy, usually, they set a higher price, higher than what they&#8217;d settle for and then you negotiate down to meet in the middle.</p><p>So the question I want an answer for is: <em>what is a reasonable price for the kind of apartment I might be looking for?</em></p><p>If I just look at the ads on the usual websites I only get one side of the medal. Unfortunately there&#8217;s no open property price registry in Italy where you can just browse how much a property was sold at. There are ways, using SPID (a form of ID you can use in Italy to access a bunch of governmental websites) to know sale prices up until the building, but you have to know exactly what you&#8217;re looking for and there is no way to scrape it or get an overview.</p><h3>From Excel to Streamlit (with several detours)</h3><p>Once I requested the CSV dataset from the Italian Revenue Office, I was <em>this</em> close to opening it in Excel. But then I thought&#8230; nah. That&#8217;s not the vibe.</p><p>I wanted to explore new tools. I wanted a better way to slice and understand the data. So I built <a href="https://immobiliare.dataskew.io/">this little web app</a> using Streamlit. It&#8217;s simple, but it works. And apart from a touch of Python, I used a whole stack I&#8217;d never touched before:</p><ul><li><p><code>uv</code> (instead of pip)</p></li><li><p><code>DuckDB</code> (lightly)</p></li><li><p><code>Streamlit</code> for the UI</p></li><li><p><code>Github Actions</code> for automation</p></li><li><p><code>Cloudflare Tunnels</code> for easy deployment</p></li><li><p>And a healthy dose of curiosity</p></li></ul><p>Source code&#8217;s here, by the way: <a href="https://github.com/dorianganessa/dati-immobiliari">GitHub repo</a></p><h3>Building it, breaking it, fixing it</h3><p>The codebase is admittedly a bit messy. I even tried building an interactive map of Italy, clickable down to the municipality level, but that rabbit hole got deep fast. Priorities, right?</p><p>Here are a few small things that worked:</p><ul><li><p>To avoid re-creating tables on every reload, I used a quick DuckDB check:</p></li></ul><pre><code>try: conn.execute("SELECT 1 FROM _initialized LIMIT 1")</code></pre><ul><li><p>Plus a simple table init block:</p></li></ul><pre><code>conn.execute("CREATE TABLE _initialized (initialized_at TIMESTAMP);")
conn.execute("INSERT INTO _initialized VALUES (CURRENT_TIMESTAMP);")</code></pre><p></p><ul><li><p>I cached dropdown options like this:</p></li></ul><pre><code>@st.cache_data(hash_funcs={duckdb.DuckDBPyConnection: id}) 
def get_regions(conn): 
  return conn.execute("SELECT DISTINCT Regione FROM luoghi ORDER BY     Regione").df()</code></pre><ul><li><p>And I used some very na&#239;ve <code>if</code> logic to keep state across Streamlit reloads. It works&#8230; mostly.</p></li></ul><p>As for <code>uv</code>, I have to say: it&#8217;s smooth. Definitely faster than pip, with solid docs and zero headaches. I might keep using it.</p><p>And then there&#8217;s GitHub Actions. Somehow, after over a decade in tech, I&#8217;d never used it. I&#8217;ve worked with GitLab CI, Jenkins, Azure Pipelines&#8230;you name it. But GitHub Actions felt refreshingly powerful. You could run entire data pipelines there <em>for free</em>. Should you? Probably not. Could you? Definitely.</p><p>Last shoutout: Cursor. That thing is an absolute productivity cheat code. Way beyond Copilot. I still need to try Windsurf, but wow! </p><p>Here&#8217;s a bonus pic of me, deep in Cursor mode:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!jWQD!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1248c467-80af-426a-b746-2ba934a381d6_1536x1024.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!jWQD!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1248c467-80af-426a-b746-2ba934a381d6_1536x1024.png 424w, https://substackcdn.com/image/fetch/$s_!jWQD!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1248c467-80af-426a-b746-2ba934a381d6_1536x1024.png 848w, https://substackcdn.com/image/fetch/$s_!jWQD!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1248c467-80af-426a-b746-2ba934a381d6_1536x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!jWQD!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1248c467-80af-426a-b746-2ba934a381d6_1536x1024.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!jWQD!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1248c467-80af-426a-b746-2ba934a381d6_1536x1024.png" width="1456" height="971" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/1248c467-80af-426a-b746-2ba934a381d6_1536x1024.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:971,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2158699,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://newsletter.dataskew.io/i/162689750?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1248c467-80af-426a-b746-2ba934a381d6_1536x1024.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!jWQD!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1248c467-80af-426a-b746-2ba934a381d6_1536x1024.png 424w, https://substackcdn.com/image/fetch/$s_!jWQD!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1248c467-80af-426a-b746-2ba934a381d6_1536x1024.png 848w, https://substackcdn.com/image/fetch/$s_!jWQD!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1248c467-80af-426a-b746-2ba934a381d6_1536x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!jWQD!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1248c467-80af-426a-b746-2ba934a381d6_1536x1024.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><h3>What&#8217;s next?</h3><p>The data is useful, but not perfect. It doesn&#8217;t factor in property conditions or energy ratings, so there&#8217;s still a gap.</p><p>Next step? I&#8217;d love to compare this dataset with listings from popular real estate websites to see how asking prices stack up against actual transaction averages. That&#8217;ll also give me a better excuse to explore DuckDB more seriously.</p><p>Another idea: loading all the historical files to build a time series of prices across regions and municipalities. Because nothing says &#8220;fun&#8221; like a good old price trend analysis.</p><div><hr></div><p>Want more nerdy real estate experiments and data deep-dives like this? Hit subscribe and stick around.</p>]]></content:encoded></item><item><title><![CDATA[The Beginner’s Playbook for a Career in Data]]></title><description><![CDATA[The hardest part isn&#8217;t learning data. It&#8217;s knowing where to start without drowning in it]]></description><link>https://newsletter.dataskew.io/p/the-beginners-playbook-for-a-career</link><guid isPermaLink="false">https://newsletter.dataskew.io/p/the-beginners-playbook-for-a-career</guid><dc:creator><![CDATA[Adriano Sanges]]></dc:creator><pubDate>Fri, 18 Apr 2025 07:45:28 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!rMYu!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa9af0347-827d-4b92-af7e-bc44e393857c_1024x1536.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h3>I. The Myth of the Perfect Starting Point</h3><p>When people ask me how to start a career in data, I know what they&#8217;re really asking.</p><p>They&#8217;re not looking for a roadmap. They&#8217;re looking for permission.<br>Permission to start messy. Permission to not know everything. Permission to learn in public without feeling like a fraud.</p><p>I get it. I&#8217;ve been there.<br>Eyes wide, twenty browser tabs open, one foot in a Udemy course and the other in a YouTube tutorial about Docker. It felt like everyone else was fluent in Spark, Kubernetes, and five flavors of SQL.</p><p>Meanwhile, I was still Googling &#8220;what is a data pipeline.&#8221;</p><p>Here&#8217;s the truth: everyone starts like that. The people you admire now once had no idea what a left join did. They just stuck around long enough to stop panicking every time someone mentioned &#8220;partitioning.&#8221;</p><div><hr></div><h3>II. If I Had to Start Again (From Scratch)</h3><p>Let&#8217;s pretend I lost all my experience. No resume, no network, no projects. Just curiosity, Wi-Fi, and a bit of time.</p><p>First, I wouldn&#8217;t try to master everything at once. That was one of my earliest mistakes, and it left me more anxious than informed. Instead, I&#8217;d keep things simple and aim to solve real problems. That means learning just enough SQL and Python to do useful things. Not to impress recruiters or ace quizzes, but to answer questions with data and automate the boring stuff.</p><p>I&#8217;d avoid building another dashboard about Netflix movies. I might help a friend&#8217;s side hustle clean up their client list, or organize data for a local non-profit. Even cleaning up a messy spreadsheet teaches you more than you&#8217;d think. There&#8217;s something magical about building for someone who actually needs it.</p><p>And as I worked, I&#8217;d document everything. I&#8217;d post the wins, the errors, the ugly in-between bits. Not because I&#8217;m a content creator, but because when you share your learning out loud, you create accountability and attract people who want to help or hire you.</p><p>I&#8217;d resist the urge to hop from tool to tool. There&#8217;s always another library, another framework, another &#8220;must-learn&#8221; concept. The people who grow fastest tend to be the ones who go deep enough on one thing to build something functional. Confidence follows consistency, not complexity.</p><div><hr></div><h3>III. Analyst, Engineer, Scientist: Pick the One That Feels Like You</h3><p>One of the first decisions you&#8217;ll face is what kind of data role to pursue. The titles sound interchangeable, but the day-to-day work is wildly different.</p><p>If you love finding patterns, answering questions, and making charts that tell a story, you&#8217;ll likely enjoy being a data analyst. It&#8217;s less about engineering and more about curiosity and communication.</p><p>If you get excited by systems, pipelines, and making things run reliably behind the scenes, data engineering might be your lane. It&#8217;s about building and maintaining the infrastructure that moves data from place to place.</p><p>And if you&#8217;re drawn to modeling, stats, and testing ideas with real-world data, data science could be a fit. But it&#8217;s not all machine learning and magic. It&#8217;s often slow, iterative, and messy.</p><p>You don&#8217;t need to choose forever. Just start where your strengths are and follow the problems that keep your brain buzzing.</p><div><hr></div><h3>IV. You&#8217;re Not Behind</h3><p>It&#8217;s easy to look around and feel like you&#8217;re already late. Like the doors have closed and everyone else got a head start.</p><p>But the truth is, most people are winging it more than they admit. Everyone&#8217;s highlight reel hides a lot of fumbling behind the scenes. Even now, I find myself Googling things I&#8217;ve supposedly known for years.</p><p>You&#8217;re not behind. You&#8217;re just early.<br>And if you keep showing up, keep building, and stay curious, that early start will turn into real momentum.</p><div><hr></div><h3>Let&#8217;s Keep the Conversation Going</h3><p>If you&#8217;re breaking into data, I&#8217;d love to hear what you&#8217;re working on. What&#8217;s confusing? What&#8217;s exciting? What&#8217;s stopping you from taking the next step?</p><p>Hit reply or leave a comment. And if this helped, send it to someone else navigating the same fog.</p><p>This space is big enough for all of us. You don&#8217;t have to figure it out alone.</p><p></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!rMYu!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa9af0347-827d-4b92-af7e-bc44e393857c_1024x1536.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!rMYu!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa9af0347-827d-4b92-af7e-bc44e393857c_1024x1536.png 424w, https://substackcdn.com/image/fetch/$s_!rMYu!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa9af0347-827d-4b92-af7e-bc44e393857c_1024x1536.png 848w, https://substackcdn.com/image/fetch/$s_!rMYu!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa9af0347-827d-4b92-af7e-bc44e393857c_1024x1536.png 1272w, https://substackcdn.com/image/fetch/$s_!rMYu!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa9af0347-827d-4b92-af7e-bc44e393857c_1024x1536.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!rMYu!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa9af0347-827d-4b92-af7e-bc44e393857c_1024x1536.png" width="1024" height="1536" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a9af0347-827d-4b92-af7e-bc44e393857c_1024x1536.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1536,&quot;width&quot;:1024,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2817815,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://newsletter.dataskew.io/i/161470010?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa9af0347-827d-4b92-af7e-bc44e393857c_1024x1536.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!rMYu!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa9af0347-827d-4b92-af7e-bc44e393857c_1024x1536.png 424w, https://substackcdn.com/image/fetch/$s_!rMYu!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa9af0347-827d-4b92-af7e-bc44e393857c_1024x1536.png 848w, https://substackcdn.com/image/fetch/$s_!rMYu!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa9af0347-827d-4b92-af7e-bc44e393857c_1024x1536.png 1272w, https://substackcdn.com/image/fetch/$s_!rMYu!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa9af0347-827d-4b92-af7e-bc44e393857c_1024x1536.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p>]]></content:encoded></item><item><title><![CDATA[So You Think Your Manager Sucks]]></title><description><![CDATA[What engineers get wrong about management, and what good managers actually do all day]]></description><link>https://newsletter.dataskew.io/p/so-you-think-your-manager-sucks</link><guid isPermaLink="false">https://newsletter.dataskew.io/p/so-you-think-your-manager-sucks</guid><dc:creator><![CDATA[Adriano Sanges]]></dc:creator><pubDate>Fri, 11 Apr 2025 07:30:20 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!w-el!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F84d68a8f-067e-420d-a7a7-4e5db33c5e99_1024x1024.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>There is one universal truth in tech: engineers love to roast their managers.</p><p>Everywhere I have worked, the jokes are the same.</p><blockquote><p>"Must be nice, just sitting in meetings all day."<br>"What do managers even <em>do</em>?"<br>"My manager just forwards emails and books meetings."</p></blockquote><p>Honestly, I get it.</p><p>Early in my career, I thought the same. Management looked like a weird career graveyard for people who could not or would not code anymore.</p><p>Then I became a manager.</p><p>And I realized two things.</p><p>First, yes, there are absolutely terrible managers out there. Lazy ones. Political ones. Clueless ones. Managers who <em>are</em> exactly the stereotype.</p><p>Second, and way more important, good management is some of the hardest, messiest, most emotionally draining work I have ever done.</p><p>Not because it is complicated like writing code.</p><p>Because it is complicated like dealing with humans.</p><p>Especially when you are managing an international, fully remote team, spread across cultures, languages, and timezones, where communication is hard, trust takes forever, and context disappears in an instant.</p><p>So this is not a defense of managers.</p><p>This is a field report.</p><p>Here is what the job actually looks like when you care. Here is what keeps us up at night. Here is why good management is invisible, and why invisible work is still work.</p><p>And maybe, just maybe, next time you think your manager does nothing, you will pause.</p><p>Not for long.</p><p>Just long enough to wonder what they are doing behind the scenes so that <em>you</em> do not have to.</p><p></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!w-el!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F84d68a8f-067e-420d-a7a7-4e5db33c5e99_1024x1024.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!w-el!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F84d68a8f-067e-420d-a7a7-4e5db33c5e99_1024x1024.png 424w, https://substackcdn.com/image/fetch/$s_!w-el!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F84d68a8f-067e-420d-a7a7-4e5db33c5e99_1024x1024.png 848w, https://substackcdn.com/image/fetch/$s_!w-el!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F84d68a8f-067e-420d-a7a7-4e5db33c5e99_1024x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!w-el!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F84d68a8f-067e-420d-a7a7-4e5db33c5e99_1024x1024.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!w-el!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F84d68a8f-067e-420d-a7a7-4e5db33c5e99_1024x1024.png" width="1024" height="1024" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/84d68a8f-067e-420d-a7a7-4e5db33c5e99_1024x1024.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1024,&quot;width&quot;:1024,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1179660,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://newsletter.dataskew.io/i/161025587?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F84d68a8f-067e-420d-a7a7-4e5db33c5e99_1024x1024.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!w-el!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F84d68a8f-067e-420d-a7a7-4e5db33c5e99_1024x1024.png 424w, https://substackcdn.com/image/fetch/$s_!w-el!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F84d68a8f-067e-420d-a7a7-4e5db33c5e99_1024x1024.png 848w, https://substackcdn.com/image/fetch/$s_!w-el!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F84d68a8f-067e-420d-a7a7-4e5db33c5e99_1024x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!w-el!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F84d68a8f-067e-420d-a7a7-4e5db33c5e99_1024x1024.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><div><hr></div><h2>1. The Invisible Work of Engineering Management</h2><p>One of the biggest misconceptions about engineering managers is that we do nothing. Or worse, that we only do meetings and status updates and then go around taking credit for other people&#8217;s work.</p><p>The reality is that the job is absolutely packed with work, but most of it is invisible if you are not the one doing it. It is invisible because it happens in conversations, in Slack DMs, in documents nobody reads, in fights you prevent before they happen. It is invisible because it looks like "talking" but it is actually "thinking through problems together." It is invisible because good management removes friction before you even notice it was there.</p><p>But the real killer is context switching.</p><p>As an IC, you usually have 1 or 2 big problems in your head. As a manager, you juggle 15 at any given time. Someone&#8217;s unhappy with their project. Someone else is underperforming. You need to review next quarter&#8217;s hiring plan. There is an exec review coming up. Oh and your team just accidentally shipped a bug to production. Meanwhile, you are also supposed to write a performance review for someone while another person needs coaching on stakeholder communication.</p><p>Your brain never stays in one place long enough to feel productive. Instead, you hop between topics like a browser with 75 tabs open, all auto-refreshing and screaming for attention.</p><p>Your calendar? Forget it. Meetings show up like pop-up ads. One-on-ones, team syncs, skip-levels, leadership calls, hiring interviews, stakeholder updates, ad-hoc "quick chats" that are never actually quick.</p><p>Add to this the fact that decisions never stop coming. You are constantly making choices, about people, projects, priorities, words. And while many engineers love the clarity of solving a technical problem, management is the opposite. There is rarely a clean, right answer. There is only tradeoff after tradeoff after tradeoff.</p><p>By the end of the day, you are exhausted not because you "worked hard" in the traditional sense, but because your brain has been running an emotional operating system at 100 percent CPU for hours. And most of that work is completely invisible.</p><div><hr></div><h2>2. Managing People is Hard, Managing Humans is Harder</h2><p>Managing people sounds simple on paper. Set expectations, give feedback, check progress, unblock them, repeat.</p><p>Managing humans is an entirely different sport.</p><p>Every person comes with their own story, their own fears, their own triggers. What motivates one person drains another. What sounds like helpful feedback to you might sound like an attack to them. What sounds like silence to you might sound like disappointment to them.</p><p>You cannot treat everyone the same. That is not fairness, that is laziness.</p><p>The job is part coach, part therapist, part translator, part bad news delivery service. Some days people want advice. Some days they just want to vent. Some days they want you to shut up and listen. Knowing which day is today is an underrated skill.</p><p>Feedback is a minefield. Say it too softly and it gets ignored. Say it too directly and it crushes someone&#8217;s confidence. Say it at the wrong time and it ruins trust. Get it wrong enough times and people stop telling you the truth.</p><p>And when someone is struggling, it does not feel like a work problem, it feels like a human one. You stay up at night replaying the conversation. Did I say it wrong? Did I support them enough? Are they scared of me now? Are they scared for their job? Are they okay?</p><p>People issues are heavier than technical ones because code does not cry in one-on-ones.</p><p>Code does not feel stuck, or lost, or afraid. Code does not wonder if it is good enough. People do.</p><p>That is why managing humans is the hardest part of this job.</p><p></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!5H5y!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F87fc1b6b-1a15-41c5-a49c-3690ffbddabe_1024x1024.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!5H5y!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F87fc1b6b-1a15-41c5-a49c-3690ffbddabe_1024x1024.png 424w, https://substackcdn.com/image/fetch/$s_!5H5y!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F87fc1b6b-1a15-41c5-a49c-3690ffbddabe_1024x1024.png 848w, https://substackcdn.com/image/fetch/$s_!5H5y!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F87fc1b6b-1a15-41c5-a49c-3690ffbddabe_1024x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!5H5y!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F87fc1b6b-1a15-41c5-a49c-3690ffbddabe_1024x1024.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!5H5y!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F87fc1b6b-1a15-41c5-a49c-3690ffbddabe_1024x1024.png" width="1024" height="1024" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/87fc1b6b-1a15-41c5-a49c-3690ffbddabe_1024x1024.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1024,&quot;width&quot;:1024,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1541777,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://newsletter.dataskew.io/i/161025587?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F87fc1b6b-1a15-41c5-a49c-3690ffbddabe_1024x1024.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!5H5y!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F87fc1b6b-1a15-41c5-a49c-3690ffbddabe_1024x1024.png 424w, https://substackcdn.com/image/fetch/$s_!5H5y!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F87fc1b6b-1a15-41c5-a49c-3690ffbddabe_1024x1024.png 848w, https://substackcdn.com/image/fetch/$s_!5H5y!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F87fc1b6b-1a15-41c5-a49c-3690ffbddabe_1024x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!5H5y!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F87fc1b6b-1a15-41c5-a49c-3690ffbddabe_1024x1024.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><div><hr></div><h2>3. Remote, Async, Global: the Hard Mode</h2><p>Managing a team is already difficult. Managing a remote, international, async team is playing the game on hard mode with friendly fire always on.</p><p>Forget all the management advice that starts with "just grab coffee together" or "swing by their desk." There is no desk. There is no coffee. There is only Slack, Zoom, Google Docs, and the eternal hope that your words land the way you meant them.</p><p>Trust, which is the foundation of any good team, takes forever to build remotely. In an office, you build trust almost accidentally. In little moments. Jokes by the coffee machine. Sighing about the same bad meeting. Seeing someone&#8217;s body language when they are struggling.</p><p>Remote strips all of that away. Now you have to manufacture trust on purpose. Write more. Talk more. Check in more. And still, sometimes it feels like yelling into the void.</p><p>And then there is culture. Not company culture, but actual culture. People from different countries carry different habits, different assumptions, different social rules.</p><p>Silence can mean respect in one culture, disapproval in another. Saying "no" directly is polite in some places, rude in others. Sarcasm is hilarious in one country, offensive in another. Feedback can feel clear to you and aggressive to them. Or too soft. Or just confusing.</p><p>Add to this the timezone problem. Async work sounds beautiful in theory. In practice, it means someone is always asleep when a decision needs to be made. Someone always waits longer. Someone always feels left out.</p><p>So you start overcompensating. Writing longer Slack messages. Recording Looms. Leaving detailed context in Jira tickets. And still someone will say "Sorry, I missed this" because of course they did, they are human, not a notification-processing machine.</p><p>Even video calls, which are supposed to bring people closer, drain your energy faster than real life. Staring at a grid of faces, trying to read micro-expressions through bad internet connections, wondering if that long pause means confusion or someone is just lagging.</p><p>Remote management is not just logistics. It is emotional labor at scale. Every message, every call, every decision needs extra care, extra clarity, extra patience.</p><p>Because when you cannot read the room, you have to build the room.</p><div><hr></div><h2>4. The Weight of Caring</h2><p>This is the part nobody tells you about management.</p><p>The hardest part is not strategy. It is not performance reviews. It is not planning or process or communication.</p><p>The hardest part is caring.</p><p>Caring deeply, genuinely, fully about a group of humans who do not belong to you but who trust you, at least a little, with their time, their growth, and their well-being.</p><p>When you care, the job follows you home. It stays in your head when you are cooking dinner. It shows up in your dreams. It sits with you on weekends.</p><p>You worry constantly.</p><p>You worry that people are burning out but not telling you.<br>You worry that someone feels isolated and disconnected.<br>You worry that someone is unhappy but too polite to say it.<br>You worry that someone is about to quit and you did not see it coming.<br>You worry that someone is quietly disengaging because they feel stuck or underpaid or undervalued.</p><p>And you worry even more when it is your job to do something about it, but you are not sure what.</p><p>Sometimes you have to tell someone they are not performing. And you know that conversation will probably ruin their week. Maybe their month. Maybe their confidence. Maybe their relationship with you forever. But you have to say it because it is the job.</p><p>Sometimes you have to tell someone they are doing great, but the company cannot give them a raise right now. And it feels like lying, even if you are being honest.</p><p>Sometimes you have to protect your team from leadership chaos, layoffs, budget cuts, bad decisions. Not by hiding the truth, but by holding the weight of it until it is the right moment to share.</p><p>Sometimes you have to tell a team of smart, talented, committed people that their project is getting killed anyway.</p><p>And sometimes you just sit there, staring at Slack, wondering how to phrase one sentence that will carry the right amount of empathy, clarity, and honesty, without breaking the person on the other side.</p><p>It is invisible work.</p><p>It is emotional work.</p><p>And it is the part of management that nobody really prepares you for.</p><div><hr></div><h2>5. No Playbook, No Safe Answers</h2><p>One of the most frustrating parts of being a manager is realizing just how little of the job comes with a clear answer.</p><p>Engineers love clear answers. This code works, that code does not. This query runs fast, that query times out. There is a bug, you fix the bug.</p><p>Management is not like that.</p><p>Management lives in the world of tradeoffs. Everything you do is a choice between imperfect options. Everything is situational. Context is everything, and context changes all the time.</p><p>You want to give people freedom but you also want consistency. You want transparency but you cannot always share everything. You want velocity but you cannot burn people out. You want psychological safety but you also have deadlines and performance expectations.</p><p>Every decision has second-order effects you cannot fully predict.</p><p>Make a decision too fast, people feel left out. Make it too slow, people feel blocked. Be too soft, people get complacent. Be too direct, people get defensive. Focus too much on the top performers, the rest feel ignored. Focus too much on struggling folks, the best people get bored.</p><p>And the advice out there? Absolutely useless half the time.</p><blockquote><p>"Trust your team" but also "Be hands-on."<br>"Give feedback early and often" but also "Pick your battles."<br>"Be transparent" but also "Do not create panic."</p></blockquote><p>You will get blamed either way.</p><p>Say yes to leadership, your team thinks you sold them out. Say no to leadership, you might be out of the loop next time. Try to keep everyone happy, congratulations, now nobody is happy.</p><p>But the worst part is this: people expect you to project clarity and confidence when very often you have neither.</p><p>You are figuring it out just like everyone else. Only you have to look like you are not.</p><p>Nobody wants to hear "I do not know" from their manager too often, even if it is true. Nobody wants their manager to sound uncertain, even if uncertainty is the most honest possible answer.</p><p>So you live in this weird state of mind where you are constantly doubting yourself, second-guessing decisions, replaying conversations, while also trying to be the calm, steady presence everyone needs.</p><p>There is no playbook for this. There is only judgment, experience, and luck. And even those fail sometimes.</p><div><hr></div><h2>6. Why We Still Do It</h2><p>After all this, the obvious question is why would anyone willingly choose this job.</p><p>It is a fair question.</p><p>Most of the rewards of management are slow, subtle, and personal. There is no deploy moment. No green checkmark. No dopamine rush from closing a ticket.</p><p>But when it works, it really works.</p><p>When you see someone grow into a role they thought was too big for them. When you watch someone present confidently after months of working on their communication. When you see someone who once doubted themselves become the person others go to for help.</p><p>When the team gels. When people support each other without being told. When the culture is strong enough that you do not have to police it. When people say "this is the best team I have ever worked with" and you know they mean it.</p><p>That is what makes it worth it.</p><p>Management is not about power. It is not about control. It is not even about impact in the way ICs think about impact.</p><p>It is about shaping an environment where people can do their best work without fear, without politics, without burning out.</p><p>It is about designing systems of work, not just systems of code.</p><p>It is about building a little human infrastructure inside the messy world of tech.</p><p>It is about helping good engineers become good humans too.</p><p>But make no mistake. It is hard. It is messy. It is often lonely.</p><p>It is a job for people who can care deeply without losing themselves.</p><p>A job for people who can take hits quietly so their team does not have to.</p><p>A job for people who understand that success looks like other people shining.</p><p>And when it works, that is the best feeling in the world.</p><div><hr></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!nbNY!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0a8f9e71-07d3-4599-b015-510d9c35c0b0_1024x1024.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!nbNY!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0a8f9e71-07d3-4599-b015-510d9c35c0b0_1024x1024.png 424w, https://substackcdn.com/image/fetch/$s_!nbNY!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0a8f9e71-07d3-4599-b015-510d9c35c0b0_1024x1024.png 848w, https://substackcdn.com/image/fetch/$s_!nbNY!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0a8f9e71-07d3-4599-b015-510d9c35c0b0_1024x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!nbNY!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0a8f9e71-07d3-4599-b015-510d9c35c0b0_1024x1024.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!nbNY!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0a8f9e71-07d3-4599-b015-510d9c35c0b0_1024x1024.png" width="1024" height="1024" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/0a8f9e71-07d3-4599-b015-510d9c35c0b0_1024x1024.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1024,&quot;width&quot;:1024,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1527004,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://newsletter.dataskew.io/i/161025587?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0a8f9e71-07d3-4599-b015-510d9c35c0b0_1024x1024.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!nbNY!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0a8f9e71-07d3-4599-b015-510d9c35c0b0_1024x1024.png 424w, https://substackcdn.com/image/fetch/$s_!nbNY!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0a8f9e71-07d3-4599-b015-510d9c35c0b0_1024x1024.png 848w, https://substackcdn.com/image/fetch/$s_!nbNY!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0a8f9e71-07d3-4599-b015-510d9c35c0b0_1024x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!nbNY!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0a8f9e71-07d3-4599-b015-510d9c35c0b0_1024x1024.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><p>Look, I get it.</p><p>Engineers love to shit on managers. It is basically a sport at this point.</p><blockquote><p>"They do nothing."<br>"They are just middlemen."<br>"They block me from shipping."<br>"They do not even write code."</p></blockquote><p>Cool. But here is the thing.</p><p>If your manager really did nothing, your life would be absolute hell.</p><p>You would be in meetings all day. Fighting for resources. Arguing priorities with five other teams. Chasing feedback from stakeholders who ghost you. Trying to figure out why your compensation went nowhere for a year. Navigating company politics you do not even know exist.</p><p>Good management is invisible on purpose. It is not an accident. It is infrastructure. And like any good infrastructure, you only notice it when it breaks.</p><p>Bad managers make your life harder.<br>Good managers make your life quieter.</p><p>So sure, keep the memes coming. Keep roasting us in private Slack channels.</p><p>Just remember who is in the room fighting for your promotion while you are shitposting about how useless managers are.</p><p>Bad managers leave scars.<br>Good managers leave space.</p><p>And if it looks like we are doing nothing, that probably means we are doing it right.</p>]]></content:encoded></item><item><title><![CDATA[Remote Control: How Not to Suck at Working From Home]]></title><description><![CDATA[Simple habits that make remote teams better]]></description><link>https://newsletter.dataskew.io/p/remote-control-how-not-to-suck-at</link><guid isPermaLink="false">https://newsletter.dataskew.io/p/remote-control-how-not-to-suck-at</guid><dc:creator><![CDATA[Adriano Sanges]]></dc:creator><pubDate>Fri, 04 Apr 2025 14:32:19 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!EKgt!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F554e0ded-fd2b-46e0-8bbb-dd25e9993a5d_1024x1024.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Let&#8217;s be honest, remote work sounds like paradise until you&#8217;re three months in, still in pyjama pants at 4pm, having your sixth &#8220;quick&#8221; sync of the day, and wondering why no one on your team ever updates the damn docs.</p><p>Here&#8217;s the thing, remote work <em>can</em> be amazing. But only if we&#8217;re all intentional about how we do it. So here are some hard-earned tips, tricks, and general life lessons to help your remote engineering team not just survive, but actually work well together.</p><div><hr></div><h3>1. <strong>Write It Down or It Didn&#8217;t Happen</strong></h3><p>Remote teams live and die by documentation. If it&#8217;s not in a doc, a wiki, or a Slack thread with clear context, it&#8217;s just tribal knowledge floating around in someone&#8217;s brain... and that someone is probably on vacation next week.</p><p>Document decisions. Document processes. Document your weird edge case workaround that took you 4 hours and 3 existential crises to debug. Future you, and your teammates, will thank you.</p><div><hr></div><h3>2. <strong>Talk in Public. DMs Are Where Context Goes to Die.</strong></h3><p>Stop having all your technical discussions in DMs. I get it, it feels easier. No one will judge your half-baked idea or typos. But if your team doesn&#8217;t see the conversations, they can&#8217;t help. They can&#8217;t learn. And they definitely can&#8217;t debug that weird issue next time it comes up.</p><p>Use public channels. Thread your thoughts. Embrace a little digital vulnerability.</p><p>This is even more important for support and requests. Any request to your team should go to a public channel. Why?</p><p>First of all: context switch. If people come to you personally when they need something from your team, you kind of have to answer right? That distracts you from what you&#8217;re doing and it decreases your productivity. If there is a specific place where you can check all requests at once it&#8217;s much easier on you and it can be checked at your own pace and schedule.<br>Furthermore,  you can get metrics on the amount of requests or the most common and so on.</p><div><hr></div><h3>3. <strong>Don't Just Say &#8220;Hello&#8221;. Don&#8217;t Ask to Ask.</strong></h3><p>&#8220;Hey.&#8221;<br>&#8220;Hi, can I ask you a question?&#8221;<br>Sure. You just did.</p><p>This one&#8217;s simple. If you need something, just say it. &#8220;Hey, I&#8217;m trying to figure out why this Lambda won&#8217;t trigger from this S3 event. Do you have 5 minutes to pair?&#8221; is <em>so much</em> more helpful than a five-message dance around the actual point. Respect everyone&#8217;s time, including yours.</p><p>Honourable mentions are: https://nohello.net/en/ and https://dontasktoask.com/</p><div><hr></div><h3>4. <strong>Meetings: Not Too Many, Not Too Few, Just Enough to Stay Sane</strong></h3><p>Too many meetings and everyone&#8217;s calendar looks like a game of Tetris played by a sadist. Too few, and suddenly people are going rogue on major architecture changes because &#8220;it felt right.&#8221;</p><p>The trick is to <em>tune</em> your meeting cadence to what your team actually needs. Weekly check-ins? Maybe. Daily standups? Only if they&#8217;re useful. Async updates? Fantastic, if people actually read them. Adapt, experiment, and don&#8217;t be afraid to kill a meeting that no longer sparks joy.</p><div><hr></div><h3>5. <strong>Create Accountability Without Creating Fear</strong></h3><p>Blame culture is the silent killer of remote teams. If folks are afraid to admit mistakes, they&#8217;ll just stop talking. And then you&#8217;ll be blindsided by the thing they didn&#8217;t say when prod goes down at 3am.</p><p>Instead, create an environment where owning up is safe. Where &#8220;I broke it&#8221; is met with &#8220;Cool. Let&#8217;s fix it together&#8221; instead of an all-hands investigation and a passive-aggressive postmortem.</p><p>Accountability works best when people feel trusted, not watched.</p><div><hr></div><h3>6. <strong>Celebrate Everything. Loudly. Often. Even the Little Stuff.</strong></h3><p>Got a teammate who finally cleaned up a mess of spaghetti SQL? Celebrate it. Someone fixed a flaky test that&#8217;s been haunting your CI like a ghost with bad timing? Shout them out.</p><p>Wins aren&#8217;t just launch-day fireworks. They&#8217;re the tiny victories that keep your team going. And in a remote world, you have to go out of your way to make people feel seen. Post gifs. Use emojis. Go full cringe if you have to.</p><p>Because when people feel celebrated, they stay engaged. And happy teammates build better things.</p><div><hr></div><h3>7. <strong>Overcommunicate Just Enough</strong></h3><p>In an office, you get all kinds of passive context. Who&#8217;s talking to whom, what project is hot, what&#8217;s breaking in real time. Remote? You get radio silence unless someone pipes up.</p><p>So yeah, overcommunicate, but with taste. &#8220;Just deployed the new version, watching logs&#8221; is great. &#8220;Taking lunch, had a burrito, mildly regretting it&#8221;... maybe keep that to the personal channel.</p><p>And please, <em>say when you&#8217;re stuck</em>. You&#8217;re not annoying anyone. You&#8217;re preventing the team from wasting hours guessing why the build&#8217;s broken.</p><div><hr></div><h3>8. <strong>Async &#8800; Ignoring People</strong></h3><p>Async is powerful. It respects everyone&#8217;s time zones, schedules, and deep work. But it doesn&#8217;t mean &#8220;reply whenever you feel like it.&#8221; Especially when you&#8217;re blocking someone.</p><p>If someone tags you with a clear ask, acknowledge it, even just &#8220;got it, will reply by EOD.&#8221; Don&#8217;t ghost your team. Ghost your high school friends who ask for crypto advice instead.</p><div><hr></div><h3>9. <strong>Don&#8217;t Confuse Activity with Impact</strong></h3><p>&#8220;Online 9 to 6, green dot always on, Slack replies in under a minute.&#8221; That&#8217;s not productivity. That&#8217;s performance theater. And it burns people out <em>fast</em>.</p><p>Trust your team to manage their time. Measure outcomes, not hours. If someone disappears for a day and comes back with a beautifully optimized Snowflake model, you don&#8217;t need to know when they took their lunch break.</p><p>Micromanagement is just insecurity wearing a manager badge.</p><div><hr></div><h3>10. <strong>Rituals &gt; Random Vibes</strong></h3><p>Remote teams need <em>intentional</em> culture, because you don&#8217;t get accidental culture from hallway chats. That&#8217;s where rituals come in.</p><p>Think: weekly demo day. Friday shoutouts. Monthly &#8220;what did we learn?&#8221; sessions. Even dumb traditions like &#8220;Meme Monday&#8221; can help a team bond across time zones.</p><p>Rituals make distributed teams feel less like isolated satellites and more like a weird little crew that actually <em>wants</em> to work together.</p><p></p><h3>That&#8217;s a Wrap</h3><p>Remote work isn&#8217;t rocket science, but it <em>does</em> require more than just Slack and Wi-Fi. Start with these ten things and you&#8217;ll already be ahead of 90% of teams out there.</p><p>Got a favorite remote work tip, or a horror story? Hit reply and share it, I might include the best ones in the next issue.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!EKgt!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F554e0ded-fd2b-46e0-8bbb-dd25e9993a5d_1024x1024.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!EKgt!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F554e0ded-fd2b-46e0-8bbb-dd25e9993a5d_1024x1024.png 424w, https://substackcdn.com/image/fetch/$s_!EKgt!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F554e0ded-fd2b-46e0-8bbb-dd25e9993a5d_1024x1024.png 848w, https://substackcdn.com/image/fetch/$s_!EKgt!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F554e0ded-fd2b-46e0-8bbb-dd25e9993a5d_1024x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!EKgt!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F554e0ded-fd2b-46e0-8bbb-dd25e9993a5d_1024x1024.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!EKgt!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F554e0ded-fd2b-46e0-8bbb-dd25e9993a5d_1024x1024.png" width="1024" height="1024" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/554e0ded-fd2b-46e0-8bbb-dd25e9993a5d_1024x1024.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1024,&quot;width&quot;:1024,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1681299,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://newsletter.dataskew.io/i/160580803?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F554e0ded-fd2b-46e0-8bbb-dd25e9993a5d_1024x1024.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!EKgt!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F554e0ded-fd2b-46e0-8bbb-dd25e9993a5d_1024x1024.png 424w, https://substackcdn.com/image/fetch/$s_!EKgt!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F554e0ded-fd2b-46e0-8bbb-dd25e9993a5d_1024x1024.png 848w, https://substackcdn.com/image/fetch/$s_!EKgt!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F554e0ded-fd2b-46e0-8bbb-dd25e9993a5d_1024x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!EKgt!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F554e0ded-fd2b-46e0-8bbb-dd25e9993a5d_1024x1024.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p>]]></content:encoded></item><item><title><![CDATA[Working Remotely for a Company Without a Legal Entity in Your Country: What Are Your Options?]]></title><description><![CDATA[Let&#8217;s say you&#8217;re an Italian professional, and you&#8217;ve just landed a full-time remote role with a company based in the US or elsewhere in the EU.]]></description><link>https://newsletter.dataskew.io/p/working-remotely-for-a-company-without</link><guid isPermaLink="false">https://newsletter.dataskew.io/p/working-remotely-for-a-company-without</guid><dc:creator><![CDATA[Adriano Sanges]]></dc:creator><pubDate>Fri, 28 Mar 2025 09:55:10 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!SWLy!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9294b422-be8e-4ceb-a985-8994d2523c30_1024x1024.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p></p><p>Let&#8217;s say you&#8217;re an Italian professional, and you&#8217;ve just landed a full-time remote role with a company based in the US or elsewhere in the EU. The catch? They don&#8217;t have a legal entity in Italy. So how do they <em>actually</em> hire you?</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://newsletter.dataskew.io/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Skewed Thoughts by Adriano Sanges! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p>Good news: this setup is increasingly common, and there are two main paths that make it possible.</p><div><hr></div><h3>Option 1: Self-Employed with a VAT Number (Partita IVA)</h3><p>Even though it&#8217;s technically &#8220;freelancing,&#8221; many people go this route for <strong>full-time remote positions</strong> where the company is your only client. You&#8217;ll open a <strong>Partita IVA</strong> and invoice the company monthly or bi-monthly as a contractor.</p><p><strong>Important:</strong> this is still a full-time commitment, and the company expects you to work like any other employee, they just can't hire you directly.</p><p><strong>Pros:</strong></p><ul><li><p>Flexibility in how you manage your work and income.</p></li><li><p>Potential tax advantages depending on your regime and deductions.</p></li><li><p>You're not tied to an employer's payroll system or HR stack.</p></li></ul><p><strong>Cons:</strong></p><ul><li><p>You&#8217;re fully responsible for taxes, VAT filings, INPS contributions, healthcare, and pensions.</p></li><li><p>No built-in employment benefits unless you set them up yourself.</p></li><li><p>You&#8217;ll need a good accountant&#8212;and strong nerves.</p></li></ul><p><strong>Time off?</strong> Most companies offer you paid vacation days, often even more than their internal policy, to make up for the lack of local public holidays coverage and other employee perks.</p><div><hr></div><h3>Option 2: Be Hired Through an Employer of Record (EoR)</h3><p>An <strong>Employer of Record</strong> is a third-party service that hires you <em>on behalf</em> of the company. You&#8217;re employed by the EoR in your country (e.g. Italy), but you work full-time for the actual company that brought you in.</p><p>This is a great option when you want a &#8220;normal&#8221; employment contract and don&#8217;t want to deal with running your own business.</p><p>Well-known EoR providers include:</p><ul><li><p><a href="https://remote.com">Remote</a></p></li><li><p><a href="https://deel.com">Deel</a></p></li><li><p><a href="https://www.oysterhr.com">OysterHR</a></p></li></ul><p><strong>With an EoR:</strong></p><ul><li><p>You get a local employment contract.</p></li><li><p>You&#8217;re enrolled in Italy&#8217;s national pension system (INPS).</p></li><li><p>Contributions to your <strong>Fondo Pensione negoziale</strong> and <strong>TFR</strong> (severance pay) are handled.</p></li><li><p>You receive standard employment benefits like paid vacation, sick leave, and sometimes extras like private health insurance.</p></li></ul><p>In practice, it&#8217;s the same as being hired by an Italian company, but the EoR acts as the local employer, handling all the bureaucracy so your actual company doesn&#8217;t have to open a legal entity.</p><div><hr></div><h3>What About Job Security?</h3><p>In Italy, whether you&#8217;re hired directly, through an EoR, or as a self-employed contractor, <strong>your job security depends more on the company&#8217;s stability and willingness to keep you</strong> than on the type of contract.</p><p>Yes, if you&#8217;re employed via an EoR, you benefit from standard employment protections like &#8220;tutele crescenti&#8221; and unemployment benefits (NASpI). As a freelancer, you don't get that safety net, but you do gain more control and flexibility, if that&#8217;s what you&#8217;re after.</p><div><hr></div><h3>TL;DR</h3><p>&#127470;&#127481; <strong>Italian remote worker</strong><br>&#128188; Full-time role, one employer<br>&#128257; No local entity? Two solid options:</p><ol><li><p><strong>Self-employed with VAT (Partita IVA)</strong> &#8211; More responsibility, more flexibility.</p></li><li><p><strong>Hired via Employer of Record</strong> &#8211; Less admin, full employment protections.</p></li></ol><p>Most structured companies today will support <strong>either</strong> route. Just be sure to <strong>negotiate with the full picture in mind</strong>, especially if you&#8217;re self-employed. That great monthly rate? It needs to cover more than just your time.</p><div><hr></div><p>Already working this way? Thinking about switching? Hit reply, I&#8217;d love to hear how it&#8217;s working out for you.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://newsletter.dataskew.io/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Skewed Thoughts by Adriano Sanges! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[So, What Have I Been Doing?]]></title><description><![CDATA[Seven years, a few job hops, one daughter, and a return to side projects.]]></description><link>https://newsletter.dataskew.io/p/so-what-have-i-been-doing</link><guid isPermaLink="false">https://newsletter.dataskew.io/p/so-what-have-i-been-doing</guid><dc:creator><![CDATA[Adriano Sanges]]></dc:creator><pubDate>Thu, 27 Mar 2025 11:51:52 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!Bkhn!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F47a9ceeb-2ea8-4995-8048-8679c7a679e8_1024x1536.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Welcome to the first edition of <em>Skewed Thoughts</em>. I thought I&#8217;d start by sharing a bit of where I&#8217;ve been, what I&#8217;ve built, and what I&#8217;m hoping to rediscover.</p><p></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://newsletter.dataskew.io/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Skewed Thoughts by Adriano Sanges! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><div><hr></div><p>So. Here we are.</p><p>It&#8217;s been 7 years since the last time I was able, and more importantly, willing, to do something tech-related outside of work (aside from tinkering with my homelab).</p><p><strong>What have I been doing? Let&#8217;s rewind.</strong></p><p>Seven years ago, I was streaming tweets about Christmas to a Raspberry Pi, using Spark and NLP to analyze which countries loved Christmas the most.</p><p><strong>Why?</strong><br>Because I wanted to get a better job abroad and grow in my career.</p><p><strong>What happened?</strong><br>I got the job.</p><p>Bank of America hired me in Dublin as a Data Engineer. Up until then, I was a big data jack-of-all-trades: spinning up clusters, writing jobs, choosing tech, with zero guidance. And it showed.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Bkhn!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F47a9ceeb-2ea8-4995-8048-8679c7a679e8_1024x1536.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Bkhn!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F47a9ceeb-2ea8-4995-8048-8679c7a679e8_1024x1536.png 424w, https://substackcdn.com/image/fetch/$s_!Bkhn!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F47a9ceeb-2ea8-4995-8048-8679c7a679e8_1024x1536.png 848w, https://substackcdn.com/image/fetch/$s_!Bkhn!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F47a9ceeb-2ea8-4995-8048-8679c7a679e8_1024x1536.png 1272w, https://substackcdn.com/image/fetch/$s_!Bkhn!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F47a9ceeb-2ea8-4995-8048-8679c7a679e8_1024x1536.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Bkhn!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F47a9ceeb-2ea8-4995-8048-8679c7a679e8_1024x1536.png" width="1024" height="1536" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/47a9ceeb-2ea8-4995-8048-8679c7a679e8_1024x1536.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1536,&quot;width&quot;:1024,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:3671226,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://newsletter.dataskew.io/i/159980093?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F47a9ceeb-2ea8-4995-8048-8679c7a679e8_1024x1536.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!Bkhn!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F47a9ceeb-2ea8-4995-8048-8679c7a679e8_1024x1536.png 424w, https://substackcdn.com/image/fetch/$s_!Bkhn!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F47a9ceeb-2ea8-4995-8048-8679c7a679e8_1024x1536.png 848w, https://substackcdn.com/image/fetch/$s_!Bkhn!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F47a9ceeb-2ea8-4995-8048-8679c7a679e8_1024x1536.png 1272w, https://substackcdn.com/image/fetch/$s_!Bkhn!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F47a9ceeb-2ea8-4995-8048-8679c7a679e8_1024x1536.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><p>So I chose a big, structured company because that&#8217;s exactly what I needed.</p><p>There, I learned Agile, how to work in a big team, how to work in English, and how to properly use Scala. I went from knowing next to nothing to building a new framework that let the credit risk org spin up Spark batch jobs using just YAML.</p><p>But after a year, I was done. Bank pace is slow, and once I learned what I came for, I needed a change.</p><p></p><div><hr></div><p>I joined Jet.com as a Senior Data Engineer. They were building a real-time streaming data platform, basically what I had started at BofA, but on steroids.</p><p>Things moved fast. Anything I merged went straight to prod. Any bug could wake up the person on call (sometimes me). At first, it made me cautious. Then I adapted.</p><p>In six months, I was designing new features, leading on-call, talking to stakeholders, and seeing my impact in real time, literally.</p><p>The war room buzz on Black Friday? Unforgettable. Some of the best engineers I&#8217;ve ever worked with, all focused on keeping everything running smoothly.</p><p>A year in, I was offered the Tech Lead role.</p><p>Then came a twist: Jet.com would be fully merged into Walmart.</p><p>I helped migrate Jet&#8217;s systems to Walmart&#8217;s stack. We moved from Nomad on Azure to a multi-cloud setup, Databricks on Azure, Dataproc on Google, Kubernetes for orchestration. I designed a system that could deploy all streaming jobs across any of those platforms with a single API call. Failover, hot/hot, you name it. Still the best work of my life.</p><p>I stayed for 3 years. I learned so much. Then Walmart decided to shut down the Dublin office, right as I was closing on a house in the suburbs to work remotely in peace.</p><p>No peace was granted.</p><p></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!rYUX!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F81d23295-6ddd-455c-9a2f-74e6ca2e8783_1024x1536.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!rYUX!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F81d23295-6ddd-455c-9a2f-74e6ca2e8783_1024x1536.png 424w, https://substackcdn.com/image/fetch/$s_!rYUX!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F81d23295-6ddd-455c-9a2f-74e6ca2e8783_1024x1536.png 848w, https://substackcdn.com/image/fetch/$s_!rYUX!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F81d23295-6ddd-455c-9a2f-74e6ca2e8783_1024x1536.png 1272w, https://substackcdn.com/image/fetch/$s_!rYUX!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F81d23295-6ddd-455c-9a2f-74e6ca2e8783_1024x1536.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!rYUX!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F81d23295-6ddd-455c-9a2f-74e6ca2e8783_1024x1536.png" width="1024" height="1536" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/81d23295-6ddd-455c-9a2f-74e6ca2e8783_1024x1536.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1536,&quot;width&quot;:1024,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:3773709,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://newsletter.dataskew.io/i/159980093?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F81d23295-6ddd-455c-9a2f-74e6ca2e8783_1024x1536.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!rYUX!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F81d23295-6ddd-455c-9a2f-74e6ca2e8783_1024x1536.png 424w, https://substackcdn.com/image/fetch/$s_!rYUX!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F81d23295-6ddd-455c-9a2f-74e6ca2e8783_1024x1536.png 848w, https://substackcdn.com/image/fetch/$s_!rYUX!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F81d23295-6ddd-455c-9a2f-74e6ca2e8783_1024x1536.png 1272w, https://substackcdn.com/image/fetch/$s_!rYUX!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F81d23295-6ddd-455c-9a2f-74e6ca2e8783_1024x1536.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><div><hr></div><p>I had to job hunt at the same time as dozens of other great engineers. I got some offers and joined Workday. I would&#8217;ve worked on massive-scale, multi-tenant Scala applications in the integrations org.</p><p>But it never clicked. Not the job, not the company. And then they announced a return to office.</p><p>Meanwhile, I&#8217;d started talking to a French startup I&#8217;d never heard of: <strong>Didomi</strong>. The role? Engineering Manager. Not the &#8220;sits-in-meetings-all-day&#8221; kind, the kind that shapes the data vision of the company, wears multiple hats, and codes when needed.</p><p>Fully remote from day one. I was sold.</p><div><hr></div><p>At Didomi, I learned how consent management actually works. I dove into the legal requirements, designed the new system, hired the team, and got it to production. It took over a year, and it&#8217;s awesome.</p><p>In the meantime, I got married. I had a little girl.</p><p>And after 7 years in Ireland, we decided to move back to Italy. We love Ireland, but we also love watching her grow up surrounded by family. And Didomi made that move happen in days.</p><p></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Qu6R!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fadc6ca10-8bff-4a3a-b88f-a8c2cae0ae4f_1024x1536.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Qu6R!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fadc6ca10-8bff-4a3a-b88f-a8c2cae0ae4f_1024x1536.png 424w, https://substackcdn.com/image/fetch/$s_!Qu6R!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fadc6ca10-8bff-4a3a-b88f-a8c2cae0ae4f_1024x1536.png 848w, https://substackcdn.com/image/fetch/$s_!Qu6R!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fadc6ca10-8bff-4a3a-b88f-a8c2cae0ae4f_1024x1536.png 1272w, https://substackcdn.com/image/fetch/$s_!Qu6R!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fadc6ca10-8bff-4a3a-b88f-a8c2cae0ae4f_1024x1536.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Qu6R!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fadc6ca10-8bff-4a3a-b88f-a8c2cae0ae4f_1024x1536.png" width="1024" height="1536" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/adc6ca10-8bff-4a3a-b88f-a8c2cae0ae4f_1024x1536.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1536,&quot;width&quot;:1024,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:3821512,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://newsletter.dataskew.io/i/159980093?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fadc6ca10-8bff-4a3a-b88f-a8c2cae0ae4f_1024x1536.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!Qu6R!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fadc6ca10-8bff-4a3a-b88f-a8c2cae0ae4f_1024x1536.png 424w, https://substackcdn.com/image/fetch/$s_!Qu6R!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fadc6ca10-8bff-4a3a-b88f-a8c2cae0ae4f_1024x1536.png 848w, https://substackcdn.com/image/fetch/$s_!Qu6R!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fadc6ca10-8bff-4a3a-b88f-a8c2cae0ae4f_1024x1536.png 1272w, https://substackcdn.com/image/fetch/$s_!Qu6R!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fadc6ca10-8bff-4a3a-b88f-a8c2cae0ae4f_1024x1536.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><div><hr></div><p><strong>So&#8230; what have I been doing?</strong></p><p>I took time to build a family, and a career.</p><p>And now I&#8217;m back to where I started, with a keyboard, an idea, and the urge to build something new.</p><p>I don&#8217;t know what exactly yet, but we&#8217;ll figure it out.</p><p>If you&#8217;re curious to follow along, whether it&#8217;s data, tech, or the messy middle, I&#8217;ll be here.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://newsletter.dataskew.io/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Skewed Thoughts by Adriano Sanges! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item></channel></rss>