<?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[Leprik]]></title><description><![CDATA[How developers and engineering leaders actually use AI. Practical guides, real setups, honest costs, and lessons learned from daily AI collaboration. Beyond the influencer hype.]]></description><link>https://leprik.ai</link><image><url>https://substackcdn.com/image/fetch/$s_!pK_n!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9b064536-9d10-433d-9702-531b034466e9_1280x1280.png</url><title>Leprik</title><link>https://leprik.ai</link></image><generator>Substack</generator><lastBuildDate>Fri, 08 May 2026 11:45:50 GMT</lastBuildDate><atom:link href="https://leprik.ai/feed" rel="self" type="application/rss+xml"/><copyright><![CDATA[Leprik]]></copyright><language><![CDATA[en]]></language><webMaster><![CDATA[leprik@substack.com]]></webMaster><itunes:owner><itunes:email><![CDATA[leprik@substack.com]]></itunes:email><itunes:name><![CDATA[Leprik]]></itunes:name></itunes:owner><itunes:author><![CDATA[Leprik]]></itunes:author><googleplay:owner><![CDATA[leprik@substack.com]]></googleplay:owner><googleplay:email><![CDATA[leprik@substack.com]]></googleplay:email><googleplay:author><![CDATA[Leprik]]></googleplay:author><itunes:block><![CDATA[Yes]]></itunes:block><item><title><![CDATA[AI and mental health]]></title><description><![CDATA[The last half of the year I went silent.]]></description><link>https://leprik.ai/p/ai-and-mental-health</link><guid isPermaLink="false">https://leprik.ai/p/ai-and-mental-health</guid><dc:creator><![CDATA[Leprik]]></dc:creator><pubDate>Tue, 27 Jan 2026 17:34:49 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!vYT7!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff570a33a-a258-41c3-818b-43560c4f58ca_1001x494.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!vYT7!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff570a33a-a258-41c3-818b-43560c4f58ca_1001x494.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!vYT7!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff570a33a-a258-41c3-818b-43560c4f58ca_1001x494.png 424w, https://substackcdn.com/image/fetch/$s_!vYT7!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff570a33a-a258-41c3-818b-43560c4f58ca_1001x494.png 848w, https://substackcdn.com/image/fetch/$s_!vYT7!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff570a33a-a258-41c3-818b-43560c4f58ca_1001x494.png 1272w, https://substackcdn.com/image/fetch/$s_!vYT7!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff570a33a-a258-41c3-818b-43560c4f58ca_1001x494.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!vYT7!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff570a33a-a258-41c3-818b-43560c4f58ca_1001x494.png" width="1001" height="494" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/f570a33a-a258-41c3-818b-43560c4f58ca_1001x494.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:494,&quot;width&quot;:1001,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:968154,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://leprik.ai/i/184862061?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa3eed405-ff83-405e-9fe4-ffaa8e160aa5_1024x535.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_!vYT7!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff570a33a-a258-41c3-818b-43560c4f58ca_1001x494.png 424w, https://substackcdn.com/image/fetch/$s_!vYT7!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff570a33a-a258-41c3-818b-43560c4f58ca_1001x494.png 848w, https://substackcdn.com/image/fetch/$s_!vYT7!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff570a33a-a258-41c3-818b-43560c4f58ca_1001x494.png 1272w, https://substackcdn.com/image/fetch/$s_!vYT7!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff570a33a-a258-41c3-818b-43560c4f58ca_1001x494.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>The last half of the year I went silent. Claude Code went mainstream and got so good that now it just works in many cases without the need of some tips and tricks. Initially, I felt good about being right about the tool but quite soon I got&#8230; depressed. </p><p>My monkey brain extrapolated where things were heading and I got into the infinite loop of doom and end of the world.</p><p>The narrative &#8220;AI won&#8217;t replace developers, developers with AI will replace developers without it&#8221; started appearing as a denial phase: </p><ul><li><p>LinkedIn got a burst of posts about people vibecoding full apps in a matter of a few evenings. </p></li><li><p>Articles about <a href="https://techcrunch.com/2026/01/14/ai-models-are-starting-to-crack-high-level-math-problems/">ChatGPT solving math problems</a> started popping up one after another in a matter of days. </p></li><li><p>Linus Torvalds posted on <a href="https://github.com/torvalds/AudioNoise">GitHub</a> that he vibecoded an audio visualizer. </p></li><li><p>DeepMind Chief AGI Scientist tweets about incoming AGI in 2028 with 50% chance in the thread about hiring Senior Economist for post-AGI economics research.</p><div class="twitter-embed" data-attrs="{&quot;url&quot;:&quot;https://x.com/ShaneLegg/status/2014345509675155639&quot;,&quot;full_text&quot;:&quot;AGI is now on the horizon and it will deeply transform many things, including the economy.\n\nI'm currently looking to hire a Senior Economist, reporting directly to me, to lead a small team investigating post-AGI economics.\n\nJob spec and application here:  <a class=\&quot;tweet-url\&quot; href=\&quot;https://job-boards.greenhouse.io/deepmind/jobs/7556396\&quot;>job-boards.greenhouse.io/deepmind/jobs/&#8230;</a>&quot;,&quot;username&quot;:&quot;ShaneLegg&quot;,&quot;name&quot;:&quot;Shane Legg&quot;,&quot;profile_image_url&quot;:&quot;https://pbs.substack.com/profile_images/1985344651583234049/-wzq2e0u_normal.jpg&quot;,&quot;date&quot;:&quot;2026-01-22T14:32:48.000Z&quot;,&quot;photos&quot;:[],&quot;quoted_tweet&quot;:{},&quot;reply_count&quot;:557,&quot;retweet_count&quot;:677,&quot;like_count&quot;:6833,&quot;impression_count&quot;:1970882,&quot;expanded_url&quot;:null,&quot;video_url&quot;:null,&quot;belowTheFold&quot;:false}" data-component-name="Twitter2ToDOM"></div></li></ul><p></p><p>From every corner you can hear that Software engineering is DONE, IT&#8217;S OVER, come work at McDonald&#8217;s!</p><p>And just like that you find yourself almost having a panic attack.</p><p>Well, as an undisputed world boxing champion once <a href="https://www.reddit.com/r/ukraine/comments/1m40am1/usyk_to_dubois_team_dont_push_the_horses/">said</a>: &#8220;Don&#8217;t push the horses!&#8220;!</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Tz3C!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe0dd4e42-4f8e-470c-9157-d7436f48a4e0_1408x736.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Tz3C!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe0dd4e42-4f8e-470c-9157-d7436f48a4e0_1408x736.png 424w, https://substackcdn.com/image/fetch/$s_!Tz3C!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe0dd4e42-4f8e-470c-9157-d7436f48a4e0_1408x736.png 848w, https://substackcdn.com/image/fetch/$s_!Tz3C!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe0dd4e42-4f8e-470c-9157-d7436f48a4e0_1408x736.png 1272w, https://substackcdn.com/image/fetch/$s_!Tz3C!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe0dd4e42-4f8e-470c-9157-d7436f48a4e0_1408x736.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Tz3C!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe0dd4e42-4f8e-470c-9157-d7436f48a4e0_1408x736.png" width="1408" height="736" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/e0dd4e42-4f8e-470c-9157-d7436f48a4e0_1408x736.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:736,&quot;width&quot;:1408,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2005790,&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://leprik.ai/i/184862061?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe0dd4e42-4f8e-470c-9157-d7436f48a4e0_1408x736.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_!Tz3C!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe0dd4e42-4f8e-470c-9157-d7436f48a4e0_1408x736.png 424w, https://substackcdn.com/image/fetch/$s_!Tz3C!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe0dd4e42-4f8e-470c-9157-d7436f48a4e0_1408x736.png 848w, https://substackcdn.com/image/fetch/$s_!Tz3C!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe0dd4e42-4f8e-470c-9157-d7436f48a4e0_1408x736.png 1272w, https://substackcdn.com/image/fetch/$s_!Tz3C!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe0dd4e42-4f8e-470c-9157-d7436f48a4e0_1408x736.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>The first thing I did to calm down was focusing on what I can control. </p><p>If AGI is here in 6 months/1 year/2 years, there are literally zero things I can do to prevent it. <a href="https://news.crunchbase.com/ai/big-funding-trends-charts-eoy-2025/">The amount of investments in AI in 2025</a> was 200 billion+, we had comparable investments only in the Dot-Com bubble, thanks to which we have amazing cheap internet nowadays. So if it&#8217;s possible at all to reach AGI based on LLM-architecture, humanity for sure will reach it and I cannot do anything about it.</p><p>Can I prepare for it? Not really. The richest companies are hiring the best minds of the world to do analysis and prepare for possible outcomes, odds are not in my favor. No point in spending time and energy here.</p><p>What if AGI won&#8217;t happen in the next 5 years?</p><p>In this case we have to deal with the fact that we got a new tool that can write code quite well based on provided human text. As any tool, it will get cheaper and better with time. </p><h3>How does it impact the industry?</h3><p>Any automation decreases the number of jobs in an industry. Thanks to LLM&#8217;s tendency towards hallucinations and sometimes very good plausible but completely wrong answers, you need an expert in the domain area to validate whatever it produces. If you dig deeper into articles about ChatGPT solving math problems you will discover that in many cases solutions existed before but were not properly published and ones that were really solved <a href="https://byteiota.com/gpt-5-2-solves-erdos-math-problem-but-did-it-really/">didn&#8217;t have novel approaches</a> at all. Without human experts we would be giving Nobel Prize to AI every day for slop.</p><p>Ok, so we need to have an expert, who are the primary experts in Software development? PM + Technical lead. Now PM can do way more things, what required Tech lead in the past now can be done with LLM. It might not be obvious but the same applies to the Tech lead, now they can do a lot of PM&#8217;s job way easier as well as getting information about the domain and edge cases became trivial as well. So it&#8217;s highly likely we will see a merge of these roles into one. There is quite a strong case for devs being PM in a technical product, like development of a new database.  A non-technical user is highly unlikely to have enough expertise to understand the problem and demand for a new solution in the first place. Such products are usually built with low-level programming languages like C++/Go/Rust, so instead of switching fully to being electricians it&#8217;s worth considering switching to these languages first.</p><h3>What about other roles?</h3><p>Using LLM as a code writing machine already made a good chunk of devs in fact QA specialists. Many companies have eng. policy &#8220;you wrote it - you own it&#8221;, which means infrastructure and maintenance on devs as well. Throw the ultimate teacher that can explain everything in the picture and it becomes quite obvious that we will see a transition of the role towards something more generic, like Automator/Integrator, where it would be expected to cover entire solution end-to-end. </p><h2>Will we need fewer automators than software devs we currently have?</h2><p>Instinctively, you want to say yes. However, there is a possibility that:</p><ul><li><p>Expectations from the software will increase. Now everyone can produce low-quality MVP in a matter of hours. There is already a surge of new apps to Apple App Store. There are rare success stories about making good money out of it because even if an app has a good idea, it&#8217;s easy to copy it. So, everyone is and will be looking to get an upper hand. </p><p>Currently, I see people betting on distribution (marketing), which is a valid point, however I feel like reliability would be among top requests from users after we get fatigue from buggy software. The success path was always the easy part of software engineering. The last 10% of any project were always the most challenging and required the most effort. I bet not everyone enjoys choosing trade-offs and thinking about edge cases on a daily basis.</p></li><li><p>The number of lazy people will just increase as more and more people will delegate thinking to AI. The truth is that all information was available to everyone for quite some time thanks to the internet but we still have travel agencies and consultants. Even if the research part becomes trivial you still need to use your brain to ask right questions, that&#8217;s where expertise comes in handy. And that&#8217;s what people will be paying for &#8220;think instead of me&#8220;.</p></li><li><p>Several huge security incidents will happen due to LLM/AI agent flaws (e.g., prompt injection). LLM providers won&#8217;t have any liability and answer that it was a &#8220;skill issue&#8220;  of one using their product. </p><p>To some extent it&#8217;s already happening. For instance, after the rollout of Claude Codex Boris Cherniy was flexing that all of it was written by Claude Code itself. But Codex had many issues, so users on Reddit were joking that &#8220;you can tell it was built by AI&#8220;, on top of that it had <a href="https://www.theregister.com/2026/01/15/anthropics_claude_bug_cowork/">some serious security issues</a> but Anthropic said it&#8217;s the responsibility of the LLM users.</p><p>Obviously business owners don&#8217;t want to deal with this stuff and would hire someone to be responsible for this. </p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!vIaW!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7e63ce34-4380-46c7-a75e-30d7cd430341_1024x559.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!vIaW!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7e63ce34-4380-46c7-a75e-30d7cd430341_1024x559.png 424w, https://substackcdn.com/image/fetch/$s_!vIaW!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7e63ce34-4380-46c7-a75e-30d7cd430341_1024x559.png 848w, https://substackcdn.com/image/fetch/$s_!vIaW!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7e63ce34-4380-46c7-a75e-30d7cd430341_1024x559.png 1272w, https://substackcdn.com/image/fetch/$s_!vIaW!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7e63ce34-4380-46c7-a75e-30d7cd430341_1024x559.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!vIaW!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7e63ce34-4380-46c7-a75e-30d7cd430341_1024x559.png" width="1024" height="559" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/7e63ce34-4380-46c7-a75e-30d7cd430341_1024x559.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:559,&quot;width&quot;:1024,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1069021,&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://leprik.ai/i/184862061?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7e63ce34-4380-46c7-a75e-30d7cd430341_1024x559.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_!vIaW!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7e63ce34-4380-46c7-a75e-30d7cd430341_1024x559.png 424w, https://substackcdn.com/image/fetch/$s_!vIaW!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7e63ce34-4380-46c7-a75e-30d7cd430341_1024x559.png 848w, https://substackcdn.com/image/fetch/$s_!vIaW!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7e63ce34-4380-46c7-a75e-30d7cd430341_1024x559.png 1272w, https://substackcdn.com/image/fetch/$s_!vIaW!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7e63ce34-4380-46c7-a75e-30d7cd430341_1024x559.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div></li><li><p>Every company will build all software tooling in-house, as there is no point in paying for SaaS anymore right? They will learn about maintenance costs quite quickly, so they might just hire an automator to manage all of it. Turns out &#8220;we&#8217;ll just build it ourselves&#8221; hits different at 4am when prod is down and you got sued by thousands of angry customers.</p></li></ul><p>In my opinion, these reasons won&#8217;t be enough and the number of automators would be lower until we have immense complication in software products. We just won&#8217;t have a sharp drop in numbers.</p><p>So the best thing to do is to become such an automator already. For that one needs to forget about roles split (backend/frontend/devops/ml/security/mobile), you just do whatever is needed by the business, if you don&#8217;t know something - you have the best teacher in the world as long as you ask right questions. Asking right questions is what most senior devs do anyway, so you should be good at it already. The hardest adjustment for me was to accept that now it&#8217;s acceptable to solve problems in a sub-optimal way as long as you don&#8217;t spend time on it and throw more compute at the problem. There is even a technique for this called Ralph Loop. <a href="https://ghuntley.com/ralph/">Here</a> is a great post about <strong>the approach</strong> from Ralph Wiggum, the creator of this masterpiece. If you don&#8217;t have time to read it, here is a secret formula:</p><blockquote><pre><code><code>while :; do cat PROMPT.md | claude-code ; done</code></code></pre></blockquote><p>Congratulations, now you are a senior Ralph dev!</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!nKLG!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6aab49d0-faf5-4caa-a477-36db1e566564_1024x1024.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!nKLG!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6aab49d0-faf5-4caa-a477-36db1e566564_1024x1024.png 424w, https://substackcdn.com/image/fetch/$s_!nKLG!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6aab49d0-faf5-4caa-a477-36db1e566564_1024x1024.png 848w, https://substackcdn.com/image/fetch/$s_!nKLG!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6aab49d0-faf5-4caa-a477-36db1e566564_1024x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!nKLG!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6aab49d0-faf5-4caa-a477-36db1e566564_1024x1024.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!nKLG!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6aab49d0-faf5-4caa-a477-36db1e566564_1024x1024.png" width="1024" height="1024" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/6aab49d0-faf5-4caa-a477-36db1e566564_1024x1024.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1024,&quot;width&quot;:1024,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2022447,&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://leprik.ai/i/184862061?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6aab49d0-faf5-4caa-a477-36db1e566564_1024x1024.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!nKLG!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6aab49d0-faf5-4caa-a477-36db1e566564_1024x1024.png 424w, https://substackcdn.com/image/fetch/$s_!nKLG!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6aab49d0-faf5-4caa-a477-36db1e566564_1024x1024.png 848w, https://substackcdn.com/image/fetch/$s_!nKLG!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6aab49d0-faf5-4caa-a477-36db1e566564_1024x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!nKLG!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6aab49d0-faf5-4caa-a477-36db1e566564_1024x1024.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Ok, that&#8217;s great but you still have anxiety that AI will take your job next month?</p><h2>Look at LLM providers&#8217; actions not their words </h2><p>OpenAI rolls out ads. In 2025 Sam Altman said that adding ads would be a last resort for them. If AGI is around the corner, why bother?</p><p>Anthropic&#8217;s CEO says that we won&#8217;t need developers in 6 months every 6 months. Meanwhile the company keeps hiring devs.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!aqdQ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb69688ab-e0a2-4cb9-8090-6b92ed1c59a9_1694x1452.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!aqdQ!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb69688ab-e0a2-4cb9-8090-6b92ed1c59a9_1694x1452.png 424w, https://substackcdn.com/image/fetch/$s_!aqdQ!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb69688ab-e0a2-4cb9-8090-6b92ed1c59a9_1694x1452.png 848w, https://substackcdn.com/image/fetch/$s_!aqdQ!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb69688ab-e0a2-4cb9-8090-6b92ed1c59a9_1694x1452.png 1272w, https://substackcdn.com/image/fetch/$s_!aqdQ!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb69688ab-e0a2-4cb9-8090-6b92ed1c59a9_1694x1452.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!aqdQ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb69688ab-e0a2-4cb9-8090-6b92ed1c59a9_1694x1452.png" width="1456" height="1248" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/b69688ab-e0a2-4cb9-8090-6b92ed1c59a9_1694x1452.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1248,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:324151,&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://leprik.ai/i/184862061?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb69688ab-e0a2-4cb9-8090-6b92ed1c59a9_1694x1452.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_!aqdQ!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb69688ab-e0a2-4cb9-8090-6b92ed1c59a9_1694x1452.png 424w, https://substackcdn.com/image/fetch/$s_!aqdQ!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb69688ab-e0a2-4cb9-8090-6b92ed1c59a9_1694x1452.png 848w, https://substackcdn.com/image/fetch/$s_!aqdQ!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb69688ab-e0a2-4cb9-8090-6b92ed1c59a9_1694x1452.png 1272w, https://substackcdn.com/image/fetch/$s_!aqdQ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb69688ab-e0a2-4cb9-8090-6b92ed1c59a9_1694x1452.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Why bother if you fire them in 6 months? </p><p>Because of these contradictions I prefer to believe Yann LeCun (one of three &#8220;Godfathers of AI/Deep Learning&#8221;) in this matter:</p><div class="twitter-embed" data-attrs="{&quot;url&quot;:&quot;https://x.com/ylecun/status/2015073086169637353&quot;,&quot;full_text&quot;:&quot;<span class=\&quot;tweet-fake-link\&quot;>@redmonduser</span> <span class=\&quot;tweet-fake-link\&quot;>@RichardSSutton</span> You are a victim of the same delusion as numerous folks who have believed in past decades that superhuman  performance by computers in one task was a harbinger of human-level AI. \n\nIt happened with code generation, math, chatbots, go players, robot acrobats, Jeopardy-playing&quot;,&quot;username&quot;:&quot;ylecun&quot;,&quot;name&quot;:&quot;Yann LeCun&quot;,&quot;profile_image_url&quot;:&quot;https://pbs.substack.com/profile_images/1483577865056702469/rWA-3_T7_normal.jpg&quot;,&quot;date&quot;:&quot;2026-01-24T14:43:56.000Z&quot;,&quot;photos&quot;:[],&quot;quoted_tweet&quot;:{},&quot;reply_count&quot;:97,&quot;retweet_count&quot;:136,&quot;like_count&quot;:2154,&quot;impression_count&quot;:281687,&quot;expanded_url&quot;:null,&quot;video_url&quot;:null,&quot;belowTheFold&quot;:true}" data-component-name="Twitter2ToDOM"></div><h2>TLDR</h2><ul><li><p>Don&#8217;t stress over things you cannot control. If AGI is here, it&#8217;s a completely new world. You cannot prepare for a post-AGI world as no one knows what&#8217;s coming.</p></li><li><p>Develop yourself towards being Automator/Integrator, don&#8217;t be attached to your current job title. Learn Rust and apply Ralph loop on all problems you see around you.</p></li><li><p>Look at actions not words of LLM providers. </p></li><li><p>Breathe out and remember that asking right questions and thinking is not what everyone loves to do, so there will always be demand for these until AGI-era arrives.</p></li></ul><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://leprik.ai/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! Subscribe to follow my journey towards becoming a senior Ralph dev. </p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[A bitter pill to swallow: Non-determinism]]></title><description><![CDATA[Managing Your Drunk But Brilliant AI Junior Developer]]></description><link>https://leprik.ai/p/a-bitter-pill-to-swallow-non-determinism</link><guid isPermaLink="false">https://leprik.ai/p/a-bitter-pill-to-swallow-non-determinism</guid><dc:creator><![CDATA[Leprik]]></dc:creator><pubDate>Tue, 08 Jul 2025 21:44:42 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!ut0C!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9ef46970-7e9b-45d3-b716-fe45416bb94a_2816x1536.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!ut0C!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9ef46970-7e9b-45d3-b716-fe45416bb94a_2816x1536.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!ut0C!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9ef46970-7e9b-45d3-b716-fe45416bb94a_2816x1536.png 424w, https://substackcdn.com/image/fetch/$s_!ut0C!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9ef46970-7e9b-45d3-b716-fe45416bb94a_2816x1536.png 848w, https://substackcdn.com/image/fetch/$s_!ut0C!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9ef46970-7e9b-45d3-b716-fe45416bb94a_2816x1536.png 1272w, https://substackcdn.com/image/fetch/$s_!ut0C!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9ef46970-7e9b-45d3-b716-fe45416bb94a_2816x1536.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!ut0C!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9ef46970-7e9b-45d3-b716-fe45416bb94a_2816x1536.png" width="1456" height="794" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/9ef46970-7e9b-45d3-b716-fe45416bb94a_2816x1536.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:794,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:4204068,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://leprik.ai/i/167294805?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9ef46970-7e9b-45d3-b716-fe45416bb94a_2816x1536.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!ut0C!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9ef46970-7e9b-45d3-b716-fe45416bb94a_2816x1536.png 424w, https://substackcdn.com/image/fetch/$s_!ut0C!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9ef46970-7e9b-45d3-b716-fe45416bb94a_2816x1536.png 848w, https://substackcdn.com/image/fetch/$s_!ut0C!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9ef46970-7e9b-45d3-b716-fe45416bb94a_2816x1536.png 1272w, https://substackcdn.com/image/fetch/$s_!ut0C!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9ef46970-7e9b-45d3-b716-fe45416bb94a_2816x1536.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><p>In my <a href="https://leprik.ai/p/from-ai-skeptic-to-claude-junky-a">last post</a>, I showed you how to get hooked on Claude Code. But here's what I didn't tell you: even with the perfect setup, your honeymoon will end. Mine lasted only several weeks.</p><p>It's unavoidable, as with every new technology you pass three stages:</p><ul><li><p>Week 1: I can do everything with it/ It&#8217;s x10 improvement in my workflow!</p></li><li><p>Week 3: &#8220;It sucks!&#8221; - after learning limitations of the tool.</p></li><li><p>Month 2: &#8220;It&#8217;s a nice tool in the right situation&#8220; - after having decent experience with it.</p></li></ul><p>Claude Code or any other coding agent is not an exception. However, the limitation is far from typical as developers are used to - its nondeterministic nature. So the first thing that a developer asks when Claude skips some instructions or produces slightly different interface than expected &#8220;how can I force it to do exactly what I said?!&#8220;. Well, you cannot. </p><p>Remember, you are not a developer anymore, you are a manager. Human managers have this dilemma all the time, especially with junior/middle folks:</p><p>You tell someone how to solve a problem, they start implementation, somewhere in the middle they find new information, sometimes it changes everything(starting with a case when you already have an existing component that does what you need and ending up when the whole approach is wrong because of hidden constraints) and at that moment it&#8217;s not clear for them what to do: </p><ul><li><p>To ask the manager? But the manager asked them to do exactly what they were told to do. You might think that it&#8217;s obvious that you should ask in such situations but often the new info doesn't matter because of context they don't have. And providing of all information would take way more time and one can easily forget details somewhere in the middle, so it&#8217;s simply not worth it.</p></li><li><p>Ignore and follow instructions? but then your manager would tell you that new information changes everything and you should have told them earlier about it.</p></li></ul><p>Quite a high chance of looking like a fool regardless of a choice, and we are dealing with a human who can actually think!</p><p>Obviously, Claude can't think. But it learned from code where developers made different choices having situations described above, so solution wasn&#8217;t deterministic even in the beginning. So no point of being mad about it, better just to accept it as a limitation of the tool. But here's the thing: acceptance doesn't mean helplessness. It means getting smarter about how we work with the chaos.</p><h3>Embracing the Chaos</h3><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!fuNq!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3948dce6-cdcd-47a8-a384-e45dfc531450_2816x1536.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!fuNq!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3948dce6-cdcd-47a8-a384-e45dfc531450_2816x1536.png 424w, https://substackcdn.com/image/fetch/$s_!fuNq!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3948dce6-cdcd-47a8-a384-e45dfc531450_2816x1536.png 848w, https://substackcdn.com/image/fetch/$s_!fuNq!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3948dce6-cdcd-47a8-a384-e45dfc531450_2816x1536.png 1272w, https://substackcdn.com/image/fetch/$s_!fuNq!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3948dce6-cdcd-47a8-a384-e45dfc531450_2816x1536.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!fuNq!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3948dce6-cdcd-47a8-a384-e45dfc531450_2816x1536.png" width="1456" height="794" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/3948dce6-cdcd-47a8-a384-e45dfc531450_2816x1536.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:794,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:5301673,&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://leprik.ai/i/167294805?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3948dce6-cdcd-47a8-a384-e45dfc531450_2816x1536.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!fuNq!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3948dce6-cdcd-47a8-a384-e45dfc531450_2816x1536.png 424w, https://substackcdn.com/image/fetch/$s_!fuNq!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3948dce6-cdcd-47a8-a384-e45dfc531450_2816x1536.png 848w, https://substackcdn.com/image/fetch/$s_!fuNq!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3948dce6-cdcd-47a8-a384-e45dfc531450_2816x1536.png 1272w, https://substackcdn.com/image/fetch/$s_!fuNq!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3948dce6-cdcd-47a8-a384-e45dfc531450_2816x1536.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>First, you need to understand where non-determinism is acceptable. Usually, these are implementation details. If you tell Claude Code literally every line to write you will achieve 100% determinism, but what&#8217;s the point, it would be faster to write the code yourself. So you need to focus on things that matter:</p><ul><li><p>Product requirements.</p></li><li><p>Data flows.</p></li><li><p>APIs contract between backend and frontend.</p></li><li><p>System components, which will be changed during development of the task.</p></li><li><p>Test cases.</p></li></ul><p>These things you need to pay close attention to and even write yourself(WHAT?! It&#8217;s so 2024! ) an initial version.</p><p>Second, you need to learn to control the context of Claude code. Providing entire codebase and giving a ticket number only will work on small projects at best. If you have a legacy project, it will lead to hallucinations quite quickly. </p><p>Recently I was adding multi-currency support to several screens of an app. I nailed it with Claude for the first screen, so I naively thought that second one would be a piece of cake and wouldn&#8217;t take more than 30 mins of Claude&#8217;s time. Oh boy,  how wrong was I! I&#8217;ve made four attempts starting from scratch with Claude, but I failed miserably. This page made Claude drunk instantly, I was swearing like I am the worst human-being on the planet. Nothing helped. </p><p>I felt not like an orchestrator but like a manager of a rock band, where a star singer got drunk and found his calling as a ballerina because he saw a tweet with ballet performance 5 minutes ago.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!xKlf!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff525b4e8-e688-4fc4-a55f-240be8240257_2560x1792.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!xKlf!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff525b4e8-e688-4fc4-a55f-240be8240257_2560x1792.png 424w, https://substackcdn.com/image/fetch/$s_!xKlf!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff525b4e8-e688-4fc4-a55f-240be8240257_2560x1792.png 848w, https://substackcdn.com/image/fetch/$s_!xKlf!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff525b4e8-e688-4fc4-a55f-240be8240257_2560x1792.png 1272w, https://substackcdn.com/image/fetch/$s_!xKlf!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff525b4e8-e688-4fc4-a55f-240be8240257_2560x1792.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!xKlf!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff525b4e8-e688-4fc4-a55f-240be8240257_2560x1792.png" width="1456" height="1019" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/f525b4e8-e688-4fc4-a55f-240be8240257_2560x1792.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1019,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:5810410,&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://leprik.ai/i/167294805?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff525b4e8-e688-4fc4-a55f-240be8240257_2560x1792.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_!xKlf!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff525b4e8-e688-4fc4-a55f-240be8240257_2560x1792.png 424w, https://substackcdn.com/image/fetch/$s_!xKlf!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff525b4e8-e688-4fc4-a55f-240be8240257_2560x1792.png 848w, https://substackcdn.com/image/fetch/$s_!xKlf!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff525b4e8-e688-4fc4-a55f-240be8240257_2560x1792.png 1272w, https://substackcdn.com/image/fetch/$s_!xKlf!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff525b4e8-e688-4fc4-a55f-240be8240257_2560x1792.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>So I&#8217;ve decided to do unimaginable - do everything myself. </p><p>Turned out, that page was in the middle of transition to a new graphql client. Had one title but under the hood was using completely different models and several different APIs(new graphql one, old graphql API and REST API), and, ofcourse, all three had endpoints named after the page title, but none were actually relevant. Poor Claude. Instead of half an hour, I spent almost a week on it. (Every developer right now: haha, classic).</p><p>After several such occasions, I&#8217;ve started seeing patterns when <s>my son comes home drunk</s> Claude struggles with a given task. Eventually I came up with key pieces of the puzzle to avoid having such surprises:</p><ul><li><p>A proper structure of documentation with file maps.</p></li><li><p>A prompt that asks claude to work only with specific directories and forbids even reading from not allowed directories.</p></li><li><p>Giving up quickly. If I want to start swearing - time to give up and try again from scratch. </p></li><li><p>Addressing technical debt in related area first, even Claude prefers clean architecture and code!</p></li></ul><h4>The Documentation System </h4><p>Here's the structure that finally tamed the chaos (and yes, those feature names are real):</p><pre><code>leprik-ai/
&#9500;&#9472;&#9472; docs/
&#9474;   &#9500;&#9472;&#9472; product/
&#9474;   &#9474;   &#9500;&#9472;&#9472; awesomeness/
&#9474;   &#9474;   &#9474;   &#9500;&#9472;&#9472; feature.md          # Feature overview &amp; entry point
&#9474;   &#9474;   &#9474;   &#9500;&#9472;&#9472; implementation.md   # Technical design
&#9474;   &#9474;   &#9474;   &#9492;&#9472;&#9472; file-map.md         # Explicit file references
&#9474;   &#9474;   &#9500;&#9472;&#9472; pragmatic-insights/
&#9474;   &#9474;   &#9474;   &#9500;&#9472;&#9472; product-reqs.md     
&#9474;   &#9474;   &#9474;   &#9500;&#9472;&#9472; implementation.md   
&#9474;   &#9474;   &#9474;   &#9492;&#9472;&#9472; file-map.md        
&#9474;   &#9474;   &#9492;&#9472;&#9472; no-hype/
&#9474;   &#9474;       &#9492;&#9472;&#9472; ...
&#9474;   &#9500;&#9472;&#9472; architecture/
&#9474;   &#9474;   &#9492;&#9472;&#9472; system-overview.md
&#9474;   &#9500;&#9472;&#9472; dev/
&#9474;   &#9474;   &#9492;&#9472;&#9472; qa-guidelines.md
&#9474;   &#9474;   &#9492;&#9472;&#9472; be-guidelines.md
&#9474;   &#9474;   &#9492;&#9472;&#9472; fe-guidelines.md
&#9474;   &#9492;&#9472;&#9472; overview.md                   # Master documentation index
&#9500;&#9472;&#9472; backend/
&#9500;&#9472;&#9472; frontend/
&#9500;&#9472;&#9472; infrastructure/
&#9500;&#9472;&#9472; CLAUDE.md</code></pre><p>When product gets bigger a product directory becomes : domain &#8594; features &#8594; sub features. Same structure + index files at every level, so Claude can quickly find only files related to the feature it&#8217;s working on.</p><p>file-map.md is a simple file with list of all related files to the feature.</p><p>Architecture directory can be extended with graphs(Mermaid diagrams would work perfectly), <a href="https://github.com/joelparkerhenderson/architecture-decision-record">ADRs</a> or <a href="https://c4model.com/">C4 diagrams</a>. </p><p>I like this structure the most because in the future, when you have insane amount of docs you can easily build MCP around your docs + RAG for fast retrieval of the data make search more efficient.</p><p>If you work only with, let&#8217;s say frontend repo, you can try a simpler setup when every component has README.md file, which explains what component does and what features it supports and what files it has.</p><blockquote><p>If you are extremely lazy, you can use <a href="https://repomix.com/">Repomix</a> to convert a specific directory to md format and provide it to Claude as documentation (though proper documentation structure pays off in the long run)</p></blockquote><p>My main workflow is:</p><ul><li><p>Having a ticket in linear with description of desired changes.</p></li><li><p>Start claude with this prompt:</p></li></ul><pre><code>Create a plan for the implementation of ticket #ENG-4242, read product related documentation in @leprik-ai/docs/product/awesomeness/feature.md, follow dev guidelines during development defined in @leprik-ai/docs/dev/

