<?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[The Coder Cafe: Lattes & Stories]]></title><description><![CDATA[Personal reflections and stories.]]></description><link>https://read.thecoder.cafe/s/lattes-stories</link><image><url>https://substackcdn.com/image/fetch/$s_!OZXv!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa08792c7-cadb-478c-bce4-a10c5dc5ac05_1280x1280.png</url><title>The Coder Cafe: Lattes &amp; Stories</title><link>https://read.thecoder.cafe/s/lattes-stories</link></image><generator>Substack</generator><lastBuildDate>Mon, 11 May 2026 19:51:17 GMT</lastBuildDate><atom:link href="https://read.thecoder.cafe/feed" rel="self" type="application/rss+xml"/><copyright><![CDATA[Teiva Harsanyi]]></copyright><language><![CDATA[en]]></language><webMaster><![CDATA[thecodercafe@substack.com]]></webMaster><itunes:owner><itunes:email><![CDATA[thecodercafe@substack.com]]></itunes:email><itunes:name><![CDATA[Teiva Harsanyi]]></itunes:name></itunes:owner><itunes:author><![CDATA[Teiva Harsanyi]]></itunes:author><googleplay:owner><![CDATA[thecodercafe@substack.com]]></googleplay:owner><googleplay:email><![CDATA[thecodercafe@substack.com]]></googleplay:email><googleplay:author><![CDATA[Teiva Harsanyi]]></googleplay:author><itunes:block><![CDATA[Yes]]></itunes:block><item><title><![CDATA[The Story of The Coder Cafe]]></title><description><![CDATA[I love sharing, and you give me an audience.]]></description><link>https://read.thecoder.cafe/p/the-coder-cafe-story</link><guid isPermaLink="false">https://read.thecoder.cafe/p/the-coder-cafe-story</guid><dc:creator><![CDATA[Teiva Harsanyi]]></dc:creator><pubDate>Thu, 09 Oct 2025 14:01:04 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/66b2828f-6e04-4a22-a2b6-75757c799a13_1600x800.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>&#9749; <em>Welcome to The Coder Cafe! This week marks the first anniversary of the newsletter. To celebrate, I will share its story. Get cozy, grab a coffee, and let&#8217;s begin!</em></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!z5Hz!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fda8aa5f9-c02f-46c7-8ea4-e38fdb69ba65_1600x800.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!z5Hz!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fda8aa5f9-c02f-46c7-8ea4-e38fdb69ba65_1600x800.png 424w, https://substackcdn.com/image/fetch/$s_!z5Hz!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fda8aa5f9-c02f-46c7-8ea4-e38fdb69ba65_1600x800.png 848w, https://substackcdn.com/image/fetch/$s_!z5Hz!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fda8aa5f9-c02f-46c7-8ea4-e38fdb69ba65_1600x800.png 1272w, https://substackcdn.com/image/fetch/$s_!z5Hz!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fda8aa5f9-c02f-46c7-8ea4-e38fdb69ba65_1600x800.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!z5Hz!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fda8aa5f9-c02f-46c7-8ea4-e38fdb69ba65_1600x800.png" width="1456" height="728" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/da8aa5f9-c02f-46c7-8ea4-e38fdb69ba65_1600x800.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:728,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1601464,&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.thecoder.cafe/i/172122496?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fda8aa5f9-c02f-46c7-8ea4-e38fdb69ba65_1600x800.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_!z5Hz!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fda8aa5f9-c02f-46c7-8ea4-e38fdb69ba65_1600x800.png 424w, https://substackcdn.com/image/fetch/$s_!z5Hz!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fda8aa5f9-c02f-46c7-8ea4-e38fdb69ba65_1600x800.png 848w, https://substackcdn.com/image/fetch/$s_!z5Hz!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fda8aa5f9-c02f-46c7-8ea4-e38fdb69ba65_1600x800.png 1272w, https://substackcdn.com/image/fetch/$s_!z5Hz!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fda8aa5f9-c02f-46c7-8ea4-e38fdb69ba65_1600x800.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><h1>Origins</h1><p>We were in July 2024. It was a warm weekend, and I was lying in bed thinking about my next &#8220;big thing&#8221;. A few years earlier, I had finished writing my book. It was an exhausting experience, but I finally felt ready for another challenge.</p><p>All of a sudden, I got an idea. <strong>What if I launched&#8230; a podcast?</strong></p><p>I jumped out of bed, searched for a book on podcasts, bought one, and started reading about all that needs to be known: the different formats, how to find an audience, whether we should invite guests, and so on.</p><p>I even had the perfect name. As a lover of the cozy atmosphere of coffee shops, I wanted my podcast to reflect that same warm ambience.</p><p>The name would be <em>The Coder Cafe</em>.</p><p>But a few days later, the excitement faded. Did I really want to make a podcast after all? I had a few concepts in mind, but none of them truly <em>clicked</em>. Eventually, I decided to drop the idea.</p><p>Yet the name <em>The Coder Cafe</em> stuck with me. I checked <a href="https://thecoder.cafe">thecoder.cafe</a> domain, and it was available. <strong>Every great story starts with a domain name. Let&#8217;s buy it!</strong></p><p>Now I had a domain name, but I still didn&#8217;t know what to do about it.</p><p>Around that time, I started reading a lot of newsletters. One in particular inspired me for the quality and regularity of its content: <span class="mention-wrap" data-attrs="{&quot;name&quot;:&quot;The Pragmatic Engineer&quot;,&quot;id&quot;:458709,&quot;type&quot;:&quot;pub&quot;,&quot;url&quot;:&quot;https://open.substack.com/pub/pragmaticengineer&quot;,&quot;photo_url&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/5ecbf7ac-260b-423b-8493-26783bf01f06_600x600.png&quot;,&quot;uuid&quot;:&quot;ff4a07f6-37c1-412f-82dd-9082580cd0c3&quot;}" data-component-name="MentionToDOM"></span> by <br><span class="mention-wrap" data-attrs="{&quot;name&quot;:&quot;Gergely Orosz&quot;,&quot;id&quot;:30107029,&quot;type&quot;:&quot;user&quot;,&quot;url&quot;:null,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/58fed27c-f331-4ff3-ba47-135c5a0be0ba_400x400.png&quot;,&quot;uuid&quot;:&quot;80e36045-73e8-4b7e-8b1e-ce78e5d19903&quot;}" data-component-name="MentionToDOM"></span>. </p><p>I even launched one called <em>Go Engineer, </em>which I quickly stopped. Thanks to my book, I already had a Go audience. But deep down, I didn&#8217;t want to write <em>only</em> about Go anymore. I didn&#8217;t want to be tied to a single language when there are so many areas I&#8217;m passionate about: code health, testing, distributed systems, reliability, observability, performance, and more.</p><p>At some point, the two ideas converged. <strong>I would create a newsletter, and it would be called </strong><em><strong>The Coder Cafe</strong></em>. It wouldn&#8217;t be tied to one language. It would be a place where any software engineer could find something useful.</p><p>I already had experience with online writing. My <a href="https://teivah.medium.com/">Medium blog</a> had more than 4k followers. But since my book, I hadn&#8217;t really written there. I needed a fresh start and a chance to relearn how to write online. Writing a book and writing online are two very different activities. So I ditched my book on podcasts and bought another one: <em><a href="https://www.goodreads.com/book/show/55189231-the-art-and-business-of-online-writing">The Art and Business of Online Writing</a>.</em></p><p>If you don&#8217;t know this book, I really recommend it. Two principles in particular stuck with me:</p><ol><li><p><strong>Volume matters.</strong> The most popular blogs and newsletters publish often.</p></li><li><p><strong>Timeless topics matter.</strong> Daily news about which stock to buy has volume but no staying power. Timeless content always wins.</p></li></ol><p>These two ideas would shape my newsletter: <strong>I wanted to write daily (</strong><em><strong>volume</strong></em><strong>) and focus on fundamental concepts (</strong><em><strong>timeless</strong></em><strong>).</strong></p><p>I started drafting the newsletter description:</p><div class="pullquote"><p>Feeling overwhelmed by the endless stream of tech content? At The Coder Cafe, we serve timeless concepts with your coffee, every day.</p></div><p>At first, I planned to publish five posts per week on different topics. But after talking with my girlfriend, she suggested I group posts by theme. For example, one week on caching, another on testing, etc. I loved the idea. She also recommended writing a recap post at the end of the week as a way to reinforce learning. I loved this idea even more. I wasn&#8217;t sure people wanted to read my content during the weekend, though, so I refined the plan:</p><ul><li><p>Four posts from Monday to Thursday, each on one core concept.</p></li><li><p>A recap on Friday, to reinforce the week&#8217;s lessons.</p></li></ul><div class="poll-embed" data-attrs="{&quot;id&quot;:367467}" data-component-name="PollToDOM"></div><p>By mid-August, the concept was finalized. It was time to <s>write some posts</s> find a good logo!</p><h1>The Quest for the Right Logo</h1><p>I bought a paid subscription to Canva and spent my whole weekend creating different logo variations:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!7QA1!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F598f9cd5-9e23-40c7-9ea7-b4651d0e5536_1600x800.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!7QA1!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F598f9cd5-9e23-40c7-9ea7-b4651d0e5536_1600x800.png 424w, https://substackcdn.com/image/fetch/$s_!7QA1!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F598f9cd5-9e23-40c7-9ea7-b4651d0e5536_1600x800.png 848w, https://substackcdn.com/image/fetch/$s_!7QA1!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F598f9cd5-9e23-40c7-9ea7-b4651d0e5536_1600x800.png 1272w, https://substackcdn.com/image/fetch/$s_!7QA1!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F598f9cd5-9e23-40c7-9ea7-b4651d0e5536_1600x800.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!7QA1!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F598f9cd5-9e23-40c7-9ea7-b4651d0e5536_1600x800.png" width="1456" height="728" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/598f9cd5-9e23-40c7-9ea7-b4651d0e5536_1600x800.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:728,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:812285,&quot;alt&quot;:&quot;Several draft logo variations for &#8220;The Coder Cafe,&#8221; featuring coffee cups, laptops, and code-inspired symbols in round badge designs.&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://www.thecoder.cafe/i/172122496?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F598f9cd5-9e23-40c7-9ea7-b4651d0e5536_1600x800.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Several draft logo variations for &#8220;The Coder Cafe,&#8221; featuring coffee cups, laptops, and code-inspired symbols in round badge designs." title="Several draft logo variations for &#8220;The Coder Cafe,&#8221; featuring coffee cups, laptops, and code-inspired symbols in round badge designs." srcset="https://substackcdn.com/image/fetch/$s_!7QA1!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F598f9cd5-9e23-40c7-9ea7-b4651d0e5536_1600x800.png 424w, https://substackcdn.com/image/fetch/$s_!7QA1!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F598f9cd5-9e23-40c7-9ea7-b4651d0e5536_1600x800.png 848w, https://substackcdn.com/image/fetch/$s_!7QA1!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F598f9cd5-9e23-40c7-9ea7-b4651d0e5536_1600x800.png 1272w, https://substackcdn.com/image/fetch/$s_!7QA1!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F598f9cd5-9e23-40c7-9ea7-b4651d0e5536_1600x800.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>None of them really convinced me, though. When I was about to design yet another version, this time of a logo that repeats inside itself a few times to hint at recursion, I suddenly became aware of my <strong>lack of artistic skills</strong>. I decided to delegate the work, heading to&nbsp;<a href="https://fiverr.com">Fiverr</a>&nbsp;to find a freelancer.</p><p>That&#8217;s how I met a very talented artist, <a href="https://longhuynh.artstation.com/">Eli Huynh</a>. She even worked on the <em>Attack on Titan</em> anime, can you believe it? I asked her to craft a coffee shop logo, and I slipped in some personal touches I wanted to see hidden in the design:</p><ul><li><p>An illustration of <a href="https://www.oreilly.com/library/view/designing-data-intensive-applications/9781491903063/">Designing Data-Intensive Applications</a> by <span class="mention-wrap" data-attrs="{&quot;name&quot;:&quot;Martin Kleppmann&quot;,&quot;id&quot;:3519005,&quot;type&quot;:&quot;user&quot;,&quot;url&quot;:null,&quot;photo_url&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/47a66e89-1de0-4001-9a3c-60abe841e575_2102x2102.jpeg&quot;,&quot;uuid&quot;:&quot;7b93d67e-ac41-4bb1-8926-f769c8e8085b&quot;}" data-component-name="MentionToDOM"></span>, my favorite computer science book.</p></li><li><p><a href="https://www.docker.com/blog/call-me-moby-dock/">Moby Dock</a>, the Docker mascot (I worked at Docker and loved my time there!)</p></li><li><p>A Docker command on the coffee machine.</p></li></ul><p>She produced this beautiful masterpiece:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!vHhB!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5009c1eb-e272-4a9e-962a-bb2b9d5f2377_1000x1000.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!vHhB!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5009c1eb-e272-4a9e-962a-bb2b9d5f2377_1000x1000.png 424w, https://substackcdn.com/image/fetch/$s_!vHhB!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5009c1eb-e272-4a9e-962a-bb2b9d5f2377_1000x1000.png 848w, https://substackcdn.com/image/fetch/$s_!vHhB!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5009c1eb-e272-4a9e-962a-bb2b9d5f2377_1000x1000.png 1272w, https://substackcdn.com/image/fetch/$s_!vHhB!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5009c1eb-e272-4a9e-962a-bb2b9d5f2377_1000x1000.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!vHhB!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5009c1eb-e272-4a9e-962a-bb2b9d5f2377_1000x1000.png" width="450" height="450" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/5009c1eb-e272-4a9e-962a-bb2b9d5f2377_1000x1000.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1000,&quot;width&quot;:1000,&quot;resizeWidth&quot;:450,&quot;bytes&quot;:1170524,&quot;alt&quot;:&quot;Illustrated coffee shop scene with a laptop and cappuccino on a wooden table in front of a counter labeled &#8220;The Coder Cafe.&#8221;&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://www.thecoder.cafe/i/172122496?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5009c1eb-e272-4a9e-962a-bb2b9d5f2377_1000x1000.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Illustrated coffee shop scene with a laptop and cappuccino on a wooden table in front of a counter labeled &#8220;The Coder Cafe.&#8221;" title="Illustrated coffee shop scene with a laptop and cappuccino on a wooden table in front of a counter labeled &#8220;The Coder Cafe.&#8221;" srcset="https://substackcdn.com/image/fetch/$s_!vHhB!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5009c1eb-e272-4a9e-962a-bb2b9d5f2377_1000x1000.png 424w, https://substackcdn.com/image/fetch/$s_!vHhB!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5009c1eb-e272-4a9e-962a-bb2b9d5f2377_1000x1000.png 848w, https://substackcdn.com/image/fetch/$s_!vHhB!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5009c1eb-e272-4a9e-962a-bb2b9d5f2377_1000x1000.png 1272w, https://substackcdn.com/image/fetch/$s_!vHhB!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5009c1eb-e272-4a9e-962a-bb2b9d5f2377_1000x1000.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>I shared it with different people, and the feedback was unanimous: the drawing was stunning, but&#8230; it was not really a logo. Nothing against the artist, obviously, I was the one giving the requirements, but indeed, it wasn&#8217;t a logo.</p><p>So I moved this illustration to the <a href="https://www.thecoder.cafe/p/about">About</a> page and kept searching for another freelancer. After a few failures, I started working with someone who feels promising. His first attempt was the following:</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!7NIT!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F40576d7d-a673-4cb6-b3d1-b294d593e528_488x326.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!7NIT!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F40576d7d-a673-4cb6-b3d1-b294d593e528_488x326.png 424w, https://substackcdn.com/image/fetch/$s_!7NIT!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F40576d7d-a673-4cb6-b3d1-b294d593e528_488x326.png 848w, https://substackcdn.com/image/fetch/$s_!7NIT!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F40576d7d-a673-4cb6-b3d1-b294d593e528_488x326.png 1272w, https://substackcdn.com/image/fetch/$s_!7NIT!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F40576d7d-a673-4cb6-b3d1-b294d593e528_488x326.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!7NIT!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F40576d7d-a673-4cb6-b3d1-b294d593e528_488x326.png" width="300" height="200.40983606557376" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/40576d7d-a673-4cb6-b3d1-b294d593e528_488x326.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:326,&quot;width&quot;:488,&quot;resizeWidth&quot;:300,&quot;bytes&quot;:28275,&quot;alt&quot;:&quot;Dark green rectangular logo with a beige illustration of a caf&#233; storefront, including a table, chair, and hanging lamp. Text below reads &#8220;THE CODER CAFE &#8226; BREWED DAILY &#8226;.&#8221;&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://www.thecoder.cafe/i/172122496?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F40576d7d-a673-4cb6-b3d1-b294d593e528_488x326.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Dark green rectangular logo with a beige illustration of a caf&#233; storefront, including a table, chair, and hanging lamp. Text below reads &#8220;THE CODER CAFE &#8226; BREWED DAILY &#8226;.&#8221;" title="Dark green rectangular logo with a beige illustration of a caf&#233; storefront, including a table, chair, and hanging lamp. Text below reads &#8220;THE CODER CAFE &#8226; BREWED DAILY &#8226;.&#8221;" srcset="https://substackcdn.com/image/fetch/$s_!7NIT!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F40576d7d-a673-4cb6-b3d1-b294d593e528_488x326.png 424w, https://substackcdn.com/image/fetch/$s_!7NIT!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F40576d7d-a673-4cb6-b3d1-b294d593e528_488x326.png 848w, https://substackcdn.com/image/fetch/$s_!7NIT!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F40576d7d-a673-4cb6-b3d1-b294d593e528_488x326.png 1272w, https://substackcdn.com/image/fetch/$s_!7NIT!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F40576d7d-a673-4cb6-b3d1-b294d593e528_488x326.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><p>After many back-and-forths, we converged on this version:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!rbSU!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F68bcf916-b443-4c3e-ac06-f9cf1632affd_2000x2000.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!rbSU!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F68bcf916-b443-4c3e-ac06-f9cf1632affd_2000x2000.png 424w, https://substackcdn.com/image/fetch/$s_!rbSU!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F68bcf916-b443-4c3e-ac06-f9cf1632affd_2000x2000.png 848w, https://substackcdn.com/image/fetch/$s_!rbSU!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F68bcf916-b443-4c3e-ac06-f9cf1632affd_2000x2000.png 1272w, https://substackcdn.com/image/fetch/$s_!rbSU!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F68bcf916-b443-4c3e-ac06-f9cf1632affd_2000x2000.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!rbSU!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F68bcf916-b443-4c3e-ac06-f9cf1632affd_2000x2000.png" width="253" height="253" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/68bcf916-b443-4c3e-ac06-f9cf1632affd_2000x2000.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;:253,&quot;bytes&quot;:194905,&quot;alt&quot;:&quot;Warm beige and brown logo showing a caf&#233; counter with a stool, laptop, coffee machine, and potted plant. Above the counter hangs a sign with bold text: &#8220;THE CODER CAFE.&#8221;&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://www.thecoder.cafe/i/172122496?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F68bcf916-b443-4c3e-ac06-f9cf1632affd_2000x2000.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Warm beige and brown logo showing a caf&#233; counter with a stool, laptop, coffee machine, and potted plant. Above the counter hangs a sign with bold text: &#8220;THE CODER CAFE.&#8221;" title="Warm beige and brown logo showing a caf&#233; counter with a stool, laptop, coffee machine, and potted plant. Above the counter hangs a sign with bold text: &#8220;THE CODER CAFE.&#8221;" srcset="https://substackcdn.com/image/fetch/$s_!rbSU!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F68bcf916-b443-4c3e-ac06-f9cf1632affd_2000x2000.png 424w, https://substackcdn.com/image/fetch/$s_!rbSU!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F68bcf916-b443-4c3e-ac06-f9cf1632affd_2000x2000.png 848w, https://substackcdn.com/image/fetch/$s_!rbSU!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F68bcf916-b443-4c3e-ac06-f9cf1632affd_2000x2000.png 1272w, https://substackcdn.com/image/fetch/$s_!rbSU!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F68bcf916-b443-4c3e-ac06-f9cf1632affd_2000x2000.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>When I received it, I loved it instantly. The colors felt warm and cozy. It captured the atmosphere I had in mind. Sometimes you don&#8217;t need outside validation, you just know. <strong>This logo would be </strong><em><strong>The Coder Cafe</strong></em><strong>&#8217;s identity.</strong></p><p>In the end, I spent dozens of hours on this logo quest. You might think it was absurd, especially since I still hadn&#8217;t written a single post. But for me, visual identity had to come first. It&#8217;s like opening a restaurant: before designing the menu, you work on the atmosphere and decoration. Is it really absurd? I don&#8217;t think so.</p><p>The same applied to the tagline. I tried dozens of variations:</p><ul><li><p><em>One daily concept.</em></p></li><li><p><em>Learn daily, grow deeply.</em></p></li><li><p><em>A timeless concept with your coffee.</em></p></li><li><p><em>Brewed daily.</em></p></li><li><p>Etc.</p></li></ul><p>Eventually, I chose this one: <em>One concept with your coffee.</em> It captures exactly what I want: concepts, a cozy coffee-shop vibe, and a short, memorable line that feels right at home in <em>The Coder Cafe<a class="footnote-anchor" data-component-name="FootnoteAnchorToDOM" id="footnote-anchor-1" href="#footnote-1" target="_self">1</a></em>.</p><h1>Paid?</h1><p>Yes, initially, my idea was to create a paid newsletter. I even shared it with an ex-colleague who gave me blunt feedback:</p><div class="pullquote"><p>I won&#8217;t give you my money; you already work at Google.</p></div><p>From the outside, it may sound harsh, but I didn&#8217;t take it negatively. It actually made me reflect.</p><p>Why did I want to create a paid newsletter in the first place?</p><p>One of the things I enjoy most in life is <strong>learning and teaching</strong> (whether through writing, speaking, or any other format). If I could one day make a living from these two activities, that would be a dream job. It&#8217;s that simple.</p><p>I didn&#8217;t create <em>The Coder Cafe</em> because I needed more money (of course, Google pays well). I made it because, in my dreams, it could eventually become my main activity.</p><p>So, starting as a paid newsletter felt natural at the time. It was my way of committing fully to the project and testing whether <em>The Coder Cafe</em> could be <strong>more than just a side experiment</strong>.</p><h1>Launch</h1><p>By the end of August, it was time to start creating content.</p><p>Publishing one post a day is a lot. I did not want to feel pressured every evening to write for the next day, so I decided to build a buffer of posts. Throughout September, I wrote 25 posts plus their recaps, enough for six weeks of content. That felt safe.</p><p>On October 7, 2024, <em>The Coder Cafe</em> newsletter was ready for launch, and its first post went live &#127881;.</p><div class="digest-post-embed" data-attrs="{&quot;nodeId&quot;:&quot;26f05960-0868-46e4-904c-eb7df3480b63&quot;,&quot;caption&quot;:&quot;&quot;,&quot;cta&quot;:&quot;Read full story&quot;,&quot;showBylines&quot;:true,&quot;size&quot;:&quot;sm&quot;,&quot;isEditorNode&quot;:true,&quot;title&quot;:&quot;Premature Abstractions&quot;,&quot;publishedBylines&quot;:[{&quot;id&quot;:3529974,&quot;name&quot;:&quot;Teiva Harsanyi&quot;,&quot;bio&quot;:&quot;Senior Software Engineer at Google, Author, Speaker.&quot;,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/e800897a-277b-458c-a1a2-48b8b1b8d70c_500x500.png&quot;,&quot;is_guest&quot;:false,&quot;bestseller_tier&quot;:null}],&quot;post_date&quot;:&quot;2024-10-07T07:00:30.564Z&quot;,&quot;cover_image&quot;:&quot;https://substackcdn.com/image/fetch/$s_!4Q0t!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F102f22f6-18e4-42c8-8bc6-e16ca5a95ee4_1600x900.png&quot;,&quot;cover_image_alt&quot;:null,&quot;canonical_url&quot;:&quot;https://www.thecoder.cafe/p/premature-abstractions&quot;,&quot;section_name&quot;:&quot;Concepts&quot;,&quot;video_upload_id&quot;:null,&quot;id&quot;:147594637,&quot;type&quot;:&quot;newsletter&quot;,&quot;reaction_count&quot;:8,&quot;comment_count&quot;:0,&quot;publication_id&quot;:null,&quot;publication_name&quot;:&quot;The Coder Cafe&quot;,&quot;publication_logo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!OZXv!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa08792c7-cadb-478c-bce4-a10c5dc5ac05_1280x1280.png&quot;,&quot;belowTheFold&quot;:true,&quot;youtube_url&quot;:null,&quot;show_links&quot;:null,&quot;feed_url&quot;:null}"></div><p>To organize free and paid content, my idea was simple. All posts during the first four weeks would be free. The goal was to build an audience and show that my writing was worth paying for. After that period, I would keep one post free per week and place the others behind a paywall. The free post would act as a sample for new readers.</p><p>The first week showed decent traction. I reached 120 free subscribers and 8 paid subscribers. The number of free subs was modest, but the paid-to-free ratio was good. Yet, to be honest, many of the early paid subscribers were friends or people who wanted to support me. Very few were convinced by the paid value proposition yet.</p><p>The second week was better. One post reached the front page of Hacker News and passed 25k views. In a single day, subscriptions jumped to 291 free and 11 paid. That is when I saw the real impact of Hacker News:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!VKAQ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F45055813-2d16-41b0-b9db-8244c45d8889_1034x519.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!VKAQ!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F45055813-2d16-41b0-b9db-8244c45d8889_1034x519.png 424w, https://substackcdn.com/image/fetch/$s_!VKAQ!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F45055813-2d16-41b0-b9db-8244c45d8889_1034x519.png 848w, https://substackcdn.com/image/fetch/$s_!VKAQ!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F45055813-2d16-41b0-b9db-8244c45d8889_1034x519.png 1272w, https://substackcdn.com/image/fetch/$s_!VKAQ!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F45055813-2d16-41b0-b9db-8244c45d8889_1034x519.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!VKAQ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F45055813-2d16-41b0-b9db-8244c45d8889_1034x519.png" width="1034" height="519" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/45055813-2d16-41b0-b9db-8244c45d8889_1034x519.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:519,&quot;width&quot;:1034,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:37303,&quot;alt&quot;:&quot;Bar chart showing daily views of The Coder Cafe in October, with small bars under 2k views most days and two dramatic spikes around October 17&#8211;18 reaching over 12k views each.&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://www.thecoder.cafe/i/172122496?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F45055813-2d16-41b0-b9db-8244c45d8889_1034x519.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Bar chart showing daily views of The Coder Cafe in October, with small bars under 2k views most days and two dramatic spikes around October 17&#8211;18 reaching over 12k views each." title="Bar chart showing daily views of The Coder Cafe in October, with small bars under 2k views most days and two dramatic spikes around October 17&#8211;18 reaching over 12k views each." srcset="https://substackcdn.com/image/fetch/$s_!VKAQ!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F45055813-2d16-41b0-b9db-8244c45d8889_1034x519.png 424w, https://substackcdn.com/image/fetch/$s_!VKAQ!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F45055813-2d16-41b0-b9db-8244c45d8889_1034x519.png 848w, https://substackcdn.com/image/fetch/$s_!VKAQ!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F45055813-2d16-41b0-b9db-8244c45d8889_1034x519.png 1272w, https://substackcdn.com/image/fetch/$s_!VKAQ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F45055813-2d16-41b0-b9db-8244c45d8889_1034x519.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>However, barely two weeks after launch, my girlfriend and I learned something that would have a massive impact on my daily newsletter: <strong>we were going to have a baby</strong>.</p><p>Balancing my job at Google, my girlfriend, <em>some</em> social life, and a daily newsletter was already challenging. With a newborn on the way, it became absolutely impossible.</p><p>Just one week after launch, I was the happiest man alive, but my daily newsletter concept was already dead.</p><h1>Marketing</h1><p>A quick pause to talk about marketing.</p><p>I&#8217;m not going to overwhelm you with my &#8220;massive&#8221; marketing campaign (aka one post on LinkedIn and one post on X).</p><p>But one day, I came up with a fun idea. What if I hid a coupon for lifetime access to the newsletter somewhere on <a href="https://thecoder.cafe">thecoder.cafe</a> website? Developers love puzzles. Maybe this could go viral?</p><p>I started by hiding a tiny URL in the illustration designed by Eli Huynh:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!bSOz!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6d20bef1-bfc5-4f94-8df3-83a02c0110bc_1000x1000.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!bSOz!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6d20bef1-bfc5-4f94-8df3-83a02c0110bc_1000x1000.png 424w, https://substackcdn.com/image/fetch/$s_!bSOz!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6d20bef1-bfc5-4f94-8df3-83a02c0110bc_1000x1000.png 848w, https://substackcdn.com/image/fetch/$s_!bSOz!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6d20bef1-bfc5-4f94-8df3-83a02c0110bc_1000x1000.png 1272w, https://substackcdn.com/image/fetch/$s_!bSOz!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6d20bef1-bfc5-4f94-8df3-83a02c0110bc_1000x1000.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!bSOz!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6d20bef1-bfc5-4f94-8df3-83a02c0110bc_1000x1000.png" width="451" height="451" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/6d20bef1-bfc5-4f94-8df3-83a02c0110bc_1000x1000.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1000,&quot;width&quot;:1000,&quot;resizeWidth&quot;:451,&quot;bytes&quot;:1591615,&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://www.thecoder.cafe/i/172122496?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6d20bef1-bfc5-4f94-8df3-83a02c0110bc_1000x1000.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_!bSOz!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6d20bef1-bfc5-4f94-8df3-83a02c0110bc_1000x1000.png 424w, https://substackcdn.com/image/fetch/$s_!bSOz!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6d20bef1-bfc5-4f94-8df3-83a02c0110bc_1000x1000.png 848w, https://substackcdn.com/image/fetch/$s_!bSOz!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6d20bef1-bfc5-4f94-8df3-83a02c0110bc_1000x1000.png 1272w, https://substackcdn.com/image/fetch/$s_!bSOz!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6d20bef1-bfc5-4f94-8df3-83a02c0110bc_1000x1000.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><ul><li><p>When pasted in a browser, this URL pointed to a <a href="https://gist.github.com/teivah/ff2cdc20a7a562e65f953990fd51b8de">Gist</a> containing some JavaScript code.</p></li><li><p>Running the code displayed a Base64 string.</p></li><li><p>Decoding it three times gave another URL.</p></li><li><p>Visiting that link opened a blank page that printed yet another URL in the browser console.</p></li><li><p>That new URL pointed to an SVG file of a blue circle.</p></li><li><p>Opening the SVG&#8217;s source revealed a hidden message with a free coupon:</p><pre><code>&lt;svg width="200" height="200" xmlns="http://www.w3.org/2000/svg"&gt;
  &lt;desc&gt;Congratulations! Email me at contact@thecoder.cafe with the title "f63dee1e".&lt;/desc&gt;
  &lt;circle cx="100" cy="100" r="50" fill="blue"/&gt;
