<?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[Yaugen Drybin]]></title><description><![CDATA[15+ years across AWS/K8s & open-source systems; SRE background at a public SaaS; co-founder in mobile & ML. I help tech-driven SMBs and fast-growing startups balance reliability, speed of delivery, cost control, and technical debt.]]></description><link>https://news.drybin.dev</link><image><url>https://substackcdn.com/image/fetch/$s_!wEmH!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F97629bb5-8607-4bd9-bb8f-1d2876897e1c_2593x2593.jpeg</url><title>Yaugen Drybin</title><link>https://news.drybin.dev</link></image><generator>Substack</generator><lastBuildDate>Mon, 20 Apr 2026 15:30:16 GMT</lastBuildDate><atom:link href="https://news.drybin.dev/feed" rel="self" type="application/rss+xml"/><copyright><![CDATA[Yaugen Drybin]]></copyright><language><![CDATA[en]]></language><webMaster><![CDATA[yaugendrybin@substack.com]]></webMaster><itunes:owner><itunes:email><![CDATA[yaugendrybin@substack.com]]></itunes:email><itunes:name><![CDATA[Yaugen Drybin]]></itunes:name></itunes:owner><itunes:author><![CDATA[Yaugen Drybin]]></itunes:author><googleplay:owner><![CDATA[yaugendrybin@substack.com]]></googleplay:owner><googleplay:email><![CDATA[yaugendrybin@substack.com]]></googleplay:email><googleplay:author><![CDATA[Yaugen Drybin]]></googleplay:author><itunes:block><![CDATA[Yes]]></itunes:block><item><title><![CDATA[Processes That Live for Themselves]]></title><description><![CDATA[Processes are meant to turn chaos into predictable outcomes.]]></description><link>https://news.drybin.dev/p/processes-that-live-for-themselves</link><guid isPermaLink="false">https://news.drybin.dev/p/processes-that-live-for-themselves</guid><dc:creator><![CDATA[Yaugen Drybin]]></dc:creator><pubDate>Tue, 16 Dec 2025 08:35:27 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/6564b71b-ccbb-404d-ba47-b3255c82647b_1536x1024.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Processes are meant to turn chaos into predictable outcomes. When they work well they simplify onboarding, reduce minor mistakes and allow teams to scale beyond informal coordination.</p><p>The problem appears later. What once enabled progress can turn into a self serving system: responsibility gets diluted, complexity grows, flexibility disappears, local ownership turns into silos. This happens because rules accumulate quietly and once a process becomes rigid, it&#8217;s emotionally and politically hard to simplify it.</p><p>Companies do need processes. Without them chaos kills productivity and scale.</p><p>Real value comes from:</p><ul><li><p><em>Clarity of purpose</em>, not thickness of the process manual</p></li><li><p><em>Principles that guide decisions</em>, not a rulebook for every situation</p></li><li><p><em>Empowered people</em>, not people who wait for permission</p></li></ul><p>Processes should support thinking, not replace it.</p><p>Where have you seen a process become more important than the outcome?</p><p></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://drybin.dev/field-notes/processes-that-live-for-themselves&quot;,&quot;text&quot;:&quot;Read Full Post&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://drybin.dev/field-notes/processes-that-live-for-themselves"><span>Read Full Post</span></a></p><p></p>]]></content:encoded></item><item><title><![CDATA[A Case Study: When Staging Takes Down Prod]]></title><description><![CDATA[A small incident on Reddit caught my attention.]]></description><link>https://news.drybin.dev/p/a-case-study-when-staging-takes-down</link><guid isPermaLink="false">https://news.drybin.dev/p/a-case-study-when-staging-takes-down</guid><dc:creator><![CDATA[Yaugen Drybin]]></dc:creator><pubDate>Tue, 09 Dec 2025 08:30:43 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/c4a1be3a-1e3e-47cf-bff7-16b939d86f5e_1536x1024.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>A <a href="https://www.reddit.com/r/devops/comments/1he8yqv/today_i_caused_a_production_incident_with_a/">small incident</a> on Reddit caught my attention. A harmless Redis serialization refactor accidentally wrote incompatible data to a shared cache. Because staging and production used the same Redis instance, staging corrupted production values. Prod couldn&#8217;t deserialize them, fell back to the database, hammered it with full table scans and p99 latency spiked.</p><p>The interesting part isn&#8217;t the bug. It&#8217;s how <em>typical</em> this pattern is. If your production relies only on engineers that never make mistakes &#8212; your system is already broken.</p><p>High reliability engineering assumes two things:</p><ul><li><p>People will make mistakes</p></li><li><p>Systems must be designed so those mistakes don&#8217;t become incidents</p></li></ul><p>Design for the reality of human error and everybody will thank you later.</p><p></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://drybin.dev/field-notes/a-case-study-when-staging-takes-down-prod&quot;,&quot;text&quot;:&quot;Read Full Post&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://drybin.dev/field-notes/a-case-study-when-staging-takes-down-prod"><span>Read Full Post</span></a></p><p></p>]]></content:encoded></item><item><title><![CDATA[Vibe Coding — Part 2: The Good, The Bad and The Ugly]]></title><description><![CDATA[Vibe coding gives teams instant momentum: fast prototypes, quick learning loops, minimal friction.]]></description><link>https://news.drybin.dev/p/vibe-coding-part-2-the-good-the-bad</link><guid isPermaLink="false">https://news.drybin.dev/p/vibe-coding-part-2-the-good-the-bad</guid><dc:creator><![CDATA[Yaugen Drybin]]></dc:creator><pubDate>Tue, 02 Dec 2025 08:31:08 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/dc9adc8e-8e84-4034-bee0-1a9bd25fd81c_1536x1024.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Vibe coding gives teams instant momentum: fast prototypes, quick learning loops, minimal friction. In low stakes areas, that&#8217;s the &#8220;good&#8221; &#8212; you move faster, think clearer, and avoid drowning in boilerplate.</p><p>But the same ease can mask deeper instability. AI doesn&#8217;t understand invariants, performance limits, or which parts of your architecture are load bearing. It produces code that <em>looks</em> correct while quietly drifting away from what keeps systems reliable. That&#8217;s the &#8220;bad.&#8221;</p><p>And then there&#8217;s the &#8220;ugly&#8221;: the failures that appear only under stress &#8212; a missing retry, a race condition, an unsafe default. Clean code, chaotic outcomes.</p><p><strong>What actually works:</strong></p><ul><li><p>Use vibe coding where uncertainty is cheap.</p></li><li><p>Don&#8217;t let speed replace architectural discipline.</p></li><li><p>Add guardrails so AI accelerates stability, not drift.</p></li></ul><p>AI doesn&#8217;t change the rules of software &#8212; it only accelerates your path toward or away from them.</p><p>Where in your system is vibe coding a boost &#8212; and where is it a liability?<br></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://drybin.dev/field-notes/vibe-coding-part-2-the-good-the-bad-and-the-ugly&quot;,&quot;text&quot;:&quot;Read Full Post&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://drybin.dev/field-notes/vibe-coding-part-2-the-good-the-bad-and-the-ugly"><span>Read Full Post</span></a></p><p></p>]]></content:encoded></item><item><title><![CDATA[Vibe Coding — Part 1: Behind the Vibe]]></title><description><![CDATA[AI coding has become so low-friction that a friend of mine literally sends prompts to Claude between Mario Kart races. And the crazy part? It works often enough to feel normal. That frictionless flow creates the illusion that complexity has evaporated. But once the &#8220;vibe&#8221; lands in the repository, dopamine ends and operational reality begins. And that&#8217;s where things get expensive.]]></description><link>https://news.drybin.dev/p/vibe-coding-part-1-behind-the-vibe</link><guid isPermaLink="false">https://news.drybin.dev/p/vibe-coding-part-1-behind-the-vibe</guid><dc:creator><![CDATA[Yaugen Drybin]]></dc:creator><pubDate>Tue, 25 Nov 2025 08:30:55 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/23040182-0499-4bd8-9f5c-ebbb7ca469b9_1536x1024.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>AI coding has become so low-friction that a friend of mine literally sends prompts to Claude <em>between Mario Kart races</em>. And the crazy part? It works often enough to feel normal. That frictionless flow creates the illusion that complexity has evaporated. But once the &#8220;vibe&#8221; lands in the repository, dopamine ends and operational reality begins. And that&#8217;s where things get expensive.</p><p><strong>What actually works:</strong></p><ul><li><p>Use vibe output only where failure is cheap. Prototypes? Yes. Core flows? Absolutely not.</p></li><li><p>Apply probability thinking. Ask: &#8220;How likely is the model to misunderstand what matters here?&#8221;</p></li><li><p>Recognize hidden rules. Concurrency, invariants, security boundaries &#8212; these are where vibe coding breaks.</p></li></ul><p><strong>Micro-insight:</strong> Speed isn&#8217;t dangerous. <em>Uncontrolled speed</em> is.</p><p>How much of your codebase today was written for momentum &#8212; and how much for longevity?<br></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://drybin.dev/field-notes/vibe-coding-part-1-behind-the-vibe&quot;,&quot;text&quot;:&quot;Read Full Post&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://drybin.dev/field-notes/vibe-coding-part-1-behind-the-vibe"><span>Read Full Post</span></a></p><p></p>]]></content:encoded></item><item><title><![CDATA[The Hidden Cost of Fine-Grained Deployments]]></title><description><![CDATA[Fine-grained rollouts look safe on paper &#8212; 1%, 5%, 10%&#8230; watch metrics, repeat.]]></description><link>https://news.drybin.dev/p/the-hidden-cost-of-fine-grained-deployments</link><guid isPermaLink="false">https://news.drybin.dev/p/the-hidden-cost-of-fine-grained-deployments</guid><dc:creator><![CDATA[Yaugen Drybin]]></dc:creator><pubDate>Tue, 18 Nov 2025 08:31:23 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/b5442059-24fc-4368-932b-1694fbab4257_1536x1024.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Fine-grained rollouts look safe on paper &#8212; 1%, 5%, 10%&#8230; watch metrics, repeat.</p><p>In practice, they quietly kill velocity and create deployment theater &#8212; everyone feels in control, but nobody&#8217;s actually shipping faster.</p><p><strong>What actually works</strong></p><ul><li><p>Batch by context, not percentage -&gt; fewer moving parts -&gt; cleaner rollback paths</p></li><li><p>Compress feedback loops -&gt; focus on signal quality, not rollout duration</p></li><li><p>Drill reversibility -&gt; measure recovery speed, not rollout granularity</p></li></ul><p>Because reliability isn&#8217;t about how slowly you ship &#8212; it&#8217;s about how confidently you can recover. Every &#8220;safe&#8221; deployment model hides a cost somewhere: in human attention, telemetry load, or false confidence.</p><p>Would you trade speed for safety &#8212; or the other way around?</p><p></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://drybin.dev/field-notes/the-hidden-cost-of-fine-grained-deployments&quot;,&quot;text&quot;:&quot;Read Full Post&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://drybin.dev/field-notes/the-hidden-cost-of-fine-grained-deployments"><span>Read Full Post</span></a></p><p></p>]]></content:encoded></item><item><title><![CDATA[Does AI really make developers faster?]]></title><description><![CDATA[A field study (METR, 2025) found that experienced engineers actually got 19 % slower when allowed to use tools like Cursor + Claude 3.7.]]></description><link>https://news.drybin.dev/p/does-ai-really-make-developers-faster</link><guid isPermaLink="false">https://news.drybin.dev/p/does-ai-really-make-developers-faster</guid><dc:creator><![CDATA[Yaugen Drybin]]></dc:creator><pubDate>Tue, 11 Nov 2025 08:45:26 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/ce2ef522-e6e2-4ded-b020-b8ac48619907_1536x1024.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><a href="https://arxiv.org/abs/2507.09089">A field study (METR, 2025)</a> found that experienced engineers actually got 19 % slower when allowed to use tools like Cursor + Claude 3.7.</p><p>They expected a 24 % boost. They felt 20 % faster.</p><p>Reality: slower code, more review, more waiting.</p><p><strong>Why?</strong></p><ul><li><p>AI can&#8217;t grasp hidden repo knowledge.</p></li><li><p>Experts already know better patterns.</p></li><li><p>Only 44 % of AI code was usable without heavy cleanup.</p></li><li><p>Large, mature projects confuse models.</p></li><li><p>And &#8212; most dangerously &#8212; it feels productive, so we overuse it.</p></li></ul><p>Still, the story isn&#8217;t all downside &#8212; there are areas where AI genuinely adds value. It shines in small greenfield builds, documentation, and test generation, where human oversight adds polish instead of rework.</p><p>For consultancies and outsourcing teams, that means: stop selling &#8220;AI-acceleration&#8221;. Sell AI-alignment -- using it where it truly works.</p><p>AI doesn&#8217;t make you faster. It just makes you feel faster. And that&#8217;s fine &#8212; as long as you know the difference.</p><p></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://drybin.dev/field-notes/ai-productivity-paradox&quot;,&quot;text&quot;:&quot;Read Full Post&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://drybin.dev/field-notes/ai-productivity-paradox"><span>Read Full Post</span></a></p><p></p>]]></content:encoded></item><item><title><![CDATA[Elasticsearch FinOps]]></title><description><![CDATA[Cutting Costs Without Cutting Performance]]></description><link>https://news.drybin.dev/p/elasticsearch-finops</link><guid isPermaLink="false">https://news.drybin.dev/p/elasticsearch-finops</guid><dc:creator><![CDATA[Yaugen Drybin]]></dc:creator><pubDate>Tue, 04 Nov 2025 06:30:34 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/5be3c736-39c2-49aa-a635-847fa9e5897f_1536x1024.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Elasticsearch costs rarely explode overnight &#8212; they&#8217;re sneaking up via oversharding, stale indices, and peak-load provisioning you don&#8217;t actually need. This post reframes Elasticsearch through a FinOps lens &#8212; how to link engineering choices to financial impact, measure cost KPIs, and reclaim 30-50% of wasted spend without losing performance.</p><p><strong>3 levers that matter most:</strong></p><ul><li><p>Lifecycle automation (delete or freeze what you don&#8217;t query)</p></li><li><p>Rightsizing (pay for 80% utilization, not 40%)</p></li><li><p>Cost visibility (make engineers accountable for query cost)</p></li></ul><p><strong>Micro-insight:</strong> Your biggest savings won&#8217;t come from instance discounts&#8212;they come from lifecycle and query discipline visible in cost KPIs.</p><p>If your Elasticsearch bill went up 30% this year, which lever would you pull first?<br></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://drybin.dev/field-notes/elasticsearch-finops&quot;,&quot;text&quot;:&quot;Read Full Post&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://drybin.dev/field-notes/elasticsearch-finops"><span>Read Full Post</span></a></p><p></p>]]></content:encoded></item><item><title><![CDATA[Elasticsearch Mistakes That Kill Performance]]></title><description><![CDATA[And How to Avoid Them]]></description><link>https://news.drybin.dev/p/6-elasticsearch-mistakes-that-kill</link><guid isPermaLink="false">https://news.drybin.dev/p/6-elasticsearch-mistakes-that-kill</guid><dc:creator><![CDATA[Yaugen Drybin]]></dc:creator><pubDate>Mon, 27 Oct 2025 20:30:12 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/c9da3ddb-63a5-427c-8a30-a80f2e4b0c39_1536x1024.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Elasticsearch can feel effortless &#8212; until it eats your budget and brings your app to its knees. In the post, I break down the most common configuration and design errors that lead to instability, slowness, and skyrocketing costs &#8212; plus clear steps to fix them.</p><ul><li><p>Oversharding and Cluster Fragmentation</p></li><li><p>Dynamic Mapping Chaos</p></li><li><p>Unoptimized queries</p></li><li><p>Misconfigured Memory and JVM Heap</p></li><li><p>Lifecycle neglect</p></li><li><p>Skipping Monitoring and Alerting</p></li></ul><p><strong>Micro-insight:</strong> Most Elasticsearch failures aren&#8217;t technical at all &#8212; they&#8217;re architectural choices that snowball over time.<br></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://drybin.dev/field-notes/elasticsearch-common-mistakes-and-how-to-prevent-them&quot;,&quot;text&quot;:&quot;Read Full Post&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://drybin.dev/field-notes/elasticsearch-common-mistakes-and-how-to-prevent-them"><span>Read Full Post</span></a></p><p></p>]]></content:encoded></item><item><title><![CDATA[How SRE Culture Drives Scale]]></title><description><![CDATA[Incidents happen. Growth depends on what you do next.]]></description><link>https://news.drybin.dev/p/how-sre-culture-drives-scale</link><guid isPermaLink="false">https://news.drybin.dev/p/how-sre-culture-drives-scale</guid><dc:creator><![CDATA[Yaugen Drybin]]></dc:creator><pubDate>Tue, 21 Oct 2025 08:01:48 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/78448095-bf5f-4814-b587-48e81b78de32_1536x1024.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Incidents happen. Growth depends on what you do next.</p><p>SRE culture turns failures into leverage: clear roles during chaos, blameless postmortems that surface fixes, and capacity planning that prevents growth from becoming outages.</p><p>What works in practice:</p><ul><li><p>Treat incidents as structured drills, not emergencies.</p></li><li><p>Use blameless postmortems to feed improvements, not blame.</p></li><li><p>Cut toil so engineers build instead of babysit.</p></li></ul><p>Micro-insight: Reliability isn&#8217;t just protection &#8212; it&#8217;s how you scale without burning out teams or customers.</p><p>How does your company treat its next outage &#8212; as damage, or as input for growth?</p><p></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://drybin.dev/field-notes/how-sre-culture-drives-scale&quot;,&quot;text&quot;:&quot;Read Full Post&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://drybin.dev/field-notes/how-sre-culture-drives-scale"><span>Read Full Post</span></a></p><p></p>]]></content:encoded></item><item><title><![CDATA[Reliability Has a Price Tag]]></title><description><![CDATA[Every &#8220;nine&#8221; in your SLA isn&#8217;t free &#8212; it&#8217;s a bill waiting for approval.]]></description><link>https://news.drybin.dev/p/reliability-has-a-price-tag</link><guid isPermaLink="false">https://news.drybin.dev/p/reliability-has-a-price-tag</guid><dc:creator><![CDATA[Yaugen Drybin]]></dc:creator><pubDate>Tue, 14 Oct 2025 08:20:20 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/17bc1649-6015-43f1-aa0e-fe253340ebc5_1536x1024.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Every &#8220;nine&#8221; in your SLA isn&#8217;t free &#8212; it&#8217;s a bill waiting for approval. SLOs and SLIs make reliability measurable, and error budgets turn it into a planning tool, not a guess.</p><p>What works in practice:</p><ul><li><p>Price each <em>extra nine</em> like an investment line.</p></li><li><p>Use <em>error budgets</em> as signals for product velocity.</p></li><li><p>Put reliability on the <em>exec dashboard</em> next to revenue and churn.</p></li></ul><p></p><p>How many &#8220;nines&#8221; do your customers actually pay for?<br></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://drybin.dev/field-notes/reliability-has-a-price-tag&quot;,&quot;text&quot;:&quot;Read Full Post&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://drybin.dev/field-notes/reliability-has-a-price-tag"><span>Read Full Post</span></a></p><p></p>]]></content:encoded></item><item><title><![CDATA[Using Error Budgets as a Business Tool]]></title><description><![CDATA[Business leaders keep asking for 100% uptime.]]></description><link>https://news.drybin.dev/p/using-error-budgets-as-a-business</link><guid isPermaLink="false">https://news.drybin.dev/p/using-error-budgets-as-a-business</guid><dc:creator><![CDATA[Yaugen Drybin]]></dc:creator><pubDate>Tue, 07 Oct 2025 08:36:31 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/79b52d1d-606f-4bf9-a95c-ee1d3252fce2_1536x1024.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Business leaders keep asking for 100% uptime. Sounds great &#8212; until you see the bill. The truth is, every extra &#8220;nine&#8221; of availability costs more than it&#8217;s worth.</p><p>What actually works:</p><ul><li><p>Define an <em>error budget</em> in minutes -&gt; the tolerance you&#8217;re willing to accept.</p></li><li><p>Let <em>Product own it</em> -&gt; ship fast while the budget is green, slow down when it runs red.</p></li><li><p>Put it on the <em>exec dashboard</em> -&gt; treat reliability like revenue.</p><p></p></li></ul><p>Micro-insight: reliability isn&#8217;t about perfection &#8212; it&#8217;s about knowing how much imperfection you can afford.</p><p><br>Would you dare to let product decide when to stop shipping?</p><p></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://drybin.dev/field-notes/using-error-budgets-as-a-business-tool&quot;,&quot;text&quot;:&quot;Read Full Post&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://drybin.dev/field-notes/using-error-budgets-as-a-business-tool"><span>Read Full Post</span></a></p><p></p>]]></content:encoded></item><item><title><![CDATA[LLM Prompt Injection — Part 2: How to Break and Defend LLMs]]></title><description><![CDATA[In Part 1 we covered the business impact of prompt injection.]]></description><link>https://news.drybin.dev/p/llm-prompt-injection-part-2-how-to-df7</link><guid isPermaLink="false">https://news.drybin.dev/p/llm-prompt-injection-part-2-how-to-df7</guid><dc:creator><![CDATA[Yaugen Drybin]]></dc:creator><pubDate>Tue, 30 Sep 2025 08:28:10 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/e7a95c15-4d79-4d22-bf78-8fc215f8f8e8_1536x1024.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>In <a href="https://drybin.dev/field-notes/llm-prompt-injection-part-1-why-leaders-should-care">Part 1</a> we covered the business impact of prompt injection. Now let&#8217;s get more technical.</p><p>There are two flavors of attacks:</p><ul><li><p><strong>Direct injection</strong> &#8212; a user types &#8220;ignore all prior instructions&#8221; and the model spills its guts.</p></li><li><p><strong>Indirect injection</strong> &#8212; poisoned docs or web pages sneak hostile instructions into your pipeline.</p></li></ul><p>Real-world stories in Part 2 include:</p><ul><li><p>A finance bot leaking keys from a &#8220;routine&#8221; PDF.</p></li><li><p>A support assistant calling internal APIs and relaying results outside.</p></li><li><p>A scraper hijacked by hidden HTML comments.</p></li></ul><p><strong>In Short:</strong> <em>treat LLM calls like untrusted code.</em> Defense in depth wins: sanitize I/O, verify sources, sandbox tools, log and monitor everything.</p><p>Attackers don&#8217;t need 0-days &#8212; they just need to sound convincing.</p><p>In the full post we show how defenses fail &#8212; and what pragmatic hardening actually works: <strong>link below.</strong></p><p></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://drybin.dev/field-notes/llm-prompt-injection-part-2-how-to-break-and-defend-llms&quot;,&quot;text&quot;:&quot;Read Full Post&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://drybin.dev/field-notes/llm-prompt-injection-part-2-how-to-break-and-defend-llms"><span>Read Full Post</span></a></p><p></p>]]></content:encoded></item><item><title><![CDATA[LLM Prompt Injection — Part 1: Why Leaders Should Care]]></title><description><![CDATA[What the heck is Prompt Injection?]]></description><link>https://news.drybin.dev/p/llm-prompt-injection-part-1-why-leaders</link><guid isPermaLink="false">https://news.drybin.dev/p/llm-prompt-injection-part-1-why-leaders</guid><dc:creator><![CDATA[Yaugen Drybin]]></dc:creator><pubDate>Tue, 23 Sep 2025 08:30:30 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/d7905735-0ebe-4b44-aecf-cb407d6f02e2_1536x1024.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><strong>What the heck is Prompt Injection?</strong></p><p>If SQL injection was hackers tricking databases into running unintended queries, then prompt injection is hackers tricking your language model into running unintended instructions.</p><p>Except instead of raw code, the payload is&#8230; English. Or Ukrainian. Or Klingon. The model doesn&#8217;t &#8220;understand&#8221; commands vs. content &#8212; it just sees words and predicts the next likely token. And that&#8217;s why this matters:</p><ul><li><p>OWASP lists Prompt Injection as LLM01 in their GenAI Top 10 &#8212; the number one risk.</p></li><li><p>Red teams have tricked models into leaking API keys, credentials, and system prompts.</p></li><li><p>Researchers showed an LLM scraping web pages could be hijacked by hidden HTML comments.</p></li></ul><p><strong>In Short: </strong><em>Prompt injection is social engineering for machines.</em> It doesn&#8217;t just break systems &#8212; it breaks trust. In the full post we look at the problem from a leadership angle and what to do about it: <strong>link below.</strong></p><p></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://drybin.dev/field-notes/llm-prompt-injection-part-1-why-leaders-should-care&quot;,&quot;text&quot;:&quot;Read Full Post&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://drybin.dev/field-notes/llm-prompt-injection-part-1-why-leaders-should-care"><span>Read Full Post</span></a></p><p></p>]]></content:encoded></item><item><title><![CDATA[Kubernetes Upgrades for Startups]]></title><description><![CDATA[A No-Drama Playbook]]></description><link>https://news.drybin.dev/p/kubernetes-upgrades-for-startups</link><guid isPermaLink="false">https://news.drybin.dev/p/kubernetes-upgrades-for-startups</guid><dc:creator><![CDATA[Yaugen Drybin]]></dc:creator><pubDate>Tue, 16 Sep 2025 06:30:33 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/a04dd94a-21e4-4399-82ce-4ec26b8112e3_1536x1024.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Any startup always has features to ship, revenue to chase, and bugs that won&#8217;t fix themselves. Infra work and Kubernetes upgrades reliably slide to the backlog. Then the day comes and you receive EOL notification for the running version of your cluster and together with it &#8212; &#8220;hello there, four minor versions ahead, we have everything red&#8221;. And suddenly you&#8217;re staring at a multi-version leap with breaking API changes, incompatible Helm charts and CRDs we paid for in blood, and a nervous release manager.</p><p><em>Seen this movie before?</em></p><p>Flip the script:</p><ul><li><p>Treat upgrades as a <em>process</em>, not an event.</p></li><li><p><em>Good preparation</em> makes upgrades safe and predictable &#8212; invest in preflight, trial runs, and a rollback plan.</p></li><li><p>Monitor deprecated API; identify requests via audit logs; block regressions with policies/linters.</p></li><li><p>Keep <em>DR one click away</em> (etcd/Velero).</p></li><li><p>Move <em>little and often</em> so upgrades never block the business.</p></li></ul><p>A stable platform is a startup multiplier. Fewer flaky incidents, fewer 3 AM war rooms, and more time building the thing you&#8217;re actually here to build. Upgrade small and often &#8212; until it&#8217;s boring.</p><p><em>Boring infra wins.</em></p><p>The full post packs a no-drama upgrade playbook: <strong>link below.</strong><br></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://drybin.dev/field-notes/kubernetes-upgrades-for-startups-a-no-drama-playbook/?utm_source=substack&amp;utm_campaign=playbooks&quot;,&quot;text&quot;:&quot;Read Full Post&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://drybin.dev/field-notes/kubernetes-upgrades-for-startups-a-no-drama-playbook/?utm_source=substack&amp;utm_campaign=playbooks"><span>Read Full Post</span></a></p><p></p>]]></content:encoded></item><item><title><![CDATA[How "Safe" Defaults Blow Up Production]]></title><description><![CDATA[Defaults are product decisions. Here&#8217;s a clear-eyed look at how human factors and default behavior cause incidents.]]></description><link>https://news.drybin.dev/p/how-safe-defaults-blow-up-production</link><guid isPermaLink="false">https://news.drybin.dev/p/how-safe-defaults-blow-up-production</guid><dc:creator><![CDATA[Yaugen Drybin]]></dc:creator><pubDate>Tue, 09 Sep 2025 08:30:39 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/6a27166f-4c39-4d93-aef0-9bc1dc8a9661_1536x1024.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><strong>Defaults Matter</strong></p><p>Most incidents aren&#8217;t exotic edge cases &#8212; they&#8217;re human choices around configuration &#8212; and using <em>defaults</em>. We treat defaults something &#8220;obviously working&#8221;,  therefore safe: then an empty partition key melts one broker and Airflow&#8217;s <code>catchup=True</code> quietly queues two years of backfills.</p><p><strong>Three moves that hold under pressure:</strong></p><ul><li><p>If a value is sensible for 80% or more users, make it the default. If no single value fits the majority, do not set a default &#8212; force an explicit choice.</p></li><li><p>Reject ambiguous sentinels (<code>""</code>, <code>*</code>, <code>null</code>); choose safe strategies (sticky/round&#8209;robin; explicit include lists).</p></li><li><p>Make scope visible. Previews (&#8220;this will enqueue N runs&#8221;), dry-runs by default,</p><p> and hard caps.</p></li></ul><p><strong>In Short: </strong><em>Bad defaults are worse than no defaults</em> &#8212; a wrong paved road silently guides everyone over a cliff. The full post has a number of real stories and a copy-ready checklist: <strong>link below.</strong></p><p><em>Quick question:</em> Which default has bitten you lately? Share your stories in comments!<br></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://drybin.dev/field-notes/how-safe-defaults-blow-up-production?utm_source=substack&amp;utm_campaign=field_notes&quot;,&quot;text&quot;:&quot;Read Full Post&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://drybin.dev/field-notes/how-safe-defaults-blow-up-production?utm_source=substack&amp;utm_campaign=field_notes"><span>Read Full Post</span></a></p><p></p>]]></content:encoded></item></channel></rss>