You are allowed to work ONLY in these directories:
- /backend/src/awesomeness.
- /frontend/src/awesomeness/

Do not access any other directories or files outside this list.</code></pre><ul><li><p>I ask it to store the plan as md file, so I can continue implementation if somewhere in the middle Claude run autocompact process. I don&#8217;t like autocompact because usually Claude gets amnesia and needs to read CLAUDE.md file several times before it can remember what commands to use. That&#8217;s why I prefer to use <em>/compact</em> myself and use the created file as a part of summary.</p></li><li><p>After that I ask Claude to implement the task via several sub-agents providing information about allowed directories again.</p></li></ul><p>I am lazy, so instead of typing such prompts every time I&#8217;ve created custom commands.</p><h4>Automating the Workflow</h4><p>Creation of own command is trivial:</p><pre><code>mkdir -p .claude/commands # inside the project

touch .claude/commands/plan-issue.md</code></pre><p>Here is example of the prompt(don&#8217;t forget to use <a href="https://console.anthropic.com">Anthropic&#8217;s prompt generator</a> to improve your prompts):</p><pre><code>---
allowed-tools: ReadFile, Bash(ls:*), Bash(fd:*), Bash(rg:*)
description: Create implementation plan for a ticket with directory restrictions
---

You are tasked with creating a plan for the implementation of a ticket. Follow these instructions carefully:

1. Parse the input arguments:
Parse the {{ARGUMENTS}} string, which is in the format "TICKET_NUMBER | PRD_PATH | ALLOWED_DIRS". Extract the ticket number, path to product documentation, and allowed directories from this string. Stop execution if any of the required arguments are missing or invalid and notify the user.

2. Read product documentation:
Access and thoroughly read the product-related documentation located at the PRD_PATH you extracted from the arguments. This documentation contains crucial information about the product that will inform your implementation plan.

3. Follow development guidelines:
Adhere to the development guidelines defined in @leprik-ai/docs/dev throughout your planning process. These guidelines ensure consistency and best practices in development.

4. Observe directory restrictions:
You are only allowed to work within the directories specified in the ALLOWED_DIRS section of the parsed arguments. Do not include any files or directories outside of this list in your implementation plan.

5. Create the implementation plan:
Based on the information from the product documentation, development guidelines, and directory restrictions, create a detailed plan for implementing the ticket.

Remember to only include tasks and files within the allowed directories, and ensure all aspects of your plan adhere to the development guidelines you've read.</code></pre><p>After the plan looks good to both of us (me and Claude's army of agents), I use command <em>/implement-plan</em> command, which has similar limitations regarding working directories as previous prompt. And the last command that I use is <em>/update-docs, </em>the prompt for this command is quite long and contains many bash commands, so it doesn&#8217;t look nice on Substack. So I'm only showing the beginning to demonstrate another feature - execution of bash commands and using their output in the prompt:</p><pre><code>---
allowed-tools: ReadFile, Edit, Bash(git:*), Bash(fd:*), Bash(ls:*), Bash(test:*), Bash(echo:*), Bash(rg:*), Bash(head:*), Bash(sort:*)
description: Update feature documentation based on current changeset
---