&lt;/svg&gt;</code></pre></li></ul><p>So, how many people found it?</p><p>None.</p><p>How many even reached the very first URL hidden in the image?</p><p>None.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!hoq8!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faa616306-c5ee-4ad5-ac3f-6c1421e68a53_1854x2002.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!hoq8!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faa616306-c5ee-4ad5-ac3f-6c1421e68a53_1854x2002.png 424w, https://substackcdn.com/image/fetch/$s_!hoq8!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faa616306-c5ee-4ad5-ac3f-6c1421e68a53_1854x2002.png 848w, https://substackcdn.com/image/fetch/$s_!hoq8!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faa616306-c5ee-4ad5-ac3f-6c1421e68a53_1854x2002.png 1272w, https://substackcdn.com/image/fetch/$s_!hoq8!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faa616306-c5ee-4ad5-ac3f-6c1421e68a53_1854x2002.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!hoq8!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faa616306-c5ee-4ad5-ac3f-6c1421e68a53_1854x2002.png" width="378" height="408.11538461538464" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/aa616306-c5ee-4ad5-ac3f-6c1421e68a53_1854x2002.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1572,&quot;width&quot;:1456,&quot;resizeWidth&quot;:378,&quot;bytes&quot;:1292983,&quot;alt&quot;:&quot;Black book cover with the title marketing genius in white text at the center. At the bottom right, &#8220;peter fisk&#8221; is shown with a red strikethrough, replaced by &#8220;Teiva Harsanyi&#8221; in white.&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://www.thecoder.cafe/i/172122496?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faa616306-c5ee-4ad5-ac3f-6c1421e68a53_1854x2002.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Black book cover with the title marketing genius in white text at the center. At the bottom right, &#8220;peter fisk&#8221; is shown with a red strikethrough, replaced by &#8220;Teiva Harsanyi&#8221; in white." title="Black book cover with the title marketing genius in white text at the center. At the bottom right, &#8220;peter fisk&#8221; is shown with a red strikethrough, replaced by &#8220;Teiva Harsanyi&#8221; in white." srcset="https://substackcdn.com/image/fetch/$s_!hoq8!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faa616306-c5ee-4ad5-ac3f-6c1421e68a53_1854x2002.png 424w, https://substackcdn.com/image/fetch/$s_!hoq8!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faa616306-c5ee-4ad5-ac3f-6c1421e68a53_1854x2002.png 848w, https://substackcdn.com/image/fetch/$s_!hoq8!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faa616306-c5ee-4ad5-ac3f-6c1421e68a53_1854x2002.png 1272w, https://substackcdn.com/image/fetch/$s_!hoq8!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faa616306-c5ee-4ad5-ac3f-6c1421e68a53_1854x2002.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">Get ready for my next book on marketing! (<a href="https://www.goodreads.com/book/show/760661.Marketing_Genius">Credits</a> to the original book)</figcaption></figure></div><h1>Stopping <em>The Coder Cafe</em>?</h1><p>So, I knew I would eventually have to stop publishing daily because I would run out of time. It broke my heart for one particular reason. With free subscribers, I can explore topics. If they do not like a post, they skip it. With paying subscribers, though, I felt accountable. People spend their own money on my content, and I cannot disappoint them. The daily newsletter was a contract between them and me, and I was about to break it.</p><p>In December, my buffer was shrinking fast, and I started to think seriously about stopping everything and refunding all paid subscriptions. Then something unexpected happened.</p><p>It was close to Christmas, and the post of the day was on <a href="https://www.thecoder.cafe/p/tdd">TDD</a>. I was at my parents&#8217; home when I received an email notification: a new paid subscriber had joined. And not just anyone, <span class="mention-wrap" data-attrs="{&quot;name&quot;:&quot;Kent Beck&quot;,&quot;id&quot;:24333739,&quot;type&quot;:&quot;user&quot;,&quot;url&quot;:null,&quot;photo_url&quot;:&quot;https://substackcdn.com/image/fetch/f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F000da410-0ed6-4a25-80b1-6a46e964ae0b_242x242.jpeg&quot;,&quot;uuid&quot;:&quot;6b805f25-8400-4b69-badc-fe82fbfdb12e&quot;}" data-component-name="MentionToDOM"></span> himself. Funny enough, I was not even praising TDD. I said that while it makes sense in some contexts, I do not really use it.</p><p>A few days later, Kent left a comment on one of my posts:</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!qZ6T!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F49858fe8-e5b5-4414-be02-8cf341e62269_1484x174.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!qZ6T!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F49858fe8-e5b5-4414-be02-8cf341e62269_1484x174.jpeg 424w, https://substackcdn.com/image/fetch/$s_!qZ6T!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F49858fe8-e5b5-4414-be02-8cf341e62269_1484x174.jpeg 848w, https://substackcdn.com/image/fetch/$s_!qZ6T!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F49858fe8-e5b5-4414-be02-8cf341e62269_1484x174.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!qZ6T!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F49858fe8-e5b5-4414-be02-8cf341e62269_1484x174.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!qZ6T!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F49858fe8-e5b5-4414-be02-8cf341e62269_1484x174.jpeg" width="1456" height="171" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/49858fe8-e5b5-4414-be02-8cf341e62269_1484x174.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:171,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:27755,&quot;alt&quot;:&quot;A LinkedIn comment by Kent Beck on the post &#8220;Software Design: Tidy First?&#8221; reads: &#8220;You are thinking thoroughly, and that's good. You're getting a lot right (that is, we seem to agree&#128522;), and that's good too. There's some stuff I disagree with, which is also good.&#8221;&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.thecoder.cafe/i/172122496?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F49858fe8-e5b5-4414-be02-8cf341e62269_1484x174.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="A LinkedIn comment by Kent Beck on the post &#8220;Software Design: Tidy First?&#8221; reads: &#8220;You are thinking thoroughly, and that's good. You're getting a lot right (that is, we seem to agree&#128522;), and that's good too. There's some stuff I disagree with, which is also good.&#8221;" title="A LinkedIn comment by Kent Beck on the post &#8220;Software Design: Tidy First?&#8221; reads: &#8220;You are thinking thoroughly, and that's good. You're getting a lot right (that is, we seem to agree&#128522;), and that's good too. There's some stuff I disagree with, which is also good.&#8221;" srcset="https://substackcdn.com/image/fetch/$s_!qZ6T!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F49858fe8-e5b5-4414-be02-8cf341e62269_1484x174.jpeg 424w, https://substackcdn.com/image/fetch/$s_!qZ6T!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F49858fe8-e5b5-4414-be02-8cf341e62269_1484x174.jpeg 848w, https://substackcdn.com/image/fetch/$s_!qZ6T!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F49858fe8-e5b5-4414-be02-8cf341e62269_1484x174.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!qZ6T!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F49858fe8-e5b5-4414-be02-8cf341e62269_1484x174.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><p><strong>Looking back, that comment changed everything for me.</strong> It gave me confidence in myself and in my writing. If someone like Kent Beck found value in what I was doing, then maybe there was something worth continuing.</p><p>Right after that, I took the bull by the horns and published a post titled <em><a href="https://www.thecoder.cafe/p/pause">Stepping Back to Move Forward</a></em>. I explained that I would stop paid subscriptions, and I also pointed out a deeper issue with my daily format.</p><p>As I explained, each week had a theme, for example, unit tests. Due to limited writing time, the daily posts were not very long. Instead of writing one in-depth article, I split the topic into four posts. Since only one of them was free, that was the one I shared on platforms like Reddit. The feedback I got was often that it lacked depth.</p><p>I could have argued online: <em>&#8220;But the depth is spread across four posts. If you read the whole series, you&#8217;ll see it. You just have to become a paid subscriber. Blah blah blah.&#8221;</em></p><p>Let&#8217;s be honest. Nobody would have cared. Readers judged the content they saw. If it looked shallow, they were right, period. This made it hard to attract new people, and apart from the post that went viral, most of my content stayed relatively anonymous.</p><p>One week later, I sent a private email to all paid subscribers. I explained I was stopping paid subscriptions and issuing refunds:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!-qZ3!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F063c1fc6-38cb-46e7-9348-7fb6daf7e9eb_683x818.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!-qZ3!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F063c1fc6-38cb-46e7-9348-7fb6daf7e9eb_683x818.png 424w, https://substackcdn.com/image/fetch/$s_!-qZ3!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F063c1fc6-38cb-46e7-9348-7fb6daf7e9eb_683x818.png 848w, https://substackcdn.com/image/fetch/$s_!-qZ3!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F063c1fc6-38cb-46e7-9348-7fb6daf7e9eb_683x818.png 1272w, https://substackcdn.com/image/fetch/$s_!-qZ3!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F063c1fc6-38cb-46e7-9348-7fb6daf7e9eb_683x818.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!-qZ3!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F063c1fc6-38cb-46e7-9348-7fb6daf7e9eb_683x818.png" width="501" height="600.0263543191801" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/063c1fc6-38cb-46e7-9348-7fb6daf7e9eb_683x818.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:818,&quot;width&quot;:683,&quot;resizeWidth&quot;:501,&quot;bytes&quot;:132042,&quot;alt&quot;:&quot;Screenshot of an email titled &#8220;Stopping Paid Subscriptions&#8221; where the author announces refunds to all paid subscribers and a shift to free posts.&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://www.thecoder.cafe/i/172122496?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F063c1fc6-38cb-46e7-9348-7fb6daf7e9eb_683x818.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Screenshot of an email titled &#8220;Stopping Paid Subscriptions&#8221; where the author announces refunds to all paid subscribers and a shift to free posts." title="Screenshot of an email titled &#8220;Stopping Paid Subscriptions&#8221; where the author announces refunds to all paid subscribers and a shift to free posts." srcset="https://substackcdn.com/image/fetch/$s_!-qZ3!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F063c1fc6-38cb-46e7-9348-7fb6daf7e9eb_683x818.png 424w, https://substackcdn.com/image/fetch/$s_!-qZ3!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F063c1fc6-38cb-46e7-9348-7fb6daf7e9eb_683x818.png 848w, https://substackcdn.com/image/fetch/$s_!-qZ3!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F063c1fc6-38cb-46e7-9348-7fb6daf7e9eb_683x818.png 1272w, https://substackcdn.com/image/fetch/$s_!-qZ3!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F063c1fc6-38cb-46e7-9348-7fb6daf7e9eb_683x818.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>On January 3rd, I had 747 free subscribers and went from 15 to 0 paid. From that moment on, <em>The Coder Cafe</em> became about <strong>enjoying the writing without pressure to deliver</strong> and taking the time to delve more into each topic.</p><h1>What Followed</h1><p>In March, I decided to stop blogging on Medium and fully switch to Substack. I feel at home here. I also wondered what would happen if I wrote more personal reflections and stories rather than concepts. So, I created a new section called <a href="https://www.thecoder.cafe/s/lattes-stories">Lattes &amp; Stories</a> (this post is in this section). I really enjoy writing in a more storytelling style.</p><p>In April, I reached the 1,000 subscriber mark. To celebrate, I organized a <a href="https://www.thecoder.cafe/p/1000">coding challenge</a> and gathered around $1,000 worth of prizes from <a href="https://www.keychron.com/">Keychron</a>, <span class="mention-wrap" data-attrs="{&quot;name&quot;:&quot;The Pragmatic Engineer&quot;,&quot;id&quot;:458709,&quot;type&quot;:&quot;pub&quot;,&quot;url&quot;:&quot;https://open.substack.com/pub/pragmaticengineer&quot;,&quot;photo_url&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/5ecbf7ac-260b-423b-8493-26783bf01f06_600x600.png&quot;,&quot;uuid&quot;:&quot;4a576f35-67fc-453f-b389-23b3075e8054&quot;}" data-component-name="MentionToDOM"></span>, <a href="https://www.jetbrains.com/">JetBrains</a>, and <a href="https://www.oreilly.com/">O&#8217;Reilly</a>. Thanks again to the sponsors! It was a lot of fun to run. Maybe I will do another one later. $10,000 of prizes for 10,000 subs? We can still dream.</p><p>Also in April, the idea of building a community around <em>The Coder Cafe</em> started to emerge. I wanted to create a sense of belonging, where members feel that they matter to one another and to the group. So, I created a Discord server. I&#8217;m still exploring options to spark engagement.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://discord.thecoder.cafe/&quot;,&quot;text&quot;:&quot;Join the Discord community&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://discord.thecoder.cafe/"><span>Join the Discord community</span></a></p><p>In May, something surreal happened: <em><span class="mention-wrap" data-attrs="{&quot;name&quot;:&quot;The Pragmatic Engineer&quot;,&quot;id&quot;:458709,&quot;type&quot;:&quot;pub&quot;,&quot;url&quot;:&quot;https://open.substack.com/pub/pragmaticengineer&quot;,&quot;photo_url&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/5ecbf7ac-260b-423b-8493-26783bf01f06_600x600.png&quot;,&quot;uuid&quot;:&quot;7d7cbf2f-5c1b-40b2-b04f-2c9df3ccd480&quot;}" data-component-name="MentionToDOM"></span></em>, the very newsletter that inspired me, recommended <em>The Coder Cafe</em><a class="footnote-anchor" data-component-name="FootnoteAnchorToDOM" id="footnote-anchor-2" href="#footnote-2" target="_self">2</a>.</p><p>In September, I converted the content of year one into a 260-page book, available on <a href="https://leanpub.com/thecodercafe-season1/c/PqAS8qZ0EJx8">Leanpub</a>.</p><p>Also in September, I enabled sponsorships to explore partnerships with companies interested in supporting <em>The Coder Cafe</em>. If you would like to partner on a post, you can learn more <a href="https://www.thecoder.cafe/p/sponsorships">here</a>.</p><p>Some stats after one year:</p><ul><li><p><em>The Coder Cafe</em> reached more than 3,600 subscribers across 119 countries.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!nUvM!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F646544cb-76f8-403a-b1b7-bd81d90059bc_1015x466.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!nUvM!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F646544cb-76f8-403a-b1b7-bd81d90059bc_1015x466.png 424w, https://substackcdn.com/image/fetch/$s_!nUvM!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F646544cb-76f8-403a-b1b7-bd81d90059bc_1015x466.png 848w, https://substackcdn.com/image/fetch/$s_!nUvM!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F646544cb-76f8-403a-b1b7-bd81d90059bc_1015x466.png 1272w, https://substackcdn.com/image/fetch/$s_!nUvM!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F646544cb-76f8-403a-b1b7-bd81d90059bc_1015x466.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!nUvM!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F646544cb-76f8-403a-b1b7-bd81d90059bc_1015x466.png" width="600" height="275.4679802955665" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/646544cb-76f8-403a-b1b7-bd81d90059bc_1015x466.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:466,&quot;width&quot;:1015,&quot;resizeWidth&quot;:600,&quot;bytes&quot;:132967,&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://www.thecoder.cafe/i/172122496?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F646544cb-76f8-403a-b1b7-bd81d90059bc_1015x466.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_!nUvM!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F646544cb-76f8-403a-b1b7-bd81d90059bc_1015x466.png 424w, https://substackcdn.com/image/fetch/$s_!nUvM!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F646544cb-76f8-403a-b1b7-bd81d90059bc_1015x466.png 848w, https://substackcdn.com/image/fetch/$s_!nUvM!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F646544cb-76f8-403a-b1b7-bd81d90059bc_1015x466.png 1272w, https://substackcdn.com/image/fetch/$s_!nUvM!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F646544cb-76f8-403a-b1b7-bd81d90059bc_1015x466.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>I wrote 78 posts and collected 309,432 views.</p></li><li><p>Two posts stood out and together represent about one-third of total views:</p><ul><li><p><em><a href="https://read.thecoder.cafe/p/100-go-mistakes">So, I Wrote a Book: The Story Behind 100 Go Mistakes and How to Avoid Them</a></em>. I started writing this as soon as I finished my book, but it took three years to get the perspective to complete it. This post has a special meaning for me.</p></li><li><p><em><a href="https://read.thecoder.cafe/p/complex-systems">Working on Complex Systems: What I Learned Working at Google</a></em>. A deep dive into complex systems, written during a holiday with my brother in a city life retreat in the middle of Sweden. That trip also gave the post a special meaning.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!fSmD!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff20eb4a9-e0a7-4812-a284-09891f36e471_3024x4032.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!fSmD!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff20eb4a9-e0a7-4812-a284-09891f36e471_3024x4032.jpeg 424w, https://substackcdn.com/image/fetch/$s_!fSmD!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff20eb4a9-e0a7-4812-a284-09891f36e471_3024x4032.jpeg 848w, https://substackcdn.com/image/fetch/$s_!fSmD!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff20eb4a9-e0a7-4812-a284-09891f36e471_3024x4032.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!fSmD!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff20eb4a9-e0a7-4812-a284-09891f36e471_3024x4032.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!fSmD!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff20eb4a9-e0a7-4812-a284-09891f36e471_3024x4032.jpeg" width="442" height="589.2321428571429" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/f20eb4a9-e0a7-4812-a284-09891f36e471_3024x4032.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1941,&quot;width&quot;:1456,&quot;resizeWidth&quot;:442,&quot;bytes&quot;:2528871,&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://www.thecoder.cafe/i/172122496?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff20eb4a9-e0a7-4812-a284-09891f36e471_3024x4032.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_!fSmD!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff20eb4a9-e0a7-4812-a284-09891f36e471_3024x4032.jpeg 424w, https://substackcdn.com/image/fetch/$s_!fSmD!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff20eb4a9-e0a7-4812-a284-09891f36e471_3024x4032.jpeg 848w, https://substackcdn.com/image/fetch/$s_!fSmD!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff20eb4a9-e0a7-4812-a284-09891f36e471_3024x4032.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!fSmD!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff20eb4a9-e0a7-4812-a284-09891f36e471_3024x4032.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><figcaption class="image-caption">Writing from there with that view was unforgettable.</figcaption></figure></div></li></ul></li></ul><h1>Conclusion and Future</h1><p>So, is <em>The Coder Cafe</em> a success story?</p><p>Financially, no. Because Stripe took fees on subscriptions, I refunded more than I received, so the balance is even negative &#128517;.</p><p>But in the end, after one year, money wasn&#8217;t the measure of success. Positive feedback, helping readers, and rediscovering the joy of sharing stuff mattered more. It also pushed me to explore many topics across tech and non-tech.</p><p>I haven&#8217;t let go of the dream of making this my living, just not yet. My priority now is reaching more people and building a stronger community. We will see where that journey leads.</p><p>A glimpse into the future. I will continue to write about concepts and occasionally share stories. I will also launch a new section where we will pick a system and build it from scratch, step by step, week after week. I am currently collaborating with a company to craft the content of the first series. I am looking forward to releasing it.</p><p>Speaking of collaboration, I would love to explore this aspect, whether it&#8217;s partnering with companies, inviting other writers<a class="footnote-anchor" data-component-name="FootnoteAnchorToDOM" id="footnote-anchor-3" href="#footnote-3" target="_self">3</a>, or featuring people with a worthy story. We will see.</p><p>&#129782; <strong>I love sharing, and you give me an audience. Thank you for that.</strong></p><p>See you next week for a (long) post on CRDTs.</p><p>Teiva</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://read.thecoder.cafe/" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!ZoDz!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc5b47134-fe05-42e3-9aaf-dd2758923a98_1200x600.png 424w, https://substackcdn.com/image/fetch/$s_!ZoDz!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc5b47134-fe05-42e3-9aaf-dd2758923a98_1200x600.png 848w, https://substackcdn.com/image/fetch/$s_!ZoDz!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc5b47134-fe05-42e3-9aaf-dd2758923a98_1200x600.png 1272w, https://substackcdn.com/image/fetch/$s_!ZoDz!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc5b47134-fe05-42e3-9aaf-dd2758923a98_1200x600.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!ZoDz!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc5b47134-fe05-42e3-9aaf-dd2758923a98_1200x600.png" width="449" height="224.5" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c5b47134-fe05-42e3-9aaf-dd2758923a98_1200x600.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:600,&quot;width&quot;:1200,&quot;resizeWidth&quot;:449,&quot;bytes&quot;:82853,&quot;alt&quot;:&quot;The Coder Cafe: Learn One Concept With Your Coffee.&quot;,&quot;title&quot;:&quot;The Coder Cafe: Learn One Concept With Your Coffee.&quot;,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:&quot;https://read.thecoder.cafe/&quot;,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.thecoder.cafe/i/151119215?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc5b47134-fe05-42e3-9aaf-dd2758923a98_1200x600.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="The Coder Cafe: Learn One Concept With Your Coffee." title="The Coder Cafe: Learn One Concept With Your Coffee." srcset="https://substackcdn.com/image/fetch/$s_!ZoDz!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc5b47134-fe05-42e3-9aaf-dd2758923a98_1200x600.png 424w, https://substackcdn.com/image/fetch/$s_!ZoDz!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc5b47134-fe05-42e3-9aaf-dd2758923a98_1200x600.png 848w, https://substackcdn.com/image/fetch/$s_!ZoDz!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc5b47134-fe05-42e3-9aaf-dd2758923a98_1200x600.png 1272w, https://substackcdn.com/image/fetch/$s_!ZoDz!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc5b47134-fe05-42e3-9aaf-dd2758923a98_1200x600.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://read.thecoder.cafe/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">AI is getting better every day. Are you? At The Coder Cafe, we serve fundamental concepts to make you an engineer that AI can&#8217;t replace. Written by a Google SWE, trusted by thousands of engineers worldwide.</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><h1>Resources</h1><h2>More From the <em><a href="https://read.thecoder.cafe/s/lattes-stories">Lattes &amp; Stories</a></em> Section</h2><ul><li><p><a href="https://read.thecoder.cafe/p/100-go-mistakes">So, I Wrote a Book</a></p></li><li><p><a href="https://read.thecoder.cafe/p/vim-keybindings">Why I Switched to Vim Keybindings</a></p></li><li><p><a href="https://read.thecoder.cafe/p/paternity-leave">What I Learned During My Paternity Leave</a></p></li></ul><h2>Sources</h2><ul><li><p><a href="https://www.goodreads.com/book/show/55189231-the-art-and-business-of-online-writing">The Art and Business of Online Writing</a></p></li></ul><div><hr></div><p>&#10084;&#65039; <em>If you enjoyed this post, please hit the like button.</em></p><div class="footnote" data-component-name="FootnoteToDOM"><a id="footnote-1" href="#footnote-anchor-1" class="footnote-number" contenteditable="false" target="_self">1</a><div class="footnote-content"><p>I will revisit this tagline months later to <em>Learn one concept with your coffee</em>.</p></div></div><div class="footnote" data-component-name="FootnoteToDOM"><a id="footnote-2" href="#footnote-anchor-2" class="footnote-number" contenteditable="false" target="_self">2</a><div class="footnote-content"><p>Substack recommendations are a feature where one newsletter can <em>endorse</em> another, so its readers get suggested to subscribe.</p></div></div><div class="footnote" data-component-name="FootnoteToDOM"><a id="footnote-3" href="#footnote-anchor-3" class="footnote-number" contenteditable="false" target="_self">3</a><div class="footnote-content"><p>I haven&#8217;t yet formalized the process, but if you&#8217;re interested in contributing as a guest writer, let&#8217;s <a href="https://www.thecoder.cafe/p/contact">discuss</a>.</p></div></div>]]></content:encoded></item><item><title><![CDATA[What I Learned During My Paternity Leave]]></title><description><![CDATA[Life itself is unrepeatable&#160;in its details.]]></description><link>https://read.thecoder.cafe/p/paternity-leave</link><guid isPermaLink="false">https://read.thecoder.cafe/p/paternity-leave</guid><dc:creator><![CDATA[Teiva Harsanyi]]></dc:creator><pubDate>Tue, 16 Sep 2025 10:00:54 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/86a76dc0-2637-414b-964c-99df5901b3a6_1600x800.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>&#9749; <em>Welcome to The Coder Cafe! Today is a recap of my paternity leave, focusing on the things I read and learned. Get cozy, grab a coffee, and let&#8217;s begin!</em></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!FGMI!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F42323977-1cda-4175-b38b-8efb75c41cb4_1600x800.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!FGMI!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F42323977-1cda-4175-b38b-8efb75c41cb4_1600x800.png 424w, https://substackcdn.com/image/fetch/$s_!FGMI!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F42323977-1cda-4175-b38b-8efb75c41cb4_1600x800.png 848w, https://substackcdn.com/image/fetch/$s_!FGMI!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F42323977-1cda-4175-b38b-8efb75c41cb4_1600x800.png 1272w, https://substackcdn.com/image/fetch/$s_!FGMI!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F42323977-1cda-4175-b38b-8efb75c41cb4_1600x800.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!FGMI!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F42323977-1cda-4175-b38b-8efb75c41cb4_1600x800.png" width="1456" height="728" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/42323977-1cda-4175-b38b-8efb75c41cb4_1600x800.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:728,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1564445,&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.thecoder.cafe/i/171597387?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F42323977-1cda-4175-b38b-8efb75c41cb4_1600x800.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_!FGMI!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F42323977-1cda-4175-b38b-8efb75c41cb4_1600x800.png 424w, https://substackcdn.com/image/fetch/$s_!FGMI!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F42323977-1cda-4175-b38b-8efb75c41cb4_1600x800.png 848w, https://substackcdn.com/image/fetch/$s_!FGMI!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F42323977-1cda-4175-b38b-8efb75c41cb4_1600x800.png 1272w, https://substackcdn.com/image/fetch/$s_!FGMI!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F42323977-1cda-4175-b38b-8efb75c41cb4_1600x800.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>At Google, we get 18 weeks of paternity leave (yes, that&#8217;s amazing). Since the birth of my baby at the end of May, I&#8217;ve been out of the office and will be back at work next week. These months were the best time to spend with my newborn, but also a nice chance to read, learn, and try new things. Here are some of the technical and non-technical things I got into.</p><h1>Technical Stuff</h1><h2>Code Health Guardian</h2><p>I started reading <em><a href="https://www.goodreads.com/book/show/220966325-code-health-guardian">Code Health Guardian</a></em>. Let me jump straight: <strong>it&#8217;s one of the best books I&#8217;ve ever read on software engineering</strong>. Period.</p><p>Don&#8217;t be fooled by the use of &#8220;AI&#8220; in the subtitle (&#8220;<em>The Old-New Role of a Human Programmer in the AI Era</em>&#8221;). The focus is on code health. It covers various topics such as complexity, causes of complexity, documentation, interfaces, code discoverability, and functional programming.</p><p>To me, it felt like a more modern (and better) version than Clean Code.</p><p>A quote that perfectly summarizes my love for this book:</p><div class="pullquote"><p>Clever in programming is a compliment, clever in software engineering is an accusation.</p></div><p>I strongly recommend this book.</p><h2>Systems Thinking</h2><p><em><a href="https://www.goodreads.com/book/show/205977642-learning-systems-thinking">Learning Systems Thinking</a></em> is a book about the concept of systems thinking.</p><p>What&#8217;s system thinking? Modern software is no longer just isolated applications; they are becoming systems of software. Systems thinking invites us to shift our perspective from focusing on a single software to looking at the larger system it belongs to, and how the parts interact.</p><p>One interesting idea in the book is the Iceberg model. It suggests that what we see (the events) is only the tip of the iceberg. Beneath the surface, there are patterns of behavior, deeper systemic structures, and even mental models that shape how the system works:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!fNAB!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1d414ea6-6a7a-4da4-a2c5-7ecdd8cd2515_552x557.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!fNAB!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1d414ea6-6a7a-4da4-a2c5-7ecdd8cd2515_552x557.png 424w, https://substackcdn.com/image/fetch/$s_!fNAB!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1d414ea6-6a7a-4da4-a2c5-7ecdd8cd2515_552x557.png 848w, https://substackcdn.com/image/fetch/$s_!fNAB!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1d414ea6-6a7a-4da4-a2c5-7ecdd8cd2515_552x557.png 1272w, https://substackcdn.com/image/fetch/$s_!fNAB!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1d414ea6-6a7a-4da4-a2c5-7ecdd8cd2515_552x557.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!fNAB!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1d414ea6-6a7a-4da4-a2c5-7ecdd8cd2515_552x557.png" width="450" height="454.07608695652175" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/1d414ea6-6a7a-4da4-a2c5-7ecdd8cd2515_552x557.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:557,&quot;width&quot;:552,&quot;resizeWidth&quot;:450,&quot;bytes&quot;:209433,&quot;alt&quot;:&quot;Iceberg diagram of the systems thinking Iceberg model. The visible tip shows &#8220;Events.&#8221; Below the surface are &#8220;Patterns and trends,&#8221; &#8220;Structure,&#8221; and &#8220;Mental models,&#8221; representing deeper, invisible layers.&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://www.thecoder.cafe/i/171597387?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1d414ea6-6a7a-4da4-a2c5-7ecdd8cd2515_552x557.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Iceberg diagram of the systems thinking Iceberg model. The visible tip shows &#8220;Events.&#8221; Below the surface are &#8220;Patterns and trends,&#8221; &#8220;Structure,&#8221; and &#8220;Mental models,&#8221; representing deeper, invisible layers." title="Iceberg diagram of the systems thinking Iceberg model. The visible tip shows &#8220;Events.&#8221; Below the surface are &#8220;Patterns and trends,&#8221; &#8220;Structure,&#8221; and &#8220;Mental models,&#8221; representing deeper, invisible layers." srcset="https://substackcdn.com/image/fetch/$s_!fNAB!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1d414ea6-6a7a-4da4-a2c5-7ecdd8cd2515_552x557.png 424w, https://substackcdn.com/image/fetch/$s_!fNAB!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1d414ea6-6a7a-4da4-a2c5-7ecdd8cd2515_552x557.png 848w, https://substackcdn.com/image/fetch/$s_!fNAB!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1d414ea6-6a7a-4da4-a2c5-7ecdd8cd2515_552x557.png 1272w, https://substackcdn.com/image/fetch/$s_!fNAB!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1d414ea6-6a7a-4da4-a2c5-7ecdd8cd2515_552x557.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 lesson is that when working with systems, <strong>we should move from reacting to events to understanding the patterns and structures that create them, so we can design better long-term solutions</strong>.</p><p>The book was a good introduction. Yet, in retrospect, I would have liked it to give more concrete actions or applied examples. I will need to follow up with another resource to go deeper into practical applications of systems thinking.</p><blockquote><p><strong>NOTE</strong>: <em>Have you read my post on complex systems? It&#8217;s the most-read post of The Coder Cafe.</em></p><div class="digest-post-embed" data-attrs="{&quot;nodeId&quot;:&quot;8fcd7800-f770-4323-b7cc-4b38487465e6&quot;,&quot;caption&quot;:&quot;&quot;,&quot;cta&quot;:&quot;Read full story&quot;,&quot;showBylines&quot;:true,&quot;size&quot;:&quot;sm&quot;,&quot;isEditorNode&quot;:true,&quot;title&quot;:&quot;Working on Complex Systems&quot;,&quot;publishedBylines&quot;:[{&quot;id&quot;:3529974,&quot;name&quot;:&quot;Teiva Harsanyi&quot;,&quot;bio&quot;:&quot;Senior Software Engineer at Google, Author, Speaker.&quot;,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/e800897a-277b-458c-a1a2-48b8b1b8d70c_500x500.png&quot;,&quot;is_guest&quot;:false,&quot;bestseller_tier&quot;:null}],&quot;post_date&quot;:&quot;2025-05-07T08:00:17.347Z&quot;,&quot;cover_image&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/457f29fc-ade4-47d0-a480-f56c6493ef70_1536x768.png&quot;,&quot;cover_image_alt&quot;:null,&quot;canonical_url&quot;:&quot;https://www.thecoder.cafe/p/complex-systems&quot;,&quot;section_name&quot;:&quot;Concepts&quot;,&quot;video_upload_id&quot;:null,&quot;id&quot;:157821219,&quot;type&quot;:&quot;newsletter&quot;,&quot;reaction_count&quot;:51,&quot;comment_count&quot;:0,&quot;publication_id&quot;:null,&quot;publication_name&quot;:&quot;The Coder Cafe&quot;,&quot;publication_logo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!OZXv!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa08792c7-cadb-478c-bce4-a10c5dc5ac05_1280x1280.png&quot;,&quot;belowTheFold&quot;:true,&quot;youtube_url&quot;:null,&quot;show_links&quot;:null,&quot;feed_url&quot;:null}"></div></blockquote><h2>Learning C++</h2><p>During my leave, I started learning C++.</p><p>Why? <strong>At Google, many systems are developed in C++.</strong> One I&#8217;ve been involved with is <a href="https://research.google/pubs/large-scale-cluster-management-at-google-with-borg/">Borg</a>. Because I hadn&#8217;t done C/C++ since my studies, every pull request I made was painful. I wanted to improve that.</p><p>I started with <em><a href="https://www.goodreads.com/book/show/62644973-tour-of-c-a">A Tour of C++</a></em> by Bjarne Stroustrup. It&#8217;s refreshingly short for a C++ book (about 300 pages). That was my entry point. Let&#8217;s see what will come next<a class="footnote-anchor" data-component-name="FootnoteAnchorToDOM" id="footnote-anchor-1" href="#footnote-1" target="_self">1</a>.</p><blockquote><p><strong>NOTE</strong>: <em>Did you know that Google uses C++ without exceptions? Mostly for performance and maintainability reasons, functions return an </em><code>absl::Status</code><em><a class="footnote-anchor" data-component-name="FootnoteAnchorToDOM" id="footnote-anchor-2" href="#footnote-2" target="_self">2</a>, which is similar to Rust&#8217;s </em><code>Result</code><em>.</em></p></blockquote><h2>Whitepapers</h2><p>At some point, I wanted to delve deeper into distributed systems, but I felt like I had already read most of the well-known books on the topic.</p><p>What I had completely missed until then was the angle of technical whitepapers. Most of them are more challenging to read than blog posts, but <strong>they offer a depth that can&#8217;t be matched</strong>.</p><p>I read a few during my leave, including <a href="https://drive.google.com/file/d/1noUO2CigYcJV_du_5FSIwSocGkW0NG_L/view">F1: A Distributed SQL Database That Scales</a> and <a href="https://drive.google.com/file/d/1ztxrZTh3Gn9WWoqprDCU80MjOoXnL6Es/view">Amazon DynamoDB: A Scalable, Predictably Performant, and Fully Managed NoSQL Database Service</a>.</p><p>After my paternity leave, I plan to continue exploring more of them as they have become one of my favorite sources of technical insight.</p><p>For discovery, I used <span class="mention-wrap" data-attrs="{&quot;name&quot;:&quot;Arpit Bhayani&quot;,&quot;id&quot;:5901422,&quot;type&quot;:&quot;user&quot;,&quot;url&quot;:null,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/325ffa04-c40a-4417-b6c3-4f2f01b4a042_1000x1000.png&quot;,&quot;uuid&quot;:&quot;c6629d32-a596-4c3c-ba3b-852e16576c3f&quot;}" data-component-name="MentionToDOM"></span>&#8216;s <a href="https://arpitbhayani.me/papershelf">papershelf</a>.</p><h1>Non-Technical Stuff</h1><h2>The Mom Test</h2><p><em><a href="https://www.goodreads.com/book/show/52283963-the-mom-test">The Mom Test</a></em> is a great book that explores patterns and anti-patterns when discussing business or product ideas with customers.</p><p>The core idea is this: <strong>if we pitch an idea to our mom, she will tell us it&#8217;s great, even if it&#8217;s not</strong>. Customers often do the same. They don&#8217;t want to hurt our feelings, so they give polite feedback instead of useful feedback.</p><p>The solution is to avoid asking opinion-based questions like &#8220;<em>Do you think it&#8217;s a good idea?</em>&#8221; Instead, we should ask about real experiences and behaviors, questions that even our mom couldn&#8217;t fake. For example:</p><ul><li><p>Bad:</p><ul><li><p>&#8220;<em>Would you buy a product which did X?</em>&#8221;</p></li><li><p>&#8220;<em>How much would you pay for X?</em>&#8221;</p></li></ul></li><li><p>Good:</p><ul><li><p>&#8220;<em>How are you dealing with it now?</em>&#8221;</p></li><li><p>&#8220;<em>Why do you bother?</em>&#8221;</p></li><li><p>&#8220;<em>Talk me through the last time that happened.</em>&#8221;</p></li></ul></li></ul><p>I haven&#8217;t run customer interviews myself, but I&#8217;ve participated in some. Interestingly enough, many of the anti-patterns from the book showed up in those meetings. This wasn&#8217;t a book with an immediate outcome for me, but it broadened my perspective, and that&#8217;s always valuable.</p><h2>The Art of Explanation</h2><p><em><a href="https://www.goodreads.com/book/show/64631477-the-art-of-explanation">The Art of Explanation</a></em> is a book written by a BBC presenter and journalist. The author describes how to clearly explain any topics, focusing on ten main attributes:</p><ol><li><p>Simplicity: Is this the simplest way we can say this?</p></li><li><p>Essential detail: What detail is essential to this explanation?</p></li><li><p>Complexity: If a topic is complex, we can&#8217;t dodge the complexities and hope to explain something well. It reminded me of this illustration:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!_kz4!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F918cde5d-ff62-4394-89e6-b776c5548b1e_599x458.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!_kz4!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F918cde5d-ff62-4394-89e6-b776c5548b1e_599x458.jpeg 424w, https://substackcdn.com/image/fetch/$s_!_kz4!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F918cde5d-ff62-4394-89e6-b776c5548b1e_599x458.jpeg 848w, https://substackcdn.com/image/fetch/$s_!_kz4!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F918cde5d-ff62-4394-89e6-b776c5548b1e_599x458.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!_kz4!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F918cde5d-ff62-4394-89e6-b776c5548b1e_599x458.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!_kz4!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F918cde5d-ff62-4394-89e6-b776c5548b1e_599x458.jpeg" width="499" height="381.5392320534224" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/918cde5d-ff62-4394-89e6-b776c5548b1e_599x458.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:458,&quot;width&quot;:599,&quot;resizeWidth&quot;:499,&quot;bytes&quot;:60068,&quot;alt&quot;:&quot;Cartoon showing two signs above a doorway labeled &#8220;Answers.&#8221; One sign points left to &#8220;Simple but wrong,&#8221; where a long line of people are waiting. The other points right to &#8220;Complex but right,&#8221; with only a few people walking down a winding path.&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.thecoder.cafe/i/171597387?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F918cde5d-ff62-4394-89e6-b776c5548b1e_599x458.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Cartoon showing two signs above a doorway labeled &#8220;Answers.&#8221; One sign points left to &#8220;Simple but wrong,&#8221; where a long line of people are waiting. The other points right to &#8220;Complex but right,&#8221; with only a few people walking down a winding path." title="Cartoon showing two signs above a doorway labeled &#8220;Answers.&#8221; One sign points left to &#8220;Simple but wrong,&#8221; where a long line of people are waiting. The other points right to &#8220;Complex but right,&#8221; with only a few people walking down a winding path." srcset="https://substackcdn.com/image/fetch/$s_!_kz4!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F918cde5d-ff62-4394-89e6-b776c5548b1e_599x458.jpeg 424w, https://substackcdn.com/image/fetch/$s_!_kz4!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F918cde5d-ff62-4394-89e6-b776c5548b1e_599x458.jpeg 848w, https://substackcdn.com/image/fetch/$s_!_kz4!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F918cde5d-ff62-4394-89e6-b776c5548b1e_599x458.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!_kz4!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F918cde5d-ff62-4394-89e6-b776c5548b1e_599x458.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></li><li><p>Efficiency: Is this the most succinct way we can explain this?</p></li><li><p>Precision: Are we saying exactly what we want to communicate?</p></li><li><p>Context: Are we provided all the necessary context for people to understand the topic?</p></li><li><p>No distractions: Are there any verbal, written or visual distractions? (It reminded me of rule #9 <a href="https://www.thecoder.cafe/p/10-technical-writing-rules">here</a>.)</p></li><li><p>Engaging: Are there times when it&#8217;s easy to lose focus? Lots of good things on how to maintain a good flow, such as making sure we move from one sentence to another logically.</p></li><li><p>Useful: Have we answered the questions that people may have?</p></li><li><p>Clarity of purpose: Above all else, what are we trying to explain?</p></li></ol><p>The book gave me a <strong>practical checklist I can return to whenever I need to convey something complex</strong>. It was also a reminder that being clear isn&#8217;t a gift, it&#8217;s a skill worth practicing regularly.</p><h2>Made to Stick</h2><p><em><a href="https://www.goodreads.com/book/show/69242.Made_to_Stick">Made to Stick</a></em> is a book that focuses on the question of why some ideas have a lasting impact while others don&#8217;t. The authors introduce their SUCCESs framework to make ideas <em>stick</em>:</p><ul><li><p>Simple: Find the core of an idea. The more we reduce the amount of information in an idea, the stickier it will be. I loved this line:</p><div class="pullquote"><p>When you say three things, you say nothing.</p></div></li><li><p>Unexpected: A great way to catch attention is with a surprise. We can&#8217;t demand attention; we must attract it, and one of the easiest ways is to convey something unexpected by breaking an existing pattern.</p></li><li><p>Concrete: Our brains are wired to remember concrete data.</p></li><li><p>Credible: The more credible we are, the more an idea will stick.</p></li><li><p>Emotions: A great way to make people care is to convey emotion, to make them feel something.</p></li><li><p>Story: How can we make them feel something? Via stories and great storytelling.</p></li></ul><p><em>Made to Stick</em> helped me learn that <strong>ideas don&#8217;t just succeed because they are true; they also succeed because they are communicated in a way that people remember</strong>. I strongly recommend this book as well.</p><h2>Building a Second Brain</h2><p><em><a href="https://www.goodreads.com/book/show/59616977-building-a-second-brain">Building a Second Brain</a></em> was one of my favorite reads during this time. I loved it so much that I even wrote a dedicated post about it:</p><div class="digest-post-embed" data-attrs="{&quot;nodeId&quot;:&quot;18cbaa6e-a30b-48d5-b182-6a97f3c94383&quot;,&quot;caption&quot;:&quot;&quot;,&quot;cta&quot;:&quot;Read full story&quot;,&quot;showBylines&quot;:true,&quot;size&quot;:&quot;sm&quot;,&quot;isEditorNode&quot;:true,&quot;title&quot;:&quot;Second Brain&quot;,&quot;publishedBylines&quot;:[{&quot;id&quot;:3529974,&quot;name&quot;:&quot;Teiva Harsanyi&quot;,&quot;bio&quot;:&quot;Software Engineer at Google, Author, Speaker.&quot;,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/e800897a-277b-458c-a1a2-48b8b1b8d70c_500x500.png&quot;,&quot;is_guest&quot;:false,&quot;bestseller_tier&quot;:null}],&quot;post_date&quot;:&quot;2025-09-03T10:03:03.724Z&quot;,&quot;cover_image&quot;:&quot;https://substackcdn.com/image/fetch/$s_!uHs5!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff9533e38-bfc4-41e8-9807-7e380b626737_1600x800.png&quot;,&quot;cover_image_alt&quot;:null,&quot;canonical_url&quot;:&quot;https://read.thecoder.cafe/p/second-brain&quot;,&quot;section_name&quot;:&quot;Concepts&quot;,&quot;video_upload_id&quot;:null,&quot;id&quot;:167576108,&quot;type&quot;:&quot;newsletter&quot;,&quot;reaction_count&quot;:10,&quot;comment_count&quot;:2,&quot;publication_id&quot;:2874913,&quot;publication_name&quot;:&quot;The Coder Cafe&quot;,&quot;publication_logo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!OZXv!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa08792c7-cadb-478c-bce4-a10c5dc5ac05_1280x1280.png&quot;,&quot;belowTheFold&quot;:true,&quot;youtube_url&quot;:null,&quot;show_links&quot;:null,&quot;feed_url&quot;:null}"></div><p>For me, this book was a real game-changer in how I capture and reuse what I learn.</p><h2>Steal Like an Artist</h2><p><em><a href="https://www.goodreads.com/book/show/13099738-steal-like-an-artist">Steal Like an Artist</a></em> is a book on creativity built around a simple idea: nothing is completely original. As creators (writers, musicians, or anyone producing work), the author suggests we should &#8220;steal&#8221; from anything that inspires us and sparks our imagination.</p><p>I didn&#8217;t find this book as compelling as others, but it does offer a few useful insights. One that stuck with me is the difference between copying and creating: copying a single person is plagiarism, but drawing from many influences is what makes something feel original. The trick isn&#8217;t to imitate, it&#8217;s to transform and remix ideas until they become your own.</p><h2>Four Thousand Weeks</h2><p><a href="https://www.goodreads.com/book/show/54785515-four-thousand-weeks">Four Thousand Weeks</a> is a productivity book, but with a very different take than most books on the topic. The title comes from the fact that our lifespan is roughly 4,000 weeks.</p><p>During my paternity leave, I felt overwhelmed at times by everything I wanted to read and do, and this book helped. Its message is simple: instead of trying to produce more and more, we should accept that our time is limited. We will never get everything done. What we can do is focus on the few things that matter most and give them our best attention.</p><p>It helped me find some peace and reminded me to focus on what matters most to me.</p><h2>Fiction</h2><p>Last but not least, I couldn&#8217;t spend this paternity leave without some science fiction and fantasy reading.</p><p>On the sci-fi side, I started exploring the Warhammer 40k universe by picking up a few books about the <a href="https://www.goodreads.com/series/80364-night-lords">Night Lords</a> faction. If all you know about Warhammer 40k is the painting and miniatures, you should also know there&#8217;s a massive, surprisingly coherent lore built around it. I always assumed it would be some cheap sci-fi, but I was wrong; it&#8217;s much richer than I expected.</p><p>On the fantasy side, I usually enjoy epic fantasy such as <em>The Lord of the Rings</em> or <em>The Realm of the Elderlings</em>. Yet, I wasn&#8217;t in the mood for long and heavy stories. I wanted something lighter and more relaxing. That&#8217;s how I found the &#8220;cozy fantasy&#8221; genre. I read with <a href="https://www.goodreads.com/book/show/60222807-legends-lattes">Legends &amp; Lattes</a> and <a href="https://www.goodreads.com/book/show/217206125-the-spellshop">The Spellshop</a>. Nothing really epic happens in these books, but the atmosphere is calm and comforting. Perfect for a quiet morning coffee (after a tough night).</p><h1>Being a Dad</h1><p>Above all else, these four months were a great opportunity to spend a lot of time with my kid (thanks, Google, for that).</p><p>I&#8217;m not going to elaborate too much on how it went, as it&#8217;s very personal. The only thing I want to emphasize is how having a baby is one of those rare experiences in life. Let me explain:</p><ul><li><p>If we traveled to Japan and loved it, we could still say next year, "<em>I&#8217;m going back to Japan again.&#8221;</em></p></li><li><p>If we enjoyed a <a href="https://en.wikipedia.org/wiki/Tlayuda">tlayuda</a>, we could say this weekend, &#8220;<em>I&#8217;m going to make some tlayudas again.&#8221;</em></p></li><li><p>If we enjoyed that Coldplay concert, we could say, &#8220;<em>Next album,</em> <em>I&#8217;m going to see them again.&#8221;</em></p></li></ul><p>With a baby, things feel different. Experiences are truly unique because of how quickly they grow. Especially in the beginning, a baby changes day in, day out: a new way of looking at things, better head control, a new way to grab an object, etc. Because babies change so quickly, every experience becomes one of a kind. Tomorrow is already going to be a different day, a different experience.</p><p>But if we look beyond, we might even say that most experiences are truly unique:</p><ul><li><p>We might return to Japan, but we will notice new things, meet new people, or experience it differently.</p></li><li><p>We might make tlayudas again, but they won&#8217;t taste exactly the same.</p></li><li><p>We might see Coldplay again, but maybe we&#8217;re with a different person, in a different city, at a different point in our lives.</p></li></ul><p>Being a dad brought me this truth: life itself is unrepeatable in its details. It is not inherently good or bad; it is simply what makes so many experiences unique and fatherhood so magical.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://read.thecoder.cafe/" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!ZoDz!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc5b47134-fe05-42e3-9aaf-dd2758923a98_1200x600.png 424w, https://substackcdn.com/image/fetch/$s_!ZoDz!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc5b47134-fe05-42e3-9aaf-dd2758923a98_1200x600.png 848w, https://substackcdn.com/image/fetch/$s_!ZoDz!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc5b47134-fe05-42e3-9aaf-dd2758923a98_1200x600.png 1272w, https://substackcdn.com/image/fetch/$s_!ZoDz!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc5b47134-fe05-42e3-9aaf-dd2758923a98_1200x600.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!ZoDz!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc5b47134-fe05-42e3-9aaf-dd2758923a98_1200x600.png" width="449" height="224.5" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c5b47134-fe05-42e3-9aaf-dd2758923a98_1200x600.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:600,&quot;width&quot;:1200,&quot;resizeWidth&quot;:449,&quot;bytes&quot;:82853,&quot;alt&quot;:&quot;The Coder Cafe: Learn One Concept With Your Coffee.&quot;,&quot;title&quot;:&quot;The Coder Cafe: Learn One Concept With Your Coffee.&quot;,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:&quot;https://read.thecoder.cafe/&quot;,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.thecoder.cafe/i/151119215?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc5b47134-fe05-42e3-9aaf-dd2758923a98_1200x600.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="The Coder Cafe: Learn One Concept With Your Coffee." title="The Coder Cafe: Learn One Concept With Your Coffee." srcset="https://substackcdn.com/image/fetch/$s_!ZoDz!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc5b47134-fe05-42e3-9aaf-dd2758923a98_1200x600.png 424w, https://substackcdn.com/image/fetch/$s_!ZoDz!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc5b47134-fe05-42e3-9aaf-dd2758923a98_1200x600.png 848w, https://substackcdn.com/image/fetch/$s_!ZoDz!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc5b47134-fe05-42e3-9aaf-dd2758923a98_1200x600.png 1272w, https://substackcdn.com/image/fetch/$s_!ZoDz!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc5b47134-fe05-42e3-9aaf-dd2758923a98_1200x600.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://read.thecoder.cafe/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">AI is getting better every day. Are you? At The Coder Cafe, we serve fundamental concepts to make you an engineer that AI can&#8217;t replace. Written by a Google SWE, trusted by thousands of engineers worldwide.</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><h1>&#128218; Resources</h1><h2>More From the <em><a href="https://read.thecoder.cafe/s/lattes-stories">Lattes &amp; Stories</a></em> Section</h2><ul><li><p><a href="https://read.thecoder.cafe/p/100-go-mistakes">So, I Wrote a Book</a></p></li><li><p><a href="https://read.thecoder.cafe/p/vim-keybindings">Why I Switched to Vim Keybindings</a></p></li></ul><div><hr></div><p>&#10084;&#65039; <em>If you enjoyed the post, please consider giving it a like. It&#8217;s a helpful signal to decide what to write next.</em></p><p>&#128172; <em>What have you learned in these past months? Anything you&#8217;d like to share?</em></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://read.thecoder.cafe/p/paternity-leave/comments&quot;,&quot;text&quot;:&quot;Leave a comment&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://read.thecoder.cafe/p/paternity-leave/comments"><span>Leave a comment</span></a></p><div class="footnote" data-component-name="FootnoteToDOM"><a id="footnote-1" href="#footnote-anchor-1" class="footnote-number" contenteditable="false" target="_self">1</a><div class="footnote-content"><p><a href="https://www.goodreads.com/book/show/22800553-effective-modern-c">Effective Modern C++</a> perhaps? Let me know what you would recommend as a follow-up.</p></div></div><div class="footnote" data-component-name="FootnoteToDOM"><a id="footnote-2" href="#footnote-anchor-2" class="footnote-number" contenteditable="false" target="_self">2</a><div class="footnote-content"><p><a href="https://abseil.io/docs/cpp/guides/status">https://abseil.io/docs/cpp/guides/status</a></p><p></p></div></div>]]></content:encoded></item><item><title><![CDATA[Why I Switched to Vim Keybindings]]></title><description><![CDATA[After switching to Vim keybindings, I found I was not only consistent in my editing but faster than ever.]]></description><link>https://read.thecoder.cafe/p/vim-keybindings</link><guid isPermaLink="false">https://read.thecoder.cafe/p/vim-keybindings</guid><dc:creator><![CDATA[Teiva Harsanyi]]></dc:creator><pubDate>Thu, 24 Jul 2025 10:09:24 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/1724ef00-ed99-4e6d-829f-4ecaebf06416_1600x800.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><em>Hello! Today, let&#8217;s talk about why I switched to Vim, or more precisely, to Vim keybindings.</em></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!HxFb!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F635969b6-957e-46f5-83b6-f3af6debe22e_1600x800.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!HxFb!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F635969b6-957e-46f5-83b6-f3af6debe22e_1600x800.png 424w, https://substackcdn.com/image/fetch/$s_!HxFb!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F635969b6-957e-46f5-83b6-f3af6debe22e_1600x800.png 848w, https://substackcdn.com/image/fetch/$s_!HxFb!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F635969b6-957e-46f5-83b6-f3af6debe22e_1600x800.png 1272w, https://substackcdn.com/image/fetch/$s_!HxFb!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F635969b6-957e-46f5-83b6-f3af6debe22e_1600x800.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!HxFb!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F635969b6-957e-46f5-83b6-f3af6debe22e_1600x800.png" width="1456" height="728" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/635969b6-957e-46f5-83b6-f3af6debe22e_1600x800.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:728,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1416157,&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.thecoder.cafe/i/162335713?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F635969b6-957e-46f5-83b6-f3af6debe22e_1600x800.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_!HxFb!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F635969b6-957e-46f5-83b6-f3af6debe22e_1600x800.png 424w, https://substackcdn.com/image/fetch/$s_!HxFb!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F635969b6-957e-46f5-83b6-f3af6debe22e_1600x800.png 848w, https://substackcdn.com/image/fetch/$s_!HxFb!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F635969b6-957e-46f5-83b6-f3af6debe22e_1600x800.png 1272w, https://substackcdn.com/image/fetch/$s_!HxFb!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F635969b6-957e-46f5-83b6-f3af6debe22e_1600x800.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>From the early days of my career, I used various IDEs but never spent much time memorizing keybindings.</p><p>Yet, in 2016, I switched to IntelliJ, and with that move, I decided that for once, I would work on my productivity and make sure to touch the mouse as little as possible. Good decision or not, I also decided to customize nearly 90% of the keybindings. It got to a point where someone familiar with IntelliJ wouldn&#8217;t even recognize my setup.</p><p>If you&#8217;ve ever gone through something like that, you know it takes time to be productive. At first, your brain melts for every single action. But after a few weeks, you start getting used to your config and can be really productive.</p><p>Everything was perfect for seven years as I kept working with IntelliJ until&#8230; I joined Google. Indeed, it was quite a shock for me to see that Google has its own IDE<a class="footnote-anchor" data-component-name="FootnoteAnchorToDOM" id="footnote-anchor-1" href="#footnote-1" target="_self">1</a>.</p><p>There was a plugin to import IntelliJ&#8217;s default config, but since I had overridden almost everything, I had to reconfigure a ton of shortcuts manually. And even then, some keybindings I was using just didn&#8217;t exist in Google's IDE.</p><p>At this point, I decided to make one of the move I&#8217;m the happiest about: <strong>switching to Vim keybindings</strong>.</p><p>Let me just clarify what I mean by Vim keybindings. I didn&#8217;t switch to the <a href="https://www.vim.org/">Vim editor</a> itself; I switched to Vim shortcuts. Indeed, many IDEs like IntelliJ or VS Code allow you to use Vim keybindings. For example, if you open this <a href="https://openvim.com/sandbox.html">sandbox</a>, it&#8217;s not the Vim editor, but it&#8217;s an editor based on Vim keybindings.</p><p>The learning curve was pretty steep, at least for me. Also, it&#8217;s worth noting that using Vim with a QWERTY keyboard layout is much more efficient than with other layouts. If you&#8217;re using a layout that&#8217;s quite different from QWERTY you may also need to switch layouts.</p><blockquote><p><strong>NOTE</strong>: When I joined Google, I switched to Vim keybindings and a new keyboard layout at the same time. I remember sharing my IDE with a colleague during one of my first days and judging by how slowly I was typing, I&#8217;m pretty sure he thought I was dumb.</p></blockquote><p>So what are the benefits?</p><p><strong>First, default Vim keybindings give you almost everything you need to be productive</strong>. Sure, there are still some IDE-specific features (like refactoring functions automatically), but most of what you need to navigate and manipulate code quickly is right there. It took me some time to adapt, but today, I can say I&#8217;m even faster than with my old customized IntelliJ setup.</p><p><strong>Second, and probably the essence of this post: switching to Vim keybindings gave me a consistent editing experience</strong>. Whether I&#8217;m coding in Google IDE, on <a href="https://colab.google/">Google Colab</a>, at home on IntelliJ (with the <a href="https://github.com/JetBrains/ideavim">IdeaVim plugin</a>), or editing a remote file through a terminal with Neovim, the experience is the same. I don&#8217;t need to adapt to a different setup every time. And if one day I switch to another IDE, chances are high that it will support Vim keybindings too, as the Vim community is really active.</p><p>Being efficient and keeping a consistent editing style across tools is why I would strongly recommend having a look at Vim keybindings. Maybe it&#8217;s not for you, and that&#8217;s perfectly fine. But if it clicks, it might give you the same productivity boost it gave me.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!LGhJ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc91fa434-4157-453a-9d3d-4d93f74186fb_901x901.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!LGhJ!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc91fa434-4157-453a-9d3d-4d93f74186fb_901x901.png 424w, https://substackcdn.com/image/fetch/$s_!LGhJ!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc91fa434-4157-453a-9d3d-4d93f74186fb_901x901.png 848w, https://substackcdn.com/image/fetch/$s_!LGhJ!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc91fa434-4157-453a-9d3d-4d93f74186fb_901x901.png 1272w, https://substackcdn.com/image/fetch/$s_!LGhJ!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc91fa434-4157-453a-9d3d-4d93f74186fb_901x901.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!LGhJ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc91fa434-4157-453a-9d3d-4d93f74186fb_901x901.png" width="601" height="601" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c91fa434-4157-453a-9d3d-4d93f74186fb_901x901.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:901,&quot;width&quot;:901,&quot;resizeWidth&quot;:601,&quot;bytes&quot;:477714,&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://www.thecoder.cafe/i/162335713?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc91fa434-4157-453a-9d3d-4d93f74186fb_901x901.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_!LGhJ!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc91fa434-4157-453a-9d3d-4d93f74186fb_901x901.png 424w, https://substackcdn.com/image/fetch/$s_!LGhJ!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc91fa434-4157-453a-9d3d-4d93f74186fb_901x901.png 848w, https://substackcdn.com/image/fetch/$s_!LGhJ!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc91fa434-4157-453a-9d3d-4d93f74186fb_901x901.png 1272w, https://substackcdn.com/image/fetch/$s_!LGhJ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc91fa434-4157-453a-9d3d-4d93f74186fb_901x901.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"><a href="https://x.com/_workchronicles/status/1947695768124461088">Credits</a></figcaption></figure></div><div><hr></div><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://read.thecoder.cafe/" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!ZoDz!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc5b47134-fe05-42e3-9aaf-dd2758923a98_1200x600.png 424w, https://substackcdn.com/image/fetch/$s_!ZoDz!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc5b47134-fe05-42e3-9aaf-dd2758923a98_1200x600.png 848w, https://substackcdn.com/image/fetch/$s_!ZoDz!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc5b47134-fe05-42e3-9aaf-dd2758923a98_1200x600.png 1272w, https://substackcdn.com/image/fetch/$s_!ZoDz!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc5b47134-fe05-42e3-9aaf-dd2758923a98_1200x600.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!ZoDz!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc5b47134-fe05-42e3-9aaf-dd2758923a98_1200x600.png" width="449" height="224.5" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c5b47134-fe05-42e3-9aaf-dd2758923a98_1200x600.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:600,&quot;width&quot;:1200,&quot;resizeWidth&quot;:449,&quot;bytes&quot;:82853,&quot;alt&quot;:&quot;The Coder Cafe: Learn One Concept With Your Coffee.&quot;,&quot;title&quot;:&quot;The Coder Cafe: Learn One Concept With Your Coffee.&quot;,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:&quot;https://read.thecoder.cafe/&quot;,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.thecoder.cafe/i/151119215?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc5b47134-fe05-42e3-9aaf-dd2758923a98_1200x600.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="The Coder Cafe: Learn One Concept With Your Coffee." title="The Coder Cafe: Learn One Concept With Your Coffee." srcset="https://substackcdn.com/image/fetch/$s_!ZoDz!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc5b47134-fe05-42e3-9aaf-dd2758923a98_1200x600.png 424w, https://substackcdn.com/image/fetch/$s_!ZoDz!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc5b47134-fe05-42e3-9aaf-dd2758923a98_1200x600.png 848w, https://substackcdn.com/image/fetch/$s_!ZoDz!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc5b47134-fe05-42e3-9aaf-dd2758923a98_1200x600.png 1272w, https://substackcdn.com/image/fetch/$s_!ZoDz!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc5b47134-fe05-42e3-9aaf-dd2758923a98_1200x600.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://read.thecoder.cafe/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">AI is getting better every day. Are you? At The Coder Cafe, we serve fundamental concepts to make you an engineer that AI can&#8217;t replace. Written by a Google SWE, trusted by thousands of engineers worldwide.</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><h1>&#128218; Resources</h1><h2>More From the <em><a href="https://read.thecoder.cafe/s/lattes-stories">Lattes &amp; Stories</a></em> Section</h2><ul><li><p><a href="https://read.thecoder.cafe/p/100-go-mistakes">So, I Wrote a Book</a></p></li><li><p><a href="https://read.thecoder.cafe/p/paternity-leave">What I Learned During My Paternity Leave</a></p></li></ul><h2>Explore Further</h2><ul><li><p><a href="https://www.goodreads.com/book/show/13607232-practical-vim">Practical Vim</a> <em>// The book I used to learn Vim. Most of what I know comes from it, and I highly recommend it if you decide to switch to Vim.</em></p></li><li><p><a href="https://teivah.dev/vim/">My own Vim cheat sheet</a></p></li><li><p>Vim Tips You Probably Never Heard of:</p><div id="youtube2-bQfFvExpZDU" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;bQfFvExpZDU&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/bQfFvExpZDU?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div></li><li><p>IntelliJ 25% discount code on all product pack: <code>TheCoderCafe</code>. <em>// This post is not sponsored by IntelliJ, but since they supported <a href="https://www.thecoder.cafe/p/1000">1,000 Subscribers, 1 Coding Challenge!</a> I thought it was fair to mention it since I talked about IntelliJ in this post.</em></p></li></ul><div><hr></div><p>&#10084;&#65039; <em>If you made it this far and enjoyed the post, please consider giving it a like.</em></p><p>&#128172; <em>Do you use Vim keybindings? If not, have you ever considered trying them?</em></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://read.thecoder.cafe/p/vim-keybindings/comments&quot;,&quot;text&quot;:&quot;Leave a comment&quot;,&quot;action&quot;:null,&quot;class&quot;:&quot;button-wrapper&quot;}" data-component-name="ButtonCreateButton"><a class="button primary button-wrapper" href="https://read.thecoder.cafe/p/vim-keybindings/comments"><span>Leave a comment</span></a></p><div class="footnote" data-component-name="FootnoteToDOM"><a id="footnote-1" href="#footnote-anchor-1" class="footnote-number" contenteditable="false" target="_self">1</a><div class="footnote-content"><p>&#8220;Google has its own X&#8221;. Replace X with almost anything, and you pretty much get how things work at Google.</p></div></div>]]></content:encoded></item><item><title><![CDATA[So, I Wrote a Book]]></title><description><![CDATA[The Story Behind 100 Go Mistakes and How to Avoid Them]]></description><link>https://read.thecoder.cafe/p/100-go-mistakes</link><guid isPermaLink="false">https://read.thecoder.cafe/p/100-go-mistakes</guid><dc:creator><![CDATA[Teiva Harsanyi]]></dc:creator><pubDate>Tue, 08 Apr 2025 10:02:42 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/4cf4d0f7-89be-45f6-bfcd-1d9e230c4e39_1600x800.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>&#128197; <em>Last updated: October 7, 2025</em></p><p><em>Hello! Today, I&#8217;m going to share the story of the process behind writing my book.</em></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!W9gC!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F830873a4-1ed5-4f50-9663-69da74f030d4_1600x800.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!W9gC!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F830873a4-1ed5-4f50-9663-69da74f030d4_1600x800.png 424w, https://substackcdn.com/image/fetch/$s_!W9gC!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F830873a4-1ed5-4f50-9663-69da74f030d4_1600x800.png 848w, https://substackcdn.com/image/fetch/$s_!W9gC!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F830873a4-1ed5-4f50-9663-69da74f030d4_1600x800.png 1272w, https://substackcdn.com/image/fetch/$s_!W9gC!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F830873a4-1ed5-4f50-9663-69da74f030d4_1600x800.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!W9gC!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F830873a4-1ed5-4f50-9663-69da74f030d4_1600x800.png" width="1456" height="728" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/830873a4-1ed5-4f50-9663-69da74f030d4_1600x800.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:728,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1530463,&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.thecoder.cafe/i/160360907?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F830873a4-1ed5-4f50-9663-69da74f030d4_1600x800.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_!W9gC!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F830873a4-1ed5-4f50-9663-69da74f030d4_1600x800.png 424w, https://substackcdn.com/image/fetch/$s_!W9gC!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F830873a4-1ed5-4f50-9663-69da74f030d4_1600x800.png 848w, https://substackcdn.com/image/fetch/$s_!W9gC!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F830873a4-1ed5-4f50-9663-69da74f030d4_1600x800.png 1272w, https://substackcdn.com/image/fetch/$s_!W9gC!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F830873a4-1ed5-4f50-9663-69da74f030d4_1600x800.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><h1>The Beginning of the Story</h1><p>My book, <em>100 Go Mistakes and How to Avoid Them</em>, was published in August 2022. But the story starts much earlier, back in 2018.</p><p>At this time, I was working in Switzerland, refactoring a C++ legacy codebase. Together with my colleague and friend <a href="https://www.linkedin.com/in/dchambon/">Damien Chambon</a>, we started evaluating Scala and <a href="https://akka.io/">Akka</a> (an actor model framework) for a potential rewrite. Why Scala and Akka, you may wonder? Well, back then I had mostly Java/JVM experience, and I was intrigued by the promises of the actor model.</p><p>But things were&#8230; definitely not simple. First off, it was a whole new language to learn. Second, Akka is a beast. It takes time to ramp up, and we even had to hire an external consultant to help with the implementation. After months of work, we finally had our first PoC. And yet, neither my colleague nor I were really convinced.</p><p>So, we started looking at another language to counterbalance Scala. Maybe this new one wasn&#8217;t the sexiest language ever invented, but it looks promising, efficient, and much easier to ramp up with: Go.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!jr6W!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9fd8a4ef-b1e0-4c68-a525-5d6b874dc670_345x129.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!jr6W!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9fd8a4ef-b1e0-4c68-a525-5d6b874dc670_345x129.png 424w, https://substackcdn.com/image/fetch/$s_!jr6W!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9fd8a4ef-b1e0-4c68-a525-5d6b874dc670_345x129.png 848w, https://substackcdn.com/image/fetch/$s_!jr6W!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9fd8a4ef-b1e0-4c68-a525-5d6b874dc670_345x129.png 1272w, https://substackcdn.com/image/fetch/$s_!jr6W!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9fd8a4ef-b1e0-4c68-a525-5d6b874dc670_345x129.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!jr6W!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9fd8a4ef-b1e0-4c68-a525-5d6b874dc670_345x129.png" width="249" height="93.10434782608695" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/9fd8a4ef-b1e0-4c68-a525-5d6b874dc670_345x129.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:129,&quot;width&quot;:345,&quot;resizeWidth&quot;:249,&quot;bytes&quot;:7350,&quot;alt&quot;:&quot;Go logo.&quot;,&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://www.thecoder.cafe/i/160360907?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9fd8a4ef-b1e0-4c68-a525-5d6b874dc670_345x129.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Go logo." title="Go logo." srcset="https://substackcdn.com/image/fetch/$s_!jr6W!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9fd8a4ef-b1e0-4c68-a525-5d6b874dc670_345x129.png 424w, https://substackcdn.com/image/fetch/$s_!jr6W!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9fd8a4ef-b1e0-4c68-a525-5d6b874dc670_345x129.png 848w, https://substackcdn.com/image/fetch/$s_!jr6W!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9fd8a4ef-b1e0-4c68-a525-5d6b874dc670_345x129.png 1272w, https://substackcdn.com/image/fetch/$s_!jr6W!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9fd8a4ef-b1e0-4c68-a525-5d6b874dc670_345x129.png 1456w" sizes="100vw"></picture><div></div></div></a></figure></div><p>After just a couple of weeks in Go, we were able to cover the same scope as our Scala/Akka PoC. And for me, <strong>that was the beginning of a love story with the Go programming language</strong>.</p><p>A few months passed, and I moved to another company and another country: the UK. I was back working in a Java ecosystem since my Go experience was still too limited to land a proper job. Plus, given the international move, the company itself mattered more to me than the tech stack.</p><p>That experience turned out to be horrendous. It was full of politics, and I hated every aspect of my job. But in the evenings, I kept working on personal projects in Go. After just three months, I decided to stop the bleeding and move on to another company.</p><p>This time, I was determined to get a Go job. It was May 2019. I signed to a new company, and finally, I could develop in Go all day long.</p><h1>A Blog Post That Changes Everything</h1><p>After four months in this new company, I noticed that some of my colleagues were making the same mistakes I made when I was working in Switzerland.</p><p>So, I decided to write a blog post listing common mistakes in Go called <em><a href="https://itnext.io/the-top-10-most-common-mistakes-ive-seen-in-go-projects-4b79d4f6cd65">The Top 10 Most Common Mistakes I&#8217;ve Seen in Go Projects</a></em>.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!ir8j!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F25a5d38a-8a8d-45d6-8b98-bbd93bfa6afc_1200x338.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!ir8j!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F25a5d38a-8a8d-45d6-8b98-bbd93bfa6afc_1200x338.png 424w, https://substackcdn.com/image/fetch/$s_!ir8j!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F25a5d38a-8a8d-45d6-8b98-bbd93bfa6afc_1200x338.png 848w, https://substackcdn.com/image/fetch/$s_!ir8j!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F25a5d38a-8a8d-45d6-8b98-bbd93bfa6afc_1200x338.png 1272w, https://substackcdn.com/image/fetch/$s_!ir8j!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F25a5d38a-8a8d-45d6-8b98-bbd93bfa6afc_1200x338.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!ir8j!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F25a5d38a-8a8d-45d6-8b98-bbd93bfa6afc_1200x338.png" width="598" height="168.43666666666667" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/25a5d38a-8a8d-45d6-8b98-bbd93bfa6afc_1200x338.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:338,&quot;width&quot;:1200,&quot;resizeWidth&quot;:598,&quot;bytes&quot;:65049,&quot;alt&quot;:&quot;Screenshot of the blog post titled &#8220;The Top 10 Most Common Mistakes I&#8217;ve Seen in Go Projects&#8221; by Teiva Harsanyi, published on Medium.&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://www.thecoder.cafe/i/160360907?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F25a5d38a-8a8d-45d6-8b98-bbd93bfa6afc_1200x338.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Screenshot of the blog post titled &#8220;The Top 10 Most Common Mistakes I&#8217;ve Seen in Go Projects&#8221; by Teiva Harsanyi, published on Medium." title="Screenshot of the blog post titled &#8220;The Top 10 Most Common Mistakes I&#8217;ve Seen in Go Projects&#8221; by Teiva Harsanyi, published on Medium." srcset="https://substackcdn.com/image/fetch/$s_!ir8j!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F25a5d38a-8a8d-45d6-8b98-bbd93bfa6afc_1200x338.png 424w, https://substackcdn.com/image/fetch/$s_!ir8j!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F25a5d38a-8a8d-45d6-8b98-bbd93bfa6afc_1200x338.png 848w, https://substackcdn.com/image/fetch/$s_!ir8j!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F25a5d38a-8a8d-45d6-8b98-bbd93bfa6afc_1200x338.png 1272w, https://substackcdn.com/image/fetch/$s_!ir8j!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F25a5d38a-8a8d-45d6-8b98-bbd93bfa6afc_1200x338.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><p>Let&#8217;s be honest: the title was way more ambitious than my actual experience. Reading it, you would expect someone with deep Go expertise, right? But the truth is, when I said &#8220;projects&#8220;, it meant:</p><ul><li><p>The PoC my colleague and I wrote in Go</p></li><li><p>The four months I had spent at my new company</p></li></ul><p>Nothing too crazy, really. I didn&#8217;t have big ambitions for the post, but I love writing, and I thought it might be interesting to share. So I published it on Medium.</p><p>Unexpectedly, the post became very popular: 4.7k claps, trending on <a href="https://www.reddit.com/r/golang">r/golang</a>, and even listed as one of the top articles of 2019 by <em><a href="https://golangweekly.com/">Golang Weekly</a></em>, the most well-known Go newsletter:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://golangweekly.com/issues/293" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!ykGZ!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8e22995f-c7a1-4b8c-bea4-7876ef583c1a_768x1059.png 424w, https://substackcdn.com/image/fetch/$s_!ykGZ!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8e22995f-c7a1-4b8c-bea4-7876ef583c1a_768x1059.png 848w, https://substackcdn.com/image/fetch/$s_!ykGZ!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8e22995f-c7a1-4b8c-bea4-7876ef583c1a_768x1059.png 1272w, https://substackcdn.com/image/fetch/$s_!ykGZ!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8e22995f-c7a1-4b8c-bea4-7876ef583c1a_768x1059.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!ykGZ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8e22995f-c7a1-4b8c-bea4-7876ef583c1a_768x1059.png" width="450" height="620.5078125" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/8e22995f-c7a1-4b8c-bea4-7876ef583c1a_768x1059.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1059,&quot;width&quot;:768,&quot;resizeWidth&quot;:450,&quot;bytes&quot;:199333,&quot;alt&quot;:&quot;Screenshot of Golang Weekly&#8217;s &#8220;Top Articles &amp; Tutorials of 2019,&#8221; featuring &#8220;The Top 10 Most Common Mistakes I&#8217;ve Seen in Go Projects&#8221; as the first listed article.&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:&quot;https://golangweekly.com/issues/293&quot;,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.thecoder.cafe/i/160360907?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8e22995f-c7a1-4b8c-bea4-7876ef583c1a_768x1059.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Screenshot of Golang Weekly&#8217;s &#8220;Top Articles &amp; Tutorials of 2019,&#8221; featuring &#8220;The Top 10 Most Common Mistakes I&#8217;ve Seen in Go Projects&#8221; as the first listed article." title="Screenshot of Golang Weekly&#8217;s &#8220;Top Articles &amp; Tutorials of 2019,&#8221; featuring &#8220;The Top 10 Most Common Mistakes I&#8217;ve Seen in Go Projects&#8221; as the first listed article." srcset="https://substackcdn.com/image/fetch/$s_!ykGZ!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8e22995f-c7a1-4b8c-bea4-7876ef583c1a_768x1059.png 424w, https://substackcdn.com/image/fetch/$s_!ykGZ!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8e22995f-c7a1-4b8c-bea4-7876ef583c1a_768x1059.png 848w, https://substackcdn.com/image/fetch/$s_!ykGZ!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8e22995f-c7a1-4b8c-bea4-7876ef583c1a_768x1059.png 1272w, https://substackcdn.com/image/fetch/$s_!ykGZ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8e22995f-c7a1-4b8c-bea4-7876ef583c1a_768x1059.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>At this point, I&#8217;m starting to believe that <strong>writing about mistakes seems to interest people</strong>. So my train of thought was: let&#8217;s keep collecting mistakes and see how it goes. Perhaps at some point, I could write a GitHub repo that would contain all my findings?</p><h1>16 Months of Work and a First Contact With Manning</h1><p>Fast forward to November 2020. It had been 16 months since I published my blog post, and by then, I had collected 100 mistakes in Go. During that time, I gathered mistakes from various sources, mainly:</p><ul><li><p>At work (to be honest, I was also a significant source of inspiration!)</p></li><li><p>In various studies and blog posts</p></li><li><p>In different open-source projects</p></li></ul><p>At this stage, I felt much more confident about my project. Sure, an open-source repository could be great, but I wondered: why not go for a book? Being someone who loves reading and writing, I had always dreamed of publishing my own.</p><p>I contacted only one publisher: Manning. Why Manning? Here&#8217;s what I wrote in my book:</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!UFiU!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbf74b74e-b15f-4e5b-a45c-5ccaff11b62d_964x139.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!UFiU!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbf74b74e-b15f-4e5b-a45c-5ccaff11b62d_964x139.png 424w, https://substackcdn.com/image/fetch/$s_!UFiU!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbf74b74e-b15f-4e5b-a45c-5ccaff11b62d_964x139.png 848w, https://substackcdn.com/image/fetch/$s_!UFiU!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbf74b74e-b15f-4e5b-a45c-5ccaff11b62d_964x139.png 1272w, https://substackcdn.com/image/fetch/$s_!UFiU!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbf74b74e-b15f-4e5b-a45c-5ccaff11b62d_964x139.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!UFiU!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbf74b74e-b15f-4e5b-a45c-5ccaff11b62d_964x139.png" width="964" height="139" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/bf74b74e-b15f-4e5b-a45c-5ccaff11b62d_964x139.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:139,&quot;width&quot;:964,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:106348,&quot;alt&quot;:&quot;Highlighted quote from the book explaining why the author contacted Manning as the sole publisher for 100 Go Mistakes, describing it as a top-level company known for high-quality books.&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://www.thecoder.cafe/i/160360907?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbf74b74e-b15f-4e5b-a45c-5ccaff11b62d_964x139.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Highlighted quote from the book explaining why the author contacted Manning as the sole publisher for 100 Go Mistakes, describing it as a top-level company known for high-quality books." title="Highlighted quote from the book explaining why the author contacted Manning as the sole publisher for 100 Go Mistakes, describing it as a top-level company known for high-quality books." srcset="https://substackcdn.com/image/fetch/$s_!UFiU!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbf74b74e-b15f-4e5b-a45c-5ccaff11b62d_964x139.png 424w, https://substackcdn.com/image/fetch/$s_!UFiU!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbf74b74e-b15f-4e5b-a45c-5ccaff11b62d_964x139.png 848w, https://substackcdn.com/image/fetch/$s_!UFiU!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbf74b74e-b15f-4e5b-a45c-5ccaff11b62d_964x139.png 1272w, https://substackcdn.com/image/fetch/$s_!UFiU!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbf74b74e-b15f-4e5b-a45c-5ccaff11b62d_964x139.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><p>Do I see Manning as a high-quality publisher? Absolutely. Is that the only reason why I contacted only Manning? Maybe not.</p><p>Back then, to propose an idea to O&#8217;Reilly (not sure if it has changed since), you had to fill out a document containing hundreds and hundreds of pages! OK, maybe my memory is playing tricks on me, and it was just a dozen pages, but I remember thinking: &#8220;<em>This is too much effort.</em>&#8220;</p><p>Whereas with Manning? A simple email was enough:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!92fY!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe359edfb-d231-4ebb-afce-f5a6f99772b0_1183x450.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!92fY!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe359edfb-d231-4ebb-afce-f5a6f99772b0_1183x450.png 424w, https://substackcdn.com/image/fetch/$s_!92fY!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe359edfb-d231-4ebb-afce-f5a6f99772b0_1183x450.png 848w, https://substackcdn.com/image/fetch/$s_!92fY!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe359edfb-d231-4ebb-afce-f5a6f99772b0_1183x450.png 1272w, https://substackcdn.com/image/fetch/$s_!92fY!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe359edfb-d231-4ebb-afce-f5a6f99772b0_1183x450.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!92fY!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe359edfb-d231-4ebb-afce-f5a6f99772b0_1183x450.png" width="1183" height="450" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/e359edfb-d231-4ebb-afce-f5a6f99772b0_1183x450.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:450,&quot;width&quot;:1183,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:91625,&quot;alt&quot;:&quot;Screenshot of the original email sent by the author to Manning, proposing the idea for 100 Go Mistakes and referencing the success of a prior blog post on Go mistakes.&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://www.thecoder.cafe/i/160360907?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe359edfb-d231-4ebb-afce-f5a6f99772b0_1183x450.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Screenshot of the original email sent by the author to Manning, proposing the idea for 100 Go Mistakes and referencing the success of a prior blog post on Go mistakes." title="Screenshot of the original email sent by the author to Manning, proposing the idea for 100 Go Mistakes and referencing the success of a prior blog post on Go mistakes." srcset="https://substackcdn.com/image/fetch/$s_!92fY!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe359edfb-d231-4ebb-afce-f5a6f99772b0_1183x450.png 424w, https://substackcdn.com/image/fetch/$s_!92fY!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe359edfb-d231-4ebb-afce-f5a6f99772b0_1183x450.png 848w, https://substackcdn.com/image/fetch/$s_!92fY!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe359edfb-d231-4ebb-afce-f5a6f99772b0_1183x450.png 1272w, https://substackcdn.com/image/fetch/$s_!92fY!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe359edfb-d231-4ebb-afce-f5a6f99772b0_1183x450.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>Something funny to highlight here. In this email, I was saying, &#8220;<em>I&#8217;m at 80%</em>&#8221; because for most of the mistakes, I already had some content written:</p><ul><li><p>The mistake itself</p></li><li><p>A surrounding example</p></li><li><p>And various solutions to fix the mistake</p></li></ul><p>So, in my head, the hardest part was already done.</p><p><strong>I haven&#8217;t been more wrong in my entire life.</strong></p><p>The next day, I got a reply from someone at Manning with the title of acquisition editor. If you&#8217;re not familiar with that role, an acquisition editor is someone who evaluates and signs new book projects for publication. Basically, a scout. Throughout my writing journey, he was my main contact at Manning, and as you will see, he helped me at a critical moment later in the process.</p><p>We had a first meeting to briefly discuss my idea, and Manning was on board to move to the next step: filling out a proposal. This proposal was a document with 21 questions to frame the project, including things like:</p><ul><li><p>Speaking about yourself</p></li><li><p>A summary of the book</p></li><li><p>Describing your target reader</p></li><li><p>A table of contents</p></li></ul><p>This document was then sent by Manning to external reviewers, all with Go experience, who wrote their own evaluations of the proposal. Funny enough, my mate <a href="https://x.com/val_deleplace">Valentin Deleplace</a>, who would become my colleague a few years later, was actually the first reviewer of the book.</p><p>As a potential author, I had access to all the reviews. And while it&#8217;s obviously essential for a publisher to judge the technical quality of a project, it was also super valuable for me. It helped me see whether the idea only sounded good in my own head or if it could actually be interesting to others, too.</p><p>I received a total of seven reviews, and all of them were positive. Some included constructive feedback on how to improve certain aspects (like the table of contents, for example), but the overall tone was fully supportive.</p><p>It was December 7, 2020, roughly two weeks after I sent my first email, and <strong>I received an offer from Manning</strong>:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!kdlt!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd5c4f7f8-39d2-4c7f-89c6-9c2639a32efd_1164x405.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!kdlt!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd5c4f7f8-39d2-4c7f-89c6-9c2639a32efd_1164x405.png 424w, https://substackcdn.com/image/fetch/$s_!kdlt!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd5c4f7f8-39d2-4c7f-89c6-9c2639a32efd_1164x405.png 848w, https://substackcdn.com/image/fetch/$s_!kdlt!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd5c4f7f8-39d2-4c7f-89c6-9c2639a32efd_1164x405.png 1272w, https://substackcdn.com/image/fetch/$s_!kdlt!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd5c4f7f8-39d2-4c7f-89c6-9c2639a32efd_1164x405.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!kdlt!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd5c4f7f8-39d2-4c7f-89c6-9c2639a32efd_1164x405.png" width="1164" height="405" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d5c4f7f8-39d2-4c7f-89c6-9c2639a32efd_1164x405.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:405,&quot;width&quot;:1164,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:289710,&quot;alt&quot;:&quot;Screenshot of the email from Manning offering the author a publishing contract for 100 Go Mistakes, outlining the review and editing process involved.&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://www.thecoder.cafe/i/160360907?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd5c4f7f8-39d2-4c7f-89c6-9c2639a32efd_1164x405.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Screenshot of the email from Manning offering the author a publishing contract for 100 Go Mistakes, outlining the review and editing process involved." title="Screenshot of the email from Manning offering the author a publishing contract for 100 Go Mistakes, outlining the review and editing process involved." srcset="https://substackcdn.com/image/fetch/$s_!kdlt!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd5c4f7f8-39d2-4c7f-89c6-9c2639a32efd_1164x405.png 424w, https://substackcdn.com/image/fetch/$s_!kdlt!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd5c4f7f8-39d2-4c7f-89c6-9c2639a32efd_1164x405.png 848w, https://substackcdn.com/image/fetch/$s_!kdlt!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd5c4f7f8-39d2-4c7f-89c6-9c2639a32efd_1164x405.png 1272w, https://substackcdn.com/image/fetch/$s_!kdlt!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd5c4f7f8-39d2-4c7f-89c6-9c2639a32efd_1164x405.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><h1>Contract</h1><p>Let&#8217;s talk about one of the aspects people ask about the most: my contract.</p><p><strong>In terms of royalties, I got paid 10% on all sales</strong>. On one hand, yes, that&#8217;s not a lot. Yet, you really have to understand how helpful a publisher can be for a first-time &#8220;author&#8221; with zero experience like I was back then, for two main reasons:</p><ul><li><p>First, and we will go over the process later, but the number of reviews from different people is insane. If I had written the book completely on my own, I can guarantee the quality would have been way lower.</p></li><li><p>Second, in terms of visibility, going with a publisher helps a lot, especially if, like me back then, you had around 400 followers on Twitter. Sure, content can still go viral without a big audience, but it&#8217;s a lot less likely.</p></li></ul><p>When I signed the contract, I also received an advance: $2,000 upfront, and $2,000 after delivering one-third of the book.</p><p>The contract also included deadlines:</p><ul><li><p>One-third of the book will be delivered by February 15, 2021</p></li><li><p>Two-thirds by April 15, 2021</p></li><li><p>A full draft of the complete manuscript by July 2021</p></li></ul><p>As the book was eventually published in August 2022, you can imagine I was slightly late. But when I spoke with people at Manning, they told me most technical books are late. We all know that in tech, we&#8217;re not great at planning. So why would it be any different when we start writing books? &#128578;</p><p>Jokes aside, at that stage, I didn&#8217;t fully realize how much work was ahead of me, so July 2021 seemed doable.</p><h1>Starting to Write and Meeting My DE</h1><p>At the very beginning, Manning asked me to think deeply about what they call the MQR: Minimum Qualified Reader. In a nutshell, what&#8217;s the minimum level of knowledge or experience someone needs to read your book?</p><p>That may sound like a basic question, but at that point, I hadn&#8217;t even considered it. Over the next few weeks, I refined my MQR to target someone who already knows the Go language. That meant about 15% of my content could go directly into the nearest trash can as it was just too basic.</p><p>Around the same time, <strong>I met the person who probably had the biggest impact on the book: my development editor (DE)</strong>.</p><p>A DE helps refine the structure, content, and flow of a manuscript to improve things like clarity, coherence, and how well ideas are conveyed. Note that a DE doesn&#8217;t need to be a technical person. Mine had some experience in computer science but absolutely none in Go, and that was perfectly fine. We don&#8217;t expect technical reviews from a DE but instead, a valuable contribution to the quality of the writing.</p><blockquote><p><strong>NOTE</strong>: <em>This was the person who taught me the key lessons I shared in <a href="https://www.thecoder.cafe/p/10-technical-writing-rules">10 Rules I Learned About Technical Writing</a></em>.</p></blockquote><p>I learned a ton from my DE. Like, really, a ton. Before that, I had been writing on various blogs for about a decade, but writing online is all about being direct because most people don&#8217;t have time. With a book, it&#8217;s different. People made a deliberate decision to buy your book. Now, it&#8217;s your job to bring them somewhere valuable. And if that takes time (meaning more words), so be it.</p><p>For example, here&#8217;s how I introduced one mistake in <em>The Top 10 Most Common Mistakes I&#8217;ve Seen in Go Projects</em> post:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!i9Ba!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc6c1264e-f3e8-424f-b76b-c90c0a2824a3_884x600.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!i9Ba!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc6c1264e-f3e8-424f-b76b-c90c0a2824a3_884x600.png 424w, https://substackcdn.com/image/fetch/$s_!i9Ba!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc6c1264e-f3e8-424f-b76b-c90c0a2824a3_884x600.png 848w, https://substackcdn.com/image/fetch/$s_!i9Ba!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc6c1264e-f3e8-424f-b76b-c90c0a2824a3_884x600.png 1272w, https://substackcdn.com/image/fetch/$s_!i9Ba!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc6c1264e-f3e8-424f-b76b-c90c0a2824a3_884x600.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!i9Ba!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc6c1264e-f3e8-424f-b76b-c90c0a2824a3_884x600.png" width="599" height="406.56108597285066" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c6c1264e-f3e8-424f-b76b-c90c0a2824a3_884x600.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:600,&quot;width&quot;:884,&quot;resizeWidth&quot;:599,&quot;bytes&quot;:64935,&quot;alt&quot;:&quot;Screenshot of a short explanation introducing a common Go mistake involving goroutines and loop variables, with a simple code example that prints loop indices.&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://www.thecoder.cafe/i/160360907?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc6c1264e-f3e8-424f-b76b-c90c0a2824a3_884x600.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Screenshot of a short explanation introducing a common Go mistake involving goroutines and loop variables, with a simple code example that prints loop indices." title="Screenshot of a short explanation introducing a common Go mistake involving goroutines and loop variables, with a simple code example that prints loop indices." srcset="https://substackcdn.com/image/fetch/$s_!i9Ba!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc6c1264e-f3e8-424f-b76b-c90c0a2824a3_884x600.png 424w, https://substackcdn.com/image/fetch/$s_!i9Ba!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc6c1264e-f3e8-424f-b76b-c90c0a2824a3_884x600.png 848w, https://substackcdn.com/image/fetch/$s_!i9Ba!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc6c1264e-f3e8-424f-b76b-c90c0a2824a3_884x600.png 1272w, https://substackcdn.com/image/fetch/$s_!i9Ba!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc6c1264e-f3e8-424f-b76b-c90c0a2824a3_884x600.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">28 words.</figcaption></figure></div><p>And here&#8217;s how I approached the same mistake in my book:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!fifX!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb175975e-31be-4592-8d58-c41fdd47304f_1150x755.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!fifX!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb175975e-31be-4592-8d58-c41fdd47304f_1150x755.png 424w, https://substackcdn.com/image/fetch/$s_!fifX!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb175975e-31be-4592-8d58-c41fdd47304f_1150x755.png 848w, https://substackcdn.com/image/fetch/$s_!fifX!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb175975e-31be-4592-8d58-c41fdd47304f_1150x755.png 1272w, https://substackcdn.com/image/fetch/$s_!fifX!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb175975e-31be-4592-8d58-c41fdd47304f_1150x755.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!fifX!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb175975e-31be-4592-8d58-c41fdd47304f_1150x755.png" width="600" height="393.9130434782609" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/b175975e-31be-4592-8d58-c41fdd47304f_1150x755.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:755,&quot;width&quot;:1150,&quot;resizeWidth&quot;:600,&quot;bytes&quot;:156513,&quot;alt&quot;:&quot;Excerpt from the book explaining a common Go mistake&#8212;using goroutines with loop variables&#8212;in a more elaborate way. Includes annotated code and a detailed description of why the output can be unpredictable.&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://www.thecoder.cafe/i/160360907?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb175975e-31be-4592-8d58-c41fdd47304f_1150x755.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Excerpt from the book explaining a common Go mistake&#8212;using goroutines with loop variables&#8212;in a more elaborate way. Includes annotated code and a detailed description of why the output can be unpredictable." title="Excerpt from the book explaining a common Go mistake&#8212;using goroutines with loop variables&#8212;in a more elaborate way. Includes annotated code and a detailed description of why the output can be unpredictable." srcset="https://substackcdn.com/image/fetch/$s_!fifX!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb175975e-31be-4592-8d58-c41fdd47304f_1150x755.png 424w, https://substackcdn.com/image/fetch/$s_!fifX!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb175975e-31be-4592-8d58-c41fdd47304f_1150x755.png 848w, https://substackcdn.com/image/fetch/$s_!fifX!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb175975e-31be-4592-8d58-c41fdd47304f_1150x755.png 1272w, https://substackcdn.com/image/fetch/$s_!fifX!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb175975e-31be-4592-8d58-c41fdd47304f_1150x755.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">120 words.</figcaption></figure></div><p>This isn&#8217;t about being verbose just to add pages to increase the book&#8217;s price. It&#8217;s about making sure the flow works well, that readers know where you&#8217;re going, and that they can follow you all the way. There&#8217;s a huge gap between writing a blog post and writing a book.</p><blockquote><p><strong>NOTE</strong><em>: In my newsletter, I try not to keep that gap too big. I feel like someone who deliberately shared their email is also making a clear statement: &#8220;I&#8217;m interested in your content&#8221;. I don&#8217;t take as much time as I do in the book, but I definitely take more than I did in my older blog posts.</em></p></blockquote><p>This is just one example, but my DE helped me massively. I absolutely loved every single bit of his feedback. To be honest, at the beginning of our collaboration, he had a lot of comments. Some things I picked up quickly, but others were much more difficult for me. Yet, over the next months, I will significantly improve my writing.</p><h1>Mindset</h1><p>I wanted to talk a little bit about my mindset when I started writing the content of my book, chapter after chapter, mistake after mistake.</p><p>At this stage, my mindset was simple: <strong>I wanted to write the best Go book. Period.</strong></p><p>Let me clarify, though, just to make sure I don&#8217;t come across as someone full of ego, as there&#8217;s an important nuance here. I wasn&#8217;t thinking, &#8220;<em>My book is going to be the best.</em>&#8221; Instead, I was thinking, &#8220;<em>I will give everything I have to bring it to a level where it could be considered the best.</em>&#8221;</p><p>I already knew at that point that it would probably be my first and last book. So, if I was going to write one, I might as well give everything I had to make sure that what&#8217;s going to sit on my shelf for the rest of my life is something I will be proud of.</p><p>Also, having this mindset was a commitment to future readers: you bought my book, I don&#8217;t know if you&#8217;ll love it, <strong>but I promise it&#8217;s the best version I could have made</strong>.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://read.thecoder.cafe/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://read.thecoder.cafe/subscribe?"><span>Subscribe now</span></a></p><h1>1P</h1><p>1P stands for <em>first part</em>. Basically, the process that starts once one-third of the book is written and accepted by the DE (which happened for me after a lot of back and forth to be honest).</p><p>For each third of the book (1P, 2P, and then 3P), the process is similar: the manuscript is sent to external reviewers who can leave comments directly on your text but also fill out a detailed document with questions like:</p><ul><li><p>Is the writing interesting? Does it hold your attention?</p></li><li><p>Are the examples good and applicable in the real world? Are there enough of them?</p></li><li><p>What do you think of the overall concept of the book and the approach toward the</p><p>intended audience?</p></li></ul><p>This document is very thorough. These reviews are invaluable for an author. While you can be confident that the writing itself is fairly solid thanks to the work you were doing with your DE, from a technical standpoint, this is really the first time your content is being confronted by other technical people.</p><p>We got the results for 1P in April 2021. In total, I received 13 reviews, with <strong>an average star rating of 4.10 out of 5</strong>. Not a fantastic score, but at that point, it was OK. I wasn&#8217;t too disappointed.</p><p>Of course, some of the feedback you receive as an author can hurt:</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!pPTK!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F48813f57-6567-48a6-8fea-16b59cbf999a_1216x208.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!pPTK!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F48813f57-6567-48a6-8fea-16b59cbf999a_1216x208.png 424w, https://substackcdn.com/image/fetch/$s_!pPTK!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F48813f57-6567-48a6-8fea-16b59cbf999a_1216x208.png 848w, https://substackcdn.com/image/fetch/$s_!pPTK!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F48813f57-6567-48a6-8fea-16b59cbf999a_1216x208.png 1272w, https://substackcdn.com/image/fetch/$s_!pPTK!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F48813f57-6567-48a6-8fea-16b59cbf999a_1216x208.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!pPTK!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F48813f57-6567-48a6-8fea-16b59cbf999a_1216x208.png" width="1216" height="208" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/48813f57-6567-48a6-8fea-16b59cbf999a_1216x208.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:208,&quot;width&quot;:1216,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:39244,&quot;alt&quot;:&quot;Excerpt of reviewer feedback highlighting a concern that some statements in the manuscript lack sufficient background or justification to confidently earn a 5-star rating.&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://www.thecoder.cafe/i/160360907?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F48813f57-6567-48a6-8fea-16b59cbf999a_1216x208.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Excerpt of reviewer feedback highlighting a concern that some statements in the manuscript lack sufficient background or justification to confidently earn a 5-star rating." title="Excerpt of reviewer feedback highlighting a concern that some statements in the manuscript lack sufficient background or justification to confidently earn a 5-star rating." srcset="https://substackcdn.com/image/fetch/$s_!pPTK!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F48813f57-6567-48a6-8fea-16b59cbf999a_1216x208.png 424w, https://substackcdn.com/image/fetch/$s_!pPTK!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F48813f57-6567-48a6-8fea-16b59cbf999a_1216x208.png 848w, https://substackcdn.com/image/fetch/$s_!pPTK!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F48813f57-6567-48a6-8fea-16b59cbf999a_1216x208.png 1272w, https://substackcdn.com/image/fetch/$s_!pPTK!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F48813f57-6567-48a6-8fea-16b59cbf999a_1216x208.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><p>But if it hurts, it probably means there&#8217;s some truth behind it. You have to accept it and improve your book.</p><p>During that period, Manning offered to connect me with another author, <a href="https://www.ardanlabs.com/instructors/bill-kennedy/">Bill Kennedy</a>, who also wrote a book with them called <em><a href="https://www.manning.com/books/go-in-action">Go in Action</a></em>. Beyond the fact that I have immense respect for him (he&#8217;s one of the people who contributes the most to the Go ecosystem), Bill taught me something crucial:</p><div class="pullquote"><p>If you get one comment, you must address it, even if it doesn&#8217;t seem important to you. If one person raised it, imagine when thousands of people read your book.</p></div><p>That was golden advice. Thanks to Bill, I gave my best to address (almost) every single comment, from changing a single word to fully rewriting how a mistake was explained.</p><h1>A Technical DE?</h1><p>It&#8217;s time to talk about my first hiccup with Manning (there will be two).</p><p>I already explained how crucial my development editor (DE) was in the process. However, I was also supposed to be accompanied by another person: a technical development editor (TDE).</p><p>While external reviewers only come in at each third of the book, the TDE is supposed to work more closely with the author throughout the entire process, helping shape the content, the overall structure, how chapters are divided, and so on.</p><p>This isn&#8217;t a personal criticism, but my TDE simply wasn&#8217;t an MQR. This means he didn&#8217;t have the basic Go knowledge expected from someone reading the book. Of course, I wasn&#8217;t expecting the world&#8217;s top Go expert as a TDE, but I did expect someone who at least matched the Minimum Qualified Reader profile, a concept introduced by Manning themselves. That felt like the bare minimum.</p><p>I raised this issue with Manning after 1P, but unfortunately, they didn&#8217;t really listen and kept the same TDE on the project. I was a bit annoyed, to be honest, but I had to move on.</p><h1>MEAP</h1><p>Until 1P, the book is in a kind of trial phase, meaning that either Manning or the author can still decide to stop the collaboration. Apparently, a certain percentage of books fail at 1P when Manning realizes that external reviewers aren&#8217;t convinced by how the initial idea is being executed.</p><p>After 1P, Manning launches their <em>Manning Early Access Program</em> (MEAP), which allows people to buy the book and access it while it&#8217;s still being written. For the author, it becomes an additional source of feedback, as readers can leave comments on an online platform.</p><p>When we say people can start buying your book, <strong>it also means a shift for Manning: it&#8217;s time to sell it.</strong></p><p>That brings a few new responsibilities, like keeping the content regularly updated for those who already paid, writing a welcome letter for MEAP readers, and starting to work with the marketing team on how to promote the book and raise awareness about it.</p><p>On that last point, Manning asked me several times during this period to promote the book at public events (meetups, conferences, etc.), but I always declined. Writing was already taking up so much time and energy that I didn&#8217;t feel like adding one more thing to my plate by preparing talks.</p><p>The only &#8220;promotion&#8221; I did during that time was joining a podcast since it required less preparation. I was invited to <em><a href="https://open.spotify.com/show/2cKdcxETn7jDp7uJCwqmSE">Go Time</a></em>, which was a weekly podcast about Go and the most popular one in the community (unfortunately, it stopped).</p><p>The episode I appeared in, titled sarcastically <em><a href="https://changelog.com/gotime/190">How to make mistakes in Go</a></em>, was <a href="https://x.com/GoTimeFM/status/1475953635569848321">really well received</a>. That was another interesting signal that talking about mistakes was a compelling angle.</p><h1>Choosing a Book Cover</h1><p>During that period, it was time to choose a book cover. Manning has a (very) special way of illustrating their books, all based on drawings from Jacques Grasset de Saint-Sauveur, an 18th-century illustrator.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!jGWe!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8346ead0-841a-4e09-bc5a-1eb2bc115117_1254x481.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!jGWe!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8346ead0-841a-4e09-bc5a-1eb2bc115117_1254x481.png 424w, https://substackcdn.com/image/fetch/$s_!jGWe!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8346ead0-841a-4e09-bc5a-1eb2bc115117_1254x481.png 848w, https://substackcdn.com/image/fetch/$s_!jGWe!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8346ead0-841a-4e09-bc5a-1eb2bc115117_1254x481.png 1272w, https://substackcdn.com/image/fetch/$s_!jGWe!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8346ead0-841a-4e09-bc5a-1eb2bc115117_1254x481.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!jGWe!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8346ead0-841a-4e09-bc5a-1eb2bc115117_1254x481.png" width="600" height="230.14354066985646" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/8346ead0-841a-4e09-bc5a-1eb2bc115117_1254x481.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:481,&quot;width&quot;:1254,&quot;resizeWidth&quot;:600,&quot;bytes&quot;:127723,&quot;alt&quot;:&quot;Excerpt explaining the historical background of the book&#8217;s cover illustration, sourced from an 18th-century collection by Jacques Grasset de Saint-Sauveur.&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://www.thecoder.cafe/i/160360907?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8346ead0-841a-4e09-bc5a-1eb2bc115117_1254x481.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Excerpt explaining the historical background of the book&#8217;s cover illustration, sourced from an 18th-century collection by Jacques Grasset de Saint-Sauveur." title="Excerpt explaining the historical background of the book&#8217;s cover illustration, sourced from an 18th-century collection by Jacques Grasset de Saint-Sauveur." srcset="https://substackcdn.com/image/fetch/$s_!jGWe!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8346ead0-841a-4e09-bc5a-1eb2bc115117_1254x481.png 424w, https://substackcdn.com/image/fetch/$s_!jGWe!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8346ead0-841a-4e09-bc5a-1eb2bc115117_1254x481.png 848w, https://substackcdn.com/image/fetch/$s_!jGWe!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8346ead0-841a-4e09-bc5a-1eb2bc115117_1254x481.png 1272w, https://substackcdn.com/image/fetch/$s_!jGWe!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8346ead0-841a-4e09-bc5a-1eb2bc115117_1254x481.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><p>At first, I received a few illustration options, including this one:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!SKpY!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb86937aa-a795-44da-af9d-096e315538e8_782x1091.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!SKpY!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb86937aa-a795-44da-af9d-096e315538e8_782x1091.png 424w, https://substackcdn.com/image/fetch/$s_!SKpY!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb86937aa-a795-44da-af9d-096e315538e8_782x1091.png 848w, https://substackcdn.com/image/fetch/$s_!SKpY!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb86937aa-a795-44da-af9d-096e315538e8_782x1091.png 1272w, https://substackcdn.com/image/fetch/$s_!SKpY!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb86937aa-a795-44da-af9d-096e315538e8_782x1091.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!SKpY!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb86937aa-a795-44da-af9d-096e315538e8_782x1091.png" width="351" height="489.6943734015345" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/b86937aa-a795-44da-af9d-096e315538e8_782x1091.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1091,&quot;width&quot;:782,&quot;resizeWidth&quot;:351,&quot;bytes&quot;:1172359,&quot;alt&quot;:&quot;18th-century illustration from Jacques Grasset de Saint-Sauveur showing a person in traditional dress, proposed as a potential book cover for 100 Go Mistakes.&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://www.thecoder.cafe/i/160360907?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb86937aa-a795-44da-af9d-096e315538e8_782x1091.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="18th-century illustration from Jacques Grasset de Saint-Sauveur showing a person in traditional dress, proposed as a potential book cover for 100 Go Mistakes." title="18th-century illustration from Jacques Grasset de Saint-Sauveur showing a person in traditional dress, proposed as a potential book cover for 100 Go Mistakes." srcset="https://substackcdn.com/image/fetch/$s_!SKpY!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb86937aa-a795-44da-af9d-096e315538e8_782x1091.png 424w, https://substackcdn.com/image/fetch/$s_!SKpY!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb86937aa-a795-44da-af9d-096e315538e8_782x1091.png 848w, https://substackcdn.com/image/fetch/$s_!SKpY!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb86937aa-a795-44da-af9d-096e315538e8_782x1091.png 1272w, https://substackcdn.com/image/fetch/$s_!SKpY!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb86937aa-a795-44da-af9d-096e315538e8_782x1091.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>In a very delicate and constructive manner, I decided to share my opinion:</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!wpky!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff482db13-717f-4514-afe2-7ee772e5ed8c_505x243.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!wpky!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff482db13-717f-4514-afe2-7ee772e5ed8c_505x243.png 424w, https://substackcdn.com/image/fetch/$s_!wpky!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff482db13-717f-4514-afe2-7ee772e5ed8c_505x243.png 848w, https://substackcdn.com/image/fetch/$s_!wpky!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff482db13-717f-4514-afe2-7ee772e5ed8c_505x243.png 1272w, https://substackcdn.com/image/fetch/$s_!wpky!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff482db13-717f-4514-afe2-7ee772e5ed8c_505x243.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!wpky!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff482db13-717f-4514-afe2-7ee772e5ed8c_505x243.png" width="401" height="192.95643564356436" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/f482db13-717f-4514-afe2-7ee772e5ed8c_505x243.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:243,&quot;width&quot;:505,&quot;resizeWidth&quot;:401,&quot;bytes&quot;:249268,&quot;alt&quot;:&quot;Screenshot of an email from Teiva Harsanyi expressing honest feedback on illustration options, stating: \&quot;I find those quite ugly.\&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://www.thecoder.cafe/i/160360907?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff482db13-717f-4514-afe2-7ee772e5ed8c_505x243.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Screenshot of an email from Teiva Harsanyi expressing honest feedback on illustration options, stating: &quot;I find those quite ugly.&quot;" title="Screenshot of an email from Teiva Harsanyi expressing honest feedback on illustration options, stating: &quot;I find those quite ugly.&quot;" srcset="https://substackcdn.com/image/fetch/$s_!wpky!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff482db13-717f-4514-afe2-7ee772e5ed8c_505x243.png 424w, https://substackcdn.com/image/fetch/$s_!wpky!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff482db13-717f-4514-afe2-7ee772e5ed8c_505x243.png 848w, https://substackcdn.com/image/fetch/$s_!wpky!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff482db13-717f-4514-afe2-7ee772e5ed8c_505x243.png 1272w, https://substackcdn.com/image/fetch/$s_!wpky!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff482db13-717f-4514-afe2-7ee772e5ed8c_505x243.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><p>The truth is, while I usually enjoy Manning books, I find all their covers pretty bad. Compared to other publishers like <a href="https://nostarch.com/">No Starch Press</a>, I definitely prefer what others are doing.</p><p>I remember having a hard time explaining to my family that my programming book would have <em>this</em> on the cover:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Q1KL!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd814a7e6-6c51-40d7-8491-3024f2a58bb1_941x1315.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Q1KL!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd814a7e6-6c51-40d7-8491-3024f2a58bb1_941x1315.png 424w, https://substackcdn.com/image/fetch/$s_!Q1KL!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd814a7e6-6c51-40d7-8491-3024f2a58bb1_941x1315.png 848w, https://substackcdn.com/image/fetch/$s_!Q1KL!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd814a7e6-6c51-40d7-8491-3024f2a58bb1_941x1315.png 1272w, https://substackcdn.com/image/fetch/$s_!Q1KL!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd814a7e6-6c51-40d7-8491-3024f2a58bb1_941x1315.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Q1KL!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd814a7e6-6c51-40d7-8491-3024f2a58bb1_941x1315.png" width="350" height="489.1073326248672" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d814a7e6-6c51-40d7-8491-3024f2a58bb1_941x1315.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1315,&quot;width&quot;:941,&quot;resizeWidth&quot;:350,&quot;bytes&quot;:2223270,&quot;alt&quot;:&quot;Illustration from an old book showing a traditionally dressed woman, used as the final cover image for 100 Go Mistakes.&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://www.thecoder.cafe/i/160360907?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd814a7e6-6c51-40d7-8491-3024f2a58bb1_941x1315.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Illustration from an old book showing a traditionally dressed woman, used as the final cover image for 100 Go Mistakes." title="Illustration from an old book showing a traditionally dressed woman, used as the final cover image for 100 Go Mistakes." srcset="https://substackcdn.com/image/fetch/$s_!Q1KL!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd814a7e6-6c51-40d7-8491-3024f2a58bb1_941x1315.png 424w, https://substackcdn.com/image/fetch/$s_!Q1KL!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd814a7e6-6c51-40d7-8491-3024f2a58bb1_941x1315.png 848w, https://substackcdn.com/image/fetch/$s_!Q1KL!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd814a7e6-6c51-40d7-8491-3024f2a58bb1_941x1315.png 1272w, https://substackcdn.com/image/fetch/$s_!Q1KL!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd814a7e6-6c51-40d7-8491-3024f2a58bb1_941x1315.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>But hey, it is what it is. I guess it contributes to a certain visual identity for Manning. And in the end, if we take a step back, the cover really isn&#8217;t <em>that</em> important&#8230; right?</p><h1>2P</h1><p>We&#8217;re in August 2021, four months after 1P, and it&#8217;s now time for 2P. In retrospect, having only four months to complete the second third of the book was a brutal pace. Looking at some old emails with my DE, it&#8217;s clear that this period was particularly exhausting for me:</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!8nSY!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc1e2906f-a4a0-44ab-b3a4-ece8411198b8_1155x266.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!8nSY!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc1e2906f-a4a0-44ab-b3a4-ece8411198b8_1155x266.png 424w, https://substackcdn.com/image/fetch/$s_!8nSY!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc1e2906f-a4a0-44ab-b3a4-ece8411198b8_1155x266.png 848w, https://substackcdn.com/image/fetch/$s_!8nSY!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc1e2906f-a4a0-44ab-b3a4-ece8411198b8_1155x266.png 1272w, https://substackcdn.com/image/fetch/$s_!8nSY!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc1e2906f-a4a0-44ab-b3a4-ece8411198b8_1155x266.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!8nSY!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc1e2906f-a4a0-44ab-b3a4-ece8411198b8_1155x266.png" width="1155" height="266" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c1e2906f-a4a0-44ab-b3a4-ece8411198b8_1155x266.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:266,&quot;width&quot;:1155,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:474774,&quot;alt&quot;:&quot;Screenshot of an email from the author to his Development Editor expressing exhaustion while working on chapter 8 of the book.&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://www.thecoder.cafe/i/160360907?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc1e2906f-a4a0-44ab-b3a4-ece8411198b8_1155x266.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Screenshot of an email from the author to his Development Editor expressing exhaustion while working on chapter 8 of the book." title="Screenshot of an email from the author to his Development Editor expressing exhaustion while working on chapter 8 of the book." srcset="https://substackcdn.com/image/fetch/$s_!8nSY!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc1e2906f-a4a0-44ab-b3a4-ece8411198b8_1155x266.png 424w, https://substackcdn.com/image/fetch/$s_!8nSY!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc1e2906f-a4a0-44ab-b3a4-ece8411198b8_1155x266.png 848w, https://substackcdn.com/image/fetch/$s_!8nSY!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc1e2906f-a4a0-44ab-b3a4-ece8411198b8_1155x266.png 1272w, https://substackcdn.com/image/fetch/$s_!8nSY!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc1e2906f-a4a0-44ab-b3a4-ece8411198b8_1155x266.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><p>Anyway, it&#8217;s 2P, and this time I received 13 reviews with <strong>an average rating of 4.15</strong>. So I went from 4.10 to 4.15, and honestly, at that point, I was starting to feel a bit disappointed.</p><p>I&#8217;m a regular user of <a href="https://goodreads.com/">Goodreads</a>. On that platform, books are also rated out of 5 stars; in my mind, a &#8220;great&#8221; book starts at 4.5 and up. Why 4.5? No idea. But that was definitely my goal.</p><p>4.15 isn&#8217;t bad, but it&#8217;s still far from 4.5. So yes, I was disappointed but not dejected. Once again, I went through all the reviews, and <strong>I just kept improving the book over and over</strong>.</p><p>To give you a sense of what I mean by improving the book &#8220;<em>over and over</em>&#8220;, keep in mind that between feedback from my DE, external reviewers, and others, there are parts of the book that I rewrote more than ten times. I don&#8217;t know if that&#8217;s common, to be honest. Maybe it&#8217;s because I was terrible at the beginning. Maybe it&#8217;s because I&#8217;m literally obsessed with details. Or maybe it&#8217;s both.</p><h1>3P</h1><p>From 2P to 3P is almost a blackout for me. This time, the period lasted five months, during which <strong>I wrote the last third of the book and completely rewrote the first few chapters</strong>. Indeed, once I reached the end of the book, I reread the first part and thought: <em>&#8220;This is awful; I can&#8217;t publish that.&#8221;</em></p><p>That&#8217;s more proof that going through the long, demanding process of writing a book really did improve my writing skills. Some parts that felt fine in the beginning ended up being terrible once I had more experience.</p><p>From those five months, I only clearly remember one week of "holiday" that I spent working on my book. And by week, I don&#8217;t mean a peaceful 40-hour work week. I mean waking up at 3 p.m., working 14 to 15 hours straight, and going to bed around 8 a.m.</p><p>Funny enough, I didn&#8217;t hate that week. In my mind, it was <em>my</em> author week. If I had crossed a stranger on the street and they had asked what I did for a living, I would&#8217;ve proudly said: &#8220;<em>I&#8217;m an author!</em>&#8221;</p><p>Unfortunately, I didn&#8217;t speak to anyone that week. Except my janitor.</p><p>But during that week, I made a lot of progress. I managed to write the first draft of the last chapter. I&#8217;m sharing this to give you an idea of the pace. The book had 12 chapters, and the one that went the fastest still took me about 100 hours to write. You can imagine how long the rest took. And that&#8217;s not even counting the endless rewrites after all the feedback from my DE and the reviewers.</p><p>During that period, I also worked on my inside cover. I&#8217;m a big fan of <em>Designing Data-Intensive Applications</em> by <span class="mention-wrap" data-attrs="{&quot;name&quot;:&quot;Martin Kleppmann&quot;,&quot;id&quot;:3519005,&quot;type&quot;:&quot;user&quot;,&quot;url&quot;:null,&quot;photo_url&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/47a66e89-1de0-4001-9a3c-60abe841e575_2102x2102.jpeg&quot;,&quot;uuid&quot;:&quot;e98e1fd9-db64-4790-9eb1-e4fcf2501ba1&quot;}" data-component-name="MentionToDOM"></span>. His book is full of beautiful visual maps like this one:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!oMo_!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F040a97dd-2acb-437b-9695-f628db317e6e_1268x966.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!oMo_!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F040a97dd-2acb-437b-9695-f628db317e6e_1268x966.png 424w, https://substackcdn.com/image/fetch/$s_!oMo_!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F040a97dd-2acb-437b-9695-f628db317e6e_1268x966.png 848w, https://substackcdn.com/image/fetch/$s_!oMo_!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F040a97dd-2acb-437b-9695-f628db317e6e_1268x966.png 1272w, https://substackcdn.com/image/fetch/$s_!oMo_!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F040a97dd-2acb-437b-9695-f628db317e6e_1268x966.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!oMo_!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F040a97dd-2acb-437b-9695-f628db317e6e_1268x966.png" width="600" height="457.09779179810727" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/040a97dd-2acb-437b-9695-f628db317e6e_1268x966.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:966,&quot;width&quot;:1268,&quot;resizeWidth&quot;:600,&quot;bytes&quot;:734227,&quot;alt&quot;:&quot;A hand-drawn fantasy-style map from Designing Data-Intensive Applications, depicting various regions metaphorically named after data concepts like \&quot;Hadoop Region\&quot;, \&quot;Log-Structured Storage\&quot;, and \&quot;Kingdom of Analytics\&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://www.thecoder.cafe/i/160360907?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F040a97dd-2acb-437b-9695-f628db317e6e_1268x966.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="A hand-drawn fantasy-style map from Designing Data-Intensive Applications, depicting various regions metaphorically named after data concepts like &quot;Hadoop Region&quot;, &quot;Log-Structured Storage&quot;, and &quot;Kingdom of Analytics&quot;." title="A hand-drawn fantasy-style map from Designing Data-Intensive Applications, depicting various regions metaphorically named after data concepts like &quot;Hadoop Region&quot;, &quot;Log-Structured Storage&quot;, and &quot;Kingdom of Analytics&quot;." srcset="https://substackcdn.com/image/fetch/$s_!oMo_!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F040a97dd-2acb-437b-9695-f628db317e6e_1268x966.png 424w, https://substackcdn.com/image/fetch/$s_!oMo_!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F040a97dd-2acb-437b-9695-f628db317e6e_1268x966.png 848w, https://substackcdn.com/image/fetch/$s_!oMo_!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F040a97dd-2acb-437b-9695-f628db317e6e_1268x966.png 1272w, https://substackcdn.com/image/fetch/$s_!oMo_!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F040a97dd-2acb-437b-9695-f628db317e6e_1268x966.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>I wanted a similar vibe, so I created 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_!oM-K!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7d11f9a6-15b7-47c4-a60b-ae46cd3038a1_1616x1479.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!oM-K!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7d11f9a6-15b7-47c4-a60b-ae46cd3038a1_1616x1479.png 424w, https://substackcdn.com/image/fetch/$s_!oM-K!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7d11f9a6-15b7-47c4-a60b-ae46cd3038a1_1616x1479.png 848w, https://substackcdn.com/image/fetch/$s_!oM-K!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7d11f9a6-15b7-47c4-a60b-ae46cd3038a1_1616x1479.png 1272w, https://substackcdn.com/image/fetch/$s_!oM-K!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7d11f9a6-15b7-47c4-a60b-ae46cd3038a1_1616x1479.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!oM-K!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7d11f9a6-15b7-47c4-a60b-ae46cd3038a1_1616x1479.png" width="600" height="549.3131868131868" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/7d11f9a6-15b7-47c4-a60b-ae46cd3038a1_1616x1479.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1333,&quot;width&quot;:1456,&quot;resizeWidth&quot;:600,&quot;bytes&quot;:3715838,&quot;alt&quot;:&quot;A fantasy-style illustrated map titled 100 Go Mistakes and How to Avoid Them, with labeled regions like &#8220;Concurrency,&#8221; &#8220;Functions &amp; Methods,&#8221; &#8220;Testing,&#8221; and &#8220;Data Types,&#8221; representing different Go programming topics in a whimsical, visual way.&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://www.thecoder.cafe/i/160360907?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7d11f9a6-15b7-47c4-a60b-ae46cd3038a1_1616x1479.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="A fantasy-style illustrated map titled 100 Go Mistakes and How to Avoid Them, with labeled regions like &#8220;Concurrency,&#8221; &#8220;Functions &amp; Methods,&#8221; &#8220;Testing,&#8221; and &#8220;Data Types,&#8221; representing different Go programming topics in a whimsical, visual way." title="A fantasy-style illustrated map titled 100 Go Mistakes and How to Avoid Them, with labeled regions like &#8220;Concurrency,&#8221; &#8220;Functions &amp; Methods,&#8221; &#8220;Testing,&#8221; and &#8220;Data Types,&#8221; representing different Go programming topics in a whimsical, visual way." srcset="https://substackcdn.com/image/fetch/$s_!oM-K!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7d11f9a6-15b7-47c4-a60b-ae46cd3038a1_1616x1479.png 424w, https://substackcdn.com/image/fetch/$s_!oM-K!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7d11f9a6-15b7-47c4-a60b-ae46cd3038a1_1616x1479.png 848w, https://substackcdn.com/image/fetch/$s_!oM-K!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7d11f9a6-15b7-47c4-a60b-ae46cd3038a1_1616x1479.png 1272w, https://substackcdn.com/image/fetch/$s_!oM-K!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7d11f9a6-15b7-47c4-a60b-ae46cd3038a1_1616x1479.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 map is full of tiny easter eggs. For example, <em><a href="https://www.ardanlabs.com/instructors/bill-kennedy/">Kennedy</a> Sea</em>, <em><a href="https://swtch.com/~rsc/">Cox</a> River</em>, <em><a href="https://dave.cheney.net/">Cheney</a> Ocean</em>, <em>Mount <a href="https://github.com/rakyll">Dogan</a></em>, or even <em><a href="https://medium.com/@val_deleplace">Deleplace</a> Tower</em>. It was my way of giving a nod to the people in the Go community who helped me the most through their content.</p><p>So, it&#8217;s January 2022, and we finally receive the results from 3P.</p><p>In total, I got 15 reviews and <strong>an average rating of&#8230; 4.6/5</strong>. Nice! &#128522;</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!J-Xs!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faf9bc554-924f-4aec-bc4e-62437b9ab035_1160x267.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!J-Xs!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faf9bc554-924f-4aec-bc4e-62437b9ab035_1160x267.png 424w, https://substackcdn.com/image/fetch/$s_!J-Xs!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faf9bc554-924f-4aec-bc4e-62437b9ab035_1160x267.png 848w, https://substackcdn.com/image/fetch/$s_!J-Xs!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faf9bc554-924f-4aec-bc4e-62437b9ab035_1160x267.png 1272w, https://substackcdn.com/image/fetch/$s_!J-Xs!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faf9bc554-924f-4aec-bc4e-62437b9ab035_1160x267.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!J-Xs!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faf9bc554-924f-4aec-bc4e-62437b9ab035_1160x267.png" width="1160" height="267" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/af9bc554-924f-4aec-bc4e-62437b9ab035_1160x267.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:267,&quot;width&quot;:1160,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:463085,&quot;alt&quot;:&quot;Email screenshot showing the author celebrating the 3P review phase of the book with a 4.6/5 rating, having reached his secret goal of surpassing a 4.5 average rating.&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://www.thecoder.cafe/i/160360907?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faf9bc554-924f-4aec-bc4e-62437b9ab035_1160x267.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Email screenshot showing the author celebrating the 3P review phase of the book with a 4.6/5 rating, having reached his secret goal of surpassing a 4.5 average rating." title="Email screenshot showing the author celebrating the 3P review phase of the book with a 4.6/5 rating, having reached his secret goal of surpassing a 4.5 average rating." srcset="https://substackcdn.com/image/fetch/$s_!J-Xs!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faf9bc554-924f-4aec-bc4e-62437b9ab035_1160x267.png 424w, https://substackcdn.com/image/fetch/$s_!J-Xs!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faf9bc554-924f-4aec-bc4e-62437b9ab035_1160x267.png 848w, https://substackcdn.com/image/fetch/$s_!J-Xs!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faf9bc554-924f-4aec-bc4e-62437b9ab035_1160x267.png 1272w, https://substackcdn.com/image/fetch/$s_!J-Xs!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faf9bc554-924f-4aec-bc4e-62437b9ab035_1160x267.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><p>And speaking of good news, around the same time, Manning finally decided to switch my TDE to someone else, <a href="https://x.com/tjvdeurzen">Tim van Deurzen</a>. If you want a simple anecdote to understand Tim&#8217;s importance was for this book: during 3P, I received feedback from 15 reviewers. Yet I think Tim&#8217;s single review was possibly as valuable as all the others combined. The guy is an absolute rockstar; my book wouldn&#8217;t have been the same without him. Thanks again, Tim. &#128583;&#8205;&#9794;&#65039;</p><p>One more month of work to take all the reviews into account, and&#8230;</p><h1>&#129346; Finished!</h1><p>We&#8217;re at the end of February 2022, and the book officially moves from the development stage to production. At this stage, only a few steps remain, and they are mostly handled by the publisher:</p><ul><li><p>Copyediting to refine grammar, style, and consistency</p></li><li><p>Proofreading to catch spelling, punctuation, and formatting errors</p></li><li><p>Typesetting to arrange the text, code, and images for publication</p></li><li><p>Indexing to compile a list of key terms and topics with page references</p></li></ul><p>One thing to note: from an author&#8217;s standpoint, the book is more or less complete at this stage. You can still add minor things, but the publisher wants to lock in a first version. That&#8217;s because adding even a single new paragraph means going through the process again for that section. That&#8217;s why publishers insist on fixing the version.</p><p>Reaching that point is a big milestone. To express what I felt at the time, there&#8217;s a great quote by Gene Fowler:</p><div class="pullquote"><p>A book is never finished; it's abandoned.</p></div><p>Real question: how can you say a book is finished? For example, I could have improved a figure here, tweaked an example there, rephrased a sentence, or refined a conclusion. But that loop could have lasted forever. At some point, you just have to consider this version final, move to the next stage, and, in a way, <strong>abandon your book</strong>.</p><p>It&#8217;s a tough feeling, but that&#8217;s how it goes.</p><p>That being said, finishing a book calls for a celebration. I remember having a drink one evening with my girlfriend, and we toasted to &#8220;<em>the end of the book.</em>&#8221; &#129346;</p><p>Once again, I was way too naive.</p><h1>&#8220;<em>I&#8217;ll Stop Everything</em>&#8220;</h1><p>It&#8217;s now time to talk about my second hiccup with Manning, but this time, it was way more serious.</p><p>We started the copyediting process, which is meant to refine grammar, style, and consistency. I don&#8217;t know about you, but I imagined the author&#8217;s involvement at this stage would be pretty lightweight, right? Absolutely not. At least, not for my book.</p><p><strong>First, the review process was an exercise in frustration and inefficiency.</strong></p><p>During the development phase, I wrote everything in <a href="https://asciidoc.org/">AsciiDoc</a>, generated content, and got feedback either as PDF comments from the DE or through the Manning website from reviewers.</p><p>But copyediting was different. The copyeditor was directly editing my content and leaving questions in the source itself.</p><p>To clarify, my content was stored in a Git repository. Instead of going through a classic pull request (PR) workflow, the copyeditor was directly modifying the source files and adding comments on top of that.</p><p>For example, here is my original sentence:</p><pre><code>Throughout this section we also used an example with errors because ...</code></pre><p>And here&#8217;s what it looked like after her changes:</p><pre><code>// AQ: please clarify leading to this error. Which error?
In this section, we used an example with errors because ...</code></pre><p>So she was:</p><ul><li><p>Modifying the content directly</p></li><li><p>Adding comments in the source code itself (&#129327;)</p></li></ul><p>I tried to explain how review workflows work in a PR-based setup, and gave concrete suggestions for how we could improve the process. But they didn&#8217;t want to try it. That might sound like a small thing, but at that stage, all I wanted was a smooth and efficient collaboration process. The easier it was for me to track changes, the better.</p><p>But if that were the only problem, it would have been fine. Unfortunately, it was way more than that.</p><p>To put it simply, <strong>my experience with the copyeditor was catastrophic</strong>. She completely wrecked the content and introduced countless typos and mistakes.</p><p>For example, many of the issues came from her confusing the programming language Go with the verb to go. That led to many sentences that made absolutely no sense anymore.</p><p>Let me be clear: it&#8217;s totally fine if a copyeditor introduces a few mistakes. It&#8217;s supposed to be a collaborative process: they adapt the content, we go back and forth, and we improve it together.</p><p>But in this case, the number of mistakes was absurd. In just one chapter, she introduced 23 errors. I don&#8217;t mean things that could be improved; I mean factual errors. Now multiply that by 12 chapters.</p><p>And it wasn&#8217;t just about errors. When I asked questions like, &#8220;<em>Why did you remove this sentence? I think it&#8217;s an important transition, and we should keep it</em>&#8221;, she would sometimes just delete my comment. Such a great collaboration, right?</p><p>Eventually, when I raised more and more concerns, what was her response?</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!iMbu!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffb8075a8-e04a-4965-9cdb-60adbf7e783b_929x249.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!iMbu!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffb8075a8-e04a-4965-9cdb-60adbf7e783b_929x249.png 424w, https://substackcdn.com/image/fetch/$s_!iMbu!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffb8075a8-e04a-4965-9cdb-60adbf7e783b_929x249.png 848w, https://substackcdn.com/image/fetch/$s_!iMbu!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffb8075a8-e04a-4965-9cdb-60adbf7e783b_929x249.png 1272w, https://substackcdn.com/image/fetch/$s_!iMbu!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffb8075a8-e04a-4965-9cdb-60adbf7e783b_929x249.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!iMbu!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffb8075a8-e04a-4965-9cdb-60adbf7e783b_929x249.png" width="725.1500244140625" height="194.36206251787036" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/fb8075a8-e04a-4965-9cdb-60adbf7e783b_929x249.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:false,&quot;imageSize&quot;:&quot;normal&quot;,&quot;height&quot;:249,&quot;width&quot;:929,&quot;resizeWidth&quot;:725.1500244140625,&quot;bytes&quot;:487151,&quot;alt&quot;:&quot;Screenshot of an email from the copyeditor stating \&quot;Chapters 1&#8211;5 are ready for indexing,\&quot; sent without the author's approval after major issues were raised.&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://www.thecoder.cafe/i/160360907?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffb8075a8-e04a-4965-9cdb-60adbf7e783b_929x249.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Screenshot of an email from the copyeditor stating &quot;Chapters 1&#8211;5 are ready for indexing,&quot; sent without the author's approval after major issues were raised." title="Screenshot of an email from the copyeditor stating &quot;Chapters 1&#8211;5 are ready for indexing,&quot; sent without the author's approval after major issues were raised." srcset="https://substackcdn.com/image/fetch/$s_!iMbu!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffb8075a8-e04a-4965-9cdb-60adbf7e783b_929x249.png 424w, https://substackcdn.com/image/fetch/$s_!iMbu!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffb8075a8-e04a-4965-9cdb-60adbf7e783b_929x249.png 848w, https://substackcdn.com/image/fetch/$s_!iMbu!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffb8075a8-e04a-4965-9cdb-60adbf7e783b_929x249.png 1272w, https://substackcdn.com/image/fetch/$s_!iMbu!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffb8075a8-e04a-4965-9cdb-60adbf7e783b_929x249.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><p>She basically said chapters 1 to 5 were ready to move to the next phase without even letting me fix the mistakes she introduced.</p><p>Let me try to put you in my shoes so you understand how I felt.</p><p>You&#8217;ve spent 15 months writing your book. You&#8217;ve done countless iterations to carefully improve every single one of the 100 mistakes. You&#8217;ve spent more hours than you can count. You&#8217;ve carefully processed hundreds, if not thousands, of pieces of feedback. You even took dedicated holidays just to make progress on it. And then, all of a sudden, someone jumps into your book, completely butchers it, and says, &#8220;<em>These chapters are ready!</em>&#8221;</p><p><strong>How would you feel?</strong></p><p>Well, that&#8217;s exactly how I felt. And to be honest, it was too much for me. I wrote an escalation email (which I won&#8217;t share here as it was way too salty) explaining that until this was resolved (meaning she had to leave), I would stop working on my own book.</p><p>To be fair to Manning, the situation was handled fairly quickly. Especially by one person: my acquisition editor (the scout). I really think that he saved the book. Because at that point, I swear that I was ready to give up everything.</p><p>In March 2022, the copyeditor stopped working on my book (she was external to Manning), and I was assigned someone new. That change was a huge relief.</p><p>Unfortunately, it meant going through everything again. I had to fix myself every single error she had introduced in the first five chapters, which delayed the book and cost me way more time and energy than I had anticipated.</p><p>Finally, at the end of July 2022, after six months of work after I thought the book was "finished", we reached the end. And this time, for real.</p><p>Did I try to celebrate again with my girlfriend? Yes. What did she reply? &#8220;<em>I can&#8217;t trust you anymore with your book.</em>&#8221;</p><h1>Happiness?</h1><p>A few months later, I received a box in the mail. I opened it, and inside were copies of my own book, sent by Manning. As you can imagine, I must have felt a mix of pride and extreme happiness, right? Nope.</p><p>I just couldn&#8217;t feel anything. I remember holding my own book in my hands and thinking, &#8220;<em>What&#8217;s wrong with me? Why can&#8217;t I just be happy?</em>&#8221;</p><p>This feeling isn&#8217;t that uncommon and is often referred to as <strong>post-publication depression</strong>.</p><p>It&#8217;s incredibly hard to put words to what I was feeling. It was around August 2022 and I had started working on the content back in July 2019. That&#8217;s almost three years of work. It had been such an intense period, and suddenly it was over.</p><p>It wasn&#8217;t really sadness. <strong>Just&#8230; emptiness, I would say.</strong></p><p>Over the following months, I slowly started to recover and eventually became very positive about the whole experience. But that moment really changed the way I look at other people&#8217;s work.</p><p>When we evaluate something, a coding project, a book, or an illustration, we often forget how much time, energy, and emotion someone may have poured into it. We have no idea what that work cost them.</p><h1>Promotion?</h1><p>So, the book is released, and everyone can buy it. Time for promotion!</p><p>I started with one <a href="https://www.reddit.com/r/golang/comments/wwci1c/100_go_mistakes_released/">Reddit post</a> of 175 words, followed by a <a href="https://x.com/teivah/status/1562333506105114624">tweet</a> of 49 words:</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!KQpd!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F033238b5-e992-44ae-86e5-3057d41a963b_873x313.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!KQpd!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F033238b5-e992-44ae-86e5-3057d41a963b_873x313.png 424w, https://substackcdn.com/image/fetch/$s_!KQpd!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F033238b5-e992-44ae-86e5-3057d41a963b_873x313.png 848w, https://substackcdn.com/image/fetch/$s_!KQpd!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F033238b5-e992-44ae-86e5-3057d41a963b_873x313.png 1272w, https://substackcdn.com/image/fetch/$s_!KQpd!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F033238b5-e992-44ae-86e5-3057d41a963b_873x313.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!KQpd!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F033238b5-e992-44ae-86e5-3057d41a963b_873x313.png" width="550" height="197.19358533791524" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/033238b5-e992-44ae-86e5-3057d41a963b_873x313.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:313,&quot;width&quot;:873,&quot;resizeWidth&quot;:550,&quot;bytes&quot;:79463,&quot;alt&quot;:&quot;Screenshot of a tweet announcing the release of the book \&quot;100 Go Mistakes and How to Avoid Them,\&quot; expressing gratitude to Manning Books and all involved.&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://www.thecoder.cafe/i/160360907?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F033238b5-e992-44ae-86e5-3057d41a963b_873x313.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Screenshot of a tweet announcing the release of the book &quot;100 Go Mistakes and How to Avoid Them,&quot; expressing gratitude to Manning Books and all involved." title="Screenshot of a tweet announcing the release of the book &quot;100 Go Mistakes and How to Avoid Them,&quot; expressing gratitude to Manning Books and all involved." srcset="https://substackcdn.com/image/fetch/$s_!KQpd!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F033238b5-e992-44ae-86e5-3057d41a963b_873x313.png 424w, https://substackcdn.com/image/fetch/$s_!KQpd!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F033238b5-e992-44ae-86e5-3057d41a963b_873x313.png 848w, https://substackcdn.com/image/fetch/$s_!KQpd!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F033238b5-e992-44ae-86e5-3057d41a963b_873x313.png 1272w, https://substackcdn.com/image/fetch/$s_!KQpd!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F033238b5-e992-44ae-86e5-3057d41a963b_873x313.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><p>In total, writing these 224 words took me around 10 minutes. And after that? <strong>Nothing for more than a year.</strong></p><p>There were two main reasons.</p><p>First, I was mentally exhausted. Especially after the painful six-month process where I thought my book was finished, but it wasn&#8217;t; I just had no energy left. I kept declining Manning&#8217;s requests to promote the book at conferences, meetups, YouTube videos, Twitch streams, and so on.</p><p>Second, I developed this belief: if my book was good, people would talk about it and share it. I don&#8217;t know if I was being delusional, lucky, or a mix of both, but it turns out I was right. The number of people who kept commenting on the book across <a href="https://www.reddit.com/r/golang/search/?q=%22100+go+mistakes%22&amp;type=comments&amp;sort=new&amp;cId=a764214d-3cf1-4a80-be1c-41dc991dac42&amp;iId=744f1a2c-3d94-4ace-a3ca-b8c5a759705e">Reddit</a>, <a href="https://x.com/search?q=%22100%20go%20mistakes%22&amp;src=typed_query&amp;f=live">X</a>, YouTube, and other platforms was absolutely sensational for me.</p><div id="youtube2-a-lYYYr-5a8" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;a-lYYYr-5a8&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/a-lYYYr-5a8?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><p>One important thing to clarify. This wasn&#8217;t about being overconfident or full of ego, like, &#8220;<em>Yeah, my content is so good, of course people will talk about it!</em>&#8221;</p><p>It was more like, &#8220;<em>If my book is worth sharing, people will share it. If not, then should I really bother promoting something people don&#8217;t even enjoy?</em>&#8221;</p><p>Of course, it would&#8217;ve broken my heart if people said the content was terrible. But still, that was really my mindset during that year, and honestly, it hasn&#8217;t changed much since then.</p><p>A year later, in September 2023, with the help of <a href="https://github.com/teivah/100-go-mistakes/graphs/contributors">people</a> from the Go community, I released <a href="https://100go.co/">100go.co</a>, which contains a summary of all the mistakes in the book:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!3msr!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb8008ff6-1bc9-4e26-acf4-9e5968703e8a_636x911.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!3msr!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb8008ff6-1bc9-4e26-acf4-9e5968703e8a_636x911.png 424w, https://substackcdn.com/image/fetch/$s_!3msr!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb8008ff6-1bc9-4e26-acf4-9e5968703e8a_636x911.png 848w, https://substackcdn.com/image/fetch/$s_!3msr!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb8008ff6-1bc9-4e26-acf4-9e5968703e8a_636x911.png 1272w, https://substackcdn.com/image/fetch/$s_!3msr!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb8008ff6-1bc9-4e26-acf4-9e5968703e8a_636x911.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!3msr!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb8008ff6-1bc9-4e26-acf4-9e5968703e8a_636x911.png" width="500" height="716.1949685534591" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/b8008ff6-1bc9-4e26-acf4-9e5968703e8a_636x911.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:911,&quot;width&quot;:636,&quot;resizeWidth&quot;:500,&quot;bytes&quot;:146802,&quot;alt&quot;:&quot;Screenshot of 100go.co displaying some summarized Go mistakes.&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://www.thecoder.cafe/i/160360907?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F10a82403-e4b5-4354-a318-cf67551135cd_636x1183.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Screenshot of 100go.co displaying some summarized Go mistakes." title="Screenshot of 100go.co displaying some summarized Go mistakes." srcset="https://substackcdn.com/image/fetch/$s_!3msr!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb8008ff6-1bc9-4e26-acf4-9e5968703e8a_636x911.png 424w, https://substackcdn.com/image/fetch/$s_!3msr!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb8008ff6-1bc9-4e26-acf4-9e5968703e8a_636x911.png 848w, https://substackcdn.com/image/fetch/$s_!3msr!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb8008ff6-1bc9-4e26-acf4-9e5968703e8a_636x911.png 1272w, https://substackcdn.com/image/fetch/$s_!3msr!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb8008ff6-1bc9-4e26-acf4-9e5968703e8a_636x911.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>That website was kind of a way to <strong>close the loop on my initial wish to create open-source content</strong>. People who can&#8217;t or just don&#8217;t want to buy the book can still visit <a href="https://100go.co/">100go.co</a> and access a significant part of the content for free. The traffic ended up being quite strong for such a specialized website: 150k views in 2024.</p><p>I discussed <a href="https://100go.co/">100go.co</a> with Manning, and they said it was a &#8220;<em>brilliant idea</em>&#8221;. They even offered me a paid role to help other authors promote their content.</p><p>In all honesty, I think they overestimate my sales skills. I haven&#8217;t done a lot in that area. For example, last year, I gave a talk at a public conference, and I didn&#8217;t even mention that I had written a book. Not because I hate promotion. Well, I do, but that wasn&#8217;t the main reason. The real reason was that mentioning my book wouldn&#8217;t have improved this talk in any way. So I just didn&#8217;t say anything.</p><p>What about Manning&#8217;s offer to help other authors? I didn&#8217;t take it.</p><p>If it were up to me, people would still have the option to buy my book physically, but the whole content would be available online for free, with no login required.</p><p>I&#8217;ve considered talking to Manning about that. We will see if they still believe I have &#8220;<em>brilliant</em>&#8221; ideas. &#128517;</p><h1>Translations and Total Sales</h1><p>At the end of 2022, Manning informed me they had secured licensing deals for four translations. For each of them, I received a fixed payment along with royalties. For example, I earned $4,000 and 6% royalties for the Japanese translation.</p><p>As of the end of September 2025, <strong>the English version had sold 13,258 copies</strong>.</p><p>I don&#8217;t have the sales figures for the translations, but someone at Manning told me that usually, the combined sales of all translated versions may match the English copies sold.</p><blockquote><p><strong>NOTE</strong>: My book also started a new Manning <a href="https://www.google.com/search?q=site%3Amanning.com+%22100%22+%22mistakes+and+how+to+avoid+them">series</a> called <em>100 &#8230; Mistakes and How to Avoid Them</em>, with editions in Java, C++, and SQL Server, for instance.</p></blockquote><p>To this day, <strong>I&#8217;ve earned around $54,000 from the book</strong> (before taxes). If I consider the time spent, using a conservative lower bound of 2,000 hours, that comes out to about $27 per hour.</p><p>There are two ways to look at that hourly rate.</p><p>One could say it&#8217;s pretty low compared to what a software engineer could earn. I could have invested 2,000 hours into some paid technical work and probably made a lot more.</p><p>The other way to approach it is not to care too much about it. Sure, the money I earned isn&#8217;t negligible (it paid for quite a few holidays, to be honest), but my main message is this: <strong>if you&#8217;re a new author, don&#8217;t think about writing your book to become rich</strong>.</p><p>I&#8217;m sure there are well-known authors like Robert Martin who can make significant income from pretty much any book they release. But for the rest of us, the &#8220;normal&#8221; authors, we can&#8217;t and shouldn&#8217;t aim to get rich, especially from a single book.</p><p>For me, the money I earned from this book was never the goal. I&#8217;m happy with it, of course, but that&#8217;s not where my main motivation was.</p><p>It was somewhere else.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!W9Wt!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F219ae5e9-b5e1-47c2-8b39-70fe14eab405_3204x1604.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!W9Wt!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F219ae5e9-b5e1-47c2-8b39-70fe14eab405_3204x1604.png 424w, https://substackcdn.com/image/fetch/$s_!W9Wt!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F219ae5e9-b5e1-47c2-8b39-70fe14eab405_3204x1604.png 848w, https://substackcdn.com/image/fetch/$s_!W9Wt!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F219ae5e9-b5e1-47c2-8b39-70fe14eab405_3204x1604.png 1272w, https://substackcdn.com/image/fetch/$s_!W9Wt!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F219ae5e9-b5e1-47c2-8b39-70fe14eab405_3204x1604.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!W9Wt!,w_2400,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F219ae5e9-b5e1-47c2-8b39-70fe14eab405_3204x1604.png" width="1200" height="600.8241758241758" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/219ae5e9-b5e1-47c2-8b39-70fe14eab405_3204x1604.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:false,&quot;imageSize&quot;:&quot;large&quot;,&quot;height&quot;:729,&quot;width&quot;:1456,&quot;resizeWidth&quot;:1200,&quot;bytes&quot;:2900993,&quot;alt&quot;:&quot;A lot of messages saying things like: thank you for your book.&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://www.thecoder.cafe/i/160360907?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F219ae5e9-b5e1-47c2-8b39-70fe14eab405_3204x1604.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-large" alt="A lot of messages saying things like: thank you for your book." title="A lot of messages saying things like: thank you for your book." srcset="https://substackcdn.com/image/fetch/$s_!W9Wt!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F219ae5e9-b5e1-47c2-8b39-70fe14eab405_3204x1604.png 424w, https://substackcdn.com/image/fetch/$s_!W9Wt!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F219ae5e9-b5e1-47c2-8b39-70fe14eab405_3204x1604.png 848w, https://substackcdn.com/image/fetch/$s_!W9Wt!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F219ae5e9-b5e1-47c2-8b39-70fe14eab405_3204x1604.png 1272w, https://substackcdn.com/image/fetch/$s_!W9Wt!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F219ae5e9-b5e1-47c2-8b39-70fe14eab405_3204x1604.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><h1>Conclusion</h1><p>So, did I reach my secret goal of getting a rating over 4.5? Yes, I did!</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="http://goodreads.com/book/show/58571862-100-go-mistakes-and-how-to-avoid-them" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!3_99!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F70b5608f-b3f7-41b8-a30c-207caf1b0569_814x333.png 424w, https://substackcdn.com/image/fetch/$s_!3_99!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F70b5608f-b3f7-41b8-a30c-207caf1b0569_814x333.png 848w, https://substackcdn.com/image/fetch/$s_!3_99!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F70b5608f-b3f7-41b8-a30c-207caf1b0569_814x333.png 1272w, https://substackcdn.com/image/fetch/$s_!3_99!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F70b5608f-b3f7-41b8-a30c-207caf1b0569_814x333.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!3_99!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F70b5608f-b3f7-41b8-a30c-207caf1b0569_814x333.png" width="500" height="204.54545454545453" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/70b5608f-b3f7-41b8-a30c-207caf1b0569_814x333.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:333,&quot;width&quot;:814,&quot;resizeWidth&quot;:500,&quot;bytes&quot;:48359,&quot;alt&quot;:&quot;Goodreads listing for 100 Go Mistakes and How to Avoid Them by Teiva Harsanyi, showing a 4.66-star rating based on 198 ratings and 36 reviews.&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:&quot;http://goodreads.com/book/show/58571862-100-go-mistakes-and-how-to-avoid-them&quot;,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.thecoder.cafe/i/160360907?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F70b5608f-b3f7-41b8-a30c-207caf1b0569_814x333.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Goodreads listing for 100 Go Mistakes and How to Avoid Them by Teiva Harsanyi, showing a 4.66-star rating based on 198 ratings and 36 reviews." title="Goodreads listing for 100 Go Mistakes and How to Avoid Them by Teiva Harsanyi, showing a 4.66-star rating based on 198 ratings and 36 reviews." srcset="https://substackcdn.com/image/fetch/$s_!3_99!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F70b5608f-b3f7-41b8-a30c-207caf1b0569_814x333.png 424w, https://substackcdn.com/image/fetch/$s_!3_99!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F70b5608f-b3f7-41b8-a30c-207caf1b0569_814x333.png 848w, https://substackcdn.com/image/fetch/$s_!3_99!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F70b5608f-b3f7-41b8-a30c-207caf1b0569_814x333.png 1272w, https://substackcdn.com/image/fetch/$s_!3_99!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F70b5608f-b3f7-41b8-a30c-207caf1b0569_814x333.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><p>Did I write the best Go book? Probably not. There are many great books out there and to me, a book like <em><a href="https://www.goodreads.com/book/show/58655212-ultimate-go-notebook">Ultimate Go Notebook</a></em> is the best one, in my opinion.</p><p>But in the end, do I really care if my book is the best or not? Not really.</p><p>The goal of writing the &#8220;best Go book&#8221; was just a personal motivation, something to push me to do the best I could at that specific time in my life. The book is not perfect, but it&#8217;s the best version I could have written then.</p><p>And for that, I will always be proud of it.</p><p>Teiva</p><p><strong>P.S.</strong> I don&#8217;t know about Go rankings but at least my book was listed among the <em><a href="https://www.linkedin.com/pulse/best-8-javascript-books-developers-2024-muhammad-fahad-bhutta-hja8f/">Best 8 JavaScript Books for Developers in 2024</a></em>. Being a Go book that&#8217;s an achievement, isn&#8217;t it?</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!U0HZ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9d740d21-17b1-4bc1-9c77-c84676431c55_5712x4284.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!U0HZ!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9d740d21-17b1-4bc1-9c77-c84676431c55_5712x4284.jpeg 424w, https://substackcdn.com/image/fetch/$s_!U0HZ!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9d740d21-17b1-4bc1-9c77-c84676431c55_5712x4284.jpeg 848w, https://substackcdn.com/image/fetch/$s_!U0HZ!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9d740d21-17b1-4bc1-9c77-c84676431c55_5712x4284.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!U0HZ!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9d740d21-17b1-4bc1-9c77-c84676431c55_5712x4284.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!U0HZ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9d740d21-17b1-4bc1-9c77-c84676431c55_5712x4284.jpeg" width="1456" height="1092" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/9d740d21-17b1-4bc1-9c77-c84676431c55_5712x4284.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1092,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:5540661,&quot;alt&quot;:&quot;A hand showing a thumbs-up next to the book 100 Go Mistakes and How to Avoid Them by Teiva Harsanyi.&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.thecoder.cafe/i/160360907?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9d740d21-17b1-4bc1-9c77-c84676431c55_5712x4284.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="A hand showing a thumbs-up next to the book 100 Go Mistakes and How to Avoid Them by Teiva Harsanyi." title="A hand showing a thumbs-up next to the book 100 Go Mistakes and How to Avoid Them by Teiva Harsanyi." srcset="https://substackcdn.com/image/fetch/$s_!U0HZ!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9d740d21-17b1-4bc1-9c77-c84676431c55_5712x4284.jpeg 424w, https://substackcdn.com/image/fetch/$s_!U0HZ!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9d740d21-17b1-4bc1-9c77-c84676431c55_5712x4284.jpeg 848w, https://substackcdn.com/image/fetch/$s_!U0HZ!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9d740d21-17b1-4bc1-9c77-c84676431c55_5712x4284.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!U0HZ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9d740d21-17b1-4bc1-9c77-c84676431c55_5712x4284.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><figcaption class="image-caption">Yes, I still think the cover is ugly.</figcaption></figure></div><p>Thanks to:</p><ul><li><p>The Go community. If I fell in love with this language, it&#8217;s also because most people there are very supportive.</p></li><li><p>All the readers of the book.</p></li><li><p>All the reviewers and Tim, who helped me shape something far better than I could have done on my own.</p></li><li><p>My DE and my acquisition editor who were the two pillars of this book.</p></li><li><p>Manning. I don&#8217;t know how you will perceive my story, but in the end, I&#8217;m really grateful to Manning, and I&#8217;m glad they were the only publisher I had ever contacted.</p></li><li><p>The readers of <em>The Coder Cafe</em>. After a long period where I couldn&#8217;t write anything at all, this newsletter reminded me how much I love writing.</p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://read.thecoder.cafe/" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!ZoDz!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc5b47134-fe05-42e3-9aaf-dd2758923a98_1200x600.png 424w, https://substackcdn.com/image/fetch/$s_!ZoDz!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc5b47134-fe05-42e3-9aaf-dd2758923a98_1200x600.png 848w, https://substackcdn.com/image/fetch/$s_!ZoDz!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc5b47134-fe05-42e3-9aaf-dd2758923a98_1200x600.png 1272w, https://substackcdn.com/image/fetch/$s_!ZoDz!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc5b47134-fe05-42e3-9aaf-dd2758923a98_1200x600.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!ZoDz!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc5b47134-fe05-42e3-9aaf-dd2758923a98_1200x600.png" width="449" height="224.5" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c5b47134-fe05-42e3-9aaf-dd2758923a98_1200x600.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:600,&quot;width&quot;:1200,&quot;resizeWidth&quot;:449,&quot;bytes&quot;:82853,&quot;alt&quot;:&quot;The Coder Cafe: Learn One Concept With Your Coffee.&quot;,&quot;title&quot;:&quot;The Coder Cafe: Learn One Concept With Your Coffee.&quot;,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:&quot;https://read.thecoder.cafe/&quot;,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.thecoder.cafe/i/151119215?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc5b47134-fe05-42e3-9aaf-dd2758923a98_1200x600.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="The Coder Cafe: Learn One Concept With Your Coffee." title="The Coder Cafe: Learn One Concept With Your Coffee." srcset="https://substackcdn.com/image/fetch/$s_!ZoDz!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc5b47134-fe05-42e3-9aaf-dd2758923a98_1200x600.png 424w, https://substackcdn.com/image/fetch/$s_!ZoDz!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc5b47134-fe05-42e3-9aaf-dd2758923a98_1200x600.png 848w, https://substackcdn.com/image/fetch/$s_!ZoDz!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc5b47134-fe05-42e3-9aaf-dd2758923a98_1200x600.png 1272w, https://substackcdn.com/image/fetch/$s_!ZoDz!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc5b47134-fe05-42e3-9aaf-dd2758923a98_1200x600.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://read.thecoder.cafe/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">AI is getting better every day. Are you? At The Coder Cafe, we serve fundamental concepts to make you an engineer that AI can&#8217;t replace. Written by a Google SWE, trusted by thousands of engineers worldwide.</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><h1>&#128218; Resources</h1><h2>More From the <em><a href="https://read.thecoder.cafe/s/lattes-stories">Lattes &amp; Stories</a></em> Section</h2><ul><li><p><a href="https://read.thecoder.cafe/p/paternity-leave">What I Learned During My Paternity Leave</a></p></li><li><p><a href="https://read.thecoder.cafe/p/vim-keybindings">Why I Switched to Vim Keybindings</a></p></li></ul><h2>Explore Further</h2><ul><li><p><a href="https://news.ycombinator.com/item?id=43647880">Hacker News discussion</a></p></li><li><p><a href="https://laurensapala.com/yay-finished-book-feel-depressed/">Yay! I Finished My Book! So Why Do I Feel So Depressed?</a></p></li></ul><div><hr></div><p>&#10084;&#65039; <em>If you made it this far and enjoyed the post, please consider giving it a like.</em></p><p>&#128172; <em>Manning recently contacted me about doing a second edition. I&#8217;m thinking about it and would love to hear your thoughts.</em></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://read.thecoder.cafe/p/100-go-mistakes/comments&quot;,&quot;text&quot;:&quot;Leave a comment&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://read.thecoder.cafe/p/100-go-mistakes/comments"><span>Leave a comment</span></a></p>]]></content:encoded></item></channel></rss>