<?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[Dionis Lebedev 🇺🇦]]></title><description><![CDATA[I've scaled bootstrapped SaaS teams, fired underperformers, rebuilt from scratch, and stepped out when it worked. This is what I learned. A CTO's notes on fixing slow teams, making hard calls, and building engineering orgs.]]></description><link>https://blog.dionis.me</link><image><url>https://blog.dionis.me/img/substack.png</url><title>Dionis Lebedev 🇺🇦</title><link>https://blog.dionis.me</link></image><generator>Substack</generator><lastBuildDate>Fri, 10 Apr 2026 01:12:54 GMT</lastBuildDate><atom:link href="https://blog.dionis.me/feed" rel="self" type="application/rss+xml"/><copyright><![CDATA[Dionis Lebedev]]></copyright><language><![CDATA[en]]></language><webMaster><![CDATA[itsdionis@substack.com]]></webMaster><itunes:owner><itunes:email><![CDATA[itsdionis@substack.com]]></itunes:email><itunes:name><![CDATA[It's Dionis Lebedev 🇺🇦]]></itunes:name></itunes:owner><itunes:author><![CDATA[It's Dionis Lebedev 🇺🇦]]></itunes:author><googleplay:owner><![CDATA[itsdionis@substack.com]]></googleplay:owner><googleplay:email><![CDATA[itsdionis@substack.com]]></googleplay:email><googleplay:author><![CDATA[It's Dionis Lebedev 🇺🇦]]></googleplay:author><itunes:block><![CDATA[Yes]]></itunes:block><item><title><![CDATA[The Moment You've Outgrown Your Dev Agency]]></title><description><![CDATA[A practical guide to building your own engineering team from someone who's done it]]></description><link>https://blog.dionis.me/p/the-moment-youve-outgrown-your-dev</link><guid isPermaLink="false">https://blog.dionis.me/p/the-moment-youve-outgrown-your-dev</guid><dc:creator><![CDATA[It's Dionis Lebedev 🇺🇦]]></dc:creator><pubDate>Tue, 07 Apr 2026 12:06:58 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!3ycu!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc7ae7e12-f66f-4c15-8b93-b8657159176b_1682x1932.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Dev agencies get a bad rap. And honestly? A lot of it is deserved. But here&#8217;s the thing... agencies <strong>aren&#8217;t evil</strong>. For many founders, they&#8217;re the right move early on. You need an <strong>MVP</strong>, you don&#8217;t have a technical co-founder, and were not ready to hire a full engineering team. An agency gets you <strong>from zero to something</strong>. That&#8217;s real value.</p><p>But the problem starts when &#8220;something&#8221; becomes your actual product. When customers are paying. <strong>When the product needs to evolve fast.</strong> And you realize that the people building your core business... <strong>don&#8217;t actually work for you.</strong></p><p>That&#8217;s the moment most founders I talk to are in. Not angry at their agency. Just... ready for something more.</p><h3><strong>The Problem Nobody Talks About Publicly</strong></h3><p>If you look at dev agency reviews online, most are actually positive. Founders who had a good experience write about it. But the ones who <strong>got burned?</strong> They stay quiet. Nobody wants to publicly<strong> </strong>admit they spent six figures on something that didn&#8217;t work out.</p><p>So the real stories live in DMs. In &#8220;off the record&#8221; chats between founders. And what comes up over and over isn&#8217;t really about bad agencies... it&#8217;s <strong>about the gap</strong> between what the founder understood was happening and what was actually going on.</p><p>I would say this is the core of it. As a non-technical founder, you&#8217;re making decisions about something you <strong>can&#8217;t fully evaluate</strong>. The agency sends you a status update, it sounds great. But is it? You genuinely don&#8217;t know. And that&#8217;s not your fault. You <strong>shouldn&#8217;t need to read code</strong> to know if your product is on track.</p><p>This is actually the number one reason founders bring in someone technical on their side. Not to replace the agency. Not to fire anyone. Just to have <strong>someone who speaks both languages...</strong> who can sit in a technical conversation and then translate it into business impact. Like, &#8220;here&#8217;s what they&#8217;re actually saying. Here&#8217;s what it means for your timeline. Here&#8217;s what you should worry about, and here&#8217;s what&#8217;s fine.&#8221;</p><p>I did a technical audit for a B2B SaaS company, around 5 people, with a dev agency and a couple of &#8220;dedicated&#8221; engineers on their project. They had <strong>daily standups</strong>, things seemed to be moving but...</p><blockquote><p>&#8230;the software was buggy and <strong>launch date was postponed</strong> over and over again!</p></blockquote><p>Once I dug in, it was pretty straightforward. The engineers weren&#8217;t working with the <strong>urgency or ownership</strong> you&#8217;d expect from people building your core product. They didn&#8217;t understood the business nor critical user paths within the software, so they were just closing Jira tickets.</p><h3><strong>The Moment You&#8217;ve Outgrown the Model</strong></h3><p>There are signs. You start wanting to <strong>move faster</strong> than the agency&#8217;s sprint cycle allows. You want someone who <strong>deeply understands both,</strong> your codebase and the value you bring to your customers. You want to have a conversation about your product&#8217;s future and actually understand what&#8217;s realistic.</p><p>And to be fair... sometimes the answer is to stay with the agency. If you&#8217;re pre-product-market-fit and still figuring out what to build, a flexible agency relationship can totally make sense. But once you know what your product is and <strong>customers are paying</strong> for it, that&#8217;s when ownership starts to matter way more than flexibility.</p><div class="pullquote"><p>So the question becomes: <strong>how do you make that transition without blowing things up?</strong></p></div><h3><strong>How I Built a Team From Freelancers Up</strong></h3><p>A B2B SaaS startup, early millions in ARR, about a half-dozen people. I joined as their CTO. They had engineers from Upwork working &#8220;full-time&#8221;... I put that in quotes because these were freelancers billing by the hour with time tracking. It worked for a while.</p><p>The fear was real though:</p><blockquote><p><strong>&#8220;If we change anything, we&#8217;ll have downtime. Things will fall apart.&#8221;</strong></p></blockquote><p>I get it. When your product is live and customers are paying, the last thing you want is chaos. So I followed a rule I&#8217;ve learned the hard way: <strong>never break working systems.</strong></p><p>I didn&#8217;t replace anyone on day one. Instead, I started evaluating. Not just code... the people. Who&#8217;s actually delivering? Who takes <strong>ownership</strong>? Who treats this like their job versus a gig between other clients?</p><p>The thing is, changing teams is hard. It&#8217;s always hard. But it gets way easier when the reasoning behind the changes is crystal clear. And that only really works with in-house people who <strong>see themselves as part of the product</strong>, part of the mission. Not contractors billing hours for a project they&#8217;ll move on from next quarter.</p><p>The engineers who genuinely stepped into that mindset, who showed up consistently and took real ownership... they stayed. They became the <strong>core of the new team</strong>. The rest were <strong>gradually replaced</strong>. And yeah, it wasn&#8217;t always smooth. There were moments where we were thin, where I had to jump in <strong>hands-on</strong> to make sure nothing fell over while we were between hires. That&#8217;s the part nobody mentions in the clean &#8220;we rebuilt the team&#8221; narratives. </p><blockquote><p>It takes real work to keep the product stable while you&#8217;re changing the people building it.</p></blockquote><p>But we got through it. Under six months, the team went from deploying once a month with a full week of release prep to <strong>shipping twice a week</strong>. And that&#8217;s the kind of change you feel across the whole company... sales can promise features with actual timelines, support can tell customers &#8220;it&#8217;s fixed&#8221; instead of &#8220;it&#8217;s in the queue.&#8221;</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!3ycu!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc7ae7e12-f66f-4c15-8b93-b8657159176b_1682x1932.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!3ycu!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc7ae7e12-f66f-4c15-8b93-b8657159176b_1682x1932.jpeg 424w, https://substackcdn.com/image/fetch/$s_!3ycu!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc7ae7e12-f66f-4c15-8b93-b8657159176b_1682x1932.jpeg 848w, https://substackcdn.com/image/fetch/$s_!3ycu!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc7ae7e12-f66f-4c15-8b93-b8657159176b_1682x1932.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!3ycu!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc7ae7e12-f66f-4c15-8b93-b8657159176b_1682x1932.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!3ycu!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc7ae7e12-f66f-4c15-8b93-b8657159176b_1682x1932.jpeg" width="218" height="250.34065934065933" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c7ae7e12-f66f-4c15-8b93-b8657159176b_1682x1932.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1672,&quot;width&quot;:1456,&quot;resizeWidth&quot;:218,&quot;bytes&quot;:777105,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://blog.dionis.me/i/193449107?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc7ae7e12-f66f-4c15-8b93-b8657159176b_1682x1932.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!3ycu!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc7ae7e12-f66f-4c15-8b93-b8657159176b_1682x1932.jpeg 424w, https://substackcdn.com/image/fetch/$s_!3ycu!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc7ae7e12-f66f-4c15-8b93-b8657159176b_1682x1932.jpeg 848w, https://substackcdn.com/image/fetch/$s_!3ycu!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc7ae7e12-f66f-4c15-8b93-b8657159176b_1682x1932.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!3ycu!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc7ae7e12-f66f-4c15-8b93-b8657159176b_1682x1932.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h3><strong>From One Team to Multiple Teams</strong></h3><p>Over time, I didn&#8217;t just build a team. I grew it into <strong>multiple teams</strong> with their own leads.</p><p>I found people within the team who could own entire areas of the product. Not just write code, but <strong>make decisions</strong>, communicate with stakeholders, <strong>run their own sprints</strong>. That&#8217;s when engineering stops being a <strong>black box</strong> and starts being a real department that product, marketing, and sales can actually work with.</p><p>And this is where I realized something about the CTO role that led me to what I do now. Most of what fills a <strong>full-time CTO&#8217;s week</strong> at this stage is stuff that doesn&#8217;t need a CTO. Status syncs. Routine decisions. Administrative work. All of that belongs with team leads and product managers.</p><p>The work that actually <strong>shapes</strong> a company&#8217;s <strong>technical future</strong>... architecture decisions, hiring strategy, process design, aligning engineering with where the business is going... that&#8217;s where the <strong>real outcomes</strong> come from. You don&#8217;t need someone doing that <strong>50 hours a week</strong>. You need someone doing it well, consistently, with <strong>deep context</strong>.</p><h3><strong>What the Transition Actually Looks Like</strong></h3><p>I can tell you, founders always ask me &#8220;okay, but what does this actually look like <strong>week by week</strong>?&#8221; So here it is.</p><p>First couple of weeks, I <strong>audit what you have</strong>. Code, infrastructure, team, workflows. Real <strong>bottlenecks</strong> usually show up in the <strong>first few days.</strong>.. the rest is confirming and documenting.</p><p>First two months is the <strong>rebuild phase</strong>. Right people in the right seats, core processes in place. The team goes from shipping unpredictably to having a cadence you can actually plan around.</p><p>Months three to six, the <strong>team grows</strong>. Team leads emerge. You stop being pulled into every technical decision. Engineering starts <strong>talking directly to product</strong> and sales instead of everything going through you.</p><p>After six months... you get updates, not emergencies. The team and the knowledge belong to you. When someone leaves, the <strong>codebase and the processes stay</strong>.</p><p>That last part is what makes <strong>in-house</strong> different from agency:</p><div class="pullquote"><p>With an agency, <strong>everything lives in their systems</strong>, their processes, their people&#8217;s heads.</p></div><h3><strong>The Cost of Waiting</strong></h3><p>I&#8217;m not going to tell you the sky is falling. But I will say this... every month you run with an engineering setup that can&#8217;t ship fast, the <strong>cost compounds</strong>.</p><p>Not just in money. In opportunities. Feature your customers asked for months ago that&#8217;s still &#8220;in the next sprint.&#8221; A <strong>competitor who launched</strong> something similar last week. A bug that&#8217;s been <strong>&#8220;almost fixed&#8221;</strong> for four weeks.</p><p>The companies I work with that are doing well right now... they all have one thing in common. <strong>They own their engineering.</strong> They&#8217;ve got in-house teams using <strong>AI tools</strong> to move faster, cross-functional workflows where product and engineering actually talk to each other, and a release cadence that lets them respond to market in days, not months.</p><p>Looking back at everything I&#8217;ve seen over the years, the founders who made the <strong>transition</strong> earlier always wish they&#8217;d done it sooner. And the ones who waited... well, they still got there eventually. It just cost them more.</p><h3><strong>The Question Worth Asking</strong></h3><p>If you&#8217;re working with an agency or outsourced team right now, ask yourself this: do you understand what&#8217;s happening in your own product?</p><p>Not &#8220;do you get status updates.&#8221; Do you actually understand what&#8217;s being built, why decisions are being made, and whether you&#8217;re on track?</p><p>If the answer is &#8220;not really&#8221;... that&#8217;s your starting point.</p><div><hr></div><p><em>I&#8217;ve spent the last 15+ years building engineering teams in B2B SaaS and martech startups. If you&#8217;re thinking about making the transition from agency to in-house, or you&#8217;ve got a small remote team that needs structure and speed... </em></p><blockquote><p><em>I&#8217;ll do a free 1-hour outside opinion with you.</em></p></blockquote><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://dionis.me/cal&quot;,&quot;text&quot;:&quot;Schedule 1-hour free outside opinion&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://dionis.me/cal"><span>Schedule 1-hour free outside opinion</span></a></p><p><em>No code access needed. Just screen share or send me a Loom of your setup, and I&#8217;ll tell you honestly what I&#8217;d change and whether you actually have a problem worth fixing.</em></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!7TYd!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3ddcb983-b9a5-4ebf-8f28-28d295cc6a64.heic" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!7TYd!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3ddcb983-b9a5-4ebf-8f28-28d295cc6a64.heic 424w, https://substackcdn.com/image/fetch/$s_!7TYd!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3ddcb983-b9a5-4ebf-8f28-28d295cc6a64.heic 848w, https://substackcdn.com/image/fetch/$s_!7TYd!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3ddcb983-b9a5-4ebf-8f28-28d295cc6a64.heic 1272w, https://substackcdn.com/image/fetch/$s_!7TYd!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3ddcb983-b9a5-4ebf-8f28-28d295cc6a64.heic 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!7TYd!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3ddcb983-b9a5-4ebf-8f28-28d295cc6a64.heic" width="370" height="493.2486263736264" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/3ddcb983-b9a5-4ebf-8f28-28d295cc6a64.heic&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1941,&quot;width&quot;:1456,&quot;resizeWidth&quot;:370,&quot;bytes&quot;:1552921,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/heic&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://blog.dionis.me/i/189877600?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3ddcb983-b9a5-4ebf-8f28-28d295cc6a64.heic&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!7TYd!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3ddcb983-b9a5-4ebf-8f28-28d295cc6a64.heic 424w, https://substackcdn.com/image/fetch/$s_!7TYd!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3ddcb983-b9a5-4ebf-8f28-28d295cc6a64.heic 848w, https://substackcdn.com/image/fetch/$s_!7TYd!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3ddcb983-b9a5-4ebf-8f28-28d295cc6a64.heic 1272w, https://substackcdn.com/image/fetch/$s_!7TYd!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3ddcb983-b9a5-4ebf-8f28-28d295cc6a64.heic 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p style="text-align: center;"><em>Happy to help: <a href="https://dionis.me/wa">WhatsApp</a>, <a href="https://dionis.me/cal">Calendly</a>, <a href="https://dionis.me/connect">LinkedIn</a></em></p>]]></content:encoded></item><item><title><![CDATA[The Six-Pack Question Every CEO Should Ask Their Team]]></title><description><![CDATA[Years of effort, zero results. Until my 5-year-old asked one question.]]></description><link>https://blog.dionis.me/p/the-six-pack-question-every-ceo-should</link><guid isPermaLink="false">https://blog.dionis.me/p/the-six-pack-question-every-ceo-should</guid><dc:creator><![CDATA[It's Dionis Lebedev 🇺🇦]]></dc:creator><pubDate>Wed, 18 Mar 2026 21:44:21 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!MD4S!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fea8e651c-c3cc-447b-9a90-2ac9243e3d75_1320x1450.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!MD4S!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fea8e651c-c3cc-447b-9a90-2ac9243e3d75_1320x1450.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!MD4S!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fea8e651c-c3cc-447b-9a90-2ac9243e3d75_1320x1450.jpeg 424w, https://substackcdn.com/image/fetch/$s_!MD4S!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fea8e651c-c3cc-447b-9a90-2ac9243e3d75_1320x1450.jpeg 848w, https://substackcdn.com/image/fetch/$s_!MD4S!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fea8e651c-c3cc-447b-9a90-2ac9243e3d75_1320x1450.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!MD4S!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fea8e651c-c3cc-447b-9a90-2ac9243e3d75_1320x1450.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!MD4S!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fea8e651c-c3cc-447b-9a90-2ac9243e3d75_1320x1450.jpeg" width="228" height="250.45454545454547" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/ea8e651c-c3cc-447b-9a90-2ac9243e3d75_1320x1450.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1450,&quot;width&quot;:1320,&quot;resizeWidth&quot;:228,&quot;bytes&quot;:123858,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://blog.dionis.me/i/191416045?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fea8e651c-c3cc-447b-9a90-2ac9243e3d75_1320x1450.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!MD4S!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fea8e651c-c3cc-447b-9a90-2ac9243e3d75_1320x1450.jpeg 424w, https://substackcdn.com/image/fetch/$s_!MD4S!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fea8e651c-c3cc-447b-9a90-2ac9243e3d75_1320x1450.jpeg 848w, https://substackcdn.com/image/fetch/$s_!MD4S!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fea8e651c-c3cc-447b-9a90-2ac9243e3d75_1320x1450.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!MD4S!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fea8e651c-c3cc-447b-9a90-2ac9243e3d75_1320x1450.jpeg 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Last fall, I joined one of the best <strong>gyms</strong> in town. Black Friday sale, annual membership, the whole deal.</p><p>I joined mostly for mental health. There was a lot of uncertainty in my life, lot of ups and downs. Gym helped with that. It always has.</p><p>I&#8217;ve been going to gyms for years. I know the exercises, I have decent program, I show up 3 times a week. I was doing everything &#8220;right.&#8221;</p><p>And then my 5-year-old daughter seen my wife watch Bridgerton and saw some guy with a six-pack on screen. And she asked me: &#8220;Daddy, where is YOUR six-pack?&#8221;</p><p>I&#8217;m like: Hell, yeah. That&#8217;s right.</p><p>Years of working out. And I never actually set a goal of getting a six-pack.</p><h2><strong>The Day Everything Changed</strong></h2><p>Same day, I did the research. Turns out 80% of getting abs happens in the kitchen, not the gym.</p><p>So I downloaded a calorie tracking app (one with AI that scans your food - pretty cool - 0xCal), bought iso whey protein, set a target weight, and started calorie deficit.</p><p>And here&#8217;s the thing... when you have a clear goal, you start seeking out knowledge. A guy at the gym mentioned creatine to preserve strength while cutting. Before, I would have nodded and forgotten. Now I bought it the same day.</p><p>I stopped eating snacks, cookies, cakes. Basically stopped drinking alcohol except special occasions. Started weighing myself every day.</p><p>But here&#8217;s the crazy part: I&#8217;m pushing MORE weight in the gym now. Despite eating way fewer calories. Because every rep matters. Every meal matters. There&#8217;s a destination now.</p><p>Two weeks in, I&#8217;ve already dropped a couple of kilograms. And I feel more energized than before, not less.</p><h2><strong>Same Gym. Different Results.</strong></h2><p>The thing is, I was putting in effort before. Real effort.</p><ul><li><p>Going to the gym 3x per week &#10003;</p></li><li><p>Following decent program &#10003;</p></li><li><p>Showing up consistently &#10003;</p></li></ul><p>But I had no goal. I was just... maintaining. Going through the motions. Working out for the sake of working out.</p><p>The moment I set specific target, everything reorganized around it. Not just my workouts - my entire life shifted. Diet, supplements, tracking, focus. Same gym, same equipment, same time investment. Completely different trajectory.</p><h2><strong>Your Company Is Probably Doing the Same Thing</strong></h2><p>I see this pattern constantly in the companies I work with.</p><p>Teams that are genuinely busy. Genuinely working hard. Daily standups, sprint planning, quarterly reviews, lots of meetings. Everyone&#8217;s showing up. Everyone&#8217;s working.</p><p>But toward what?</p><p>When I ask: &#8220;What&#8217;s your six-pack? What specific outcome are you trying to achieve this quarter?&#8221; - often there&#8217;s silence. Or answers so vague they could mean anything.</p><p>The research backs this up. Businesses with clear goal-setting systems grow 12% faster and make 31% more money. But only 4 out of 10 employees actually understand what their company is trying to achieve.</p><p>More than half your team might be working toward... nothing specific.</p><h2><strong>Busy Is Not the Same as Productive</strong></h2><p>There&#8217;s an outdated mindset in lot of organizations: lots of input equals lots of output equals success. Full schedules and 60-hour weeks get rewarded with appreciative nods.</p><p>But busy doesn&#8217;t equal productive. Busy often gets in the way.</p><p>When you start conversations with &#8220;What did you do this week?&#8221; you create illusion of progress. Everyone&#8217;s always doing something.</p><p>When you start with &#8220;Did we move closer to our goal?&#8221; - suddenly it matters whether those activities produced results.</p><p>It&#8217;s the difference between &#8220;I went to the gym 3 times&#8221; and &#8220;I lost 2 kilos.&#8221;</p><h2><strong>Lead Metrics and Lag Metrics</strong></h2><p>This is where simple framework helps.</p><p>A lag metric is the outcome. It&#8217;s backward-looking - by the time you see it, it&#8217;s history. My weight on the scale. Your quarterly revenue. Customer churn rate.</p><p>A lead metric is the activity that predicts the outcome. It&#8217;s forward-looking - you can influence it directly. My daily calories. Your team&#8217;s number of customer conversations per week.</p><p>Most companies only track lag metrics. They look at revenue or churn after the fact and wonder why things aren&#8217;t improving. Or worse - they track activities without connecting them to any outcome at all.</p><p>&#8220;We shipped 47 features this quarter!&#8221; Great. Did it move the number you actually care about?</p><p>The moment you set clear goal, your lead metrics suddenly matter. They&#8217;re connected to something real. You can course-correct weekly instead of discovering problems quarterly.</p><h2><strong>What Actually Changes When People Know the Goal</strong></h2><p>Here&#8217;s where it gets interesting. Concrete example from my work.</p><p>When engineers only know &#8220;build feature X,&#8221; they build feature X. They might overengineer it. They might add complexity that looks impressive but doesn&#8217;t matter. They optimize for code elegance because that&#8217;s what they can see.</p><p>But when engineers know the actual business goal - &#8220;we need to reduce churn by 15% this quarter, and this feature is our hypothesis for how&#8221; - something shifts.</p><p>Suddenly they&#8217;re asking different questions. &#8220;What if we built simpler version first to validate the hypothesis?&#8221; &#8220;Do we even need this feature, or could we solve the churn problem differently?&#8221; &#8220;What&#8217;s the fastest path to learning if this works?&#8221;</p><p>They stop overengineering. They start thinking about validation. They offer alternative solutions you never considered.</p><p>Same engineers. Same skills. Same salaries. Completely different value delivered.</p><p>The goal changes the conversation.</p><h2><strong>The Question to Ask Yourself</strong></h2><p>If you&#8217;re running a company or leading a team:</p><p>Do you have a six-pack goal? Not a vague mission. Not a list of activities. A specific, measurable outcome you&#8217;re working toward this quarter.</p><p>Does your team actually know what it is? Not &#8220;heard it once in an all-hands&#8221; know. Really know.</p><p>Are your lead metrics connected to that goal? Or are you just tracking activity for activity&#8217;s sake?</p><p>I can tell you, employees with clear goals are 8.1 times more likely to actively seek ways to improve their work. That&#8217;s not a small difference. That&#8217;s a transformation.</p><h2><strong>Looking Back</strong></h2><p>Looking back, I could have had a six-pack years ago. All that time in the gym, all that effort, all those workouts... going somewhere, but nowhere specific.</p><p>One question from my daughter changed everything. Not because I started working harder. But because I finally knew what I was working toward.</p><p>What&#8217;s your six-pack?</p>]]></content:encoded></item><item><title><![CDATA[You've Got PMF. Now How Do You Build the Team?]]></title><description><![CDATA[How to go from scrappy MVP to a real engineering org without burning your cash or your sanity.]]></description><link>https://blog.dionis.me/p/you-got-pmf-how-do-you-build-the-team</link><guid isPermaLink="false">https://blog.dionis.me/p/you-got-pmf-how-do-you-build-the-team</guid><dc:creator><![CDATA[It's Dionis Lebedev 🇺🇦]]></dc:creator><pubDate>Wed, 04 Mar 2026 14:47:38 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!7TYd!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3ddcb983-b9a5-4ebf-8f28-28d295cc6a64.heic" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Your product is getting <strong>traction</strong>. People are signing up, money&#8217;s coming in, and your feature wishlist is growing way <strong>faster than your team can ship</strong>. </p><p>Things are working. But somewhere between your third &#8220;we need this yesterday&#8221; conversation and that 11pm Slack message to your developer... you start to feel it. You&#8217;re not building a product anymore. You&#8217;re firefighting.</p><p>That gap between &#8220;MVP that works&#8221; and &#8220;<strong>engineering team</strong> that scales&#8221;? That&#8217;s where most startups either level up or get stuck. And it&#8217;s exactly <strong>where I step in</strong>.</p><h2><strong>What&#8217;s Actually Slowing You Down?</strong></h2><p>When founders come to me, they usually start with the same thing: &#8220;Here&#8217;s everything I want to build.&#8221; Big roadmap. Lots of excitement. But that&#8217;s not where we start.</p><p>We start with a different question: </p><blockquote><p><strong>What&#8217;s the one thing blocking your growth right now?</strong></p></blockquote><p>Think of it like a <strong>restaurant</strong> that&#8217;s suddenly popular. You don&#8217;t immediately <strong>hire 10 more waiters</strong>. Maybe the <strong>real problem</strong> is the kitchen can&#8217;t keep up. Or maybe customers can&#8217;t even find a table because there&#8217;s no reservation system. </p><div class="pullquote"><p><strong>You fix the bottleneck, not just add headcount.</strong></p></div><p>Same thing with your product. Maybe your app crashes when too many users hit it at once... that&#8217;s a <strong>backend</strong> problem (database, everything behind the scenes). You need someone who can build the engine under the hood. Maybe users sign up and leave because the experience feels clunky... that&#8217;s a <strong>frontend</strong> problem (UI/UX, everything the user actually sees and clicks on). You need someone who can make the product feel polished and intuitive. </p><p>Or maybe you&#8217;re personally approving every technical decision and <strong>it&#8217;s eating your entire week</strong>... and that means you&#8217;re the bottleneck, and you need a technical leader.</p><p><strong>The bottleneck tells you who to hire first.</strong> Not some generic &#8220;ideal startup team&#8221; template you saw on Twitter or got from ChatGPT.</p><h2><strong>The Vibe Coding Hangover</strong></h2><p>Here&#8217;s something I see more and more. Founders who built their entire product with vibe coding. Described what they wanted, AI generated the code, and somehow... <strong>it worked</strong>. They got users. Some even got revenue.</p><p>I&#8217;ve talked to several founders in exactly this spot. The product is live, traction is real, but the code underneath? <strong>It&#8217;s like a house that was built in a weekend.</strong> It stands, but nobody&#8217;s quite sure which walls are load-bearing.</p><p>And I get it... these AI tools are incredible. I use them myself every single day. But there&#8217;s a big difference between using AI as a power tool and relying on it as your entire construction crew.</p><p>If that&#8217;s you, get real engineers involved early. </p><blockquote><p><strong>Your job is to be the founder...</strong> </p></blockquote><p>&#8230;talking to customers, closing deals, steering the ship. Not debugging code at midnight. The engineers I bring in know how to work with AI-built codebases. They figure out what&#8217;s solid, clean up what isn&#8217;t, and build on top of it properly.</p><h2><strong>Why I Build Teams in Eastern Europe</strong></h2><p>You might not know this, but some of the biggest tech products you use every day were built by Eastern European engineers. <strong>Grammarly</strong> was founded in Kyiv. <strong>WhatsApp</strong> was built by a Ukrainian-born engineer. <strong>GitLab</strong>, now a public company worth billions, was co-founded by a developer from Kharkiv. <strong>Preply</strong>, the language tutoring platform used by hundreds of thousands of students worldwide, started in <strong>Ukraine &#127482;&#127462;</strong> too.</p><div class="pullquote"><p>This isn&#8217;t an outsourcing play. This is where <strong>serious engineering talent</strong> lives.</p></div><p>I&#8217;ve been hiring and leading remote engineering teams in Eastern Europe <strong>since 2015</strong>. Long before COVID made remote work a thing. I&#8217;ve built teams across Portugal, Germany, Poland, Romania, Ukraine, and everywhere in between. Here&#8217;s why this works for US-based startups:</p><blockquote><p><strong>You get great people, fast.</strong> </p></blockquote><p>There are over 1.2 million developers in Central and Eastern Europe. Many trained at top technical universities, worked at international companies, and are genuinely excellent at what they do. The talent pool is deep, and because I&#8217;ve been in this market for over a decade, I know where to find the best people and I can move quickly. While a US recruiter is still screening resumes, I&#8217;ve already got candidates lined up.</p><blockquote><p><strong>Your money goes way further.</strong> </p></blockquote><p>Compared to US rates, you can save 50-60% on engineering costs. That means you hire 2-3 great engineers instead of one. Or you extend your runway by a year. That&#8217;s not cutting corners... that&#8217;s being smart with your money.</p><blockquote><p><strong>They&#8217;re online when you are.</strong> </p></blockquote><p>Eastern Europe overlaps with the US East Coast for over a half the working day, and fully overlaps with Western Europe. You&#8217;re not waiting until tomorrow for answers.</p><blockquote><p><strong>English for you, native language for depth.</strong> </p></blockquote><p>Your team speaks English in every meeting with you. All-hands, standups, one-on-ones... all in English. But when two engineers need to go deep on a technical problem, they can think and debate in their native language, which means faster, sharper problem-solving. I&#8217;ve set up teams where the product manager syncs with developers in their language and reports to the founder in English. Best of both worlds.</p><p>And here&#8217;s something founders don&#8217;t think about until it becomes a problem: <strong>the legal and tax side.</strong> I speak four languages fluently and I know the contractor regulations across Europe. From Portuguese freelancer laws to German compliance requirements to Ukrainian employment rules. Trust me, you do not want to figure this out on your own while also trying to scale your product.</p><h2><strong>How I Structure Your Team</strong></h2><p>Once we know your bottlenecks and who to hire first, the next question is how fast you want to scale.</p><p><strong>If you&#8217;re early and scrappy</strong>, one small team does the job. Two or three engineers and someone product-minded wearing multiple hats. You don&#8217;t need a 20-person org chart.</p><p><strong>If you&#8217;ve raised money and your roadmap is packed</strong>, I&#8217;d set up two small teams on two separate tracks. Think of it like opening two checkout lanes instead of one long line. Each team is tiny... two, three people... but they move independently and ship fast.</p><p>One thing I always make sure of: <strong>balance</strong>. Every engineer leans either <strong>backend</strong> or <strong>frontend</strong>, no matter what their resume says. I&#8217;m a backend guy myself... give me a database problem and I&#8217;m on it, but ask me to make the UI pixel-perfect? I&#8217;ll tell you &#8220;it looks fine&#8221; when it clearly doesn&#8217;t. So I build teams where someone cares about the engine and someone cares about the paint job.</p><p>And you need at least one <strong>product person</strong> watching the market, not just building features. Someone tracking competitors, digging into how users actually behave, making sure engineers build what matters most. Without that, your team is building in the dark.</p><h2><strong>Here&#8217;s How It Works</strong></h2><ol><li><p><strong>We figure out what you need.</strong> Bottlenecks, roadmap, budget. You get a clear plan: who to hire now, in 3 months, and what the team looks like in a year.</p></li><li><p><strong>I find the right people.</strong> Engineers who work with AI tools, team leads who run things without you, product people who translate your vision into specs. Best talent, startup-friendly rates.</p></li><li><p><strong>I set up the machine.</strong> Team structure, workflows, how code gets shipped, how the team communicates. Not heavy process... just enough so things don&#8217;t fall apart when you grow.</p></li><li><p><strong>I run it.</strong> As your fractional CTO, I lead engineering so you focus on the business. I&#8217;m in the code every day, I know what&#8217;s shipping, and I bridge your business goals with what actually gets built.</p></li></ol><h2><strong>Here&#8217;s What&#8217;s At Stake</strong></h2><p>Looking back at all the founders I&#8217;ve worked with... this transition <strong>from scrappy MVP to real engineering org</strong> is where startups win or lose time they can&#8217;t get back.</p><p>Some founders <strong>over-hire</strong> and burn through their cash too fast. Some <strong>under-hire</strong> and burn themselves out trying to do everything. Some hire the <strong>wrong people</strong> and lose an entire quarter figuring that out.</p><p>I&#8217;ve made these mistakes myself earlier in my career. And I&#8217;ve helped enough founders avoid them that I know exactly what the playbook looks like.</p><div><hr></div><blockquote><p>If you&#8217;ve got product-market fit and you&#8217;re thinking about building a real <strong>engineering team</strong>... </p></blockquote><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://dionis.me/wa&quot;,&quot;text&quot;:&quot;WhatsApp me!&quot;,&quot;action&quot;:null,&quot;class&quot;:&quot;button-wrapper&quot;}" data-component-name="ButtonCreateButton"><a class="button primary button-wrapper" href="https://dionis.me/wa"><span>WhatsApp me!</span></a></p><p>&#8230;shoot me a message on <strong>WhatsApp</strong> for a quick free call, or just send me an async question. Let&#8217;s just figure out what makes sense for where you are right now.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!7TYd!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3ddcb983-b9a5-4ebf-8f28-28d295cc6a64.heic" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!7TYd!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3ddcb983-b9a5-4ebf-8f28-28d295cc6a64.heic 424w, https://substackcdn.com/image/fetch/$s_!7TYd!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3ddcb983-b9a5-4ebf-8f28-28d295cc6a64.heic 848w, https://substackcdn.com/image/fetch/$s_!7TYd!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3ddcb983-b9a5-4ebf-8f28-28d295cc6a64.heic 1272w, https://substackcdn.com/image/fetch/$s_!7TYd!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3ddcb983-b9a5-4ebf-8f28-28d295cc6a64.heic 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!7TYd!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3ddcb983-b9a5-4ebf-8f28-28d295cc6a64.heic" width="370" height="493.2486263736264" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/3ddcb983-b9a5-4ebf-8f28-28d295cc6a64.heic&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1941,&quot;width&quot;:1456,&quot;resizeWidth&quot;:370,&quot;bytes&quot;:1552921,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/heic&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://blog.dionis.me/i/189877600?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3ddcb983-b9a5-4ebf-8f28-28d295cc6a64.heic&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!7TYd!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3ddcb983-b9a5-4ebf-8f28-28d295cc6a64.heic 424w, https://substackcdn.com/image/fetch/$s_!7TYd!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3ddcb983-b9a5-4ebf-8f28-28d295cc6a64.heic 848w, https://substackcdn.com/image/fetch/$s_!7TYd!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3ddcb983-b9a5-4ebf-8f28-28d295cc6a64.heic 1272w, https://substackcdn.com/image/fetch/$s_!7TYd!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3ddcb983-b9a5-4ebf-8f28-28d295cc6a64.heic 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p style="text-align: center;"><em>Happy to help: <a href="https://dionis.me/wa">WhatsApp</a>, <a href="https://dionis.me/cal">Calendly</a>, <a href="https://dionis.me/connect">LinkedIn</a></em></p>]]></content:encoded></item><item><title><![CDATA[Burning My Own Budget on Ads after 15 Years Building Marketing SaaS]]></title><description><![CDATA[What happens when a tech person stops building the tracking and starts spending the budget.]]></description><link>https://blog.dionis.me/p/burning-my-own-budget-on-ads-after</link><guid isPermaLink="false">https://blog.dionis.me/p/burning-my-own-budget-on-ads-after</guid><dc:creator><![CDATA[It's Dionis Lebedev 🇺🇦]]></dc:creator><pubDate>Thu, 19 Feb 2026 11:15:46 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!eiGd!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fede56a91-667b-424a-9cb5-eb5cc5fa45ef_832x1112.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>I&#8217;ve spent my whole career building <strong>MarTech SaaS</strong> products on the tech side. Been involved in setting up all the behind-the-scenes stuff that makes ad tracking actually work. The pixels, the server-side events, the attribution pipelines... I&#8217;ve seen it all <strong>from the engineering side</strong>.</p><p>But I&#8217;d never actually <strong>ran my own ads</strong>. Never spent <strong>my own budget</strong>. Never stared at a campaign dashboard wondering if I just lit money on fire.</p><p>Until now.</p><h2><strong>Why Ads? Why Not Just Get Referrals Like Everyone Else?</strong></h2><p>Here&#8217;s the thing. Most fractional CTOs get their clients through <strong>referrals</strong>. And the data backs it up... 90% of fractional executives rely on their <strong>network</strong> for new clients. Only 13% use paid advertising.</p><p>And sure, I&#8217;ve got a solid network across the US and Germany. But referrals have a <strong>cold start problem</strong>. Even with a big network, you&#8217;re just waiting for someone to think of you at the right moment.</p><p>Cold outreach works too, I&#8217;ve learned that from other fractional CTOs. But it requires serious dedication and way more patience than I had. You&#8217;re playing the <strong>long game</strong>.</p><p>I wanted <strong>results faster.</strong> Not because I need 100 customers. I want max 3-4 simultaneously. But I want them to be a perfect match. The kind of engagement where my expertise creates real impact and where there&#8217;s room for upside beyond just billing hours.</p><p>So I went with Meta ads.</p><h2><strong>The Setup: Where MarTech Experience Pays Off</strong></h2><p>This is where being a tech person running their own ads gets interesting.</p><p>Most founders launch Meta ads with the basic tracking snippet and hope for the best. The problem? Ad blockers and iPhone privacy settings silently eat 30% of your data. You&#8217;re making budget decisions on incomplete information without even knowing it.</p><p>So I set up a <strong>proper tracking stack</strong>. In plain English: I made sure the data reaches Meta through two independent channels instead of one, with safeguards so nothing gets counted twice. On top of that, I added my own analytics layer to see the full picture... not just what Meta chooses to show me.</p><p>For the more technical folks, here&#8217;s the breakdown:</p><ul><li><p><strong>Client-side Meta Pixel</strong> for browser-based tracking</p></li><li><p><strong>Server-side Conversions API (CAPI)</strong> that bypasses ad blockers and iOS privacy restrictions</p></li><li><p><strong>Event deduplication</strong> so Meta doesn&#8217;t double-count conversions when both channels fire</p></li><li><p><strong>Reverse proxy</strong> routing tracking through my own domain for higher data quality</p></li><li><p><strong>PostHog</strong> tracking every single step in the pipeline, from first click to conversion</p></li></ul><blockquote><p><em>If this sounds like the kind of setup you need, <a href="https://dionis.me/wa">WhatsApp me</a>.</em></p></blockquote><p>If you haven&#8217;t heard of PostHog... think of it as an open-source alternative to tools like Google Analytics plus Mixpanel or Amplitude. I use it to see exactly what happens after someone clicks my ad.</p><p>And here&#8217;s the AI part... I built the dashboards using <strong>AI</strong>. There&#8217;s a thing called <strong>PostHog MCP</strong> that basically lets AI tools plug directly into services like PostHog and talk to them. So instead of spending hours manually clicking through dashboard builders, I described what I wanted to see in plain language and <strong>AI generated the dashboards for me.</strong> That&#8217;s the kind of leverage AI gives you when you know what to ask for.</p><h2><strong>The Experiment: 4 Pains x 2 Formats</strong></h2><p>I launched with a structured test. Four different pain points that <strong>SaaS founders</strong> typically face, each in two formats: <strong>image and video</strong>. Eight ad variations total, all driving to my website.</p><p>Started with <strong>broad audience</strong> targeting since it often outperforms micro-targeted campaigns. The algorithm finds patterns you&#8217;d never think to target manually.</p><p>Then I watched who <strong>engaged</strong> with what.</p><p>And here&#8217;s what I <strong>learned</strong>: my funnel was too generic to cover all four pains effectively. But that&#8217;s exactly the point of running the experiment. Now I know which pain resonated the most and which audience to narrow down on.</p><p>I also learned that <strong>broad targeting can backfire</strong>. My ads were getting a lot of attention from developers instead of the founders and CEOs I was actually trying to reach. So I narrowed down the targeting. Lesson learned: clean data signals help the algorithm, but you still need to tell it who you&#8217;re talking to.</p><p>One topic in particular sparked a lot of reactions... good and bad... among founders and devs. Highly risky, kind of nasty topic. But well, that&#8217;s me. <strong>I like sparking emotions and challenging beliefs for good.</strong> More on that in upcoming posts.</p><h2><strong>The Consultant Move: AI Can&#8217;t Replace This</strong></h2><p>I hired a <strong>consultant</strong> to help me set things up right. Campaigns, ad sets, budget limits, optimizing for leads vs. first meaningful contact.</p><p>And here&#8217;s something I&#8217;ve learned recently as a good habit: </p><blockquote><p><strong>Always bring in a human expert, even when you&#8217;re capable yourself.</strong></p></blockquote><p>Sure, you can ask AI for campaign structure advice. I literally build AI integrations for a living. But here&#8217;s what AI can&#8217;t do... it <strong>can&#8217;t stop you from freaking out</strong> when your first $300 disappears with zero results. It can&#8217;t talk you off the ledge when you&#8217;re about to kill a campaign too early. It can&#8217;t share that gut feeling from having managed thousands of campaigns.</p><p><strong>Human relationships and emotions are priceless.</strong> AI is an incredible tool for execution and analysis. But the human element... the reassurance, the pattern recognition from years of experience, the ability to say &#8220;relax, this is normal, give it three more days&#8221;... that&#8217;s something no model can replicate.</p><p>I use <strong>AI to build dashboards</strong>, generate tracking code, analyze data patterns. I use humans to make better decisions under pressure.</p><h2><strong>What&#8217;s Next</strong></h2><p>I&#8217;m starting a blog series on the <strong>topics that resonated</strong> in my ads. The ones that sparked debate, made people uncomfortable, got founders thinking differently.</p><p>But I&#8217;m also gonna explore <strong>every channel</strong>. Not because I need dozens of clients. Because I want every client to be a <strong>perfect match</strong>. The kind where I know I can actually move the needle.</p><p>For the ones who aren&#8217;t a perfect match with me personally? I&#8217;m building relationships with other fractional leaders I can <strong>confidently recommend</strong>. </p><blockquote><p><strong>Because doing right by people matters more than closing a deal.</strong></p></blockquote><p>Looking back, the biggest surprise wasn&#8217;t the technical setup. That part I knew. It was how different it feels when it&#8217;s your own money, your own brand, and your own future on the line.</p><p>Well, stay tuned.</p><div><hr></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://dionis.me/wa&quot;,&quot;text&quot;:&quot;WhatsApp me!&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://dionis.me/wa"><span>WhatsApp me!</span></a></p><p><em>If you&#8217;re a founder dealing with any of this, happy to help: <a href="https://dionis.me/wa">WhatsApp</a>, <a href="https://dionis.me/cal">Calendly</a>, <a href="https://dionis.me/connect">LinkedIn</a></em></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!eiGd!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fede56a91-667b-424a-9cb5-eb5cc5fa45ef_832x1112.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!eiGd!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fede56a91-667b-424a-9cb5-eb5cc5fa45ef_832x1112.jpeg 424w, https://substackcdn.com/image/fetch/$s_!eiGd!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fede56a91-667b-424a-9cb5-eb5cc5fa45ef_832x1112.jpeg 848w, https://substackcdn.com/image/fetch/$s_!eiGd!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fede56a91-667b-424a-9cb5-eb5cc5fa45ef_832x1112.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!eiGd!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fede56a91-667b-424a-9cb5-eb5cc5fa45ef_832x1112.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!eiGd!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fede56a91-667b-424a-9cb5-eb5cc5fa45ef_832x1112.jpeg" width="300" height="400.96153846153845" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/ede56a91-667b-424a-9cb5-eb5cc5fa45ef_832x1112.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1112,&quot;width&quot;:832,&quot;resizeWidth&quot;:300,&quot;bytes&quot;:130257,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://itsdionis.substack.com/i/188473571?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd0871ed3-b3c1-4860-867c-26950dc7597f_832x1472.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!eiGd!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fede56a91-667b-424a-9cb5-eb5cc5fa45ef_832x1112.jpeg 424w, https://substackcdn.com/image/fetch/$s_!eiGd!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fede56a91-667b-424a-9cb5-eb5cc5fa45ef_832x1112.jpeg 848w, https://substackcdn.com/image/fetch/$s_!eiGd!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fede56a91-667b-424a-9cb5-eb5cc5fa45ef_832x1112.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!eiGd!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fede56a91-667b-424a-9cb5-eb5cc5fa45ef_832x1112.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div>]]></content:encoded></item><item><title><![CDATA[Why Tripling Your Dev Team Won't Triple Your Output]]></title><description><![CDATA[And what to do instead]]></description><link>https://blog.dionis.me/p/why-tripling-your-dev-team-wont-triple</link><guid isPermaLink="false">https://blog.dionis.me/p/why-tripling-your-dev-team-wont-triple</guid><dc:creator><![CDATA[It's Dionis Lebedev 🇺🇦]]></dc:creator><pubDate>Wed, 04 Feb 2026 12:20:56 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!tlfq!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F46e7faf0-d81c-41c2-9366-56da338a1607_2752x1536.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>You have a dev team of 5. Features are shipping slowly. The obvious fix? Hire more developers.</p><p>So you triple the team.</p><p>Here&#8217;s what nobody tells you: your output won&#8217;t triple. It probably won&#8217;t even double. And if you rush it? Your velocity might actually <em>drop</em>.</p><p><strong>The benchmark:</strong> If you go from 5 to 15 engineers, doubling your output would be a good result. Tripling? That would be outrageous. Most teams don&#8217;t even get close.</p><p>I&#8217;ve scaled teams multiple times. And I&#8217;ve watched inexperienced managers make this exact mistake over and over.</p><h2><strong>Brooks&#8217;s Law: The Classic Trap</strong></h2><p>This problem has a name. Back in 1975, Fred Brooks wrote <em>The Mythical Man-Month</em> and coined what&#8217;s now called Brooks&#8217;s Law: &#8220;Adding manpower to a late software project makes it later.&#8221;</p><p>Why? Two reasons.</p><p>First, new people need ramp-up time. They need to learn the codebase, ask questions, get code reviews. During this time, they&#8217;re not just unproductive... they&#8217;re actually pulling your existing team away from their work.</p><p>Second, communication overhead grows exponentially. A team of 5 has 10 communication paths. A team of 15? That&#8217;s 105 paths. Every additional person makes coordination harder.</p><p>Brooks called it an &#8220;outrageous oversimplification,&#8221; but decades of research have validated the core insight. Studies consistently show that teams over 9 people are significantly less productive per person than smaller teams.</p><h2><strong>The Math That Kills Your Roadmap</strong></h2><p>Let&#8217;s say you have 5 engineers. They&#8217;re great. They know the system in and out, they wrote it themselves. Now you hire 10 more over next months.</p><p>Skip the onboarding. That&#8217;s a few weeks to a month, fine.</p><p>But then what happens?</p><p><strong>Your original 5 engineers stop coding.</strong></p><p>Or at least, they code way less. Some of them become team leads. Engineering managers. They&#8217;re now spending time on people stuff instead of building features. The same people who knew every corner of your codebase? They&#8217;re now in meetings.</p><p><strong>Your new hires can&#8217;t debug like the originals.</strong></p><p>Those new 10 engineers haven&#8217;t written the code. They don&#8217;t know the edge cases. They haven&#8217;t learned why that weird function exists. It takes months... sometimes 6 months or more to get truly deep into a complex system.</p><p><strong>And here&#8217;s the killer: collisions.</strong></p><p>The amount of handoffs. Merge conflicts. People stepping on each other&#8217;s toes. Every additional person adds communication overhead.</p><p>You know that question you always ask your CTO: &#8220;Why is this taking so long?&#8221;</p><p>This is why.</p><h2><strong>The 9 Women, 1 Baby Problem</strong></h2><p>Here&#8217;s the thing. You cannot give birth to a baby in one month with 9 women. That&#8217;s not how it works.</p><p>But 9 women can give birth to 9 babies.</p><p>Same logic applies to software. If you have 5 people working on 2 features, adding 10 more people to those same 2 features won&#8217;t make them ship 3x faster. You&#8217;ll just have 15 people tripping over each other.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://blog.dionis.me/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"><em>Thanks for reading!</em></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><h2><strong>How I Actually Scaled Without Losing Velocity</strong></h2><p>With this logic, I scaled my team from 5 to 15 without losing a single bit of productivity.</p><p>The secret? <strong>No collisions.</strong></p><p>Coming from an engineering background myself, I did this intuitively at first. Don&#8217;t have people working on the same thing. No coordination overhead. No conflicts. No merge hell.</p><p>In practice, this meant 1-2 people per feature, balanced by stack (front-end and back-end). But the exact number doesn&#8217;t matter. What matters is that people aren&#8217;t stepping on each other.</p><p>Only later, when I started researching why this worked, I realized I was applying what&#8217;s called <strong>modular design</strong> in software architecture. The same principle that makes good code... makes good teams. Reduce dependencies. Create clear boundaries. Let each unit operate independently.</p><p>It worked. The scale initially worked really well.</p><p>But then the bottleneck shifted.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!tlfq!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F46e7faf0-d81c-41c2-9366-56da338a1607_2752x1536.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!tlfq!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F46e7faf0-d81c-41c2-9366-56da338a1607_2752x1536.jpeg 424w, https://substackcdn.com/image/fetch/$s_!tlfq!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F46e7faf0-d81c-41c2-9366-56da338a1607_2752x1536.jpeg 848w, https://substackcdn.com/image/fetch/$s_!tlfq!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F46e7faf0-d81c-41c2-9366-56da338a1607_2752x1536.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!tlfq!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F46e7faf0-d81c-41c2-9366-56da338a1607_2752x1536.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!tlfq!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F46e7faf0-d81c-41c2-9366-56da338a1607_2752x1536.jpeg" width="380" height="212.18406593406593" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/46e7faf0-d81c-41c2-9366-56da338a1607_2752x1536.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:813,&quot;width&quot;:1456,&quot;resizeWidth&quot;:380,&quot;bytes&quot;:2772663,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://itsdionis.substack.com/i/186845880?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F46e7faf0-d81c-41c2-9366-56da338a1607_2752x1536.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!tlfq!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F46e7faf0-d81c-41c2-9366-56da338a1607_2752x1536.jpeg 424w, https://substackcdn.com/image/fetch/$s_!tlfq!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F46e7faf0-d81c-41c2-9366-56da338a1607_2752x1536.jpeg 848w, https://substackcdn.com/image/fetch/$s_!tlfq!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F46e7faf0-d81c-41c2-9366-56da338a1607_2752x1536.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!tlfq!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F46e7faf0-d81c-41c2-9366-56da338a1607_2752x1536.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><h2><strong>The Bottleneck Always Moves</strong></h2><p>First it moved to product management. We had a big pipeline planned out, so we survived for a while.</p><p>But then ownership became the problem.</p><p>We had features. We had people. No conflicts between features. But... how is the feature connected to the product? To the market? To what customers actually need?</p><p>This is where gaps showed up.</p><p><strong>The engineers were just taking tickets and implementing them.</strong> They didn&#8217;t understand <em>why</em> the feature mattered. They couldn&#8217;t make smart tradeoffs. They weren&#8217;t adding analytics by default. They weren&#8217;t thinking about the business.</p><p>So the next level was engaging engineers in co-ownership. Not just &#8220;take the feature, implement it, done.&#8221; But actually understanding the business value of what they&#8217;re building.</p><p>When product management was the bottleneck, engineers who understood the business could still move forward. They could add the right tracking. They could <strong>make smart decisions</strong> without waiting for specs.</p><h2><strong>The Ratios Nobody Talks About</strong></h2><p>Here&#8217;s something most founders miss: you can&#8217;t just add engineers. You need to maintain ratios.</p><p><strong>Product-to-dev ratio.</strong> If you have 15 engineers but only 1 product person defining what to build, you&#8217;ll have 10 engineers waiting around or building the wrong things. The industry standard is roughly 1 product manager per 5-7 engineers for complex B2B products. You need enough product capacity to keep your engineering team busy with validated, meaningful work.</p><p><strong>The senior-to-junior balance.</strong> If you hire 10 juniors and expect your 2 seniors to mentor all of them while still shipping... good luck. The seniors become full-time teachers and your velocity tanks.</p><p><strong>Management span.</strong> One manager can effectively handle 5-8 direct reports. If you go from 5 to 15 engineers, you need at least one more layer of management. That&#8217;s another person who used to code and now doesn&#8217;t.</p><p><strong>The 10-engineer threshold.</strong> Once you hit around 10 engineers, you need to start thinking about breaking them into separate teams. That&#8217;s where the direct reports limit kicks in. One person simply can&#8217;t effectively manage more than that. At some point I had to <strong>do exactly this</strong>... split the group into smaller teams with their own leads. Otherwise you end up with a manager who&#8217;s stretched too thin and engineers who don&#8217;t get the attention they need.</p><h2><strong>How Long Does This Actually Take?</strong></h2><p>This is something I&#8217;ve done consistently, so I can speak to my own pace here.</p><p>If you do it right and go aggressive, you can nail this scale in a quarter.</p><p>At a sustainable pace, half a year.</p><p>If you&#8217;re busy with other things along the way and can&#8217;t give it full attention and hire gradually, expect it to take up to a year before the team is truly humming.</p><p>The mistake is expecting the new team to perform at full capacity in month two. It won&#8217;t happen.</p><h2><strong>What This Means for You</strong></h2><p>If you&#8217;re a <strong>founder</strong> thinking about scaling your dev team from 5 to 15... or 15 to 50... there&#8217;s no single answer.</p><p><strong>It depends what stage you&#8217;re at and your current needs.</strong></p><p><strong>Behind on features and need to ship faster?</strong><br>Hire people. But make sure they&#8217;re working on independent things. No overlap. No collisions. That&#8217;s how you get actual velocity gains.</p><p><strong>Looking for product-market fit?</strong><br>Don&#8217;t scale aggressively. You don&#8217;t need 15 engineers building the wrong thing faster. Keep the team small and iterate quickly.</p><p><strong>Need better strategy and market fit?</strong><br>That&#8217;s not a hiring problem. That&#8217;s about training your existing team. Making them collaborate more. Involving them in product decisions early. Teaching co-ownership so every engineer thinks about business impact, not just code.</p><h2><strong>The Real Question</strong></h2><p>Before you hire those 10 new developers, ask yourself:</p><ul><li><p>Do I have enough independent features to give them?</p></li><li><p>Will my senior people become managers and stop coding?</p></li><li><p>Do I have the product pipeline to keep 15 people busy with meaningful work?</p></li><li><p>Do I have the right ratios (product, senior/junior, management)?</p></li><li><p>Will my current bottleneck just move somewhere else?</p></li></ul><p>There&#8217;s always a trade-off. You&#8217;re <strong>managing bottlenecks</strong>, basically. Moving them from place to place. Engineering bandwidth. Product clarity. Market understanding. Co-ownership.</p><p>The question isn&#8217;t &#8220;should I hire more?&#8221; The question is &#8220;what&#8217;s my actual bottleneck right now?&#8221;</p><div><hr></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://wa.me/message/VBEKMAVZIMRZM1&quot;,&quot;text&quot;:&quot;WhatsApp me!&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://wa.me/message/VBEKMAVZIMRZM1"><span>WhatsApp me!</span></a></p><p>I&#8217;ve been in tech for 20 years. 7 years as a CTO, before that an engineering manager, before that an engineer. Building teams, scaling them, coaching founders through exactly this problem.</p><p>If you&#8217;re facing this challenge, reach out.</p>]]></content:encoded></item><item><title><![CDATA[Your Competitors Are Shipping Faster With AI. Are You?]]></title><description><![CDATA[What I've learned helping engineering teams actually capture AI's potential]]></description><link>https://blog.dionis.me/p/your-competitors-are-shipping-faster</link><guid isPermaLink="false">https://blog.dionis.me/p/your-competitors-are-shipping-faster</guid><dc:creator><![CDATA[It's Dionis Lebedev 🇺🇦]]></dc:creator><pubDate>Wed, 21 Jan 2026 23:19:26 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!JKKH!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1670102a-5639-406b-807f-e3702c7d329a_840x580.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Here&#8217;s what I&#8217;ve been seeing with engineering teams lately.</p><p>AI coding tools are everywhere now. Cursor, Claude... your developers are probably using them already. And the thing is, they actually work. I&#8217;m talking 30-40% faster at the individual level. That&#8217;s real.</p><p>I wrote before about how I <a href="https://itsdionis.substack.com/p/you-bought-the-ai-tools-nobodys-using">got 90% of my engineers using AI daily</a>. Getting adoption was step one. But here&#8217;s what I&#8217;ve learned since: <strong>adoption isn&#8217;t the same as results.</strong></p><p>Most teams I talk to aren&#8217;t shipping faster. They&#8217;re generating more code, sure. But their roadmap? Still stuck. Customers still waiting for features. What&#8217;s going on?</p><div><hr></div><div class="digest-post-embed" data-attrs="{&quot;nodeId&quot;:&quot;81b46b7a-afbc-447b-b67f-192e7345790a&quot;,&quot;caption&quot;:&quot;Every CTO I talk to says the same thing:&quot;,&quot;cta&quot;:&quot;Read full story&quot;,&quot;showBylines&quot;:true,&quot;size&quot;:&quot;sm&quot;,&quot;isEditorNode&quot;:true,&quot;title&quot;:&quot;You Bought the AI Tools. Nobody's Using Them.&quot;,&quot;publishedBylines&quot;:[{&quot;id&quot;:30567446,&quot;name&quot;:&quot;It's Dionis Lebedev &#127482;&#127462;&quot;,&quot;bio&quot;:null,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c592a56b-a9c4-437c-a9d5-bd9bf00dcd5b_1320x1318.jpeg&quot;,&quot;is_guest&quot;:false,&quot;bestseller_tier&quot;:null}],&quot;post_date&quot;:&quot;2025-12-19T21:28:33.086Z&quot;,&quot;cover_image&quot;:null,&quot;cover_image_alt&quot;:null,&quot;canonical_url&quot;:&quot;https://substack.com/home/post/p-182123968&quot;,&quot;section_name&quot;:null,&quot;video_upload_id&quot;:null,&quot;id&quot;:182123968,&quot;type&quot;:&quot;newsletter&quot;,&quot;reaction_count&quot;:1,&quot;comment_count&quot;:2,&quot;publication_id&quot;:7052127,&quot;publication_name&quot;:&quot;Dionis Lebedev &#127482;&#127462;&quot;,&quot;publication_logo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!LGra!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc592a56b-a9c4-437c-a9d5-bd9bf00dcd5b_1320x1318.jpeg&quot;,&quot;belowTheFold&quot;:false,&quot;youtube_url&quot;:null,&quot;show_links&quot;:null,&quot;feed_url&quot;:null}"></div><div><hr></div><h2><strong>The Bottleneck Moved</strong></h2><p>I would say this is the biggest insight I&#8217;ve had working with teams adopting AI: <strong>the constraint isn&#8217;t where it used to be.</strong></p><p>Before AI, the constraint was writing code. Developers spent most of their time implementing stuff.</p><p>After AI? The constraint is everything else. Code review queues back up. QA gets overwhelmed. And here&#8217;s the kicker... developers spend more time debugging AI-generated code than they saved generating it.</p><p>It&#8217;s like giving everyone faster cars but keeping the same narrow highway. You just get bigger traffic jams.</p><p>The teams actually shipping faster? They&#8217;ve widened the highway.</p><div><hr></div><h2><strong>What the Winning Teams Do</strong></h2><p>I&#8217;ve been studying this obsessively. And there&#8217;s a clear pattern.</p><h3><strong>They Front-Load the Thinking</strong></h3><p>The best teams have figured out something powerful: AI is exceptional at implementation when you give it clear specs.</p><p>Think about it. AI is like having an incredibly fast developer who needs precise direction. Vague tickets produce vague results. But detailed specifications with clear acceptance criteria? That&#8217;s where AI shines.</p><p>So the winning teams flipped the model. They spend way more time on specs, way less on implementation. <strong>The spec becomes the product. Code is just the output.</strong></p><p>I&#8217;ve seen teams cut their cycle time in half doing this. Not because AI wrote code faster... but because they stopped building the wrong thing.</p><h3><strong>They&#8217;ve Redesigned Review</strong></h3><p>When AI generates code 5-10x faster, your review process becomes the bottleneck. Smart teams adapted:</p><ul><li><p><strong>Tiered reviews</strong>: auto-approve low-risk changes, focus human attention where it matters</p></li><li><p><strong>AI-assisted scanning</strong>: use AI to catch issues before human reviewers see the code</p></li><li><p><strong>Smaller chunks</strong>: break work into pieces that flow through quickly</p></li></ul><p>Without this? Your senior engineers drown in review queues. I&#8217;ve seen it happen.</p><h3><strong>They Track Different Metrics</strong></h3><p>Story points are kind of meaningless now. One team completed 150+ points in a sprint after adopting AI tools. But customers didn&#8217;t see features any faster.</p><p>What actually matters:</p><ul><li><p><strong>Cycle time</strong>: from starting work to customers seeing it</p></li><li><p><strong>Lead time</strong>: from request to production</p></li><li><p><strong>Deployment frequency</strong>: how often you&#8217;re shipping</p></li></ul><p>These tell you if AI investment is translating to customer value. And you don&#8217;t need to understand the technical details to track them.</p><div><hr></div><h2><strong>The Questions I&#8217;d Ask</strong></h2><p>If I was a non-technical founder looking at my engineering team right now, here&#8217;s what I&#8217;d want to know:</p><p><strong>&#8220;What&#8217;s our cycle time?&#8221;</strong> If they can&#8217;t answer clearly, that&#8217;s a red flag. Teams capturing AI&#8217;s value know this number. And it&#8217;s going down.</p><p><strong>&#8220;How have we adapted our processes for AI?&#8221;</strong> The right answer involves specific changes. Not &#8220;we installed Copilot.&#8221;</p><p><strong>&#8220;What specs exist before developers start building?&#8221;</strong> If the answer is just Jira tickets... you&#8217;re probably getting inconsistent output.</p><p><strong>&#8220;What&#8217;s our deployment frequency compared to six months ago?&#8221;</strong> If AI is working, this should be going up.</p><p>You don&#8217;t need to understand the technical details. You need to ask better questions.</p><div><hr></div><h2><strong>Why This Matters Now</strong></h2><p>Here&#8217;s the thing. AI coding tools are still early. Most companies are experimenting, not optimizing.</p><p>The founders who figure this out first, who build engineering organizations designed to amplify AI... they&#8217;ll compound that advantage. Ship faster today means more customer feedback, more iterations, more product-market fit.</p><p>Your competitors are adopting AI. The question is whether you&#8217;ll capture its potential faster than they do.</p><div><hr></div><h2><strong>What I Help With</strong></h2><p>Unlocking AI&#8217;s full potential isn&#8217;t a tools problem. It&#8217;s an organizational design problem.</p><ul><li><p><strong>Process architecture</strong> that puts AI in the right place</p></li><li><p><strong>Metrics</strong> that connect engineering to business outcomes</p></li><li><p><strong>Team development</strong> that builds AI fluency</p></li><li><p><strong>Strategic oversight</strong> so AI investment actually translates to shipping faster</p></li></ul><p>This is what I do as a fractional CTO. Not adding headcount. Unlocking the team you already have.</p><p>If you&#8217;re a non-technical founder and some of these questions made you uncomfortable... let&#8217;s talk.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://calendly.com/dionis/30min?utm_source=Substack&quot;,&quot;text&quot;:&quot;Book a call&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://calendly.com/dionis/30min?utm_source=Substack"><span>Book a call</span></a></p><p><em>I offer a free 30-minute call for non-technical founders who want to figure out where they stand. No pitch, just an honest look at your setup.</em></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!JKKH!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1670102a-5639-406b-807f-e3702c7d329a_840x580.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!JKKH!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1670102a-5639-406b-807f-e3702c7d329a_840x580.png 424w, https://substackcdn.com/image/fetch/$s_!JKKH!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1670102a-5639-406b-807f-e3702c7d329a_840x580.png 848w, https://substackcdn.com/image/fetch/$s_!JKKH!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1670102a-5639-406b-807f-e3702c7d329a_840x580.png 1272w, https://substackcdn.com/image/fetch/$s_!JKKH!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1670102a-5639-406b-807f-e3702c7d329a_840x580.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!JKKH!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1670102a-5639-406b-807f-e3702c7d329a_840x580.png" width="840" height="580" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/1670102a-5639-406b-807f-e3702c7d329a_840x580.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:580,&quot;width&quot;:840,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:600431,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://itsdionis.substack.com/i/185354722?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1670102a-5639-406b-807f-e3702c7d329a_840x580.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!JKKH!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1670102a-5639-406b-807f-e3702c7d329a_840x580.png 424w, https://substackcdn.com/image/fetch/$s_!JKKH!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1670102a-5639-406b-807f-e3702c7d329a_840x580.png 848w, https://substackcdn.com/image/fetch/$s_!JKKH!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1670102a-5639-406b-807f-e3702c7d329a_840x580.png 1272w, https://substackcdn.com/image/fetch/$s_!JKKH!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1670102a-5639-406b-807f-e3702c7d329a_840x580.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>]]></content:encoded></item><item><title><![CDATA[Don't Transform Your Team. Confront Reality Instead.]]></title><description><![CDATA[Best process emerges from friction, not frameworks.]]></description><link>https://blog.dionis.me/p/dont-transform-your-team-confront-reality</link><guid isPermaLink="false">https://blog.dionis.me/p/dont-transform-your-team-confront-reality</guid><dc:creator><![CDATA[It's Dionis Lebedev 🇺🇦]]></dc:creator><pubDate>Tue, 06 Jan 2026 12:25:22 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!aqlN!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3e08a691-9c86-4d1e-8ccc-16d17c29b28d_1024x793.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h2><strong>Why I Never Do Agile Transformations</strong></h2><p>I&#8217;ve never done an Agile transformation. Not because I don&#8217;t believe in Agile principles. I do. But &#8220;transformation&#8221; is just the wrong word for what actually works.</p><p>Early in my career, I was involved in a massive product rewrite. The work was hidden from reality, from real customers, for about a year. Engineers built feature after feature in isolation, convinced they were making progress.</p><p>Then we shipped.</p><p>That&#8217;s when real work has begun. Critical paths broke. Assumptions crumbled. Everything we thought we knew had to be renegotiated with reality. A year of &#8220;progress&#8221; became months of painful course correction.</p><p>That experience taught me something I&#8217;ve applied to everything since. Work needs to be confronted with reality as soon as possible, in small meaningful steps.</p><p>This applies to code. It applies to products. And it absolutely applies to how you change a team&#8217;s process.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://blog.dionis.me/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 Dionis Lebedev &#127482;&#127462;! 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><h2><strong>The Problem with Big Bang Transformations</strong></h2><p>When someone hires an Agile consultant to &#8220;transform&#8221; their team, here&#8217;s what usually happens:</p><ol><li><p>Consultants arrive with a framework</p></li><li><p>Everyone gets trained on new terminology</p></li><li><p>Existing workflows are ripped out</p></li><li><p>New ceremonies are installed</p></li><li><p>Team spends months fighting the process instead of doing the work</p></li><li><p>Consultants leave</p></li><li><p>Team quietly reverts to what actually works</p></li></ol><p>I&#8217;ve seen this pattern destroy trust and kill momentum. Teams don&#8217;t resist change because they&#8217;re stubborn. They resist because they know something the transformation plan doesn&#8217;t account for. Context matters.</p><p>Every team has invisible load-bearing walls. Rip them out without understanding what they support, and the whole thing collapses.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!aqlN!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3e08a691-9c86-4d1e-8ccc-16d17c29b28d_1024x793.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!aqlN!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3e08a691-9c86-4d1e-8ccc-16d17c29b28d_1024x793.png 424w, https://substackcdn.com/image/fetch/$s_!aqlN!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3e08a691-9c86-4d1e-8ccc-16d17c29b28d_1024x793.png 848w, https://substackcdn.com/image/fetch/$s_!aqlN!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3e08a691-9c86-4d1e-8ccc-16d17c29b28d_1024x793.png 1272w, https://substackcdn.com/image/fetch/$s_!aqlN!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3e08a691-9c86-4d1e-8ccc-16d17c29b28d_1024x793.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!aqlN!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3e08a691-9c86-4d1e-8ccc-16d17c29b28d_1024x793.png" width="1024" height="793" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/3e08a691-9c86-4d1e-8ccc-16d17c29b28d_1024x793.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:793,&quot;width&quot;:1024,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1400554,&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://itsdionis.substack.com/i/183659760?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3e08a691-9c86-4d1e-8ccc-16d17c29b28d_1024x793.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_!aqlN!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3e08a691-9c86-4d1e-8ccc-16d17c29b28d_1024x793.png 424w, https://substackcdn.com/image/fetch/$s_!aqlN!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3e08a691-9c86-4d1e-8ccc-16d17c29b28d_1024x793.png 848w, https://substackcdn.com/image/fetch/$s_!aqlN!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3e08a691-9c86-4d1e-8ccc-16d17c29b28d_1024x793.png 1272w, https://substackcdn.com/image/fetch/$s_!aqlN!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3e08a691-9c86-4d1e-8ccc-16d17c29b28d_1024x793.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div><hr></div><h2><strong>What Works Instead</strong></h2><p>I was always a fan of changing things step by step. Evaluate. Adjust. Let the process emerge naturally from real friction rather than from a book.</p><p>The thing is, most teams are already doing some version of good practice. They just don&#8217;t have names for it.</p><p>My approach is to apply one principle or pattern at a time. And to stitch it <em>into</em> the existing workflow, not replace it. The framing I use sounds like this:</p><blockquote><p>&#8220;We&#8217;re doing this anyway. Now it&#8217;s just a little more structured and guided.&#8221;</p></blockquote><p>That&#8217;s it. No revolutionary manifestos. No burning the boats. Just: this thing you&#8217;re already doing? Let&#8217;s make it more intentional.</p><div><hr></div><h2><strong>A Concrete Example</strong></h2><p>Say a team has some informal way of tracking work. Maybe it&#8217;s a spreadsheet. Maybe it&#8217;s Slack threads. Maybe it&#8217;s just &#8220;everyone kind of knows what they&#8217;re working on.&#8221;</p><p>Step one isn&#8217;t &#8220;implement Kanban.&#8221; Step one is add a proper board that reflects what people are actually doing. See my other related post here: </p><div class="digest-post-embed" data-attrs="{&quot;nodeId&quot;:&quot;299f0736-4a9f-44a1-9d3d-141c46501738&quot;,&quot;caption&quot;:&quot;This has been my mantra for the past decade across multiple companies where I worked as a CTO.&quot;,&quot;cta&quot;:&quot;Read full story&quot;,&quot;showBylines&quot;:true,&quot;size&quot;:&quot;sm&quot;,&quot;isEditorNode&quot;:true,&quot;title&quot;:&quot;All Work Must Be in Jira&quot;,&quot;publishedBylines&quot;:[{&quot;id&quot;:30567446,&quot;name&quot;:&quot;It's Dionis Lebedev &#127482;&#127462;&quot;,&quot;bio&quot;:null,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c592a56b-a9c4-437c-a9d5-bd9bf00dcd5b_1320x1318.jpeg&quot;,&quot;is_guest&quot;:false,&quot;bestseller_tier&quot;:null}],&quot;post_date&quot;:&quot;2025-12-27T11:18:58.937Z&quot;,&quot;cover_image&quot;:&quot;https://substackcdn.com/image/fetch/$s_!x3fs!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd4d822a8-6f6f-4df5-9a05-fae110fde6da_1024x1024.png&quot;,&quot;cover_image_alt&quot;:null,&quot;canonical_url&quot;:&quot;https://substack.com/home/post/p-182690180&quot;,&quot;section_name&quot;:null,&quot;video_upload_id&quot;:null,&quot;id&quot;:182690180,&quot;type&quot;:&quot;newsletter&quot;,&quot;reaction_count&quot;:1,&quot;comment_count&quot;:0,&quot;publication_id&quot;:7052127,&quot;publication_name&quot;:&quot;Dionis Lebedev &#127482;&#127462;&quot;,&quot;publication_logo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!LGra!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc592a56b-a9c4-437c-a9d5-bd9bf00dcd5b_1320x1318.jpeg&quot;,&quot;belowTheFold&quot;:true,&quot;youtube_url&quot;:null,&quot;show_links&quot;:null,&quot;feed_url&quot;:null}"></div><p>Then you coach on one principle: move things from left to right as fast as possible. Not &#8220;finish as many tickets as you can.&#8221; Not &#8220;maximize velocity.&#8221; Just: whatever you start, finish it before starting something new.</p><p>Then you observe. What&#8217;s getting stuck? Why? Does it need an additional status? A handover? A review step? Someone to unblock it?</p><p>The process reveals itself through friction. Your job is to notice the friction and give it structure. Not to impose structure and hope it reduces friction.</p><div><hr></div><h2><strong>Why This Works</strong></h2><p>Big transformations fail because they treat process as something you install. But process isn&#8217;t software. You can&#8217;t deploy it and walk away.</p><p>Best process emerges from real friction.</p><p>When you change things incrementally:</p><ul><li><p>Team understands <em>why</em> each change exists</p></li><li><p>Changes that don&#8217;t work can be reversed without drama</p></li><li><p>You build trust instead of burning it</p></li><li><p>Reality tests your assumptions continuously</p></li></ul><p>When you do a big bang transformation:</p><ul><li><p>No one understands why anything is the way it is</p></li><li><p>Reverting feels like admitting failure</p></li><li><p>Trust erodes with every imposed ceremony</p></li><li><p>You find out what&#8217;s broken only after everything&#8217;s broken</p></li></ul><div><hr></div><h2><strong>The Engineer&#8217;s Mindset</strong></h2><p>Looking back, I never made the mistake of doing a big bang transformation. I was intuitively doing the right thing from the beginning. But I didn&#8217;t learn it from management books.</p><p>I learned it from building systems.</p><p>That failed product rewrite taught me that hiding work from reality is always a mistake. Ship small. Get feedback. Adjust. Repeat. The longer you wait to confront reality, the more painful the confrontation will be.</p><p>Process change is the same. Each change should be small enough to evaluate, meaningful enough to matter, and reversible enough to survive being wrong.</p><div><hr></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://blog.dionis.me/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://blog.dionis.me/subscribe?"><span>Subscribe now</span></a></p><h2><strong>The Bottom Line</strong></h2><p>If someone asks me to do an Agile transformation, I say no.</p><p>If someone asks me to help their team work better, I say: </p><div class="pullquote"><p>let&#8217;s look at where you&#8217;re stuck, and fix one thing at a time.</p></div><p>That&#8217;s not as exciting as a transformation. It doesn&#8217;t come with a certification or a framework diagram. But it actually works.</p><p>Because the goal was never to do Agile. The goal was to build better products with less pain.</p><p>And that happens one small, meaningful step at a time.</p>]]></content:encoded></item><item><title><![CDATA[All Work Must Be in Jira]]></title><description><![CDATA[The unpopular rule that saved every team I've led]]></description><link>https://blog.dionis.me/p/all-work-must-be-in-jira</link><guid isPermaLink="false">https://blog.dionis.me/p/all-work-must-be-in-jira</guid><dc:creator><![CDATA[It's Dionis Lebedev 🇺🇦]]></dc:creator><pubDate>Sat, 27 Dec 2025 11:18:58 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!x3fs!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd4d822a8-6f6f-4df5-9a05-fae110fde6da_1024x1024.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>This has been my mantra for the past decade across multiple companies where I worked as a CTO.</p><p>I know, I know. Another process guy. But hear me out.</p><h2><strong>Why I Push This So Hard</strong></h2><p>On one hand it&#8217;s about protecting engineers. You know the pattern - PM pings someone on Slack: &#8220;Hey, quick question, can you just look at this thing?&#8221; Three days later that engineer is still on it while their actual sprint work rots. Sales sends a &#8220;critical bug&#8221; directly to whoever responds first. Marketing needs a &#8220;tiny change.&#8221;</p><p>Without a forcing function, engineers become victims of whoever has the loudest voice. Jira isn&#8217;t bureaucracy here - it&#8217;s protection. It gives everyone the right to say: &#8220;Happy to help. File a ticket and we&#8217;ll prioritize it.&#8221;</p><p>On the other hand, it prevents the &#8220;what the hell is he doing&#8221; frustration. I&#8217;ve been in those meetings. A stakeholder asks when something is shipping. You turn to your team and get vague answers. &#8220;Soon.&#8221; &#8220;We&#8217;re working on it.&#8221; When stakeholders can&#8217;t see what&#8217;s happening, they fill the void with anxiety. They start interrupting engineers for status updates. They escalate.</p><p>The rule isn&#8217;t surveillance. It&#8217;s transparency. And transparency creates autonomy - when people can self-serve their status updates, they stop interrupting your team.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://blog.dionis.me/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 Dionis Lebedev &#127482;&#127462;! 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><h2><strong>The Data Behind This</strong></h2><p><strong>On protecting engineers from interruptions:</strong></p><p>Gloria Mark&#8217;s research at UC Irvine found it takes <strong>23 minutes to refocus</strong> after an interruption. Sophie Leroy at University of Washington calls this &#8220;attention residue&#8221; - part of your brain stays stuck on the previous context. The more engaging the interrupted task, the worse it gets.</p><p>Five interruptions a day? That&#8217;s two hours of lost focus. Every day. Studies estimate context switching can reduce productivity by <strong>up to 40%</strong>. Interrupted tasks take twice as long to finish and contain twice as many errors.</p><p><strong>On transparency reducing overhead:</strong></p><p>The Project Management Institute found that <strong>56% of project failures</strong> cite ineffective communication as the primary cause. When stakeholders can&#8217;t see what&#8217;s happening, they fill the void with meetings, Slack pings, and escalations.</p><p>When everyone sees progress as it happens, status meetings become lighter - or disappear entirely. Managers who know what&#8217;s happening without asking can focus on decisions instead of chasing updates.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!x3fs!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd4d822a8-6f6f-4df5-9a05-fae110fde6da_1024x1024.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!x3fs!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd4d822a8-6f6f-4df5-9a05-fae110fde6da_1024x1024.png 424w, https://substackcdn.com/image/fetch/$s_!x3fs!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd4d822a8-6f6f-4df5-9a05-fae110fde6da_1024x1024.png 848w, https://substackcdn.com/image/fetch/$s_!x3fs!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd4d822a8-6f6f-4df5-9a05-fae110fde6da_1024x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!x3fs!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd4d822a8-6f6f-4df5-9a05-fae110fde6da_1024x1024.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!x3fs!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd4d822a8-6f6f-4df5-9a05-fae110fde6da_1024x1024.png" width="430" height="430" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d4d822a8-6f6f-4df5-9a05-fae110fde6da_1024x1024.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:false,&quot;imageSize&quot;:&quot;normal&quot;,&quot;height&quot;:1024,&quot;width&quot;:1024,&quot;resizeWidth&quot;:430,&quot;bytes&quot;:1226879,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://itsdionis.substack.com/i/182690180?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd4d822a8-6f6f-4df5-9a05-fae110fde6da_1024x1024.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:&quot;center&quot;,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!x3fs!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd4d822a8-6f6f-4df5-9a05-fae110fde6da_1024x1024.png 424w, https://substackcdn.com/image/fetch/$s_!x3fs!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd4d822a8-6f6f-4df5-9a05-fae110fde6da_1024x1024.png 848w, https://substackcdn.com/image/fetch/$s_!x3fs!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd4d822a8-6f6f-4df5-9a05-fae110fde6da_1024x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!x3fs!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd4d822a8-6f6f-4df5-9a05-fae110fde6da_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><h2><strong>The Early Stage Exception</strong></h2><p>Of course, if you&#8217;re an early stage startup with few devs, skip all that and just keep things rolling. Those engineers have a product-mindset anyway. They&#8217;re talking to customers, shipping daily, small enough that coordination happens naturally.</p><p>But 10 people and beyond? Things get messy without clear processes and Jira hygiene.</p><p>The complexity of coordination scales with team size. Four people have 6 communication channels. Ten people have 45. Twenty people have 190. Without structure, information loss becomes inevitable.</p><h2><strong>&#8220;Just Fix Culture&#8221; Doesn&#8217;t Work</strong></h2><p>Haters might say, you just need to fix culture or motivate people. But I&#8217;ve been there - highly motivated team, excellent people who genuinely care about the product.</p><p>And you know what? Until it&#8217;s a habit, hygiene slips.</p><p>Because motivation doesn&#8217;t create habits. Passion doesn&#8217;t override human cognitive limits. Even the most dedicated engineer will forget to update a ticket status when they&#8217;re deep in debugging. Even the most diligent PM will slip on documentation during a crisis.</p><p>Hygiene isn&#8217;t about motivation. It&#8217;s about systems. And systems only work when they&#8217;re mandatory.</p><p>One Hacker News commenter captured the anti-process view: &#8220;Tickets in Jira are not the work itself - it is a LARP of the work. Fixing a bug without filing a Jira ticket is in itself progress. Moving a Jira card without any other change is not.&#8221;</p><p>And they&#8217;re right - the ticket isn&#8217;t the work. But the ticket enables the coordination of work. And in any team larger than a few people, coordination is the bottleneck, not individual execution.</p><h2><strong>What I Actually Saw Work</strong></h2><p>I saw this play out - and the research backs it up.</p><p><strong>Less frustration on both ends.</strong></p><p>The American Institute of Stress found that <strong>80% of employees report &#8220;productivity anxiety&#8221;</strong> - the constant feeling they should be doing something else. The cure? Clear priorities. When engineers see exactly what&#8217;s expected, they stop second-guessing. When stakeholders see progress without asking, they stop pinging.</p><p>Gallup reports that <strong>41% of employees experience high daily stress</strong>, with unclear expectations being a major driver. A shared backlog fixes this for everyone - assignees know what to work on, reporters know where their request stands.</p><p><strong>Better strategy and prioritization.</strong></p><p>You can&#8217;t prioritize what you can&#8217;t see. Professor Paul Nutt at Ohio State found that <strong>50% of strategic decisions fail</strong> - but structured visibility into work improves success rates to 80%.</p><p>When all work lives in one place, leadership stops guessing. They see what&#8217;s actually consuming engineering time. They make trade-offs based on reality, not whoever yelled loudest in the last meeting.</p><h2><strong>The Anti-Patterns to Avoid</strong></h2><p>Let me add - doing this wrong is way worse than not doing it at all.</p><p><strong>Over-engineering workflows</strong> is the biggest mistake. Complex state machines with multiple approval gates don&#8217;t enable agility - they codify bureaucracy.</p><p><strong>Required fields backfire.</strong> When every ticket demands ten mandatory fields, users fill in garbage data just to satisfy the system. If a field must be required, always include an &#8220;I don&#8217;t know&#8221; option.</p><p><strong>Using Jira as communication tool</strong> creates fragmentation. Teams add notes, tag each other, hold conversations in comments instead of having actual discussions. Jira is a system of record, not Slack replacement.</p><h2><strong>Looking Back</strong></h2><p>After a decade of pushing this rule, here&#8217;s what I can tell you.</p><p>The teams that resist process the loudest are usually the ones drowning in coordination overhead. They just don&#8217;t see it. It&#8217;s death by a thousand Slack pings.</p><p>The teams that embrace visibility - even grudgingly at first - eventually become its biggest advocates. Because they discover something: when everyone knows what everyone&#8217;s working on, trust increases. The need for meetings decreases. Engineers actually enjoy their tools.</p><p>Both camps have valid points. Heavy process without purpose creates waste. Absence of discipline creates chaos. The path is narrow - hard limits that force prioritization while keeping signal-to-noise ratio high.</p><p>Is it unpopular? Sometimes. Does it work? Every single time.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://blog.dionis.me/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://blog.dionis.me/subscribe?"><span>Subscribe now</span></a></p><div><hr></div><p><em>What&#8217;s your experience? Do you enforce ticket hygiene or think it&#8217;s process theater? Drop a comment.</em></p>]]></content:encoded></item><item><title><![CDATA[You Bought the AI Tools. Nobody's Using Them.]]></title><description><![CDATA[How I got 90% of my engineers using AI daily.]]></description><link>https://blog.dionis.me/p/you-bought-the-ai-tools-nobodys-using</link><guid isPermaLink="false">https://blog.dionis.me/p/you-bought-the-ai-tools-nobodys-using</guid><dc:creator><![CDATA[It's Dionis Lebedev 🇺🇦]]></dc:creator><pubDate>Fri, 19 Dec 2025 21:28:33 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!miro!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa0c8c614-939f-468b-833d-85c848396208_1024x572.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Every CTO I talk to says the same thing:</p><p>&#8220;Yeah, we bought licenses. Engineers can use it if they want.&#8221;</p><p>Then I ask: &#8220;How many actually use it daily?&#8221;</p><p>Crickets.</p><p>Here&#8217;s the thing: buying AI tools and getting engineers to actually adopt them are two completely different problems.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://blog.dionis.me/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 Dionis Lebedev &#127482;&#127462;! </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>We ditched GitHub Copilot a long time ago, by the way. It was fine for autocomplete, but the game has changed. Now we&#8217;re using Cursor for frontend work (it&#8217;s great for React and component stuff), Windsurf for backend (it&#8217;s okay, gets the job done), and Claude Code for everything else.</p><p>And honestly? Nothing beats Claude Code. The agentic workflow, the ability to actually understand context across your whole codebase, the way it handles complex refactoring =&gt; it&#8217;s on another level. But I&#8217;ll get to that.</p><p>I spent the last 6 months actively pushing AI adoption across my engineering team. Not just &#8220;making it available.&#8221; Actually pushing it.</p><p>And I&#8217;m seeing results. Real usage. Productivity gains. Engineers who were skeptical are now telling me they can&#8217;t work without it.</p><p>Here&#8217;s how I did it.</p><h2><strong>The Problem With &#8220;Making It Available&#8221;</strong></h2><p>Most companies approach AI tools like this:</p><ol><li><p>Buy licenses for GitHub Copilot or Cursor or whatever</p></li><li><p>Send an announcement: &#8220;Hey team, we now have AI coding tools available!&#8221;</p></li><li><p>Wait for adoption</p></li><li><p>Wonder why nobody&#8217;s using it</p></li></ol><p>I did this too at first. And you know what happened? Maybe 2 out of 15 engineers actually used it consistently.</p><p>Why?</p><p><strong>Engineers have workflows that already work.</strong> </p><p>They&#8217;re busy. Learning a new tool, even one that could save time, requires upfront investment.</p><p>Without active encouragement, most people default to what they know.</p><p><strong>Skepticism is real.</strong></p><p>A lot of senior engineers (especially the ones who&#8217;ve been coding for 10+ years) are skeptical of AI. &#8220;It just autocompletes. I can type fast enough.&#8221; &#8220;The suggestions are wrong half the time.&#8221; &#8220;I don&#8217;t trust it for production code.&#8221;</p><p>These aren&#8217;t dumb concerns. They&#8217;re just... incomplete. Because they haven&#8217;t experienced the productivity boost yet.</p><p><strong>Nobody&#8217;s measuring it.</strong></p><p>If you don&#8217;t track usage, you don&#8217;t know who&#8217;s benefiting and who&#8217;s not. You can&#8217;t spot patterns. You can&#8217;t help the people who are struggling.</p><p>You&#8217;re just hoping for the best.</p><h2><strong>My Approach: Active, Persistent, Measured</strong></h2><p>I decided to treat AI adoption like any other initiative: with intention, follow-through, and metrics.</p><p>Here&#8217;s what I actually did.</p><h3><strong>1. Push It Everywhere (In Slack, Meetings, 1-1s)</strong></h3><p>I started talking about AI coding tools constantly.</p><p><strong>In Slack:</strong></p><ul><li><p>When someone shares a cool feature they shipped, I ask: &#8220;Did you use Claude Code for any of this?&#8221;</p></li><li><p>When someone&#8217;s stuck on a problem, I suggest: &#8220;Have you tried throwing it at Claude Code? It&#8217;s scary good at debugging.&#8221;</p></li><li><p>I share my own wins: &#8220;Just used Claude Code to refactor 500 lines of code in 10 minutes. It understood the whole context. Game changer.&#8221;</p></li></ul><p><strong>In meetings:</strong></p><ul><li><p>During sprint planning: &#8220;Remember, you&#8217;ve got AI tools now. Use them for boilerplate.&#8221;</p></li><li><p>During retros: &#8220;How many of you used AI this sprint? How&#8217;d it go?&#8221;</p></li><li><p>During tech talks: I demo specific workflows with AI</p></li></ul><p><strong>In 1-1s:</strong></p><ul><li><p>I ask every engineer: &#8220;Are you using Claude Code yet? What&#8217;s your experience?&#8221;</p></li><li><p>If they say no, I ask why. If they say yes, I ask what&#8217;s working.</p></li><li><p>I troubleshoot with them. &#8220;Not getting good results? Let me show you how I structure my prompts.&#8221;</p></li></ul><p>The key: <strong>constant, low-pressure reminders.</strong></p><p>Not &#8220;you MUST use this.&#8221; More like &#8220;hey, this is available, it&#8217;s really useful, here&#8217;s how I use it, give it a shot.&#8221;</p><p>But consistently. Every week. Multiple times.</p><p>Here&#8217;s what I noticed: <strong>active pushing plus genuine exchange sparks interest.</strong> When engineers see you actually using it, share their own discoveries, ask questions! That&#8217;s when it clicks. That curiosity is the foundation.</p><p>Once you have interest, you can move to the next level: establishing standards, building shared assets (prompt libraries, custom instructions), and adjusting processes to actually leverage AI properly.</p><h3><strong>2. Get Team Leads to Push It Too</strong></h3><p>Here&#8217;s the thing: I can only influence so much.</p><p>So I got my team leads on board.</p><p>I told them: &#8220;Part of your job now is helping your stream adopt AI tools. Encourage it. Share tips. Ask about it in standups.&#8221;</p><p>And they did.</p><p>Suddenly, it wasn&#8217;t just me. It were multiple people consistently talking about AI adoption.</p><p>That social proof matters. When multiple people are using it and talking about it, it normalizes the behavior.</p><h3><strong>3. Set Up Team Accounts (And Monitor Usage)</strong></h3><p>This was a game-changer.</p><p>I set up team accounts for our AI tools. This lets me:</p><ul><li><p>Track who&#8217;s using the tools and how often</p></li><li><p>See usage patterns (are people trying it and dropping off? Or sticking with it?)</p></li><li><p>Identify who&#8217;s not using it at all (so I can follow up)</p></li></ul><p>I&#8217;m not spying on engineers. I&#8217;m not micromanaging. But I AM paying attention.</p><p>If someone hasn&#8217;t logged in for 2 weeks, I&#8217;ll ask: &#8220;Hey, I noticed you haven&#8217;t touched Cursor lately. Is something not working? Or just haven&#8217;t had time to try it?&#8221;</p><p>Usually, it&#8217;s one of two things:</p><ul><li><p>They forgot it was available</p></li><li><p>They tried it once, had a bad experience, and gave up</p></li></ul><p>Both are fixable with a quick conversation.</p><h3><strong>4. Prepare Workshops</strong></h3><p>Here&#8217;s what I learned: most engineers don&#8217;t know how to use AI tools effectively.</p><p>They think it&#8217;s just autocomplete. Or they don&#8217;t know how to prompt. Or they don&#8217;t know which tools to use for what.</p><p>So I started preparing workshops.</p><p>Short, practical sessions:</p><ul><li><p>&#8220;How to use Cursor for refactoring&#8221;</p></li><li><p>&#8220;How to use ChatGPT for debugging&#8221;</p></li><li><p>&#8220;Prompt engineering for code generation&#8221;</p></li><li><p>&#8220;When AI is helpful vs when it&#8217;s not&#8221;</p></li></ul><p>The goal: lower the barrier to entry. Show people the patterns that work.</p><p>Not theory. Just: &#8220;Here&#8217;s what I do. Here&#8217;s what works. Try it.&#8221;</p><h3><strong>5. Hire AI-First Engineers</strong></h3><p>This is the long game.</p><p>When we&#8217;re hiring now, I ask candidates: &#8220;Do you use AI coding tools? Which ones? How do you use them?&#8221;</p><p>If they say no? That&#8217;s not an automatic disqualifier. But it&#8217;s a signal.</p><p>If they say yes and can talk about their workflow? That&#8217;s a big plus.</p><p>I want engineers who are already comfortable with AI. Who see it as a tool, not a threat. Who are excited about productivity gains.</p><p>And when these people join the team, they bring that mindset with them. They model the behavior for everyone else.</p><h2><strong>What&#8217;s Actually Working</strong></h2><p>Alright, so what are the results?</p><p><strong>Usage is up.</strong></p><p>6 months ago: 40% engineers using AI regularly<br>Now: 90%</p><p>That&#8217;s a huge shift. And it happened because of active pushing, not passive availability.</p><p><strong>Engineers are reporting productivity gains.</strong></p><p>I&#8217;m hearing things like:</p><ul><li><p>&#8220;Claude Code just wrote the entire feature. I reviewed it, made two tweaks, done.&#8221;</p></li><li><p>&#8220;I threw that async bug at Claude Code. It found the race condition in 30 seconds.&#8221;</p></li><li><p>&#8220;Cursor&#8217;s great for frontend stuff, but for anything complex I just open Claude Code now.&#8221;</p></li></ul><p>These aren&#8217;t juniors. These are senior engineers who were skeptical 6 months ago.</p><p>The thing about Claude Code specifically: it actually understands your codebase context. It can reason about architecture. That&#8217;s what converted the skeptics.</p><p><strong>The culture is changing.</strong></p><p>It&#8217;s becoming normal to use AI. Engineers share tips in Slack. &#8220;Hey, I found this cool Claude Code workflow for...&#8221; or &#8220;Check out this Cursor trick for components...&#8221;</p><p>That&#8217;s the shift I wanted. From &#8220;this is weird&#8221; to &#8220;this is just how we work now.&#8221;</p><h2><strong>The Resistance I Hit</strong></h2><p>Not everything has been smooth.</p><p><strong>Some engineers are still skeptical.</strong></p><p>Especially the most senior ones. They&#8217;ve been writing code for 15+ years. They&#8217;re fast. They know the patterns.</p><p>For them, AI feels like unnecessary overhead. &#8220;I can write this faster than I can prompt for it.&#8221;</p><p>I don&#8217;t force it. But I do encourage: &#8220;Just try it for one sprint. If it doesn&#8217;t help, drop it.&#8221;</p><p>Usually, they come back and say: &#8220;Okay, it&#8217;s actually useful for [specific thing].&#8221;</p><p><strong>Some engineers had bad initial experiences.</strong></p><p>They tried Copilot once. It gave terrible suggestions. They gave up.</p><p>That&#8217;s actually why we moved past Copilot. It&#8217;s fine for autocomplete, but when engineers tried it for real work and got garbage, they wrote off AI tools entirely.</p><p>Claude Code changed that. When I showed them what agentic AI can actually do, that&#8217;s when the lightbulb went on.</p><p>This is where the workshops help. &#8220;Here&#8217;s how to structure prompts. Here&#8217;s when to use Cursor vs Claude Code. Here&#8217;s what to ignore.&#8221;</p><p><strong>Some people worry about code quality.</strong></p><p>&#8220;What if the AI writes buggy code and I don&#8217;t catch it?&#8221;</p><p>Fair concern. My response: &#8220;You&#8217;re still reviewing it. You&#8217;re still testing it. AI is a junior developer that types really fast. You wouldn&#8217;t merge a junior&#8217;s code without review, right?&#8221;</p><p>That usually lands.</p><h2><strong>The Big Picture: AI Is a Competitive Advantage</strong></h2><p>Here&#8217;s why I&#8217;m pushing this so hard.</p><p><strong>AI tools make good engineers 2-3x more productive.</strong></p><p>Not for everything. But for a lot of things: boilerplate, refactoring, test writing, debugging.</p><p>If my team is 2x faster on 30% of their work? That&#8217;s a massive productivity gain.</p><p><strong>Companies that adopt AI early will outpace those that don&#8217;t.</strong></p><p>AI-assisted coding is already becoming table stakes. The companies that figure it out now have a head start.</p><p><strong>Engineers who resist will fall behind.</strong></p><p>I don&#8217;t mean that in a threatening way. I mean: the engineers who learn to work with AI will be way more productive than those who don&#8217;t.</p><p>And over time, that gap will widen.</p><p>I want my team on the right side of that gap.</p><h2><strong>What I&#8217;d Do Differently</strong></h2><p>Looking back, here&#8217;s what I&#8217;d change:</p><p><strong>Start with a small pilot group.</strong></p><p>Instead of pushing to the whole team at once, pick 3-4 engineers who are enthusiastic. Get them fluent. Then let them evangelize.</p><p>Social proof from peers is way more powerful than pressure from management.</p><p><strong>Track specific metrics.</strong></p><p>I&#8217;m tracking usage (who&#8217;s logging in). But I wish I&#8217;d tracked outcomes: &#8220;How much time did this save?&#8221; &#8220;How many lines of AI-generated code made it to production?&#8221;</p><p>Hard to measure, but useful for making the case.</p><p><strong>Invest in prompting skills earlier.</strong></p><p>The engineers who are getting the most value are the ones who learned how to prompt well. I should&#8217;ve taught that upfront.</p><p>It&#8217;s a skill. And it&#8217;s learnable.</p><h2><strong>The Playbook</strong></h2><p>Alright, so if you want to drive AI adoption on your team, here&#8217;s what I&#8217;d recommend:</p><p><strong>1. Pick the right tools (this matters more than you think)</strong></p><p>Skip Copilot, it&#8217;s yesterday&#8217;s news. Here&#8217;s what&#8217;s actually working for us:</p><ul><li><p><strong>Claude Code</strong> for everything complex. Agentic AI that understands your whole codebase. This is the game changer.</p></li><li><p><strong>Cursor</strong> for frontend work. Great for React, component stuff, quick iterations.</p></li><li><p><strong>Windsurf</strong> for backend if working with JetBrains. It&#8217;s okay, gets the job done.</p></li></ul><p>Get team licenses. Make it easy.</p><p><strong>2. Push it actively and consistently</strong></p><p>In Slack. In meetings. In 1-1s. Don&#8217;t just announce it. Keep talking about it.</p><p><strong>3. Get your leads on board</strong></p><p>They multiply your influence. If they&#8217;re pushing it too, adoption happens way faster.</p><p><strong>4. Track usage</strong></p><p>Set up team accounts so you can see who&#8217;s using it and who&#8217;s not. Follow up with people who aren&#8217;t.</p><p><strong>5. Run workshops</strong></p><p>Teach people how to use the tools effectively. Show patterns that work.</p><p><strong>6. Hire AI-first</strong></p><p>When you&#8217;re hiring, prioritize candidates who already use AI. They&#8217;ll bring the culture with them.</p><p><strong>7. Be patient but persistent</strong></p><p>This won&#8217;t happen overnight. It&#8217;s a culture shift. But if you keep pushing, it&#8217;ll stick.</p><p><strong>8. Build the next layer: standards, shared assets, process adjustments</strong></p><p>Once you have adoption, go deeper:</p><ul><li><p>Create shared prompt libraries for common tasks</p></li><li><p>Build custom instructions or CLAUDE.md files for your repos</p></li><li><p>Adjust your code review process (AI-generated code still needs review, but maybe differently)</p></li><li><p>Establish standards for when to use which tool</p></li></ul><p>This is where the real leverage comes from. Individual adoption is step one. Team-wide integration is where it gets interesting.</p><h2><strong>Bottom Line</strong></h2><p>AI coding tools are here. They&#8217;re not going away. They&#8217;re only getting better.</p><p>The question isn&#8217;t &#8220;should we use them?&#8221; It&#8217;s &#8220;how fast can we adopt them?&#8221;</p><p>For me, the answer is: as fast as possible.</p><p>Because the teams that figure this out now will have a massive advantage.</p><p>And I want my team to be one of them.</p><div><hr></div><p><strong>Looking back</strong> on the last 6 months, the biggest lesson is this:</p><p><strong>Passive availability doesn&#8217;t work. Active pushing does.</strong></p><p>If you want your team to adopt AI, you have to drive it. Consistently. Persistently. With intention.</p><p>It&#8217;s worth it.</p><div><hr></div><p><em>Are you pushing AI adoption on your team? What&#8217;s working? What&#8217;s not?</em></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://dionis.me/wa&quot;,&quot;text&quot;:&quot;WhatsApp me!&quot;,&quot;action&quot;:null,&quot;class&quot;:&quot;button-wrapper&quot;}" data-component-name="ButtonCreateButton"><a class="button primary button-wrapper" href="https://dionis.me/wa"><span>WhatsApp me!</span></a></p><p style="text-align: center;"><em>Happy to help: <a href="https://dionis.me/wa">WhatsApp</a>, <a href="https://dionis.me/cal">Calendly</a>, <a href="https://dionis.me/connect">LinkedIn</a></em></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!miro!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa0c8c614-939f-468b-833d-85c848396208_1024x572.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!miro!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa0c8c614-939f-468b-833d-85c848396208_1024x572.png 424w, https://substackcdn.com/image/fetch/$s_!miro!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa0c8c614-939f-468b-833d-85c848396208_1024x572.png 848w, https://substackcdn.com/image/fetch/$s_!miro!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa0c8c614-939f-468b-833d-85c848396208_1024x572.png 1272w, https://substackcdn.com/image/fetch/$s_!miro!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa0c8c614-939f-468b-833d-85c848396208_1024x572.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!miro!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa0c8c614-939f-468b-833d-85c848396208_1024x572.png" width="1024" height="572" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a0c8c614-939f-468b-833d-85c848396208_1024x572.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:572,&quot;width&quot;:1024,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:957512,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://blog.dionis.me/i/182123968?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa0c8c614-939f-468b-833d-85c848396208_1024x572.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_!miro!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa0c8c614-939f-468b-833d-85c848396208_1024x572.png 424w, https://substackcdn.com/image/fetch/$s_!miro!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa0c8c614-939f-468b-833d-85c848396208_1024x572.png 848w, https://substackcdn.com/image/fetch/$s_!miro!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa0c8c614-939f-468b-833d-85c848396208_1024x572.png 1272w, https://substackcdn.com/image/fetch/$s_!miro!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa0c8c614-939f-468b-833d-85c848396208_1024x572.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>]]></content:encoded></item></channel></rss>