# Update Feature Documentation

Update documentation for feature at path: $ARGUMENTS

## Initial Setup
Set feature directory path:
!`FEAT_DIR="$ARGUMENTS"; echo "Feature directory: $FEAT_DIR"`

Check Git repository status:
!`if git rev-parse --git-dir &gt; /dev/null 2&gt;&amp;1; then echo "&#10003; Git repository detected"; else echo "&#9888;&#65039; Not in a git repository - skipping git-based analysis"; fi`

Current branch (if in git):
!`git rev-parse --git-dir &gt; /dev/null 2&gt;&amp;1 &amp;&amp; git branch --show-current || echo "N/A"`

## Step 1: Validate Feature Directory
Check if the provided path exists:
!`test -d "$ARGUMENTS" &amp;&amp; echo "&#10003; Directory exists: $ARGUMENTS" || echo "&#10007; Directory not found: $ARGUMENTS"`

List current documentation files:
!`find "$ARGUMENTS" -maxdepth 1 -name "*.md" -type f 2&gt;/dev/null | sort || echo "No markdown files found"`

If directory doesn't exist or empty, notify the user about it and ask to provide correct path.
## Step 2: Check/Create implementation.md
!`test -f "$ARGUMENTS/implementation.md" &amp;&amp; echo "&#10003; implementation.md exists" || echo "&#9888;&#65039; implementation.md missing - will create"`

