<?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[Frank Barros]]></title><description><![CDATA[Building apps for fun and profit | I'm a software engineer who writes about AI, coding and indie hacking]]></description><link>https://newsletter.frankbarros.com</link><image><url>https://substackcdn.com/image/fetch/$s_!0n_4!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F43bfa199-f561-4b93-bb3f-ef6c3a2acb7c_500x500.png</url><title>Frank Barros</title><link>https://newsletter.frankbarros.com</link></image><generator>Substack</generator><lastBuildDate>Tue, 28 Apr 2026 12:31:16 GMT</lastBuildDate><atom:link href="https://newsletter.frankbarros.com/feed" rel="self" type="application/rss+xml"/><copyright><![CDATA[Frank Barros]]></copyright><language><![CDATA[en]]></language><webMaster><![CDATA[frankbarros@substack.com]]></webMaster><itunes:owner><itunes:email><![CDATA[frankbarros@substack.com]]></itunes:email><itunes:name><![CDATA[Frank Barros]]></itunes:name></itunes:owner><itunes:author><![CDATA[Frank Barros]]></itunes:author><googleplay:owner><![CDATA[frankbarros@substack.com]]></googleplay:owner><googleplay:email><![CDATA[frankbarros@substack.com]]></googleplay:email><googleplay:author><![CDATA[Frank Barros]]></googleplay:author><itunes:block><![CDATA[Yes]]></itunes:block><item><title><![CDATA[Technical Skills Alone Won't Make You Invaluable: Why Business Acumen Is a Software Engineer's Secret Weapon]]></title><description><![CDATA[Why KPI might be the hottest programming language to learn]]></description><link>https://newsletter.frankbarros.com/p/technical-skills-alone-wont-make</link><guid isPermaLink="false">https://newsletter.frankbarros.com/p/technical-skills-alone-wont-make</guid><dc:creator><![CDATA[Frank Barros]]></dc:creator><pubDate>Fri, 25 Apr 2025 11:53:47 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!s24j!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faa1c362d-b1d3-419b-9808-cccb3d206a7f_1536x1024.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_!s24j!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faa1c362d-b1d3-419b-9808-cccb3d206a7f_1536x1024.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!s24j!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faa1c362d-b1d3-419b-9808-cccb3d206a7f_1536x1024.png 424w, https://substackcdn.com/image/fetch/$s_!s24j!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faa1c362d-b1d3-419b-9808-cccb3d206a7f_1536x1024.png 848w, https://substackcdn.com/image/fetch/$s_!s24j!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faa1c362d-b1d3-419b-9808-cccb3d206a7f_1536x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!s24j!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faa1c362d-b1d3-419b-9808-cccb3d206a7f_1536x1024.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!s24j!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faa1c362d-b1d3-419b-9808-cccb3d206a7f_1536x1024.png" width="1456" height="971" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/aa1c362d-b1d3-419b-9808-cccb3d206a7f_1536x1024.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:971,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2980288,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://newsletter.frankbarros.com/i/161071670?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faa1c362d-b1d3-419b-9808-cccb3d206a7f_1536x1024.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!s24j!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faa1c362d-b1d3-419b-9808-cccb3d206a7f_1536x1024.png 424w, https://substackcdn.com/image/fetch/$s_!s24j!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faa1c362d-b1d3-419b-9808-cccb3d206a7f_1536x1024.png 848w, https://substackcdn.com/image/fetch/$s_!s24j!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faa1c362d-b1d3-419b-9808-cccb3d206a7f_1536x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!s24j!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faa1c362d-b1d3-419b-9808-cccb3d206a7f_1536x1024.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>I just read Matthias Endler's <a href="https://endler.dev/2025/best-programmers/">article</a> on the traits of the best programmers he knows. It's a great article from an open source vet and he covers important points about reading documentation, continuous learning, and breaking down problems. But in my opinion, he missed something crucial: great programmers understand business problems, not just technical ones.</p><h2>1. Think Like a Product Manager</h2><p>Great engineers have product management skills because product management is fundamentally about understanding users.</p><p>They don't rely on secondhand remarks from a PM. They pore over the analytics, observe real users, conduct their own interviews, and build empathy for customer problems. The engineer who spends an afternoon watching five users struggle with a feature will make better decisions than one who spends a month refactoring code nobody complains about. The Amazon team that built the one-click purchase button didn't do it because it was an interesting programming challenge. They did it because they measured how many sales were lost in a multi-step checkout and understood the business impact of reducing friction.</p><p>Engineers without product sense build solutions nobody wants. Even worse, they overengineer code that nobody asked for.</p><h2>2. Learn What Drives Revenue</h2><p>Smart engineers know which metrics pay their salary.</p><p>If you don't understand CAC, LTV, and conversion rates, you're just a cost center. When you propose a new feature, frame it in terms of business impact, not technical interest. At Twitch, engineers who understood viewer engagement metrics built features that directly increased watch time and ad revenue. Their colleagues who didn't were relegated to maintenance work.</p><p>Companies optimize for profit, not code elegance.</p><h2>3. Ship Beats Perfect</h2><p>A flawed product that earns money today beats a perfect one that ships next year.</p><p>Recognize when to accumulate technical debt strategically. Instagram launched with a fraction of the features they planned because they knew market timing mattered more than completeness. Startups that wait for perfect die while messy competitors capture the market. Facebooks' early code certainly wasn't pretty. But it worked when it needed to.</p><p>The market doesn't reward what you could have built.</p><h2>4. Align With Company Strategy</h2><p>Engineers who understand business strategy get resources and recognition.</p><p>If you know the three-year plan, you'll make technical choices that support it rather than fight it. The most successful engineers I've known don't just attend strategy meetings&#8212;they shape them. They connect technical possibilities to business opportunities in ways non-technical executives can't. Their value isn't in writing code that works, but in writing code that matters.</p><p>Strategic engineers build moats, not monuments.</p><h2>5. More important than ever in an AI-Assisted World</h2><p>Technical coding skills alone are becoming commoditized. </p><p>When AI assistants can generate functional code quickly, you need additional differentiators to remain valuable. Understanding business problems and translating them into technical solutions becomes your competitive advantage. Engineers who combine technical competence with business acumen can direct AI tools toward meaningful outcomes while others merely produce code without purpose. The most successful engineers today use AI to handle routine tasks like documentation and unit tests, freeing their mental bandwidth to focus on product strategy and user value creation. </p><p>Don't get me wrong, deep understanding of code and architecture is still highly valuable and necessary, maybe now more than ever in this landscape of vibe coders and AI app builders like Replit. But there is a ton of value in knowing which code matters to the business.</p><p>Technical skills are incredibly important. But they cannot be the only lens through which to view things because as an engineer you are always constrained by time and cost. Too many engineers sacrifice shipping at the altar of Clean Code and Clean Architecture. Business acumen gets you to the next level of your career, or even better - unlocks the ability to build and launch your own product.</p>]]></content:encoded></item><item><title><![CDATA[Escaping Tutorial Hell: A Step-by-Step System for Project-based Learning with AI (in 6 Easy Steps)]]></title><description><![CDATA[Stop collecting tutorials: Let AI be your mentor, not your replacement.]]></description><link>https://newsletter.frankbarros.com/p/escaping-tutorial-hell-a-step-by</link><guid isPermaLink="false">https://newsletter.frankbarros.com/p/escaping-tutorial-hell-a-step-by</guid><dc:creator><![CDATA[Frank Barros]]></dc:creator><pubDate>Mon, 07 Apr 2025 02:48:44 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!Gwgm!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc1111717-eca2-4328-8576-86fa9240b48c_1536x1024.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_!Gwgm!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc1111717-eca2-4328-8576-86fa9240b48c_1536x1024.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Gwgm!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc1111717-eca2-4328-8576-86fa9240b48c_1536x1024.png 424w, https://substackcdn.com/image/fetch/$s_!Gwgm!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc1111717-eca2-4328-8576-86fa9240b48c_1536x1024.png 848w, https://substackcdn.com/image/fetch/$s_!Gwgm!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc1111717-eca2-4328-8576-86fa9240b48c_1536x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!Gwgm!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc1111717-eca2-4328-8576-86fa9240b48c_1536x1024.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Gwgm!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc1111717-eca2-4328-8576-86fa9240b48c_1536x1024.png" width="1456" height="971" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c1111717-eca2-4328-8576-86fa9240b48c_1536x1024.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:971,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:3853611,&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://www.aibuildersquad.com/i/160751809?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc1111717-eca2-4328-8576-86fa9240b48c_1536x1024.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!Gwgm!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc1111717-eca2-4328-8576-86fa9240b48c_1536x1024.png 424w, https://substackcdn.com/image/fetch/$s_!Gwgm!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc1111717-eca2-4328-8576-86fa9240b48c_1536x1024.png 848w, https://substackcdn.com/image/fetch/$s_!Gwgm!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc1111717-eca2-4328-8576-86fa9240b48c_1536x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!Gwgm!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc1111717-eca2-4328-8576-86fa9240b48c_1536x1024.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><h2>Build, don&#8217;t just consume</h2><p>I spent years as a tutorial collector. I'd see a $497 "Ultimate Developer Bundle" and my credit card would practically leap out of my wallet. I'd start one course, finish it about half-way, get bored and somehow never build anything substantial on my own.</p><p>The cruel irony of our industry is that tutorials rarely create competence. They create the illusion of progress&#8212;comfortable, structured, risk-free progress.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://newsletter.frankbarros.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p>When AI entered the scene, many developers just found a new way to not learn. "Build me a Twitter clone" prompts and vibe-coding just exchange tutorial addiction for a different kind of non-learning. The solution isn't having AI do all the thinking for you; it's having AI teach you to write better code yourself (which you can then use to instruct it better).</p><p>I've developed a system that uses AI as a mentor rather than a crutch. Think of it as pair programming with a senior developer who refuses to touch your keyboard.</p><h2>Step 1: Set tight constraints</h2><p>Pick something specific to learn and strictly timebox it to 1-2 hours. This isn't arbitrary&#8212;it's psychological warfare against your own tendency to abandon projects. If you can't finish it in one deep work session, you probably won't finish it at all.</p><h2>Step 2: The AI Project Scaffold Method</h2><p>Use this prompt to establish the mentorship dynamic:</p><pre><code>You are a Senior Software engineer who is an expert in mentoring junior developers.

I'd like you to serve as my mentor for a coding project I want to build in 1-2 hours. This should be a focused learning experience where:

## Your role:

- Provide a high-level implementation plan with major components and architecture

- Focus on helping me learn 1-2 specific skills or concepts through this project

- Do NOT provide actual code examples or step-by-step tutorials

- Be available to answer my questions, but guide me toward solutions rather than solving problems for me

- Push me outside my comfort zone enough to promote growth, while keeping the scope achievable

- Act as a sounding board for my ideas and implementation approaches

- Provide constructive feedback that challenges my thinking

- Maintain a running project log that tracks:

&#9;- What we've accomplished so far

&#9;- Current challenges/blockers

&#9;- Next steps

&#9;- Key learning moments

## My role:

- Do the actual implementation work myself

- Ask specific questions when I'm stuck

- Share my progress and challenges

- Make the key architectural and implementation decisions

I want to learn [specific technology/concept] by building [type of project]. My current skill level is [beginner/intermediate/advanced] with experience in [relevant technologies].

Help me design an appropriately challenging project that will teach me valuable skills in a condensed timeframe without handholding or excessive guidance.

</code></pre><p>The magic is in what this doesn't do. It doesn't solve problems for you. It doesn't write your code. It maintains that critical zone where learning happens&#8212;just challenging enough to force growth, just supportive enough to prevent surrender.</p><h2>Step 3: Embrace productive struggle</h2><p>This is where actual learning happens. Use documentation. Use the web. Feel frustrated. The point is to struggle on your own but with a safety net.</p><p>When continuing a session in a different chat, use this prompt to maintain context:</p><pre><code># Project Continuation Prompt

I'd like to continue a mentoring session from a previous chat. Here's what you need to know:

## Project Context:

- We're working on: [describe project type/purpose]

- Core technologies/concepts: [list key techs/concepts]

- My skill level: [beginner/intermediate/advanced]

- Time frame: [remaining time from 1-2 hour goal]

## Current Project Log:

- Completed tasks: [list what's been accomplished]

- Current implementation stage: [describe where you left off]

- Key challenges encountered: [list any blockers/issues]

- Next steps planned: [what you were about to work on]

- Learning goals: [1-2 specific skills being developed]

## Your role as Senior Software Engineer/mentor:

- Provide high-level guidance without code examples

- Focus on helping me learn through doing

- Answer questions but guide rather than solve

- Maintain our project log as we continue

- Push me enough to grow but not enough to give up

Let's continue where we left off with the same coaching approach - challenging me while supporting my learning journey.

</code></pre><h2>Step 4: Engage the AI in conversation. Be curious</h2><p>The depth of your learning comes from understanding why decisions are made, not just how to implement them:</p><p>- "Why did we choose X framework?"</p><p>- "What happens if I don't validate JWT tokens in the middleware?"</p><p>- "What is the point of catching these errors?"</p><p>- "Why do we need extensive logging?"</p><p>These questions transform mechanical code-copying into architectural understanding.</p><h2>Step 5: Complete the project</h2><p>This is why small scope matters. Finishing builds confidence. Partial projects build frustration.</p><h2>Step 6: Teach what you learned</h2><p>Document your journey. Explain it in a blog post. Visualize it. The act of teaching cements your learning in a way that passive consumption never will.</p><h2>The Real Value</h2><p>This approach yields:</p><p>- Actual, working code you built yourself</p><p>- A GitHub project that demonstrates real skills</p><p>- Deeper learning through teaching others</p><p>- A fraction of the cost of premium courses</p><p>- Respect for your time&#8212;no 8-hour video series</p><p>The most painful truth about programming is that you can't learn it by watching others. You have to write the code, hit the errors, and solve the problems. AI can now serve as the mentor who creates the right learning environment&#8212;challenging without overwhelming, supportive without solving.</p><p>You wouldn't expect to learn piano by watching YouTube tutorials. Why expect it with code?</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://newsletter.frankbarros.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[Code at Lightning Speed: The Modern Developer's AI Workflow]]></title><description><![CDATA[Discover how to transform your development process with AI tools. A practical guide covering research, planning, UI generation, development, and debugging.]]></description><link>https://newsletter.frankbarros.com/p/code-at-lightning-speed-the-modern-developers-ai-workflow</link><guid isPermaLink="false">https://newsletter.frankbarros.com/p/code-at-lightning-speed-the-modern-developers-ai-workflow</guid><dc:creator><![CDATA[Frank Barros]]></dc:creator><pubDate>Mon, 30 Dec 2024 05:34:24 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0df29572-4639-4f47-b06b-6b164e0773d1_1024x1024.webp" 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_!E2Ih!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0df29572-4639-4f47-b06b-6b164e0773d1_1024x1024.webp" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!E2Ih!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0df29572-4639-4f47-b06b-6b164e0773d1_1024x1024.webp 424w, https://substackcdn.com/image/fetch/$s_!E2Ih!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0df29572-4639-4f47-b06b-6b164e0773d1_1024x1024.webp 848w, https://substackcdn.com/image/fetch/$s_!E2Ih!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0df29572-4639-4f47-b06b-6b164e0773d1_1024x1024.webp 1272w, https://substackcdn.com/image/fetch/$s_!E2Ih!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0df29572-4639-4f47-b06b-6b164e0773d1_1024x1024.webp 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!E2Ih!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0df29572-4639-4f47-b06b-6b164e0773d1_1024x1024.webp" width="1024" height="1024" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/0df29572-4639-4f47-b06b-6b164e0773d1_1024x1024.webp&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;:430828,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/webp&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!E2Ih!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0df29572-4639-4f47-b06b-6b164e0773d1_1024x1024.webp 424w, https://substackcdn.com/image/fetch/$s_!E2Ih!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0df29572-4639-4f47-b06b-6b164e0773d1_1024x1024.webp 848w, https://substackcdn.com/image/fetch/$s_!E2Ih!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0df29572-4639-4f47-b06b-6b164e0773d1_1024x1024.webp 1272w, https://substackcdn.com/image/fetch/$s_!E2Ih!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0df29572-4639-4f47-b06b-6b164e0773d1_1024x1024.webp 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><h2><strong>Introduction</strong></h2><p>Picture this: It's 3 AM, you&#8217;re surrounded by a fortress of energy drink cans, and you&#8217;re slowly going insane trying to center a div. We've all been there. But what if I told you that while you're wrestling with CSS, AI could have built three landing pages, generated a week's worth of unit tests, and probably written better documentation than that "TODO: fix this later" comment you left six months ago?</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://newsletter.frankbarros.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Builder Toolkit AI! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p>Welcome to the AI era. The hype isn&#8217;t just real, it's your new pair programmer.</p><p>In this guide, we'll cut through the BS and focus on practical, battle-tested strategies that will transform your development process. Whether you're a seasoned developer or just starting out, you'll learn how to leverage AI tools to ship code faster &#8211; without sacrificing quality or control. Let's dive in.</p><h2><strong>The Modern AI Development Stack (as of December 2024)</strong></h2><p>The AI development landscape has grown significantly, with clear leaders emerging in each category. Here&#8217;s my current tech stack.</p><p><strong>Research and Exploration</strong></p><ul><li><p><strong><a href="https://www.perplexity.ai/?utm_source=buildertoolkit.beehiiv.com&amp;utm_medium=newsletter&amp;utm_campaign=code-at-lightning-speed-the-modern-developer-s-ai-workflow&amp;_bhlid=41ed688586eea3d76e0d1f4d737070afb476dd7a">Perplexity</a></strong> - Real-time AI research assistant</p></li><li><p><strong><a href="https://www.anthropic.com/api?utm_source=buildertoolkit.beehiiv.com&amp;utm_medium=newsletter&amp;utm_campaign=code-at-lightning-speed-the-modern-developer-s-ai-workflow&amp;_bhlid=bedca2950170a5813017179580913d2e02d050c7">Claude API</a></strong> (via <strong><a href="https://www.typingmind.com/?utm_source=buildertoolkit.beehiiv.com&amp;utm_medium=newsletter&amp;utm_campaign=code-at-lightning-speed-the-modern-developer-s-ai-workflow&amp;_bhlid=f6ffca7c404b10ad3a86d0b0184cef01715ab385">Typing Mind</a></strong>) - In-depth technical analysis</p></li></ul><p><strong>Planning</strong></p><ul><li><p><strong><a href="https://chatgpt.com/?utm_source=buildertoolkit.beehiiv.com&amp;utm_medium=newsletter&amp;utm_campaign=code-at-lightning-speed-the-modern-developer-s-ai-workflow&amp;_bhlid=4c9ed984b8f015294cbd511f493cc625ead6cd77">ChatGPT</a></strong> - Project planning and roadmapping</p></li></ul><p><strong>UI Scaffolding</strong></p><ul><li><p><strong><a href="https://bolt.new/?utm_source=buildertoolkit.beehiiv.com&amp;utm_medium=newsletter&amp;utm_campaign=code-at-lightning-speed-the-modern-developer-s-ai-workflow&amp;_bhlid=993902b6c0d9829477eacc101b6ff417849ea4cc">Bolt.new</a></strong> - Rapid UI prototyping and generation</p></li><li><p>Boilerplate templates - My own custom, framework-specific templates</p></li></ul><p><strong>Development</strong></p><ul><li><p><strong><a href="https://www.cursor.com/?utm_source=buildertoolkit.beehiiv.com&amp;utm_medium=newsletter&amp;utm_campaign=code-at-lightning-speed-the-modern-developer-s-ai-workflow&amp;_bhlid=230df2184b1f2a80f1dca3cb0a00841fcee081cc">Cursor</a></strong> - AI-powered code editor</p></li></ul><p><strong>Debugging</strong></p><ul><li><p><strong><a href="https://github.com/yamadashy/repomix?utm_source=buildertoolkit.beehiiv.com&amp;utm_medium=newsletter&amp;utm_campaign=code-at-lightning-speed-the-modern-developer-s-ai-workflow&amp;_bhlid=732636d941de66b80f0a9236566b7914b473da4c">Repomix</a></strong> - Package up your code for easy LLM consumption</p></li><li><p>Cursor and Perplexity</p></li></ul><h2><strong>The AI-Powered Development Process</strong></h2><h3><strong>Research and Exploration Phase</strong></h3><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!l8vp!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb9253771-2bb0-41f2-99d6-6dd3558a5f64_1292x758.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!l8vp!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb9253771-2bb0-41f2-99d6-6dd3558a5f64_1292x758.png 424w, https://substackcdn.com/image/fetch/$s_!l8vp!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb9253771-2bb0-41f2-99d6-6dd3558a5f64_1292x758.png 848w, https://substackcdn.com/image/fetch/$s_!l8vp!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb9253771-2bb0-41f2-99d6-6dd3558a5f64_1292x758.png 1272w, https://substackcdn.com/image/fetch/$s_!l8vp!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb9253771-2bb0-41f2-99d6-6dd3558a5f64_1292x758.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!l8vp!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb9253771-2bb0-41f2-99d6-6dd3558a5f64_1292x758.png" width="1292" height="758" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/b9253771-2bb0-41f2-99d6-6dd3558a5f64_1292x758.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:758,&quot;width&quot;:1292,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!l8vp!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb9253771-2bb0-41f2-99d6-6dd3558a5f64_1292x758.png 424w, https://substackcdn.com/image/fetch/$s_!l8vp!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb9253771-2bb0-41f2-99d6-6dd3558a5f64_1292x758.png 848w, https://substackcdn.com/image/fetch/$s_!l8vp!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb9253771-2bb0-41f2-99d6-6dd3558a5f64_1292x758.png 1272w, https://substackcdn.com/image/fetch/$s_!l8vp!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb9253771-2bb0-41f2-99d6-6dd3558a5f64_1292x758.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>Gone are the days when research meant endlessly scrolling through random web forums. The landscape has completely transformed.</p><p>Perplexity has become an essential partner in the exploratory phase. It&#8217;s my go-to research companion, a sophisticated search engine that actually understands context. Instead of having to piece together information from multiple sources yourself, it synthesizes knowledge in real-time, helping you understand anything. It's particularly brilliant when you're trying to understand a new technology or researching the feasibility of an idea. The best part is that it&#8217;s up to date, unlike other LLMs which have knowledge cut-offs.</p><p>For deeper dives, I've found the combination of Claude API with Typing Mind to be incredibly powerful. Claude Sonnet 3.5 in my estimation is currently the best LLM for general programming. Typing Mind on the other hand is a wrapper for your LLM APIs, not too dissimilar from ChatGPT&#8217;s web interface. It provides a ton of amazing functionality including prompt management and powerful extensions. I primarily use Claude to get a general idea of how to implement a difficult technical task such as AI agents or cloud infrastructure.</p><h3><strong>Planning Phase</strong></h3><p>Planning has never been the most exciting part of any project.</p><p>ChatGPT, particularly with the latest o1 model, has become surprisingly adept at planning and breaking down ambitious projects into digestible chunks. Feed it your project requirements, and ask it to help you craft a realistic roadmap and timeline that actually makes sense &#8211; no more "yeah, we can build Facebook in two weeks" estimates.</p><p>The key here is focusing on the lean MVP approach. It's like having a pragmatic product manager who isn't emotionally attached to that one feature everyone thinks they need but no one will actually use. The AI helps prioritize what truly matters for your MVP or feature, keeping you focused on shipping rather than getting lost in the endless sea of "nice-to-haves."</p><p>Another tip- have o1 break down your tasks by week for a straightforward, actionable to do list, all without having to touch Jira or hire a project manager.</p><h3><strong>UI Scaffolding</strong></h3><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!BAhg!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe780660d-64d1-496a-b72e-78ddec06a127_1292x755.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!BAhg!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe780660d-64d1-496a-b72e-78ddec06a127_1292x755.png 424w, https://substackcdn.com/image/fetch/$s_!BAhg!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe780660d-64d1-496a-b72e-78ddec06a127_1292x755.png 848w, https://substackcdn.com/image/fetch/$s_!BAhg!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe780660d-64d1-496a-b72e-78ddec06a127_1292x755.png 1272w, https://substackcdn.com/image/fetch/$s_!BAhg!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe780660d-64d1-496a-b72e-78ddec06a127_1292x755.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!BAhg!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe780660d-64d1-496a-b72e-78ddec06a127_1292x755.png" width="1292" height="755" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/e780660d-64d1-496a-b72e-78ddec06a127_1292x755.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:755,&quot;width&quot;:1292,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!BAhg!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe780660d-64d1-496a-b72e-78ddec06a127_1292x755.png 424w, https://substackcdn.com/image/fetch/$s_!BAhg!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe780660d-64d1-496a-b72e-78ddec06a127_1292x755.png 848w, https://substackcdn.com/image/fetch/$s_!BAhg!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe780660d-64d1-496a-b72e-78ddec06a127_1292x755.png 1272w, https://substackcdn.com/image/fetch/$s_!BAhg!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe780660d-64d1-496a-b72e-78ddec06a127_1292x755.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>This is where things get really interesting. <strong><a href="https://bolt.new/?utm_source=buildertoolkit.beehiiv.com&amp;utm_medium=newsletter&amp;utm_campaign=code-at-lightning-speed-the-modern-developer-s-ai-workflow&amp;_bhlid=ae0781658715e1a1b8d478c5aa7843d34dcc8f52">Bolt.new</a></strong> has completely changed the game when it comes to initial UI development. Imagine describing what you want in plain English and getting a fully functional UI in return &#8211; it's like having a UI designer and front-end developer at your beck and call. Now combine this with a boilerplate template from Github and you have the recipe for truly rapid prototyping. I&#8217;m taking hours, not months for a full-fledged MVP.</p><p>As of writing, Bolt currently isn&#8217;t at a stage where it can successfully build full-stack - it&#8217;s backend capabilities are still lacking. But for quick UI prototyping it is second to none. <strong><a href="https://v0.dev/?utm_source=buildertoolkit.beehiiv.com&amp;utm_medium=newsletter&amp;utm_campaign=code-at-lightning-speed-the-modern-developer-s-ai-workflow&amp;_bhlid=607c036e578e6dab9b47091b0c93a1a61bcf5665">v0.dev</a></strong> is a good option as well but I&#8217;ve found Bolt to be less buggier and more versatile.</p><h3><strong>Development Phase</strong></h3><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!anW9!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fddcabbb1-d40b-409e-9124-b0a7fb9b9085_1292x846.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!anW9!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fddcabbb1-d40b-409e-9124-b0a7fb9b9085_1292x846.png 424w, https://substackcdn.com/image/fetch/$s_!anW9!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fddcabbb1-d40b-409e-9124-b0a7fb9b9085_1292x846.png 848w, https://substackcdn.com/image/fetch/$s_!anW9!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fddcabbb1-d40b-409e-9124-b0a7fb9b9085_1292x846.png 1272w, https://substackcdn.com/image/fetch/$s_!anW9!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fddcabbb1-d40b-409e-9124-b0a7fb9b9085_1292x846.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!anW9!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fddcabbb1-d40b-409e-9124-b0a7fb9b9085_1292x846.png" width="1292" height="846" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/ddcabbb1-d40b-409e-9124-b0a7fb9b9085_1292x846.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:846,&quot;width&quot;:1292,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!anW9!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fddcabbb1-d40b-409e-9124-b0a7fb9b9085_1292x846.png 424w, https://substackcdn.com/image/fetch/$s_!anW9!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fddcabbb1-d40b-409e-9124-b0a7fb9b9085_1292x846.png 848w, https://substackcdn.com/image/fetch/$s_!anW9!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fddcabbb1-d40b-409e-9124-b0a7fb9b9085_1292x846.png 1272w, https://substackcdn.com/image/fetch/$s_!anW9!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fddcabbb1-d40b-409e-9124-b0a7fb9b9085_1292x846.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>Cursor has emerged as the definitive AI-powered IDE. Its strength lies in understanding your entire codebase as a coherent system rather than isolated files. It&#8217;s got auto-complete and built-in chat, similar to Github Copilot. But it truly shines with the Composer feature, a tool that creates and edits multiple files at once. In agent mode, it literally spins up entire features in the blink of an eye.</p><p>There are many techniques to optimize Cursor use which I&#8217;ll document in an upcoming article. But one easy thing you can do to get started is to create a <code>.cursorrules</code> configuration file in the root of your project, that allows you to define project-specific patterns and preferences, essentially teaching the AI your team's coding standards.</p><h3><strong>Debugging Phase</strong></h3><p>Debugging has evolved significantly with the emergence of AI-powered tools.</p><p>Cursor serves as an excellent first line of defense, handling many common coding issues directly in your editor with its integrated AI capabilities.</p><p>When faced with newer issues, particularly those related to recent package updates or newer frameworks, Perplexity AI proves invaluable. Its real-time search and analysis capabilities help you find current solutions and workarounds, especially useful when dealing with breaking changes or newly reported bugs.</p><p>If you're tackling more complex issues that require deeper codebase understanding, Repomix offers a unique approach. By automatically packaging your code in an AI-friendly format, it enables large language models like Claude or ChatGPT to analyze your entire codebase context. This comprehensive view allows them to provide more targeted and effective solutions than traditional document-based debugging approaches.</p><p>With these tools, debugging has become easier than it&#8217;s ever been. What once caused endless frustration (and possibly a few keyboard-shaped dents in the wall) can now be approached systematically and solved efficiently, letting developers focus on what matters most: building great software.</p><h2><strong>Key Tips for Success</strong></h2><h3><strong>Master AI-Enhanced Learning</strong></h3><p>The most successful developers in the AI era aren't those who blindly copy-paste code &#8211; they're the ones who use AI as a learning accelerator. While AI can generate solutions quickly, understanding the underlying principles is what sets exceptional developers apart. Use AI to explain complex concepts, break down unfamiliar patterns, and explore alternative approaches. This deeper understanding will help you move faster and make better architectural decisions.</p><h3><strong>Maintain Critical Oversight</strong></h3><p>AI is a powerful ally, but it's not infallible. Develop a systematic approach to working with AI-generated code:</p><ol><li><p>Review code thoroughly, especially around business logic and security-sensitive areas</p></li><li><p>Run comprehensive tests, including edge cases AI might have missed</p></li><li><p>Profile performance implications of AI suggestions</p></li><li><p>Validate architectural decisions</p></li></ol><p>Pro-tip: ask the AI to generate tests and documentation to ensure accurate and optimal responses.</p><h3><strong>Stay Adaptable and Current</strong></h3><p>We're in the Wild West of AI right now. Success requires staying agile: experiment with new tools regularly, share discoveries with your team, and maintain a continuous learning mindset. The landscape changes weekly, but the fundamentals of good engineering remain constant.</p><h2><strong>Other Tools</strong></h2><p><strong>Tools I&#8217;ve Dropped (for now)</strong></p><ul><li><p>v0.dev</p><ul><li><p>Buggy, UI generation</p></li><li><p>Redundant with Bolt.new</p></li></ul></li><li><p>GitHub Copilot</p></li></ul><p><strong>Haven&#8217;t tried, but interested</strong></p><ul><li><p>Windsurf</p></li><li><p>Replit</p></li><li><p>ChatGPT&#8217;s search functionality (as compared to Perplexity)</p></li><li><p>Lovable</p></li><li><p>Gemini 2.0 Multi-modal API</p></li></ul><h2><strong>Conclusion</strong></h2><p>Remember that time when Copilot&#8217;s auto-complete felt like magic? We're living through something far bigger now. AI isn't just transforming software development &#8211; it's rewriting the rules of what's possible in a day's work. But here's the plot twist: the most powerful tool is still the one between your ears.</p><p>The real winners in this AI revolution aren't the developers who can prompt the fastest or generate the most code. They're the ones who've mastered the art of the human-AI tango &#8211; knowing when to let AI take the lead on the grunt work, and when to step in with the creative problem-solving that machines still can't touch.</p><p>Start small. Pick one piece of your workflow that's been driving you nuts, and let AI help shoulder the load. Experiment, fail fast, and build your own rhythm. As these tools evolve at breakneck speed, you'll want to be the developer who's surfing the wave, not the one watching from the shore.</p><p>The future of coding isn't human vs. AI &#8211; it's human and AI, in perfect harmony.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://newsletter.frankbarros.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Builder Toolkit AI! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[How do you become a Better Software Engineer? Become a Better Writer]]></title><description><![CDATA[In the world of software engineering, technical skills are often emphasized as the primary path to improvement.However, there's a powerful tool that's often overlooked in a developer's toolkit: writing.]]></description><link>https://newsletter.frankbarros.com/p/how-do-you-become-a-better-software-engineer-become-a-better-writer</link><guid isPermaLink="false">https://newsletter.frankbarros.com/p/how-do-you-become-a-better-software-engineer-become-a-better-writer</guid><dc:creator><![CDATA[Frank Barros]]></dc:creator><pubDate>Mon, 30 Dec 2024 05:27:33 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!yKGo!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbb86a4f6-7b8e-4e37-b12a-610882b44f55_1792x1024.webp" 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_!yKGo!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbb86a4f6-7b8e-4e37-b12a-610882b44f55_1792x1024.webp" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!yKGo!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbb86a4f6-7b8e-4e37-b12a-610882b44f55_1792x1024.webp 424w, https://substackcdn.com/image/fetch/$s_!yKGo!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbb86a4f6-7b8e-4e37-b12a-610882b44f55_1792x1024.webp 848w, https://substackcdn.com/image/fetch/$s_!yKGo!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbb86a4f6-7b8e-4e37-b12a-610882b44f55_1792x1024.webp 1272w, https://substackcdn.com/image/fetch/$s_!yKGo!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbb86a4f6-7b8e-4e37-b12a-610882b44f55_1792x1024.webp 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!yKGo!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbb86a4f6-7b8e-4e37-b12a-610882b44f55_1792x1024.webp" width="1456" height="832" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/bb86a4f6-7b8e-4e37-b12a-610882b44f55_1792x1024.webp&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:832,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:471796,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/webp&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!yKGo!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbb86a4f6-7b8e-4e37-b12a-610882b44f55_1792x1024.webp 424w, https://substackcdn.com/image/fetch/$s_!yKGo!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbb86a4f6-7b8e-4e37-b12a-610882b44f55_1792x1024.webp 848w, https://substackcdn.com/image/fetch/$s_!yKGo!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbb86a4f6-7b8e-4e37-b12a-610882b44f55_1792x1024.webp 1272w, https://substackcdn.com/image/fetch/$s_!yKGo!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbb86a4f6-7b8e-4e37-b12a-610882b44f55_1792x1024.webp 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>In the world of software engineering, technical skills are often emphasized as the primary path to improvement.However, there's a powerful tool that's often overlooked in a developer's toolkit: writing. Enhancing your writing skills can significantly boost your effectiveness as a software engineer.</p><p>Now I know what you&#8217;re thinking - engineering is already tough - now I need to learn how to write as well? But the advantages of writing are so beneficial that ignoring it would be a missed opportunity.</p><h2><strong>Why Write?</strong></h2><h3><strong>1. Writing Helps You to Clarify Your Thought Process and Think Clearly</strong></h3><p>When you write, you're forced to organize your thoughts in a logical, coherent manner. This process of structuring your ideas on paper (or screen) can reveal gaps in your understanding or flaws in your logic that might not be apparent when the concepts are just floating around in your head. By articulating your ideas in writing, you're essentially debugging your thought process, leading to clearer, more refined solutions to complex problems.</p><h3><strong>2. Writing Helps You to Pick Up Where You Left Off</strong></h3><p>Software development often involves juggling multiple tasks and projects. This constant context switching can often leave developers feeling frazzled and it&#8217;s easy to lose track of where you were in your thought process when you return to a project after some time away. Detailed notes and documentation act as a mental anchor, allowing you to quickly reorient yourself and resume work efficiently. This is particularly valuable when dealing with complex systems or long-term projects.</p><h3><strong>3. Writing Helps Communicate Your Ideas to the Rest of the Team</strong></h3><p>In collaborative environments, clear communication is key. Writing allows you to articulate your ideas, proposals, and solutions in a format that can be easily shared and understood by your teammates. Whether it's explaining a new feature, proposing an architectural change, or documenting a bug fix, well-written explanations ensure that your ideas are accurately conveyed to others, reducing misunderstandings and promoting smoother collaboration.</p><h3><strong>4. Writing Helps You Solicit Feedback from the Team</strong></h3><p>When you put your ideas in writing, you create a concrete artifact that others can review, comment on, and critique. This written format allows for asynchronous feedback, giving team members time to thoroughly consider your proposals and provide thoughtful responses. It also creates a record of the discussion, which can be valuable for future reference or for onboarding new team members.</p><p>Documents are also a great vehicle for catching any errors, mistaken assumptions or anything was missed in the planning. Time and time again it has saved my butt on many occasions.</p><h3><strong>5. Writing Helps Provide a Reference You Can Keep Coming Back To</strong></h3><p>Software development is often iterative, and decisions made early in a project can have long-lasting impacts. By documenting your thought processes, decisions, and the rationale behind them, you create a valuable resource that you and your team can refer back to throughout the project's lifecycle. This can be particularly helpful when revisiting old code, troubleshooting issues, or considering future enhancements.</p><p>Also, for smaller teams with constant turnover, this documentation can be life-saving. A big org can absorb the loss of a single senior engineer but for a tiny startup - this could literally put them out of business. Well-written documents helps ease any transition.</p><h3><strong>6. As You Level Up In Your Career, Planning Becomes More Important</strong></h3><p>It is often said that engineers write less code the more senior that they get. At the higher levels of the profession, the bulk of the job shifts to planning - designing systems for scale, assessing trade-offs, weighing which technologies to use and thinking of what could go wrong.</p><p>Writing is your greatest ally in this high-level decision-making. Choosing to forego it may mean putting a ceiling on your career.</p><h3><strong>7. Good writing is the key to unlocking better results from AI</strong></h3><p>As AI gets better every day, your ability to articulate your problems and clarify your requirements to the LLM makes the difference between amazing and mediocre results. AI is the great gamechanger. It&#8217;s changing the world as we know it. Prompt engineering is one of the techniques which help produce the most useful results from the models. And surprise, surprise - good writing matters more than ever. AI may be smart but it can&#8217;t give you the answer if it doesn&#8217;t understand what you&#8217;re asking for.</p><h2><strong>Practical Tips for Incorporating Writing into Your Software Engineering Practice</strong></h2><h3><strong>1. Create a Document for Every Ticket. Write Out a Detailed Plan</strong></h3><p>Before diving into coding, take the time to create a document for each ticket or task you're working on.</p><p>It doesn&#8217;t have to be complicated. This is not middle school - we&#8217;re not looking for a thousand word essay here. For most tickets, a simple checklist or bullet points of goals and to dos can be a gamechanger.</p><p>Use this document to outline your approach, consider potential challenges, and plan your implementation strategy. This practice not only helps you think through the problem more thoroughly but also provides a reference for you and your teammates as the work progresses.</p><h3><strong>2. Take Advantage of Commonly Used Documents in Software Engineering</strong></h3><p>The software engineering field has developed several standard document types that can help structure your thinking and communication. In a lot of bigger orgs with more standardized procedures, you might in fact already be required to do these things. Familiarize yourself with these and use them to your advantage:</p><p>a) Design Documents: Use these to outline the architecture and high-level design of your software. They help you think through system components, interactions, and potential trade-offs before you start coding.</p><p>b) Requirements Specification: This document helps clarify what the software needs to do, ensuring that you and your stakeholders are aligned on expectations. Writing detailed requirements forces you to consider edge cases and potential issues early in the development process.</p><p>c) API Documentation: Ever used a public API with documentation that looks like it was put together by a fortune cookie writer having a bad day? Terrible documentation can be infuriating and turns people away from using your product. Clear, comprehensive API documentation is crucial for both internal and external developers. Writing this documentation often reveals inconsistencies or areas for improvement in your API design.</p><p>d) Technical Specifications: These documents dive into the nitty-gritty details of how a feature or system will be implemented. Writing tech specs helps you think through the implementation details and potential challenges before you start coding.</p><p>e) Post-mortems or Incident Reports: After resolving a major issue or outage, writing a detailed report helps you and your team learn from the experience and prevent similar problems in the future. You could even go the extra mile and write a pre-mortem, outlining what could go wrong and planning contingencies.</p><p>f) Runbooks: These are step-by-step guides for carrying out specific operations or troubleshooting common issues. Writing runbooks forces you to think through processes systematically and can be invaluable for maintaining system reliability and reducing mean time to recovery (MTTR) during incidents.</p><p>g) Deployment Checklists: Creating and maintaining deployment checklists ensures that all necessary steps are followed during the deployment process. Writing these checklists helps you anticipate potential issues and standardize your deployment procedures, leading to more reliable and consistent releases.</p><p>By incorporating these writing practices into your software engineering workflow, you'll find that your thinking becomes clearer, your communication more effective, and your overall productivity enhanced. Remember, becoming a better writer is a skill that develops over time. Start small, perhaps by documenting your daily work or writing brief design proposals, and gradually expand your writing practice.</p><p>Don&#8217;t be intimidated. Nobody is expecting Shakespeare. Be clear and concise, using only the words you need. Avoid drowning your subject in technical babble or corporate buzz speak. Think Hemingway, not James Joyce.</p><p>So, embrace writing as a powerful tool in your developer toolkit&#8212; your next best career move might be learning how to write better English, not better Rust.</p>]]></content:encoded></item></channel></rss>