<?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 T-Shaped Dev: Announcements]]></title><description><![CDATA[Book launches and product news from Petar.]]></description><link>https://thetshaped.dev/s/announcements</link><image><url>https://substackcdn.com/image/fetch/$s_!9lD-!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7f66bb7c-c96f-4c71-ba2d-d561152c83a2_600x600.png</url><title>The T-Shaped Dev: Announcements</title><link>https://thetshaped.dev/s/announcements</link></image><generator>Substack</generator><lastBuildDate>Tue, 13 Oct 2026 18:02:14 GMT</lastBuildDate><atom:link href="https://thetshaped.dev/feed" rel="self" type="application/rss+xml"/><copyright><![CDATA[Petar Ivanov]]></copyright><language><![CDATA[en]]></language><webMaster><![CDATA[petarivanovv9@substack.com]]></webMaster><itunes:owner><itunes:email><![CDATA[petarivanovv9@substack.com]]></itunes:email><itunes:name><![CDATA[Petar Ivanov]]></itunes:name></itunes:owner><itunes:author><![CDATA[Petar Ivanov]]></itunes:author><googleplay:owner><![CDATA[petarivanovv9@substack.com]]></googleplay:owner><googleplay:email><![CDATA[petarivanovv9@substack.com]]></googleplay:email><googleplay:author><![CDATA[Petar Ivanov]]></googleplay:author><itunes:block><![CDATA[Yes]]></itunes:block><item><title><![CDATA[I Wrote a Book on Node.js and Never Told You]]></title><description><![CDATA[The Conscious Node: 157 tips for Node.js backends that hold up in production. Not sure yet? The first three tips are free.]]></description><link>https://thetshaped.dev/p/i-wrote-a-book-on-nodejs-and-never</link><guid isPermaLink="false">https://thetshaped.dev/p/i-wrote-a-book-on-nodejs-and-never</guid><dc:creator><![CDATA[Petar Ivanov]]></dc:creator><pubDate>Tue, 13 Oct 2026 16:29:12 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!9lD-!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7f66bb7c-c96f-4c71-ba2d-d561152c83a2_600x600.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>I released The Conscious Node, a book about building Node.js backends that hold up in production. It&#8217;s been on my website for a while, and I never announced it here. That&#8217;s an odd miss, because you&#8217;re the readers I wrote it for.</p><p>So this is the proper announcement.</p><h2>What&#8217;s inside</h2><p>157 tips across 10 chapters, about 250 pages. Every tip has the same four parts: the context, the code to avoid, the code to prefer, and a one-line takeaway.</p><ol><li><p>Application structure and architecture</p></li><li><p>Code design and patterns</p></li><li><p>Error handling and logging</p></li><li><p>Security</p></li><li><p>Testing</p></li><li><p>API design (REST and GraphQL)</p></li><li><p>Database and data</p></li><li><p>Performance and production</p></li><li><p>Tooling</p></li><li><p>The 10 Rules of Senior Node</p></li></ol><h2>One tip: the retry that charges your customer twice</h2><p>A client sends &#8220;create order&#8221;. The server creates the order, but the response gets lost on the way back. The client retries, and now the customer has two orders.</p><p>Retried GETs are harmless. Retried POSTs aren&#8217;t, unless the endpoint is idempotent. Tip 6.13 fixes it with an <code>Idempotency-Key</code> header: the client sends a unique key with the write, and the server uses that key to recognize a retry instead of creating a second order.</p><p>That&#8217;s one tip. The other 156 work the same way.</p><h2>Two ways to get it</h2><ul><li><p><strong>Just the Book, $29.</strong> PDF, MOBI and EPUB, with lifetime updates.</p></li><li><p><strong>The Complete Package, $59.</strong> The book plus three companion repos: book-examples runs every tip as an Avoid/Prefer demo, case-studies has 6 deep-dive services, and express-boilerplate is a production Express 5 starter. Each repo ships with CLAUDE.md, AGENTS.md and .cursorrules, so Claude Code, Cursor and Copilot write code that follows the book.</p></li></ul><p>Both come with a 30-day money-back guarantee.</p><p><a href="https://petarivanov.tech/books/conscious-node/?utm_source=thetshaped&amp;utm_medium=newsletter&amp;utm_campaign=conscious-node-announce">Check out The Conscious Node</a></p><h2>Not sure yet? Read the free sample first</h2><p>The first three tips of Chapter 1 are free, as a PDF and EPUB: structure the app in modules, start with a modular monolith, and split routes, services and repositories into layers. They look basic. Chapter 1 is where most Node services go wrong, before the first endpoint ships.</p><p>Read them. If the way the book thinks clicks for you, you&#8217;ll know in ten minutes.</p><p><a href="https://petarivanov.tech/books/conscious-node/?utm_source=thetshaped&amp;utm_medium=newsletter&amp;utm_campaign=conscious-node-announce#free-chapter">Get the 3 free tips</a></p><h2>One favor</h2><p>If you know a backend engineer who&#8217;d get something out of this, forward them this email or send them the link.</p><p>Thanks for reading,<br>Petar</p>]]></content:encoded></item></channel></rss>