If implementation.md doesn't exist, create it with this template:
...
## Step 3 ...</code></pre><p>Want the full version? Just ask (though Anthropic's generator works great too)</p><p>That&#8217;s it, next time when you need to make an addition to the feature you have entire relevant context defined in a proper docs directory, so you just need to ask Claude Code to use it and nothing else. In most of cases it works pretty well.</p><p>When does it not work? Obviously, when a skin sack(aka me), forgets to run a command for updating docs. Humans are great source of non-determinism as well. In a perfect world, we could have just updated the command /implement-plan to execute /update-docs in the end, but I noticed that it&#8217;s not efficient for complex tasks as it&#8217;s rarely a one-shot story and I had to ask Claude follow-up tweaks.</p><p>The best idea that I came up with was a pre-commit hook. However, I don&#8217;t want to annoy everyone in the team by forcing this command, so I've decided to try Claude Code hooks feature, which was released a few weeks ago. </p><h3>Claude Code hooks</h3><p>I&#8217;ve added such hook inside <em>./claude/settings.json</em> file:</p><pre><code>{
  "hooks": {
    "PreToolUse": [
      {
        "matcher": "Bash",
        "hooks": [
          {
            "type": "command",
            "command": "./scripts/claude-hooks/update-features-docs-reminder.sh"
          }
        ]
      }
    ]
  }
}</code></pre><p>Basically, Claude Code will execute our sh file before any bash command.</p><p>Here is the script itself:</p><pre><code>#!/bin/bash
# update-features-docs-reminder.sh
# Detects /implement-plan commands in the session

# Read the JSON input
TOOL_INPUT=$(cat)

# Extract fields
TOOL_NAME=$(echo "$TOOL_INPUT" | jq -r '.tool_name // ""')
SESSION_ID=$(echo "$TOOL_INPUT" | jq -r '.session_id // ""')
TRANSCRIPT_PATH=$(echo "$TOOL_INPUT" | jq -r '.transcript_path // ""')

# Only process Bash commands
if [ "$TOOL_NAME" != "Bash" ]; then
    exit 0
fi

COMMAND=$(echo "$TOOL_INPUT" | jq -r '.tool_input.command // ""')

# Check if it's a git commit command
if ! echo "$COMMAND" | grep -Eq "(^|&amp;&amp;|;|\|)\s*git commit"; then
    exit 0
fi

# Check the transcript for actual /implement-plan commands in current session
if [ -f "$TRANSCRIPT_PATH" ] &amp;&amp; [ -n "$SESSION_ID" ]; then
    # Check if /implement-plan was run in current session
    # Look for the exact pattern in user messages
    IMPLEMENT_PLAN_FOUND=$(grep "\"sessionId\":\"$SESSION_ID\"" "$TRANSCRIPT_PATH" | \
                          grep '"type":"user"' | \
                          grep -c '&lt;command-name&gt;/implement-plan&lt;/command-name&gt;')

    if [ "$IMPLEMENT_PLAN_FOUND" -gt 0 ]; then
        # Check if update-docs was also run or if user said skip docs
        UPDATE_DOCS_FOUND=$(grep "\"sessionId\":\"$SESSION_ID\"" "$TRANSCRIPT_PATH" | \
                           grep -E '&lt;command-name&gt;/update-docs&lt;/command-name&gt;|&lt;command-name&gt;/update-feature-docs&lt;/command-name&gt;|skip docs|no docs needed' | \
                           wc -l)

        if [ "$UPDATE_DOCS_FOUND" -eq 0 ]; then
            echo "&#128269; Found /implement-plan command without docs update" &gt;&amp;2

            cat &lt;&lt;EOF
{
    "decision": "block",
    "reason": "You ran /implement-plan in this session. Before committing:\n\n1. Please specify the documentation file path (e.g., 'docs/product/awesomeness')\n2. I'll run /update-feature-docs &lt;path&gt;\n3. Then proceed with the commit\n\nIf no documentation update is needed, just say 'skip docs' to proceed."
}
EOF
            exit 0
        else
            echo "&#9989; Docs already handled in current session" &gt;&amp;2
        fi
    else
        echo "&#9989; No /implement-plan command found in current session" &gt;&amp;2
    fi
fi

# Proceed with commit
echo "&#9989; Proceeding with git commit" &gt;&amp;2
exit 0</code></pre><p>It will check if Claude tries to execute <em>git commit</em> command and if so it will check whether you used /implement-plan within this session and didn&#8217;t cover it with a documentation.</p><p>Even though this script works, it took significant efforts to debug it initially. If you run <em>claude &#8212;debug </em>it shows additional information about hooks invocation, useful but still not enough as majority of time you are testing and debugging bash scripts.</p><blockquote><p>At this stage I would recommend to wait for another iteration over this feature from Claude&#8217;s team. And use it only for simple cases, like notifications.</p></blockquote><p>In my <a href="https://leprik.ai/p/from-ai-skeptic-to-claude-junky-a">previous post</a>, we asked Claude in CLAUDE.md to notify us whenever he needs an input from us. Unfortunately, it doesn&#8217;t always work. Claude forgets to do it from time to time: usually after automatic compact(once again, you should avoid having those because Claude has complete amnesia in most of cases after this) or when sub-agents are involved, sometimes Claude just swallows messages from them.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!ZHqe!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F15d2e982-5206-4774-a69c-6d8261ebd462_2048x2048.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!ZHqe!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F15d2e982-5206-4774-a69c-6d8261ebd462_2048x2048.jpeg 424w, https://substackcdn.com/image/fetch/$s_!ZHqe!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F15d2e982-5206-4774-a69c-6d8261ebd462_2048x2048.jpeg 848w, https://substackcdn.com/image/fetch/$s_!ZHqe!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F15d2e982-5206-4774-a69c-6d8261ebd462_2048x2048.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!ZHqe!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F15d2e982-5206-4774-a69c-6d8261ebd462_2048x2048.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!ZHqe!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F15d2e982-5206-4774-a69c-6d8261ebd462_2048x2048.jpeg" width="1456" height="1456" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/15d2e982-5206-4774-a69c-6d8261ebd462_2048x2048.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1456,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:3238538,&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://leprik.ai/i/167294805?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F15d2e982-5206-4774-a69c-6d8261ebd462_2048x2048.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_!ZHqe!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F15d2e982-5206-4774-a69c-6d8261ebd462_2048x2048.jpeg 424w, https://substackcdn.com/image/fetch/$s_!ZHqe!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F15d2e982-5206-4774-a69c-6d8261ebd462_2048x2048.jpeg 848w, https://substackcdn.com/image/fetch/$s_!ZHqe!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F15d2e982-5206-4774-a69c-6d8261ebd462_2048x2048.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!ZHqe!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F15d2e982-5206-4774-a69c-6d8261ebd462_2048x2048.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Hooks are a perfect solution in this scenario. I&#8217;ve created a simple terminal-notifier.sh script:</p><pre><code>#!/bin/bash

HOOK_INPUT=$(cat)
HOOK_EVENT=$(echo "$HOOK_INPUT" | jq -r '.hook_event_name // ""')

# Send notification with Claude app as sender
notify() {
    terminal-notifier \
        -title "Claude Code" \
        -message "$1" \
        -sound "$2" \
        -sender "com.anthropic.claudefordesktop"
}

# Handle events
case "$HOOK_EVENT" in
    "Notification")
        NOTIFICATION=$(echo "$HOOK_INPUT" | jq -r '.notification // ""')
        if echo "$NOTIFICATION" | grep -qi "permission\|confirm\|proceed\|Do you want"; then
            notify "Input needed" "Ping"
        else
            notify "$NOTIFICATION" "Pop"
        fi
        ;;
    "Stop")
        notify "Task completed" "Glass"
        ;;
esac

exit 0</code></pre><p>and updated hooks settings</p><pre><code>"Notification": [
  {
    "matcher": "",
    "hooks": [
      {
        "type": "command",
        "command": "./scripts/claude-hooks/terminal-notifier.sh"
      }
    ]
  }
],
"Stop": [
  {
    "matcher": "",
    "hooks": [
      {
        "type": "command",
        "command": "./scripts/claude-hooks/terminal-notifier.sh"
      }
    ]
  }
]</code></pre><p>After this I can clean up notifcation part from my CLAUDE.md file and will start seeing this beauty:</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!aRrU!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fff23b735-c9b2-4741-870a-4ef6db592760_364x79.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!aRrU!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fff23b735-c9b2-4741-870a-4ef6db592760_364x79.png 424w, https://substackcdn.com/image/fetch/$s_!aRrU!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fff23b735-c9b2-4741-870a-4ef6db592760_364x79.png 848w, https://substackcdn.com/image/fetch/$s_!aRrU!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fff23b735-c9b2-4741-870a-4ef6db592760_364x79.png 1272w, https://substackcdn.com/image/fetch/$s_!aRrU!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fff23b735-c9b2-4741-870a-4ef6db592760_364x79.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!aRrU!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fff23b735-c9b2-4741-870a-4ef6db592760_364x79.png" width="364" height="79" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/ff23b735-c9b2-4741-870a-4ef6db592760_364x79.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:79,&quot;width&quot;:364,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:24883,&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://leprik.ai/i/167294805?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fff23b735-c9b2-4741-870a-4ef6db592760_364x79.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_!aRrU!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fff23b735-c9b2-4741-870a-4ef6db592760_364x79.png 424w, https://substackcdn.com/image/fetch/$s_!aRrU!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fff23b735-c9b2-4741-870a-4ef6db592760_364x79.png 848w, https://substackcdn.com/image/fetch/$s_!aRrU!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fff23b735-c9b2-4741-870a-4ef6db592760_364x79.png 1272w, https://substackcdn.com/image/fetch/$s_!aRrU!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fff23b735-c9b2-4741-870a-4ef6db592760_364x79.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><h3>TLDR</h3><p>TLDR for Claude Code&#8217;s junkeys who will use Claude to summarize this article:</p><ul><li><p>Embrace non-determinism and pick your battles.</p></li><li><p>Manage Claude&#8217;s context properly:</p><ul><li><p>Avoid autocompact at any cost.</p></li><li><p>Share only relevant documentation for the current task. </p></li><li><p>Limit access to non-related folders/files so Claude doesn&#8217;t clutter its context, which decreases chances of hallucination.</p></li><li><p>Automate workflows to eliminate humans from equation.</p></li><li><p>When it doesn&#8217;t work try treating Claude as an imbecile and tell him about it without hesitations, if it doesn&#8217;t work - threaten to fire it. Surprisingly, it works really well (Does Claude have US work experience?).</p></li></ul></li><li><p>Know when to give up. If you caught yourself, swearing at Claude again and again, highly likely your code is unbelievable mess and you need to clean it up first or your task is so complex that you need to break it up for Claude yourself.</p></li></ul><p><strong>Happy shipping</strong> and don&#8217;t forget to subscribe!</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://leprik.ai/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://leprik.ai/subscribe?"><span>Subscribe now</span></a></p><p></p>]]></content:encoded></item><item><title><![CDATA[From AI Skeptic to Claude Junky: A Developer's Guide to Managing Your AI Team]]></title><description><![CDATA[or become an addict together with me.]]></description><link>https://leprik.ai/p/from-ai-skeptic-to-claude-junky-a</link><guid isPermaLink="false">https://leprik.ai/p/from-ai-skeptic-to-claude-junky-a</guid><dc:creator><![CDATA[Leprik]]></dc:creator><pubDate>Sat, 28 Jun 2025 08:09:10 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!zF5I!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3ed5c757-c3aa-42f8-bef2-c1bdbc1bc67d_2048x2048.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!zF5I!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3ed5c757-c3aa-42f8-bef2-c1bdbc1bc67d_2048x2048.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!zF5I!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3ed5c757-c3aa-42f8-bef2-c1bdbc1bc67d_2048x2048.png 424w, https://substackcdn.com/image/fetch/$s_!zF5I!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3ed5c757-c3aa-42f8-bef2-c1bdbc1bc67d_2048x2048.png 848w, https://substackcdn.com/image/fetch/$s_!zF5I!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3ed5c757-c3aa-42f8-bef2-c1bdbc1bc67d_2048x2048.png 1272w, https://substackcdn.com/image/fetch/$s_!zF5I!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3ed5c757-c3aa-42f8-bef2-c1bdbc1bc67d_2048x2048.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!zF5I!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3ed5c757-c3aa-42f8-bef2-c1bdbc1bc67d_2048x2048.png" width="1456" height="1456" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/3ed5c757-c3aa-42f8-bef2-c1bdbc1bc67d_2048x2048.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1456,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:4880561,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://leprik.substack.com/i/166679649?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3ed5c757-c3aa-42f8-bef2-c1bdbc1bc67d_2048x2048.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!zF5I!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3ed5c757-c3aa-42f8-bef2-c1bdbc1bc67d_2048x2048.png 424w, https://substackcdn.com/image/fetch/$s_!zF5I!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3ed5c757-c3aa-42f8-bef2-c1bdbc1bc67d_2048x2048.png 848w, https://substackcdn.com/image/fetch/$s_!zF5I!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3ed5c757-c3aa-42f8-bef2-c1bdbc1bc67d_2048x2048.png 1272w, https://substackcdn.com/image/fetch/$s_!zF5I!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3ed5c757-c3aa-42f8-bef2-c1bdbc1bc67d_2048x2048.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>As an engineering leader I observe two almost non-overlapping worlds:</p><ul><li><p>In one of them, AI agents have won and we don&#8217;t need developers anymore (in fact, we don&#8217;t need anyone except influencers with their posts about another tool killing another one)</p></li><li><p>and in another, ChatGPT (we have only one LLM, right?) is always drunk Frankenstein who suggests only dumb shit and only good at rewriting corporate emails.</p></li></ul><p>Initially, I belonged to the second camp for quite a while even though I tried Cursor a year ago before it became mainstream. I moved close to the first camp only when I tried Claude Code for extensive amount of time. </p><h3>Why Claude Code</h3><p>Regardless of organization, the majority of developers are opinionated, they don't like to be told what to use especially when it&#8217;s related to their tooling. That&#8217;s the exact reason, why such a simple thing like &#8220;a limited set of supported tooling in the company&#8221; is not trivial and requires exceptional Developer Experience team in the organization. </p><p>Because of it, I always prefer CLI tools, they are easy to integrate in any existing workflow. So I got hooked to Claude Code almost immediately, the only reason which stopped me from promoting it in the company was price. I created a PR within an hour, the PR was a fix for a small issue, which required changes in multiple repositories. It cost me $3, which was quite expensive even though the experience was amazing. So I postponed this idea for a while and was trying to make Cursor work according to my needs, failing in it again and again. Until Claude made Claude Code part of the Pro plan, which allowed me to use it with fixed rate of 100$ per month. </p><p>Saying that I got hooked would be an understatement, I was waiting for limits to be reset several times per day, so it took me only one week to give up and upgrade to x20 Pro plan. Now I am a Claude junky. </p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!MldM!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8248cada-86d0-41e3-b201-a5f1b76e5522_2048x2048.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!MldM!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8248cada-86d0-41e3-b201-a5f1b76e5522_2048x2048.png 424w, https://substackcdn.com/image/fetch/$s_!MldM!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8248cada-86d0-41e3-b201-a5f1b76e5522_2048x2048.png 848w, https://substackcdn.com/image/fetch/$s_!MldM!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8248cada-86d0-41e3-b201-a5f1b76e5522_2048x2048.png 1272w, https://substackcdn.com/image/fetch/$s_!MldM!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8248cada-86d0-41e3-b201-a5f1b76e5522_2048x2048.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!MldM!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8248cada-86d0-41e3-b201-a5f1b76e5522_2048x2048.png" width="1456" height="1456" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/8248cada-86d0-41e3-b201-a5f1b76e5522_2048x2048.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1456,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:5075381,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://leprik.substack.com/i/166679649?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8248cada-86d0-41e3-b201-a5f1b76e5522_2048x2048.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!MldM!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8248cada-86d0-41e3-b201-a5f1b76e5522_2048x2048.png 424w, https://substackcdn.com/image/fetch/$s_!MldM!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8248cada-86d0-41e3-b201-a5f1b76e5522_2048x2048.png 848w, https://substackcdn.com/image/fetch/$s_!MldM!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8248cada-86d0-41e3-b201-a5f1b76e5522_2048x2048.png 1272w, https://substackcdn.com/image/fetch/$s_!MldM!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8248cada-86d0-41e3-b201-a5f1b76e5522_2048x2048.png 1456w" sizes="100vw"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Here is my setup if you want to accompany me.</p><h3>Mindset shift</h3><p>Before jumping into specifics, it&#8217;s important to understand shift in work - you are no longer an executor, you are an orchestrator  and responsible for results while you work through others. In a nutshell, you are a manager but a manager of an agent(s), not humans.</p><p>This is <strong>a key</strong> to efficient work with AI. Yes, you can deliver complex feature faster than AI, yes, you can do it without hallucinations. That's what most managers were capable of when they just switched their path to management. It wasn&#8217;t scalable, so they had to learn how to work through other people with all accompanying imperfections. I guess you won&#8217;t argue that an entire department outperforms a single dev in most cases. So you are a single dev now and you need to learn how to run an entire department. That&#8217;s where you are if you still don&#8217;t use AI.</p><p>Now let&#8217;s consider a typical flow of any project:</p><p>Planning &#8594;  Execution &#8594; Testing &#8594; Rollout &#8594; Bug fixes</p><p>If you apply your new mindset, you do not control execution at all but you are still responsible for results. How to be sure that you get what you wanted? </p><p>You need to have a detailed plan with clear acceptance criteria, so it&#8217;s objectively easy to determine if the target has been achieved. The validation should be a quick operation, ideally automatic. </p><ul><li><p>How can you say that the goal was achieved? A unit test, integration test or E2E test. Depends on the goal.</p></li><li><p>How can you say that it was done properly? A properly configured linter should cover a big part of it. Everything else should be formulated as Code guidelines and put into repo as an md file. </p></li><li><p>If needed write additional scripts that would run complex checks.</p><p></p></li></ul><h3>Claude Code configuration</h3><p>To install:</p><pre><code>npm install -g @anthropic-ai/claude-code</code></pre><p>Claude Code uses a CLAUDE.md file for getting information about the project, you can create this file yourself in the root of the project or ask Claude to review the entire project and generate this file. To do this go to your directory and run in console:</p><pre><code>claude</code></pre><p>after that type</p><pre><code>/init</code></pre><p>and you will get a generated CLAUDE.md. </p><p>Add something like this to your CLAUDE.md file to be sure that whatever Claude does it will run linter and tests before it considers anything done:</p><pre><code># CLAUDE Development Guidelines

## Core Principles

### 1. Quality Assurance Protocol
**MANDATORY**: All code changes must pass the following checks before considering ANY task complete:

1. **Linter**: Code must pass all linting rules without warnings
2. **Tests**: All existing tests must pass + new tests for new functionality
3. **Type Checking**: If applicable (TypeScript, Python type hints, etc.)
4. **Code Review**: Self-review for best practices and potential issues

### 2. Pre-Completion Checklist
Before marking any development task as "done":

- [ ] **Linter passed** - Zero warnings/errors
- [ ] **All tests passing** - Existing + new test coverage
- [ ] **Code formatted** - Consistent with project style
- [ ] **Documentation updated** - If public APIs changed
- [ ] **Edge cases considered** - Error handling implemented
- [ ] **Performance validated** - No obvious bottlenecks introduced

### 3. Development Workflow

#### For Every Code Change:
```bash
# 1. Run linter first
npm run lint        # or equivalent for the project

# 2. Fix all linting issues before proceeding
npm run lint:fix    # if auto-fix available

# 3. Run tests
npm test           # or equivalent

# 4. Add new tests if needed
# Write tests for new functionality
# Ensure edge cases are covered

# 5. Verify everything passes
npm run ci         # if available (runs lint + test + build) </code></pre><blockquote><p>Tip: Use https://console.anthropic.com/dashboard for prompt generations or edits to CLAUDE.md </p></blockquote><p>With this setup you already decrease number of reviews needed from your end dramatically. However, your junior partner still needs a lot of information from you:</p><ul><li><p>details of the task</p></li><li><p>design if your task involves frontend</p></li></ul><p>you don&#8217;t want to describe it in details, especially colors of your design, so we need to provide tooling to our junior partner. This tooling is called MCP server. There are many of them available already. However, you need to be cautious, as it&#8217;s relatively new technology and it opens a new vector of attacks, so better to use only official MCP servers and only ones you actually use. Here is an <a href="https://github.com/punkpeye/awesome-mcp-servers">awesome list of MCP servers</a>.</p><p>I personally use only these:</p><ul><li><p>Linear MCP, so I explain what&#8217;s needed to be done only once.</p></li><li><p><a href="https://help.figma.com/hc/en-us/articles/32132100833559-Guide-to-the-Dev-Mode-MCP-Server">Figma MCP</a> to provide links to the design, so Claude can get understanding of the design. It uses many tokens though, so better to turn it off and provide screens of the design if you are not on x20 Max plan.</p><blockquote><p>Tip: Use Ctrl+V(not cmd +v!) combination to insert a picture into claude code</p></blockquote></li><li><p><a href="https://github.com/oraios/serena">Serena MCP</a> to give Claude ability to work with code as a code and not simple text. From a pragmatic standpoint it speeds up claude significantly as the time to read files drops.</p></li><li><p><a href="http://@upstash/context7-mcp">Context7</a> to use up to date technical documentation. Cannot say that it has a big impact as I work primarily with mature tech(who am I kidding, it&#8217;s legacy).  </p></li></ul><p>There are bunch of MCPs that give an access to browser to Claude, I am afraid to use them now as not enough time passed for them to mature. It wouldn&#8217;t speed up me tremendously, so it&#8217;s not worth the risk. </p><p>Here is my .mcp file that you need to put in the root of the project:</p><pre><code>{
  "mcpServers": {
    "Figma Dev Mode MCP": {
      "type": "sse",
      "url": "http://127.0.0.1:3845/sse"
    },
    "linear": {
      "command": "npx",
      "args": ["-y", "mcp-remote", "https://mcp.linear.app/sse"]
    },
    "context7": {
      "command": "npx",
      "args": ["-y", "@upstash/context7-mcp"]
    },
    "serena": {
      "command": "/opt/homebrew/bin/uvx",
      "args": [
        "--from",
        "git+https://github.com/oraios/serena",
        "serena-mcp-server"
      ]
    }
  }
}</code></pre><p>So now your junior partner has a bunch of tools at their disposal, it&#8217;s their first time at work so they will ask for your approval literally for everything, e.g running a linter. </p><p>You don&#8217;t want to be sitting in front of your laptop entire day and approving simple commands, so let&#8217;s provide them a list of allowed tools by default, to achieve that you need to open .claude/settings.local.json file within your project and update &#8220;allow&#8220; property:</p><pre><code>{
  "permissions": {
    "allow": [
      "Bash(fd:*)",
      "Bash(ls:*)",
      "Bash(rg:*)",
      "Bash(npm run legacy:test:*)",
      "Bash(npm run check-types:*)",
      "Bash(npm run:*)",
      "mcp__linear__get_issue",
      ...
}</code></pre><p>I recommend to add all commands that you have in your scripts section of package.json file. You will have an option to update this list when Claude will ask you for permissions, so don&#8217;t stress out that you don&#8217;t fill in this list fully on a first attempt.</p><p>Even with a long list of approved tools, you will still need to provide input to Claude from time to time. To avoid missing it due to multi-tasking I advise installing terminal-notifier package:</p><pre><code>brew install terminal-notifier</code></pre><p>and add such prompt to CLAUDE.md</p><pre><code>On macOS, show toast notification and play sound using:
```bash
terminal-notifier -title "Claude Code" -message "MESSAGE" -sound default
```

Use notifications when:
- Requesting user permissions or approval for tool use
- Completing a major task or set of tasks
- Encountering errors that require user attention
- Finishing execution of long-running commands</code></pre><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!ho2p!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5eb3411d-95ea-4589-ac82-10d29f8fc38d_2048x2048.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!ho2p!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5eb3411d-95ea-4589-ac82-10d29f8fc38d_2048x2048.png 424w, https://substackcdn.com/image/fetch/$s_!ho2p!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5eb3411d-95ea-4589-ac82-10d29f8fc38d_2048x2048.png 848w, https://substackcdn.com/image/fetch/$s_!ho2p!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5eb3411d-95ea-4589-ac82-10d29f8fc38d_2048x2048.png 1272w, https://substackcdn.com/image/fetch/$s_!ho2p!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5eb3411d-95ea-4589-ac82-10d29f8fc38d_2048x2048.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!ho2p!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5eb3411d-95ea-4589-ac82-10d29f8fc38d_2048x2048.png" width="568" height="568" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/5eb3411d-95ea-4589-ac82-10d29f8fc38d_2048x2048.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1456,&quot;width&quot;:1456,&quot;resizeWidth&quot;:568,&quot;bytes&quot;:4124144,&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://leprik.substack.com/i/166679649?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5eb3411d-95ea-4589-ac82-10d29f8fc38d_2048x2048.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!ho2p!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5eb3411d-95ea-4589-ac82-10d29f8fc38d_2048x2048.png 424w, https://substackcdn.com/image/fetch/$s_!ho2p!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5eb3411d-95ea-4589-ac82-10d29f8fc38d_2048x2048.png 848w, https://substackcdn.com/image/fetch/$s_!ho2p!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5eb3411d-95ea-4589-ac82-10d29f8fc38d_2048x2048.png 1272w, https://substackcdn.com/image/fetch/$s_!ho2p!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5eb3411d-95ea-4589-ac82-10d29f8fc38d_2048x2048.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">voila!</figcaption></figure></div><h3><br>Tips and Tricks</h3><h4>100% brain capacity</h4><p>If you have the max tier (x20 Max) force your junior partner to use its brain at 100% via switching the model to Opus4, you can achieve it via `/model` command. </p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Ueq9!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F72f433b0-1e2f-4226-b2d0-310cf115f22f_756x144.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Ueq9!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F72f433b0-1e2f-4226-b2d0-310cf115f22f_756x144.png 424w, https://substackcdn.com/image/fetch/$s_!Ueq9!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F72f433b0-1e2f-4226-b2d0-310cf115f22f_756x144.png 848w, https://substackcdn.com/image/fetch/$s_!Ueq9!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F72f433b0-1e2f-4226-b2d0-310cf115f22f_756x144.png 1272w, https://substackcdn.com/image/fetch/$s_!Ueq9!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F72f433b0-1e2f-4226-b2d0-310cf115f22f_756x144.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Ueq9!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F72f433b0-1e2f-4226-b2d0-310cf115f22f_756x144.png" width="756" height="144" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/72f433b0-1e2f-4226-b2d0-310cf115f22f_756x144.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:144,&quot;width&quot;:756,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:31814,&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://leprik.substack.com/i/166679649?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F72f433b0-1e2f-4226-b2d0-310cf115f22f_756x144.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_!Ueq9!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F72f433b0-1e2f-4226-b2d0-310cf115f22f_756x144.png 424w, https://substackcdn.com/image/fetch/$s_!Ueq9!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F72f433b0-1e2f-4226-b2d0-310cf115f22f_756x144.png 848w, https://substackcdn.com/image/fetch/$s_!Ueq9!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F72f433b0-1e2f-4226-b2d0-310cf115f22f_756x144.png 1272w, https://substackcdn.com/image/fetch/$s_!Ueq9!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F72f433b0-1e2f-4226-b2d0-310cf115f22f_756x144.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><p>Even though you got a better brain, it&#8217;s not enough you also need to tell Claude to use it fully via using &#8220;think harder&#8220; or &#8220;think longer&#8220; in your prompts, it forces Claude to use extended thinking. It&#8217;s not some prompt magic - just a feature of Claude Code.</p><h4>Planning</h4><p>The main trick is to spend most of your time on planning the execution. First of all, you need to use planning mode via clicking Shift+Tab twice, in this mode Claude won&#8217;t touch any of files:</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!wa4A!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff3dab3bc-d932-4509-9d30-982dca1ec4fd_359x97.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!wa4A!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff3dab3bc-d932-4509-9d30-982dca1ec4fd_359x97.png 424w, https://substackcdn.com/image/fetch/$s_!wa4A!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff3dab3bc-d932-4509-9d30-982dca1ec4fd_359x97.png 848w, https://substackcdn.com/image/fetch/$s_!wa4A!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff3dab3bc-d932-4509-9d30-982dca1ec4fd_359x97.png 1272w, https://substackcdn.com/image/fetch/$s_!wa4A!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff3dab3bc-d932-4509-9d30-982dca1ec4fd_359x97.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!wa4A!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff3dab3bc-d932-4509-9d30-982dca1ec4fd_359x97.png" width="359" height="97" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/f3dab3bc-d932-4509-9d30-982dca1ec4fd_359x97.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:97,&quot;width&quot;:359,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:11360,&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://leprik.substack.com/i/166679649?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff3dab3bc-d932-4509-9d30-982dca1ec4fd_359x97.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_!wa4A!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff3dab3bc-d932-4509-9d30-982dca1ec4fd_359x97.png 424w, https://substackcdn.com/image/fetch/$s_!wa4A!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff3dab3bc-d932-4509-9d30-982dca1ec4fd_359x97.png 848w, https://substackcdn.com/image/fetch/$s_!wa4A!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff3dab3bc-d932-4509-9d30-982dca1ec4fd_359x97.png 1272w, https://substackcdn.com/image/fetch/$s_!wa4A!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff3dab3bc-d932-4509-9d30-982dca1ec4fd_359x97.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><p>Second, you need to provide all important documentation, you can refer to files by using`@` </p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!tstJ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F13dc6df9-afb3-440f-b0c8-5b3e4eedaf56_414x123.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!tstJ!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F13dc6df9-afb3-440f-b0c8-5b3e4eedaf56_414x123.png 424w, https://substackcdn.com/image/fetch/$s_!tstJ!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F13dc6df9-afb3-440f-b0c8-5b3e4eedaf56_414x123.png 848w, https://substackcdn.com/image/fetch/$s_!tstJ!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F13dc6df9-afb3-440f-b0c8-5b3e4eedaf56_414x123.png 1272w, https://substackcdn.com/image/fetch/$s_!tstJ!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F13dc6df9-afb3-440f-b0c8-5b3e4eedaf56_414x123.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!tstJ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F13dc6df9-afb3-440f-b0c8-5b3e4eedaf56_414x123.png" width="414" height="123" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/13dc6df9-afb3-440f-b0c8-5b3e4eedaf56_414x123.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:123,&quot;width&quot;:414,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:10763,&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://leprik.substack.com/i/166679649?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F13dc6df9-afb3-440f-b0c8-5b3e4eedaf56_414x123.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_!tstJ!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F13dc6df9-afb3-440f-b0c8-5b3e4eedaf56_414x123.png 424w, https://substackcdn.com/image/fetch/$s_!tstJ!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F13dc6df9-afb3-440f-b0c8-5b3e4eedaf56_414x123.png 848w, https://substackcdn.com/image/fetch/$s_!tstJ!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F13dc6df9-afb3-440f-b0c8-5b3e4eedaf56_414x123.png 1272w, https://substackcdn.com/image/fetch/$s_!tstJ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F13dc6df9-afb3-440f-b0c8-5b3e4eedaf56_414x123.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><p>Third, to speed up development you need to come up with a plan that can be split among several agents. I create a plan together with Claude, after that I ask it to create detailed tasks with clear dependencies between them, so it can be given to a dev team. After that I ask what would optimize size of people working on this feature in parallel and based on the answer, I ask it to implement the feature (don&#8217;t forget to quit planning mode) with n sub-agents <strong>in parallel</strong>. It&#8217;s crucial to mention that they have to work in parallel because Claude is lazy and would do it sequentially by default. </p><h4>Low-hanging fruit</h4><p>You will notice that Claude reads a lot of code and does many operations with files(Serena MCP helps but doesn&#8217;t solve it fully), so it&#8217;s worth to replace default command-line tools with more performant ones. So I recommend to install these 3</p><pre><code>brew install fd rg sd</code></pre><p>and add this prompt to CLAUDE.md</p><pre><code>Always use modern Rust-based CLI tools:
- fd instead of find
- rg (ripgrep) instead of grep
- sd instead of sed

These tools are already installed on the system.</code></pre><p>You will feel the difference only on big projects though.</p><h4>Documentation</h4><p>When feature is ready, I highly recommend to ask Claude to summarize the feature and create an md file in docs directory with several sections - product requirements, how the feature works end-to-end and what tradeoffs this solution has. </p><p>The context window of Claude is small, so it would be reset quite often. Having these docs helps to save time on parsing entire project when you need to do follow-up tickets. Btw, don't shy away from using Claude to create follow-up tickets in Linear, it does an amazing job with it. </p><h4>Github</h4><p>Claude Code knows how to work with `gh` tool out of the box, so you just need to install it on your system via:</p><pre><code>brew install gh</code></pre><p>I primarily use it for commit creation as I&#8217;m lazy to type proper commit messages (who isn&#8217;t?!) and to do an initial code review of PRs. You just need to use the /review command within Claude and specify PR id or simply explain what&#8217;s PR about, it will find it, review and provide comments for improvements. You can also specify a focus of the review via prompt, e.g., review as a Security engineer.</p><h3>Welcome to the other side</h3><p>After you use Claude Code for a while, you'll highly likely get a rough awakening. Like one of my senior engineers had this week:</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!3OmK!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7891d5e5-7f30-458a-86a6-4d9fcbda2684_476x84.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!3OmK!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7891d5e5-7f30-458a-86a6-4d9fcbda2684_476x84.png 424w, https://substackcdn.com/image/fetch/$s_!3OmK!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7891d5e5-7f30-458a-86a6-4d9fcbda2684_476x84.png 848w, https://substackcdn.com/image/fetch/$s_!3OmK!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7891d5e5-7f30-458a-86a6-4d9fcbda2684_476x84.png 1272w, https://substackcdn.com/image/fetch/$s_!3OmK!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7891d5e5-7f30-458a-86a6-4d9fcbda2684_476x84.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!3OmK!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7891d5e5-7f30-458a-86a6-4d9fcbda2684_476x84.png" width="476" height="84" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/7891d5e5-7f30-458a-86a6-4d9fcbda2684_476x84.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:84,&quot;width&quot;:476,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:13613,&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://leprik.substack.com/i/166679649?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbc54e24b-950c-4830-8ff7-2f1b29248dd3_476x86.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_!3OmK!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7891d5e5-7f30-458a-86a6-4d9fcbda2684_476x84.png 424w, https://substackcdn.com/image/fetch/$s_!3OmK!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7891d5e5-7f30-458a-86a6-4d9fcbda2684_476x84.png 848w, https://substackcdn.com/image/fetch/$s_!3OmK!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7891d5e5-7f30-458a-86a6-4d9fcbda2684_476x84.png 1272w, https://substackcdn.com/image/fetch/$s_!3OmK!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7891d5e5-7f30-458a-86a6-4d9fcbda2684_476x84.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!YLP0!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F072bec75-d44d-467d-96b4-e9f3585cd8e9_288x56.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!YLP0!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F072bec75-d44d-467d-96b4-e9f3585cd8e9_288x56.png 424w, https://substackcdn.com/image/fetch/$s_!YLP0!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F072bec75-d44d-467d-96b4-e9f3585cd8e9_288x56.png 848w, https://substackcdn.com/image/fetch/$s_!YLP0!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F072bec75-d44d-467d-96b4-e9f3585cd8e9_288x56.png 1272w, https://substackcdn.com/image/fetch/$s_!YLP0!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F072bec75-d44d-467d-96b4-e9f3585cd8e9_288x56.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!YLP0!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F072bec75-d44d-467d-96b4-e9f3585cd8e9_288x56.png" width="288" height="56" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/072bec75-d44d-467d-96b4-e9f3585cd8e9_288x56.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:56,&quot;width&quot;:288,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:6239,&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://leprik.substack.com/i/166679649?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F072bec75-d44d-467d-96b4-e9f3585cd8e9_288x56.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_!YLP0!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F072bec75-d44d-467d-96b4-e9f3585cd8e9_288x56.png 424w, https://substackcdn.com/image/fetch/$s_!YLP0!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F072bec75-d44d-467d-96b4-e9f3585cd8e9_288x56.png 848w, https://substackcdn.com/image/fetch/$s_!YLP0!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F072bec75-d44d-467d-96b4-e9f3585cd8e9_288x56.png 1272w, https://substackcdn.com/image/fetch/$s_!YLP0!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F072bec75-d44d-467d-96b4-e9f3585cd8e9_288x56.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!HHsr!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F11d139c0-7263-4047-ba28-0758e73e781e_471x68.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!HHsr!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F11d139c0-7263-4047-ba28-0758e73e781e_471x68.png 424w, https://substackcdn.com/image/fetch/$s_!HHsr!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F11d139c0-7263-4047-ba28-0758e73e781e_471x68.png 848w, https://substackcdn.com/image/fetch/$s_!HHsr!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F11d139c0-7263-4047-ba28-0758e73e781e_471x68.png 1272w, https://substackcdn.com/image/fetch/$s_!HHsr!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F11d139c0-7263-4047-ba28-0758e73e781e_471x68.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!HHsr!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F11d139c0-7263-4047-ba28-0758e73e781e_471x68.png" width="471" height="68" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/11d139c0-7263-4047-ba28-0758e73e781e_471x68.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:68,&quot;width&quot;:471,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:8744,&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://leprik.substack.com/i/166679649?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4625a553-db60-4b7c-bd69-2786af91f236_471x78.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_!HHsr!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F11d139c0-7263-4047-ba28-0758e73e781e_471x68.png 424w, https://substackcdn.com/image/fetch/$s_!HHsr!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F11d139c0-7263-4047-ba28-0758e73e781e_471x68.png 848w, https://substackcdn.com/image/fetch/$s_!HHsr!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F11d139c0-7263-4047-ba28-0758e73e781e_471x68.png 1272w, https://substackcdn.com/image/fetch/$s_!HHsr!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F11d139c0-7263-4047-ba28-0758e73e781e_471x68.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><p><strong>Happy shipping!</strong> </p><p>Thanks for reading Leprik! Subscribe for free to receive new posts and support my work.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://leprik.ai/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://leprik.ai/subscribe?"><span>Subscribe now</span></a></p><p></p><p></p>]]></content:encoded></item></channel></rss>