<?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 Tech Due Diligence Playbook]]></title><description><![CDATA[25 yrs building software in Israel, US, & Germany. EMBA-trained, finance-savvy tech leader (LiveEO cloud/IT head) now offers buy- & sell-side Technical Due Diligence services.]]></description><link>https://eitanschuler.substack.com</link><image><url>https://substackcdn.com/image/fetch/$s_!vpO_!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbf6f1ef2-1bd2-4745-a70a-91281f6596e5_1181x1181.jpeg</url><title>The Tech Due Diligence Playbook</title><link>https://eitanschuler.substack.com</link></image><generator>Substack</generator><lastBuildDate>Tue, 14 Apr 2026 07:22:43 GMT</lastBuildDate><atom:link href="https://eitanschuler.substack.com/feed" rel="self" type="application/rss+xml"/><copyright><![CDATA[Eitan Schuler]]></copyright><language><![CDATA[en]]></language><webMaster><![CDATA[eitanschuler@substack.com]]></webMaster><itunes:owner><itunes:email><![CDATA[eitanschuler@substack.com]]></itunes:email><itunes:name><![CDATA[Eitan Schuler]]></itunes:name></itunes:owner><itunes:author><![CDATA[Eitan Schuler]]></itunes:author><googleplay:owner><![CDATA[eitanschuler@substack.com]]></googleplay:owner><googleplay:email><![CDATA[eitanschuler@substack.com]]></googleplay:email><googleplay:author><![CDATA[Eitan Schuler]]></googleplay:author><itunes:block><![CDATA[Yes]]></itunes:block><item><title><![CDATA[Performance Engineering & Load Testing]]></title><description><![CDATA[Edition 25]]></description><link>https://eitanschuler.substack.com/p/performance-engineering-and-load</link><guid isPermaLink="false">https://eitanschuler.substack.com/p/performance-engineering-and-load</guid><dc:creator><![CDATA[Eitan Schuler]]></dc:creator><pubDate>Mon, 13 Apr 2026 10:06:40 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/a6b12157-5dad-480c-959e-1fc90568257f_1536x1024.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Originally published on <a href="https://www.linkedin.com/pulse/performance-engineering-load-testing-eitan-schuler-xkzzf/">LinkedIn </a>on April 8, 2026</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://eitanschuler.substack.com/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://eitanschuler.substack.com/subscribe?"><span>Subscribe now</span></a></p><h2>When the load test was a lie</h2><p>Six months before a Series C close, a CTO walked us through a load test report. 10,000 concurrent users. Response times flat at 120 milliseconds. The graph was beautiful. We asked one question: what was the think time between requests? ...Silence.</p><p>The test had been run at machine speed. Zero pause between requests, no session modeling, no realistic traffic shape. It was measuring how fast the server could flush a queue of simultaneous calls, not how the system behaved under actual human load. They re-ran it the following week with realistic behavior. At 3,200 concurrent users, a connection pool on the checkout service saturated. P99 latency climbed to 8 seconds. One queue backed up and stayed backed up for 20 minutes after the test ended. The deal closed, but with a performance remediation plan baked into the term sheet and two senior engineers pulled off roadmap work to execute it.</p><p>A load test that doesn&#8217;t model reality is not a load test. It&#8217;s a confidence trick you play on yourself.</p><div><hr></div><h2>Why this matters</h2><p>Investors don&#8217;t buy your current throughput numbers. They buy headroom. The question is not whether the system handles today&#8217;s load. It is whether it handles 3x growth without a rewrite, survives an incident at peak, or avoids a surprise infrastructure bill that compresses the margins they just modeled.</p><p>Performance failures are expensive in a specific way: they surface under the conditions you least want them. A product launch. A viral campaign. The week after a major partnership announcement. By then the cost is not just engineering time. It is SLA credits, customer churn, and a deal that closes at a discount.</p><p>Investors and their technical advisors increasingly ask for load test evidence, not just uptime charts. The question is whether you can prove the system holds up before they wire the money.</p><div><hr></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://eitanschuler.substack.com/p/performance-engineering-and-load?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://eitanschuler.substack.com/p/performance-engineering-and-load?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Share</span></a></p><h2>What investors look for</h2><p><strong>Realistic tests, not synthetic benchmarks.</strong> A test that floods endpoints at machine speed with uniform payloads tells you almost nothing useful. Investors want evidence that tests model actual user sessions: login flows, searches, cart additions, checkouts, with realistic think times, session durations, and a traffic shape that resembles production. The closer the test is to real behavior, the more the results are worth.</p><p><strong>Documented bottlenecks with evidence.</strong> Every system has a ceiling somewhere. What investors want to see is that you found yours before a customer did. That means knowing which component saturates first, at what load level, and what the failure mode looks like. A capacity map with concrete numbers beats a general claim that the system &#8220;scales horizontally.&#8221;.</p><p><strong>SLOs measured under load, not just in steady state.</strong> P95 and P99 latency targets should hold at peak, not just at Tuesday morning baseline. If your SLO is checkout responding in under 500ms, that target needs to be tested at 2x current peak.</p><p><strong>A capacity model tied to growth.</strong> Investors want a simple model: at current ARR growth, when will you hit the next infrastructure ceiling? What does it cost to extend that runway by 12 months? Teams that can answer with data are much easier to price than teams that say &#8220;we&#8217;ll scale when we need to.&#8221;</p><div><hr></div><h2>Stage and stake: how the lens sharpens</h2><p><strong>Seed and early A:</strong> Basic load tests on critical user journeys are enough. Investors accept that the system is not fully hardened. The key signal is awareness. Can the founders articulate where the limits are and what they would do as they approach them?</p><p><strong>Series B and growth:</strong> Systematic load testing is expected. Bottlenecks should be documented, not speculated. Capacity models should be tied to ARR projections. P95 and P99 latency targets should be tracked and tested, not just aspirational.</p><p><strong>Control buyouts:</strong> Buyers may run their own load tests against a staging environment that mirrors production. They will ask for the last six months of test results, correlate them with incident history, and model the infrastructure spend needed to handle 3x current volume. Gaps get priced in.</p><div><hr></div><h2>Patterns and practices worth adopting</h2><p><strong>Test user journeys, not endpoints in isolation.</strong> A checkout flow involves authentication, product lookup, inventory check, payment processing, and confirmation. Testing each endpoint independently misses the compound effect of all of them running under realistic concurrency.</p><p><strong>Set performance budgets before you test.</strong> Decide what acceptable looks like before you run the test, not after you see the results. P95 under 300ms for checkout. Queue lag under 2 seconds. Without a pre-defined target, every result is open to interpretation and easy to rationalize.</p><p><strong>Find the three-layer ceiling.</strong> For most SaaS systems, performance limits live at one of three layers: application (thread pool saturation, connection limits), database (query time, connection pool, IOPS), or infrastructure (CPU, memory, network). Testing should identify which layer hits the ceiling first and at what load level.</p><p><strong>Profile before you optimize.</strong> Flame graphs and slow query logs are more useful than assumptions. The fix for a performance problem is almost never where you expect it. Teams that instrument first and optimize second move faster and spend less.</p><div><hr></div><h2>Red flags that lengthen negotiations</h2><ul><li><p>Load tests run against staging with data volumes far below production</p></li><li><p>No documented saturation points or capacity limits for any service</p></li><li><p>Tests that model machine-speed requests with no think time or session behavior</p></li><li><p>Performance tracked only at P50; P99 numbers unknown or not measured</p></li><li><p>No correlation between historical load test results and production incident history</p></li><li><p>Capacity planning based on &#8220;we&#8217;ll add more instances&#8221; with no model behind it</p></li></ul><p>Two or more of these typically produce a remediation condition or a discount. Three or more, and buyers start asking whether the system can support the growth plan they just paid for.</p><div><hr></div><h2>Mini-Glossary</h2><ul><li><p><strong>Think time:</strong> The pause between user actions in a session; critical for realistic load modeling.</p></li><li><p><strong>P95 / P99 latency:</strong> Response time at the 95th or 99th percentile; a better signal of user experience than averages.</p></li><li><p><strong>Throughput:</strong> Requests or transactions processed per unit of time.</p></li><li><p><strong>Saturation point:</strong> The load level at which a resource (connection pool, CPU, thread pool, etc.) becomes the binding constraint.</p></li><li><p><strong>Connection pool:</strong> A cache of reusable database connections; saturation causes queuing and latency spikes.</p></li><li><p><strong>Capacity model:</strong> A projection of when current infrastructure limits will be reached, given growth assumptions.</p></li></ul><div><hr></div><h2>Your turn</h2><p>What performance problem hit you at the worst possible moment? A connection pool that saturated during a product launch, a database that crawled under realistic load, or a test that looked fine until someone asked the right question? Share the scar. It helps the next team.</p><p><strong>Founders and CTOs:</strong> Need a performance engineering assessment or a realistic load testing plan before your next raise? Let&#8217;s talk.</p><p><strong>Investors:</strong> Want a second opinion on load test methodology and capacity headroom in a target company? Let&#8217;s talk.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://eitanschuler.substack.com/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://eitanschuler.substack.com/subscribe?"><span>Subscribe now</span></a></p><div><hr></div><p><strong>Next in the Playbook:</strong> Edition 26 will explore People Risk and Succession Planning. How talent retention and succession depth show up in diligence, and what investors read between the lines of an org chart. Stay tuned!</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://eitanschuler.substack.com/p/performance-engineering-and-load?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://eitanschuler.substack.com/p/performance-engineering-and-load?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Share</span></a></p>]]></content:encoded></item><item><title><![CDATA[Observability and Monitoring Excellence]]></title><description><![CDATA[Edition 24]]></description><link>https://eitanschuler.substack.com/p/observability-and-monitoring-excellence</link><guid isPermaLink="false">https://eitanschuler.substack.com/p/observability-and-monitoring-excellence</guid><dc:creator><![CDATA[Eitan Schuler]]></dc:creator><pubDate>Tue, 07 Apr 2026 10:10:39 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/d250e96a-fa33-49b3-9670-2632fc9c04de_1536x1024.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://eitanschuler.substack.com/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://eitanschuler.substack.com/subscribe?"><span>Subscribe now</span></a></p><p><strong>When the dashboard looked fine and the customer was already churning</strong></p><p>Six weeks before a Series B close, the technical advisor asked a simple question: &#8220;Walk me through how you knew the payment service was degraded last Tuesday.&#8221; The CTO pulled up the infrastructure dashboard. Green across the board. Uptime: 99.97%. Then the advisor opened a support ticket from that same Tuesday. A customer in Germany had been unable to complete checkout for 40 minutes. P95 latency had spiked to 14 seconds. No alert had fired. The monitoring stack was measuring the wrong things with the wrong thresholds in the wrong places. The deal closed, but with a holdback and a mandatory observability sprint that consumed two senior engineers for a quarter.</p><p>Observability is not about having dashboards. It is about asking questions you and getting answers before your customers do.</p><p><strong>Why this matters</strong></p><p>Investors do not buy uptime numbers in isolation. They buy the confidence that when something goes wrong, the team will know fast, know precisely what broke, contain the blast radius, and learn from it. They ask: How fast do you detect that a customer is affected, not just that a server is down? Can you trace a single failing request across your entire stack in under five minutes? When an alert fires, does it route to someone with context to act? Can you answer questions about production behavior that nobody anticipated at design time?</p><p>Get observability right and incidents shrink, on-call becomes humane, and every post-mortem produces a real answer. Get it wrong and you discover problems from customer complaints, lose hours in log archaeology during incidents, and price discounts get written into term sheets.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://eitanschuler.substack.com/p/observability-and-monitoring-excellence?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://eitanschuler.substack.com/p/observability-and-monitoring-excellence?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Share</span></a></p><p><strong>What investors look for</strong></p><p><strong>The three pillars (Metrics, logs, and traces) connected, not separate. </strong>A latency spike in a metric should lead to the slow traces causing it. Those traces should point to the service and log lines that explain why. The three pillars should be linked with some kind or correlation ID tying them together. Investors or their Tech Due Diligence contractors check by asking: &#8220;Show me the last incident, walk me through how you went from alert to root cause.&#8221;.</p><p><strong>Signals over noise. </strong>Mature observability means alerting on customer impact, not system internals. CPU at 80% is not an alert. P99 latency for checkout exceeding your SLO threshold is. Alert fatigue is a proxy for everything else: investors may sample on-call calendars and ask what percentage of pages required human action. Below 50% signals a noise problem.</p><p><strong>Structured logs as a queryable record. </strong>Logs that are plain text and not structured JSON are a red flag at Series B and above. Ops/Dev should be able to query production logs by tenant ID, request ID, and service name in under 30 seconds or so.</p><p><strong>Distributed tracing with meaningful coverage. </strong>A trace that covers your API gateway and main service but stops at the database call, external API, or async queue tells you half the story. Investors are interested in trace coverage across service boundaries. Do traces include database query time, external API latency, and queue processing lag?</p><p><strong>SLOs as the north star. </strong>Service Level Objectives shift observability from reactive to proactive. Instead of alerting when something breaks, you alert when the rate of failure consumes your error budget faster than expected. Investors increasingly expect SLOs defined and measured at the service level, not just a global uptime number.</p><p><strong>Stage and stake: how the lens sharpens</strong></p><p><strong>Seed / early A: </strong>Basic application metrics and centralized logging are sufficient. Alerts should exist for Sev-1 conditions. The key signal is not sophistication but awareness: can the founders explain what they cannot currently see and why that is acceptable at this stage?</p><p><strong>Series B / Growth: </strong>Structured logging, distributed tracing across critical paths, SLOs per revenue-critical service, and alert routing to the right team with runbooks. Dashboards should be organized by customer journey, not by infrastructure component.</p><p><strong>Control buy-outs: </strong>Buyers will ask for the last six months of incident data correlated with observability artifacts. They check whether alerts predicted incidents or lagged behind them, whether runbooks point to dashboards that actually answer the questions, and whether per-tenant observability exists.</p><p><strong>Patterns and practices worth adopting</strong></p><p><strong>USE and RED as the baseline. </strong>For every resource, track Utilization, Saturation, and Errors. For every service, track Rate, Errors, and Duration. These two frameworks cover 90% of what you need to detect and diagnose most production problems.</p><p><strong>Correlation IDs across every hop. </strong>Generate a request ID at the edge and carry it through every service call, queue message, async job, and log line. This converts log archaeology into a single query. Instrument it early. Retrofitting across a mature microservices stack is expensive and never quite complete.</p><p><strong>Synthetic monitoring for critical journeys. </strong>Running a synthetic transaction through login, checkout, and data retrieval every few minutes from multiple regions means you detect degradations before any real user encounters them.</p><p><strong>Alerting that routes to context. </strong>An alert that links to the relevant dashboard, runbook, and on-call contact cuts mean time to acknowledge in half.</p><p><strong>For your top five revenue-critical journeys:</strong></p><ul><li><p><strong>Define SLOs </strong>and track error budget burn weekly. Actual SLOs measured against real request outcomes, not annual uptime percentages.</p></li></ul><ul><li><p><strong>Build a dashboard </strong>showing login, onboarding, the core value action, and billing as separate panels with their own SLO indicators.</p></li></ul><p><strong>Instrument your top ten external dependencies </strong>with timeout tracking, error rate monitoring, and latency percentiles.</p><p><strong>Run a monthly alert hygiene review. </strong>Remove or adjust any alert that fired more than ten times last month without requiring human action.</p><p><strong>Track and publish on-call load per engineer. </strong>Pages per week, after-hours pages, time to resolve. This kind of visibility creates pressure to fix noisy alerts.</p><p><strong>Red flags that lengthen negotiations</strong></p><ul><li><p>Dashboards organized by infrastructure layer with no customer journey view. The team sees machine health, but not user experience.</p></li></ul><ul><li><p>No distributed tracing. Cross-service incidents require manual log correlation with no shared request identifier.</p></li></ul><ul><li><p>Unstructured plain text logs.</p></li></ul><ul><li><p>SLOs defined on paper but not measured. Error budgets that nobody checks.</p></li></ul><ul><li><p>On-call load concentrated on one or two engineers. Investors read this as key-person risk.</p></li></ul><ul><li><p>Observability gaps at external boundaries: third-party APIs, payment processors, messaging queues.</p></li></ul><p>Two or more of these typically produce a remediation condition or a discount.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://eitanschuler.substack.com/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://eitanschuler.substack.com/subscribe?"><span>Subscribe now</span></a></p><p><strong>Mini-Glossary</strong></p><ul><li><p><strong>RED method: </strong>Rate, Errors, Duration. The three metrics every service should expose as a baseline (See https://grafana.com/blog/the-red-method-how-to-instrument-your-services/).</p></li></ul><ul><li><p><strong>USE method: </strong>Utilization, Saturation, Errors: the three metrics every resource that can become a bottleneck should expose.</p></li></ul><ul><li><p><strong>SLO (Service Level Objective): </strong>An internal target for service reliability, expressed as a percentage of successful requests over a time window.</p></li></ul><ul><li><p><strong>Error budget: </strong>The allowed amount of unreliability derived from an SLO. Burn it too fast and feature releases pause until reliability is restored.</p></li></ul><ul><li><p><strong>Distributed tracing: </strong>Recording the path of a single request across multiple services, with timing data for each hop.</p></li></ul><ul><li><p><strong>Correlation ID: </strong>A unique identifier attached to a request at its origin and passed through every system it touches.</p></li></ul><ul><li><p><strong>Synthetic monitoring: </strong>Scripted transactions that simulate user behavior on a schedule and alert when they fail or exceed latency thresholds.</p></li></ul><ul><li><p><strong>Alert fatigue: </strong>The state where engineers ignore alerts because too many fire on conditions that do not require action.</p><div><hr></div></li></ul><p><strong>Your turn</strong></p><p>What observability gap hit you hardest? An incident your monitoring missed entirely, a customer who knew before you did, or a war room that lasted hours because you could not correlate logs across services? Share the scar. It helps the next team avoid it.</p><p><strong>Founders and CTOs: </strong>Need an observability maturity assessment or a practical roadmap to SLOs before your next raise? Let&#8217;s talk.</p><p><strong>Investors: </strong>Want a second opinion on monitoring depth and incident detection in a target company? Let&#8217;s talk.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://eitanschuler.substack.com/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://eitanschuler.substack.com/subscribe?"><span>Subscribe now</span></a></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://eitanschuler.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading The Tech Due Diligence Playbook! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><div><hr></div><p><strong>Next in the Playbook: </strong>Edition 25 will explore Performance Engineering &amp; Load Testing. Stay tuned!</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://eitanschuler.substack.com/p/observability-and-monitoring-excellence?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://eitanschuler.substack.com/p/observability-and-monitoring-excellence?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Share</span></a></p>]]></content:encoded></item><item><title><![CDATA[Multi-Tenant Architecture Assessment]]></title><description><![CDATA[Edition 23]]></description><link>https://eitanschuler.substack.com/p/multi-tenant-architecture-assessment</link><guid isPermaLink="false">https://eitanschuler.substack.com/p/multi-tenant-architecture-assessment</guid><dc:creator><![CDATA[Eitan Schuler]]></dc:creator><pubDate>Thu, 02 Apr 2026 09:57:20 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/320b72b6-d9a2-4885-b40f-fd9f9e15182a_1536x1024.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><strong>When one customer&#8217;s bad day became everyone&#8217;s bad day</strong></p><p>We had a scheduled maintenance window. Routine index rebuild on the shared database. Halfway through, query times spiked across the board. Every customer, every tenant, every API call slowing to a crawl. Support tickets started flooding in from customers who had nothing to do with the database table we were touching. One tenant&#8217;s maintenance window had become everyone&#8217;s outage.</p><p>We patched it. We apologized. We promised better blast radius controls. Six months later, during diligence for a growth round, the lead investor&#8217;s technical advisor asked one simple question: &#8220;If your largest customer runs a heavy batch job tonight, what happens to your smallest customer&#8217;s response times?&#8221; We had a much better answer by then. But the scar is real.</p><p>Multi-tenancy is not a deployment detail. It is the architectural commitment that determines whether your SaaS scales gracefully or starts bleeding customers as it grows.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://eitanschuler.substack.com/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://eitanschuler.substack.com/subscribe?"><span>Subscribe now</span></a></p><p></p><p><strong>Why this matters</strong></p><p>Investors buying into a SaaS bet on one thing above almost everything else: that you can <strong>add customers without linearly adding cost and risk</strong>. Multi-tenant architecture is where that bet is won or lost.</p><p>The questions they ask are blunt:</p><ul><li><p>Can one tenant&#8217;s load, bad data, or misbehavior affect another tenant?</p></li></ul><ul><li><p>Can you prove where each customer&#8217;s data lives and who can access it?</p></li></ul><ul><li><p>Can you onboard a customer 10x your current largest without a rewrite?</p></li></ul><ul><li><p>Can you offer enterprise isolation without building a separate product?</p></li></ul><p>Get multi-tenancy right and you widen your market, win regulated enterprise deals, and improve margins at scale. Get it wrong and you face a choice between expensive re-architecture and a ceiling on the deals you can close.</p><p><strong>What investors look for</strong></p><p><strong>Isolation model that matches your market</strong></p><p>There is no single correct isolation model. There are three common approaches, each with real trade-offs. <strong>Shared everything</strong> (one database, one schema, tenant ID as a filter column) is fast and cheap to operate, but blast radius is wide and enterprise customers often reject it on compliance grounds. <strong>Shared infrastructure, separate schemas or databases</strong> gives stronger isolation with reasonable operational overhead and is often the sweet spot for growth-stage SaaS. <strong>Full silo deployment</strong> (separate infrastructure per tenant) maximizes isolation and customization but multiplies cost and operational complexity fast.</p><p>Investors want to see that you made a deliberate choice, documented the trade-offs, and have a path to offer stronger isolation to enterprise customers without rebuilding everything.</p><p><strong>Blast radius controls</strong></p><p>Noisy neighbor problems are architectural, not operational. Rate limiting, query timeouts, resource quotas, connection pool partitioning: these need to be designed in, not bolted on after the first enterprise customer saturates your shared database. Investors check whether you can demonstrate, with evidence, that one tenant cannot meaningfully degrade another.</p><p><strong>Data isolation that survives scrutiny</strong></p><p>Tenant ID filters are a logical boundary. Enterprise buyers want a physical boundary. The question during diligence is not just whether your query includes a &#8220;WHERE tenant_id&#8221; clause, but whether a bug or a misconfiguration could ever serve one tenant&#8217;s data to another. Row-level security, scoped API tokens, and per-tenant encryption keys all raise the bar. Cross-tenant data access in audit logs is a red flag. Its complete absence from logs is a worse one.</p><p><strong>Auth and access scoped per tenant</strong></p><p>Every API call should carry a tenant identity, and that identity should be enforced at the infrastructure layer, not just the application layer. Short-lived tokens, tenant-scoped roles, and audit logs that answer &#8220;who accessed what, from which tenant, and when&#8221; move the conversation from <em>trust me</em> to <em>show me</em>.</p><p><strong>Operational model that scales</strong></p><p>Can you onboard a new tenant without engineering involvement? Can you apply a schema migration across 500 tenants without a 6-hour maintenance window? Can you run a restore for one tenant without touching another? These sound operational questions, but they are also architecture questions. Investors scoring your multi-tenant maturity are really scoring whether your operations team can keep pace with your sales team.</p><p><strong>Stage and stake: how the lens sharpens</strong></p><p><strong>Seed / early A: </strong>A shared-database model with row-level isolation is acceptable if the data model is clean, tenant IDs are enforced consistently, and you can articulate what you would change for an enterprise customer. Show awareness, not perfection.</p><p><strong>Series B / Growth: </strong>Expect evidence of blast radius controls, documented isolation model, tenant-scoped auth, and a path to stronger isolation for regulated customers. If your enterprise pipeline includes financial services, healthcare, or public sector, the timeline on that path matters.</p><p><strong>Control buy-outs: </strong>Buyers sample actual queries for cross-tenant leakage, review audit logs for tenant access patterns, test restore procedures for single-tenant recovery, and model the cost to offer dedicated silo deployments to key customers. They will price any re-architecture risk into the deal.</p><p><strong>Red flags that lengthen negotiations</strong></p><ul><li><p>Tenant isolation enforced only in application code with no database-layer controls</p></li></ul><ul><li><p>No rate limiting or resource quotas per tenant; noisy neighbor incidents in the incident history</p></li></ul><ul><li><p>Cross-tenant queries possible through admin endpoints with no audit trail</p></li></ul><ul><li><p>Schema migrations require full downtime affecting all tenants simultaneously</p></li></ul><ul><li><p>&#8220;We have never had a data leak between tenants&#8221; as the primary assurance, with no technical controls to back it</p></li></ul><ul><li><p>No single-tenant restore capability; recovery requires restoring the full shared database</p></li></ul><p>Two or more of these will trigger either a price adjustment or a post-close remediation plan. Three or more can stall a deal with enterprise-focused investors entirely.</p><p><strong>Habits worth adopting before the next round</strong></p><ul><li><p><strong>Map your isolation model explicitly. </strong>Write down which tier of isolation you offer, what the trade-offs are, and what a customer upgrade path to stronger isolation looks like. Keep it in the data room.</p></li></ul><ul><li><p><strong>Run a cross-tenant penetration test. </strong>Not a general pen test. A test specifically designed to probe whether tenant A can read tenant B&#8217;s data. Document findings and fixes.</p></li></ul><ul><li><p><strong>Instrument tenant-level metrics. </strong>Latency, error rates, and resource consumption per tenant. If you cannot show the impact of your largest tenant on your smallest, you cannot prove your blast radius controls work.</p></li></ul><ul><li><p><strong>Test single-tenant restore. </strong>Quarterly. Time it. If you cannot recover one tenant&#8217;s data without affecting others, that is an architectural gap, not just an operational one.</p></li></ul><ul><li><p><strong>Track the isolation ask in your sales pipeline. </strong>If enterprise prospects are asking for dedicated infrastructure and you are losing deals over it, that is product data, not just a sales conversation.</p></li></ul><p><strong>Mini-Glossary</strong></p><ul><li><p><strong>Noisy neighbor: </strong>A tenant consuming disproportionate shared resources and degrading performance for others.</p></li></ul><ul><li><p><strong>Row-level security (RLS): </strong>A database feature that enforces access control at the row level, filtering results automatically based on the session context.</p></li></ul><ul><li><p><strong>Silo deployment: </strong>Separate infrastructure per tenant; maximum isolation, maximum operational overhead.</p></li></ul><ul><li><p><strong>Blast radius: </strong>The scope of impact when something goes wrong; designing to limit blast radius means failures stay local.</p></li></ul><ul><li><p><strong>Tenant-scoped token: </strong>An auth token that carries tenant identity and limits access to that tenant&#8217;s resources only.</p><p></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://eitanschuler.substack.com/p/multi-tenant-architecture-assessment?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://eitanschuler.substack.com/p/multi-tenant-architecture-assessment?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Share</span></a></p><div><hr></div></li></ul><p><strong>Your turn</strong></p><p>Which multi-tenant problem bit you hardest: noisy neighbors, a near-miss on data isolation, or an enterprise deal lost because you could not offer dedicated infrastructure? Share the scar. It helps the next team.</p><p><strong>Founders: </strong>Need a multi-tenant architecture review or a gap assessment before your next enterprise deal? Let&#8217;s talk.</p><p><strong>Investors: </strong>Want a pre-deal assessment of isolation model, blast radius controls, and enterprise readiness in a target company? Let&#8217;s talk.</p><div><hr></div><p><strong>Next in the Playbook: </strong>Edition 24 we&#8217;ll explore Observability &amp; Monitoring Excellence. Logging, metrics, tracing, and alerting strategies. Stay tuned!</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://eitanschuler.substack.com/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://eitanschuler.substack.com/subscribe?"><span>Subscribe now</span></a></p>]]></content:encoded></item><item><title><![CDATA[Tech Governance for Hypergrowth]]></title><description><![CDATA[Edition 22]]></description><link>https://eitanschuler.substack.com/p/tech-governance-for-hypergrowth</link><guid isPermaLink="false">https://eitanschuler.substack.com/p/tech-governance-for-hypergrowth</guid><dc:creator><![CDATA[Eitan Schuler]]></dc:creator><pubDate>Wed, 25 Mar 2026 13:21:44 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/97663b73-3e99-489e-a680-7158da181d8d_1536x1024.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Originally published on <a href="https://www.linkedin.com/pulse/tech-governance-hypergrowth-eitan-schuler-58bdf/">LinkedIn</a> on February 25, 2026</p><h2>When the board asked who owns the risk register</h2><p>A portfolio company had just closed its Series B and was sprinting toward 3x ARR growth. Engineering had doubled in nine months. Then a regulator sent a routine questionnaire about data processing activities and incident reporting. The CEO forwarded it to the CTO, who forwarded it to a senior engineer who had joined three weeks earlier. Nobody was sure which policies existed, which were current, and which had been written for the Series A data room and never touched again. The response went out late, incomplete, and contradicted what sales had told two enterprise prospects. The fine was small. The pipeline damage was not.</p><p>Hypergrowth stress-tests everything, but governance breaks first because it depends on clarity, ownership, and consistency, exactly the things that erode when a company doubles every year. Tech governance is not bureaucracy bolted on after a scare. It is the connective tissue between board-level risk oversight and the daily decisions engineers make about security, data, change management, and resilience.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://eitanschuler.substack.com/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://eitanschuler.substack.com/subscribe?"><span>Subscribe now</span></a></p><h3>Why this matters</h3><p>Investors back hypergrowth expecting the company can scale operations as fast as revenue. Governance is how you ensure it. Without it, every new team, market, and regulation becomes a surprise. With it, decisions are faster because boundaries are clear, incidents are smaller because escalation paths exist, and enterprise deals close because you can answer the security questionnaire on time.</p><p>The pattern is predictable. A company grows from 20 to 80 engineers. Policies that lived in the CTO&#8217;s head now need to live in writing. Access reviews that happened informally now need a schedule and a log. Change management that was &#8220;we all sit in the same room&#8221; now spans four time zones. The companies that stumble are not the ones lacking ambition, rather those that treated governance as a post-IPO problem and discovered it was a Series B problem.</p><h3>What investors look for</h3><p><strong>A living policy framework, not a document graveyard. </strong>A small set of policies people actually follow: information security, change management, incident response, data classification, and access control. Each with an owner, a review date, and evidence of acknowledgment. A 60-page security policy last revised in 2022 is worse than a 2-page one updated last quarter.</p><p><strong>Risk governance with board visibility. </strong>A technology risk register (Edition 1) reviewed quarterly, with trends visible to the board. Not a formal risk committee at Series B, but a standing agenda item where someone presents the top risks, what changed, and what is being done. Cover security, compliance, resilience, key-person dependencies (Edition 11), vendor concentration (Edition 9), and technical debt (Edition 4).</p><p><strong>Clear accountability without bottlenecks. </strong>Distributed ownership: a security lead who owns posture, an engineering manager who owns change management, a data lead who owns classification. The CTO orchestrates but does not hold every thread. If the CTO is the only person who can approve a production change, approve a vendor, and respond to a regulator, the company has a governance bottleneck dressed up as leadership.</p><p><strong>Change management that scales. </strong>Classified changes (standard, normal, emergency), approval workflows that do not slow low-risk deploys but enforce review for high-risk ones, and an audit trail connecting each change to a ticket, a review, and a deployment record. This is evidence the company can explain what changed, when, why, and who approved it.</p><p><strong>Cyber-insurance as a governance signal. </strong>The underwriting process forces discipline: MFA everywhere, tested backups, incident response plan, access reviews. Companies that cannot get insured are telling investors something about their security posture without saying a word. A clean policy at a reasonable premium is quiet evidence that an independent third party reviewed your controls and found them adequate.</p><p><strong>Compliance that is operational, not aspirational. </strong>Automated access reviews, real-time policy enforcement in CI/CD (Edition 16), log retention matching stated policy, and a process to handle data subject requests on time. If your SOC 2 report says you review access quarterly but the last review was seven months ago, diligence will find the gap.</p><h3>Stage and stake: how the lens sharpens</h3><p><strong>Seed and early Series A: </strong>Formal governance is minimal and that is fine. A basic risk register, MFA on critical systems, a written incident response plan, and founders who can say: &#8220;Here is what keeps me up at night and here is what we are doing about it.&#8221;</p><p><strong>Series B and growth: </strong>Written policies with owners and review cycles, risk register visible to the board, change management with an audit trail, scheduled access reviews, and either a completed SOC 2 Type II or a credible timeline. Cyber-insurance should be in place. If the company has 60 or more engineers and no security lead, that is a gap.</p><p><strong>Control buy-outs: </strong>Buyers probe governance as an operational system. They ask for recent board risk reports, sample access reviews, check offboarded employees against active directories, verify incident response was tested recently, and review change logs correlated with incident history. Gaps are priced directly as remediation capex or a discount on enterprise value.</p><h3>Red flags that lengthen negotiations</h3><ul><li><p>Policies written for the last round with no owners, no review dates, no evidence anyone read them.</p></li><li><p>No technology risk reporting to the board. Revenue, pipeline, and burn are visible, but security posture and operational risk are not.</p></li><li><p>The CTO is the single approval point for production access, vendor selection, incident escalation, and regulatory response.</p></li><li><p>Several engineers deploying multiple times a day with no change classification, no audit trail, and no way to correlate a change to an incident.</p></li><li><p>No cyber-insurance, or a policy with exclusions so broad it would not cover a ransomware event.</p></li><li><p>Offboarded employees still appearing as active in IAM. Access reviews not performed on schedule.</p></li></ul><p>Two or three of these are fixable post-close. Four or more usually trigger price protection, escrow, or a pause.</p><h3>Habits worth adopting before the next round</h3><ul><li><p><strong>Stand up a quarterly risk review with board visibility. </strong>Even 15 minutes as a recurring board agenda item transforms governance from back-office function to strategic conversation.</p></li><li><p><strong>Assign policy owners and enforce review cycles. </strong>Every policy gets a name, not a team. Review annually at minimum and after any major incident.</p></li><li><p><strong>Classify changes and match process to risk. </strong>Standard changes flow through CI/CD. Normal changes require peer review. Emergency changes get a fast path with mandatory post-change review within 48 hours.</p></li><li><p><strong>Get cyber-insurance and use the underwriting questionnaire as a free gap assessment. </strong>Fix what the underwriter flags. Review coverage annually.</p></li><li><p><strong>Run access reviews on a real schedule. </strong>Quarterly for production and admin access. Correlate with HR offboarding to catch stale accounts.</p></li><li><p><strong>Build a governance dashboard, not a document library. </strong>Track policy status, access reviews, open risk items, and compliance health in one place. If governance lives only in PDFs, it is already stale.</p></li></ul><h3>Mini-Glossary</h3><ul><li><p><strong>Tech governance: </strong>The framework of policies, roles, and oversight ensuring technology decisions align with business objectives and risk appetite.</p></li><li><p><strong>Change management: </strong>Classifying, approving, recording, and reviewing changes to production systems. Balances speed with safety.</p></li><li><p><strong>Cyber-insurance: </strong>Insurance covering losses from cyber incidents. The underwriting process itself is a governance checkpoint.</p></li><li><p><strong>Access review: </strong>Periodic verification that users have only the access they need. Catches stale permissions and privilege creep.</p></li><li><p><strong>Policy acknowledgment: </strong>Documented evidence that employees have read and accepted a policy. Without it, the policy is aspirational.</p><div><hr></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://eitanschuler.substack.com/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://eitanschuler.substack.com/subscribe?"><span>Subscribe now</span></a></p><div><hr></div></li></ul><h3>Your turn</h3><p>Where did governance break during your hypergrowth phase? A policy nobody followed, a board that never saw tech risk, or a cyber-insurance application that exposed gaps you did not know you had? Share the scar. It helps the next team.</p><p><strong>Founders/CTOs: </strong>Need a governance health check before the next board meeting or term sheet? <strong>Let&#8217;s talk.</strong></p><p><strong>Investors: </strong>Want a pre-deal assessment of governance maturity and board-level risk oversight? <strong>Let&#8217;s talk.</strong></p><p><strong>Next in the Playbook: </strong>Edition 23 will explore Multi-Tenant Architecture Assessment. SaaS scalability, data isolation, and customer onboarding automation.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://eitanschuler.substack.com/p/tech-governance-for-hypergrowth?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://eitanschuler.substack.com/p/tech-governance-for-hypergrowth?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Share</span></a></p><p><strong>Stay tuned!</strong></p>]]></content:encoded></item><item><title><![CDATA[Infrastructure as Code & GitOps]]></title><description><![CDATA[Edition 21]]></description><link>https://eitanschuler.substack.com/p/infrastructure-as-code-and-gitops</link><guid isPermaLink="false">https://eitanschuler.substack.com/p/infrastructure-as-code-and-gitops</guid><dc:creator><![CDATA[Eitan Schuler]]></dc:creator><pubDate>Tue, 17 Feb 2026 13:29:06 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/02601712-9976-4c7c-a9d1-0ad977fd63d0_1536x1024.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Originally published on <a href="https://www.linkedin.com/pulse/infrastructure-code-gitops-eitan-schuler-jbhwf/">LinkedIn</a> on February 11, 2026.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://eitanschuler.substack.com/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://eitanschuler.substack.com/subscribe?"><span>Subscribe now</span></a></p><h2>When the repo said one thing and production showed another</h2><p>During a pre-close Disaster Recovery (DR) drill, the acquirer asked a simple question: <em>&#8220;Can you rebuild this environment from scratch?&#8221;.</em> The team pointed to the Terraform repo with confidence. Three hours later, the apply failed on 47 resources that had been modified in the console &#8220;temporarily&#8221; over the past year. Security groups, IAM policies, and a critical load balancer config existed only in production, nowhere in code. The deal closed, but with an escrow tied to a 90-day &#8220;codify reality&#8221; sprint that consumed two senior engineers who should have been shipping features.</p><p>Infrastructure as Code (IaC) isn&#8217;t about tooling preferences. It&#8217;s about whether your infrastructure knowledge is durable, auditable, and recoverable without heroes.</p><h2>Why this matters</h2><p>Investors care about IaC and GitOps because they answer a question that matters more than uptime dashboards: <em>&#8220;What happens when things go wrong and your best people aren&#8217;t available?&#8221;</em></p><p>Ideally DR becomes provable, not aspirational. Change management has an audit trail. Knowledge transfers with the codebase, not the staff. Environment parity reduces &#8220;works on staging&#8221; surprises. Compliance frameworks (SOC 2, ISO 27001, DORA) require change control evidence that console clicking cannot provide.</p><p>Get IaC right and you can rebuild, audit, and hand over infrastructure without heroics. Get it wrong and every incident, every DR drill, and every acquisition exposes how much tribal knowledge holds the system together.</p><h2>What investors look for</h2><p><strong>Coverage that matches reality. </strong>IaC should describe what actually runs, not what was intended 18 months ago. Drift detection shows the gap between declared and actual state. If you can&#8217;t answer &#8220;What percentage of production infrastructure is codified?&#8221; with confidence, neither can a buyer.</p><p><strong>Single source of truth. </strong>Infrastructure definitions live in version control with review history. Changes go through pull requests (PR), not console clicks. &#8220;Who changed this and when?&#8221; should be a git log query, not a forensic investigation.</p><p><strong>State management done right. </strong>For tools like Terraform or OpenTofu, remote state with locking is non-negotiable. Local state files or state committed to git without locking invites trouble. State corruption becomes a business continuity event.</p><p><strong>Environment parity. </strong>Dev, staging, and prod created from the same templates with parameterized differences. If you can&#8217;t spin up a new environment from code relatively fast, the code isn&#8217;t the source of truth.</p><p><strong>Secrets handled properly. </strong>No credentials in code. Use a secrets manager (Vault, AWS Secrets Manager, or equivalent) with rotation policies. IaC references secrets, doesn&#8217;t contain them. CI/CD logs don&#8217;t leak sensitive values.</p><p><strong>GitOps as operational model. </strong>For Kubernetes environments, git should be the single source of truth for what runs in the cluster. A controller inside the cluster (typically Argo CD or Flux) watches the repo and continuously reconciles reality to match. This pull-based approach means your CI/CD pipeline doesn&#8217;t need cluster credentials. This reduces the blast radius if CI is compromised. Manual kubectl changes get detected and reverted automatically.</p><p><strong>Rollback capability. </strong>Can you revert infrastructure to yesterday&#8217;s state? Git history plus state management makes this predictable, not improvized. If rollback is &#8220;we&#8217;ll figure it out,&#8221; expect diligence to slow down.</p><h2>Stage and stake: how the lens sharpens</h2><p><strong>Seed / early A: </strong>Basic IaC for core infrastructure is acceptable. Some manual elements are fine if documented. Founders/CTOs should show they understand why codifying matters and have a roadmap. The key signal: can they explain what&#8217;s in code and what isn&#8217;t, and why?</p><p><strong>Series B / Growth: </strong>Full coverage expected for production infrastructure. CI/CD pipelines apply changes. Drift detection runs automatically. Staging and prod share templates. Secrets management is solved. GitOps patterns for Kubernetes if applicable.</p><p><strong>Control buy-outs: </strong>Buyers might run terraform plan against live state and check for drift. They&#8217;ll ask for the last 6 months of infrastructure PRs and check for incident correlation. They expect environment rebuild time measured in minutes, not days. They check for evidence that DR actually works from code.</p><h2>Patterns that work (and why)</h2><p><strong>Declarative over imperative. </strong>Define what should exist, not how to create it. Tools reconcile reality to match the declaration. This makes code readable, auditable, and diffable.</p><p><strong>Everything in modules. </strong>Reusable, versioned modules for common patterns (VPC, database, compute cluster, etc.). Teams use these building-blocks from a library rather than copy-pasting. Changes propagate cleanly.</p><p><strong>Policy as code. </strong>Open Policy Agent, Sentinel, or similar. &#8220;No public S3 buckets&#8221; is a rule that fails PRs. Security guardrails enforced before apply, not discovered in an audit.</p><p><strong>Drift detection as routine. </strong>Scheduled jobs compare declared state to actual state. Alerts are triggered on drifts before they become an incident. Treat drifts like failing tests: fix them or document why they&#8217;re intentional.</p><p><strong>Immutable infrastructure.</strong> Instead of patching running servers, build a new image and replace them entirely. Servers that live for months accumulate mystery: packages installed during incidents, config tweaks nobody documented. Fresh instances from a known image eliminate that drift. Same applies for containers.</p><p><strong>GitOps reconciliation loops. </strong>For Kubernetes: git is the source of truth. Controllers pull desired state and converge. No kubectl apply from laptops. Deployments are auditable, reversible, and don&#8217;t depend on CI credentials with cluster access.</p><h2>Red flags that lengthen negotiations</h2><ul><li><p>IaC exists but doesn&#8217;t match production</p></li><li><p>State files stored locally or committed to git with no locking</p></li><li><p>No drift detection; unknown gap between code and reality</p></li><li><p>Secrets in code, environment files, or CI logs</p></li><li><p>Console access for &#8220;quick fixes&#8221; is routine, not exceptional</p></li><li><p>Single person who &#8220;knows the infrastructure&#8221; and does most changes manually</p></li><li><p>Cannot rebuild an environment from code without significant manual steps</p></li><li><p>GitOps claimed but deployments still push from CI with cluster admin credentials</p></li></ul><p>Two or more of these typically trigger remediation holdbacks or post-close 100-day plans.</p><h2>Habits worth adopting before the next round</h2><ul><li><p><strong>Run drift detection weekly </strong>and treat findings like bugs: track, triage, fix or document exceptions.</p></li><li><p><strong>Enforce PR review for all infrastructure changes. </strong>&#8220;I&#8217;ll fix it in the console&#8221; becomes &#8220;I&#8217;ll open a PR.&#8221;</p></li><li><p><strong>Practice environment rebuild quarterly. </strong>Time it. If it takes longer than you&#8217;d expect or requires improvisation, the code isn&#8217;t complete.</p></li><li><p><strong>Tag every resource with ownership. </strong>&#8220;Who created this?&#8221; should be answerable from code and cloud tags, not collective memory.</p></li><li><p><strong>Document what&#8217;s intentionally not in IaC. </strong>Some things (like certain legacy resources during migration) may be exempt, but make it explicit.</p></li><li><p><strong>Treat infrastructure changes like application deployments: </strong>review, merge, apply through pipeline, verify.</p></li></ul><h2>Mini-Glossary</h2><ul><li><p><strong>IaC (Infrastructure as Code): </strong>Defining infrastructure in version-controlled, declarative files rather than manual configuration.</p></li><li><p><strong>DR drill</strong> (Disaster Recovery drill): A planned exercise that tests whether you can restore systems after a failure, using your documented procedures rather than improvisation.</p></li><li><p><strong>GitOps: </strong>Operational model where git is the source of truth for infrastructure and application state; controllers reconcile reality to match.</p></li><li><p><strong>Drift: </strong>Gap between declared infrastructure state and actual running state; accumulates through manual changes.</p></li><li><p><strong>State file: </strong>In Terraform/OpenTofu, the record of what was created; used to plan changes and detect drift.</p></li><li><p><strong>Immutable infrastructure: </strong>Pattern of replacing servers rather than patching them; prevents configuration drift.</p></li><li><p><strong>Reconciliation loop: </strong>Controller that continuously compares desired state to actual state and corrects differences.</p><p></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://eitanschuler.substack.com/p/infrastructure-as-code-and-gitops?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://eitanschuler.substack.com/p/infrastructure-as-code-and-gitops?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Share</span></a></p></li></ul><h2>Your turn</h2><p>What infrastructure surprise hit you hardest in a deal or an outage? Console changes that weren&#8217;t in code, state file corruption, or a rebuild that took days instead of hours? Share the scar; it helps the next team.</p><p><strong>Founders/CTOs: </strong>Need an IaC coverage assessment or help closing the gap between code and reality? <strong>Let&#8217;s talk.</strong></p><p><strong>Investors: </strong>Want a pre-deal review of infrastructure maturity and DR readiness? <strong>Let&#8217;s talk.</strong></p><p><strong>Next in the Playbook: </strong>Edition 22 will explore Tech Governance for Hypergrowth. Board-level oversight, policies, and how cyber-insurance fits into the diligence picture.</p><p><strong>Stay tuned!</strong></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://eitanschuler.substack.com/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://eitanschuler.substack.com/subscribe?"><span>Subscribe now</span></a></p><p></p>]]></content:encoded></item><item><title><![CDATA[Product-Tech Fit]]></title><description><![CDATA[Edition 20]]></description><link>https://eitanschuler.substack.com/p/product-tech-fit</link><guid isPermaLink="false">https://eitanschuler.substack.com/p/product-tech-fit</guid><dc:creator><![CDATA[Eitan Schuler]]></dc:creator><pubDate>Tue, 27 Jan 2026 06:14:44 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/b2b32fda-07d2-4466-a95d-6758bd7f9d06_1536x1024.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Originally published on <a href="https://www.linkedin.com/pulse/product-tech-fit-eitan-schuler-pnnuf/">LinkedIn</a> on January 21, 2026</p><p>A Series B candidate had impressive metrics: 40% year-over-year growth, solid retention, and a clean codebase. Then the investor asked a simple question: &#8220;How long would it take to add per-seat pricing?&#8221; The CTO&#8217;s answer was sobering: six months minimum. The billing system assumed flat subscriptions. The usage tracking lived in a different service with no reliable link to accounts. The data model had baked in assumptions from 2019 that no longer matched the product direction. The architecture wasn&#8217;t bad. It just wasn&#8217;t built for where the business needed to go. The deal closed, but with a remediation plan that consumed two quarters of engineering capacity.</p><p>Product-tech fit isn&#8217;t about having the &#8220;best&#8221; architecture. It&#8217;s about having an architecture that accelerates the product roadmap instead of fighting it.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://eitanschuler.substack.com/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://eitanschuler.substack.com/subscribe?"><span>Subscribe now</span></a></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://eitanschuler.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading The Tech Due Diligence Playbook! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><h2>Why this matters</h2><p>Investors don&#8217;t just buy what exists today. They buy the next three years of product evolution. If the architecture makes obvious next moves expensive, they price in the engineering quarters required to fix it. Worse, they worry about opportunity cost: every sprint spent on structural rework is a sprint not spent on features that drive revenue.</p><p>The math compounds. A team that ships three experiments per quarter will learn faster than one that ships one. If architecture is the bottleneck, competitors with better product-tech fit will outpace you regardless of how clean your code looks. Investors have seen this movie before.</p><h2>What investors look for</h2><p><strong>Architecture that matches product velocity needs. </strong>A team shipping daily to test pricing experiments needs different infrastructure than one releasing quarterly to enterprise customers. Investors ask whether the architecture supports how the product actually evolves. Feature flags, A/B testing hooks, and modular boundaries that allow independent changes signal alignment. Monoliths where every change requires a full regression signal friction.</p><p><strong>Data models that allow product pivots. </strong>Early schema decisions often encode business assumptions that become constraints. Can you add a new customer segment without a migration? Can you change your pricing model without rewriting billing? Investors probe whether the data layer supports where the product is going, not just where it&#8217;s been.</p><p><strong>Platform investments with measurable payback. </strong>Internal platforms can accelerate delivery or become expensive distractions. Investors want to see that platform work ties to product outcomes: &#8220;We built this because it cut feature delivery time by X&#8221; beats &#8220;We built this because it&#8217;s the right way.&#8221; If the platform team is three sprints ahead of anyone using their work, something is off.</p><p><strong>Technical decisions with product context. </strong>Show that architecture choices connect to business goals, not just engineering aesthetics. &#8220;We chose this database because our product requires sub-10ms reads on user profiles&#8221; is compelling. &#8220;We chose it because it&#8217;s industry standard&#8221; is not.</p><p><strong>Appropriate investment for stage. </strong>Over-engineering is as risky as under-engineering. A seed-stage company with a Kubernetes cluster, service mesh, and event-driven architecture for 500 users has optimized for problems it doesn&#8217;t have. A Series B company still deploying from laptops has under-invested. The architecture should match the current reality while leaving room to grow.</p><h2>Stage and stake: how the lens sharpens</h2><p><strong>Seed / early A: </strong>Investors accept rough edges if the team shows product awareness. A modular monolith that&#8217;s easy to change beats a microservices sprawl that&#8217;s hard to operate. Show you can ship fast, measure what matters, and articulate which architectural bets you&#8217;d revisit at 10x scale.</p><p><strong>Series B / growth: </strong>Expect architecture that supports the stated growth plan. If the pitch says &#8220;expand to enterprise,&#8221; investors look for multi-tenancy, audit logging, and configurable workflows. If it says &#8220;launch in three new markets,&#8221; they look for localization hooks and regional deployment options. Mismatches between product narrative and technical reality raise questions.</p><p><strong>Control buy-outs: </strong>Buyers stress-test alignment hard. They map the roadmap to the architecture and ask: what breaks first? They price the engineering work needed to support planned product moves, and they discount for uncertainty. A clean system that can&#8217;t evolve is worth less than a messy one that can.</p><h2>Patterns that work (and why)</h2><p><strong>Product and engineering roadmaps that reference each other. </strong>When major features explicitly call out architectural prerequisites, and platform work explicitly ties to product outcomes, alignment is visible. If the two roadmaps live in separate documents that never mention each other, expect friction.</p><p><strong>Decision records that include product context. </strong>Architectural Decision Records (ADRs) that explain the business problem, not just the technical solution, prove that engineering thinks in product terms. &#8220;We chose X to support planned pricing flexibility&#8221; sounds better than &#8220;We chose X because it&#8217;s best practice&#8221;.</p><p><strong>Modular boundaries that match product boundaries. </strong>When the checkout flow is one deployable unit and the recommendation engine is another, changes stay local. When they&#8217;re tangled, every product experiment becomes a cross-cutting change. Investors check whether the system&#8217;s seams match where the product evolves fastest.</p><p><strong>Regular architecture-product sync. </strong>A quarterly review where product and engineering leadership explicitly ask &#8220;What&#8217;s blocking us? What should we build ahead of need?&#8221; surfaces possible misalignments before they becomes expensive.</p><h2>Red flags that slow or sink deals</h2><ul><li><p>Product roadmap features that require &#8220;significant refactoring&#8221; before they can start</p></li><li><p>Data models that encode assumptions the business has already outgrown</p></li><li><p>Platform investments with no clear product beneficiary or adoption metrics</p></li><li><p>Architecture diagrams that don&#8217;t map to how the product is sold or used</p></li><li><p>Technical decisions justified by trends rather than business requirements</p></li><li><p>Engineering estimates that routinely exceed product expectations because of structural constraints</p></li><li><p>No clear answer to &#8220;What would break if you 5x&#8217;d your largest customer?&#8221;</p></li></ul><p>Two or more of these typically trigger deeper diligence, price adjustments, or earn-outs tied to architectural remediation.</p><h2>Habits worth adopting before the next round</h2><ul><li><p><strong>Run a quarterly alignment review: </strong>Map the next four quarters of product roadmap to architectural prerequisites. Flag gaps early.</p></li><li><p><strong>Track &#8220;architecture tax&#8221; on features: </strong>When estimates include rework, measure it. If 30% of sprint capacity constantly goes to working around the architecture, that&#8217;s a signal.</p></li><li><p><strong>Write ADRs with product context: </strong>Every significant technical decision should explain what product capability it enables or protects.</p></li><li><p><strong>Maintain a &#8220;flexibility budget&#8221;: </strong>Identify the three or four areas most likely to change (pricing, customer segments, integrations) and deliberately avoid over-optimizing them. An abstraction layer around your payment provider costs a little now but saves a quarter when you need to switch.</p></li><li><p><strong>Ask engineering: &#8220;What in the product roadmap can&#8217;t we build easily?&#8221;: </strong>The answer reveals where product-tech fit is weakest.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://eitanschuler.substack.com/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://eitanschuler.substack.com/subscribe?"><span>Subscribe now</span></a></p></li></ul><div><hr></div><h2>Mini-Glossary</h2><ul><li><p><strong>Product-tech fit: </strong>The degree to which architecture choices accelerate rather than constrain product evolution.</p></li><li><p><strong>Architecture tax: </strong>The extra effort required to ship features because of structural constraints in the system.</p></li><li><p><strong>Modular boundary: </strong>A seam in the system where changes can happen independently without rippling across other components.</p></li><li><p><strong>ADR (Architectural Decision Record): </strong>A document capturing each significant technical decision, its context, and its consequences.</p></li><li><p><strong>Over-engineering: </strong>Building for scale or complexity that doesn&#8217;t exist and may never arrive at the cost of current velocity.</p></li></ul><div><hr></div><h2>Your turn</h2><p>Where has product-tech misalignment bitten you hardest? A data model that couldn&#8217;t support a pricing change? A platform bet that never paid back? An architecture built for a product direction that pivoted? Share the scar; it helps the next team.</p><p><strong>Founders: </strong>Need a product-tech alignment assessment before your next raise? <strong>Let&#8217;s talk.</strong></p><p><strong>Investors: </strong>Want a second opinion on whether a target&#8217;s architecture supports their growth narrative? <strong>Let&#8217;s talk.</strong></p><div><hr></div><p><strong>Next in the Playbook: </strong>Edition 21 will explore a topic close to my heart: Infrastructure as Code &amp; GitOps. Stay tuned!</p><div class="captioned-button-wrap" data-attrs="{&quot;url&quot;:&quot;https://eitanschuler.substack.com/p/product-tech-fit?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="CaptionedButtonToDOM"><div class="preamble"><p class="cta-caption">Thanks for reading The Tech Due Diligence Playbook! This post is public so feel free to share it.</p></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://eitanschuler.substack.com/p/product-tech-fit?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://eitanschuler.substack.com/p/product-tech-fit?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Share</span></a></p></div>]]></content:encoded></item><item><title><![CDATA[Quality Assurance and Testing Maturity]]></title><description><![CDATA[Edition 19]]></description><link>https://eitanschuler.substack.com/p/quality-assurance-and-testing-maturity</link><guid isPermaLink="false">https://eitanschuler.substack.com/p/quality-assurance-and-testing-maturity</guid><dc:creator><![CDATA[Eitan Schuler]]></dc:creator><pubDate>Mon, 12 Jan 2026 13:39:17 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/0319c044-e537-4d69-991d-84c336d60014_1536x1024.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Three days before a Series B close, the investor&#8217;s technical advisor asked to see the test suite run. The demo went smoothly until someone noticed the timer: 47 minutes for a &#8220;full&#8221; run that skipped integration tests, mocked every external service, and covered roughly 40% of critical paths. Worse, the team admitted they ran the suite &#8220;when we remember&#8221; because it was too slow for daily use. The code looked clean, but the safety net had holes you could drive a truck through. The deal survived, but with a 90-day remediation plan that consumed two senior engineers who should have been shipping the next revenue feature.</p><p>Testing isn&#8217;t about finding bugs after the fact. It&#8217;s about preventing expensive mistakes from reaching customers and proving to investors that velocity won&#8217;t collapse under its own weight as the team scales.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://eitanschuler.substack.com/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://eitanschuler.substack.com/subscribe?"><span>Subscribe now</span></a></p><h2><strong>Why this matters</strong></h2><p>Investors track testing maturity because it predicts three things they care about: delivery risk, customer churn, and engineering margin. A strong test culture means features ship faster with fewer rollbacks, incidents drop, and new engineers onboard without breaking production. Weak testing shows up as lengthening release cycles, incident fatigue, and the dreaded &#8220;we can&#8217;t change this code because we don&#8217;t know what will break.&#8221;</p><p>The math is brutal. Fixing a bug in code review costs hours. Fixing it in production costs days of engineering time, customer support load, potential SLA credits, and reputational damage that compounds. For growth-stage companies where every percentage point of margin matters, the difference between &#8220;we catch it in CI&#8221; and &#8220;customers report it&#8221; can swing enterprise value by millions.</p><h2><strong>What investors look for</strong></h2><p>Investors aren&#8217;t asking for 100% test coverage or zero bugs. They&#8217;re looking for systematic quality that scales without heroics.</p><p><strong>Test pyramid</strong> in practice, not theory. The classic model holds: many fast unit tests at the base, fewer integration tests in the middle, minimal end-to-end tests at the top. Investors check whether this exists in reality. If your &#8220;test suite&#8221; is actually 90% slow E2E tests running against a full stack, delivery will grind down as the codebase grows. A healthy split might be 70% unit, 25% integration, 5% E2E, with total run time under 10 minutes for the core suite.</p><p><strong>Coverage tied to risk</strong>, not vanity metrics. An 85% coverage number means nothing if it skips authentication, payments, and data-export paths. Smart teams track coverage on critical flows and show it in dashboards: &#8220;checkout path: 94%, billing logic: 91%, auth: 89%.&#8221; Investors want proof you know where the money lives and you&#8217;re protecting it.</p><p><strong>Tests that fail fast and clearly</strong>. A flaky test that passes 80% of the time trains teams to ignore failures. Investors sample CI logs looking for retry logic, ignored tests, or &#8220;TODO: fix this flake&#8221; comments. When they find it, they assume quality is theater. Healthy teams quarantine flakes immediately, fix or delete them within a sprint, and treat flakiness as a reliability bug.</p><p><strong>Shift-left</strong> integration with development. Testing shouldn&#8217;t be a separate phase that happens &#8220;after dev is done.&#8221; Investors sometimes look for test-driven development or at least test-first practices where applicable, pre-commit hooks that run fast tests, and PR gates that block merge on failure. If QA is still a separate team that &#8220;validates&#8221; work weeks after it was written, release cycles will stay long and defect escape rates will stay high.</p><p><strong>Test environments that mirror production</strong>. Staging or pre-prod should match production in config, data shape, and integrations. Using localhost with SQLite while production runs Postgres on a managed service guarantees surprises. Investors check whether test data is realistic (volume, edge cases, PII properly masked), whether secrets and configs are managed consistently, and whether the team can spin up isolated environments on demand for testing breaking changes.</p><p><strong>Automated regression and smoke tests</strong>. Every release should trigger a smoke test in staging that exercises critical paths: can users log in, complete a transaction, retrieve data, and trigger key workflows? Regression suites should run nightly against realistic data volumes. If these don&#8217;t exist or run &#8220;when someone remembers,&#8221; investors assume delivery confidence is based on hope.</p><h2><strong>Stage and stake: how the lens sharpens</strong></h2><p>Seed and early Series A teams often test by hand and ship fixes fast. Investors accept this if the team shows awareness: a written testing roadmap, a small but growing automated suite, and evidence that defect rates aren&#8217;t climbing. The key signal is trajectory, not perfection.</p><p>Series B and growth companies must demonstrate systematic testing. Expect code coverage on critical paths above 80%, fast CI feedback (under 15 minutes), staging environments that match production, and QA embedded in product teams rather than operating as a bottleneck. Investors will sample test reports, check flake rates, and verify that the test suite actually prevents bad deploys.</p><p>Control buy-outs trigger deep inspection. Buyers run the test suite themselves, review coverage reports against incident history, check test data provenance, and verify that compliance-critical flows (GDPR deletion, SOC 2 controls, financial calculations) have documented test cases. They price testing debt the same way they price technical debt: as deferred capex that will hit the P&amp;L post-close.</p><h2><strong>Red flags that slow or sink deals</strong></h2><ul><li><p>Test suite takes over 30 minutes to run; teams skip it to stay productive</p></li><li><p>Flaky tests routinely ignored; &#8220;just rerun the build&#8221; is standard practice</p></li><li><p>Critical revenue paths (payments, billing, auth) have minimal or no test coverage</p></li><li><p>Test environments use different databases, configs, or services than production</p></li><li><p>QA operates as a separate, downstream gate; features wait days or weeks for &#8220;QA approval&#8221;</p></li><li><p>Integration and E2E tests mock every external service; real integration failures surface in production</p></li><li><p>No smoke tests; every deploy is &#8220;validated&#8221; by hoping customers don&#8217;t complain</p></li><li><p>Test data is either trivial toy examples or production data copied without masking</p></li></ul><p>Two or more of these typically trigger either a mandated 100-day remediation plan or a price adjustment to cover the engineering quarters needed to build a real safety net.</p><h2><strong>Habits worth adopting before the next round</strong></h2><ul><li><p>Track quality KPIs: test coverage by critical path, flake rate, defect escape rate, and suite run time. Publish monthly and act on trends.</p></li><li><p>Build a test pyramid dashboard showing unit vs. integration vs. E2E distribution.</p></li><li><p>Make the pyramid visible so teams naturally write fast, focused tests.</p></li><li><p>Automate smoke tests for the 10-15 revenue-critical journeys. Run in under 5 minutes, block deploys on failure.</p></li><li><p>Quarantine flakes ruthlessly: any test failing more than once in 50 runs gets disabled immediately with owner and fix-by date.</p></li><li><p>Invest in realistic test data: synthetic or properly masked snapshots with edge cases and volume. Poor test data is why passing tests miss real bugs.</p></li></ul><h2><strong>Mini-Glossary</strong></h2><ul><li><p>Test pyramid: A model showing many fast unit tests, fewer integration tests, minimal E2E tests; optimizes speed and reliability.</p></li><li><p>Flaky test: A test that sometimes passes and sometimes fails for the same code; destroys trust in the test suite.</p></li><li><p>Shift-left: Moving quality activities earlier in development (design, code review) rather than late (QA phase, production).</p></li><li><p>Defect escape rate: Percentage of bugs that reach production versus caught pre-deploy; lower is better.</p></li><li><p>Smoke test: A fast, shallow test of critical paths to verify basic functionality before deeper testing or deploy.</p></li><li><p>Test coverage: Percentage of code exercised by tests; useful when focused on critical paths, misleading as a global metric.</p><p></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://eitanschuler.substack.com/p/quality-assurance-and-testing-maturity?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://eitanschuler.substack.com/p/quality-assurance-and-testing-maturity?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Share</span></a></p></li></ul><h2><strong>Your turn</strong></h2><p> What testing gap bit you hardest in a deal? Flaky tests that trained teams to ignore failures? Critical paths with no coverage? Test environments that hid production bugs? Share the scar; it helps the next team avoid it.</p><div><hr></div><p><strong>Founders:</strong> Need a testing maturity assessment or a roadmap to shift left before your next raise? <strong>Let&#8217;s talk.</strong></p><p><strong>Investors:</strong> Want a second opinion on test coverage and quality practices in a target company? <strong>Let&#8217;s talk.</strong></p><div><hr></div><p>Next in the Playbook: Edition 20 will explore Product-Tech Fit: when architecture choices align with (or fight against) product strategy, and how investors spot the mismatches that stall growth. Stay tuned!</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://eitanschuler.substack.com/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://eitanschuler.substack.com/subscribe?"><span>Subscribe now</span></a></p>]]></content:encoded></item><item><title><![CDATA[Year-End Wrap-up for 2025]]></title><description><![CDATA[Wrapping up 2025]]></description><link>https://eitanschuler.substack.com/p/year-end-wrap-up-for-2025</link><guid isPermaLink="false">https://eitanschuler.substack.com/p/year-end-wrap-up-for-2025</guid><dc:creator><![CDATA[Eitan Schuler]]></dc:creator><pubDate>Thu, 25 Dec 2025 20:48:28 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/4d98f89e-71a7-4981-bd4e-525853b4cbee_1536x1024.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Originally published on <a href="https://www.linkedin.com/pulse/year-end-wrap-up-2025-eitan-schuler-socmf">LinkedIn </a>on December 25, 2025.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://eitanschuler.substack.com/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://eitanschuler.substack.com/subscribe?"><span>Subscribe now</span></a></p><h2><strong>The Year Tech Due Diligence Got Real</strong></h2><p>December 2025. I&#8217;m reviewing notes, comments and direct messages related to the first seventeen editions of this newsletter, and one pattern screams louder than the rest: the tolerance for &#8220;we&#8217;ll handle it later&#8221; disappeared completely this year - investors now demand &#8220;show me the evidence&#8221; from day one.</p><p>2025 was the year tech due diligence stopped being a checkbox exercise and became the front door to every serious conversation. Let me tell you what actually happened, what you told me in the comments and tons of direct messages, and what&#8217;s worth carrying into 2026.</p><h2><strong>Three things that changed the game in 2025</strong></h2><h3><strong>1. Supply chain became the &#8220;kill chain&#8221;</strong></h3><p>Verizon&#8217;s 2025 report dropped a bomb: 30% of all data breaches involved third parties, double the previous year. Average remediation cost hit $4.91 million per incident.</p><p>The headlines kept coming. In June, procurement provider Chain IQ was breached, exposing internal customer data including UBS executive contact details. Between June and August, multiple organizations reported unauthorized access to Salesforce-hosted or Salesforce-integrated CRM systems, affecting companies including Google and Workday, primarily through social engineering and third-party access. Qantas disclosed that 5.7 million customer records were accessed via a contact-center vendor and later published after a ransom demand was refused. Allianz Life confirmed 1.4 million records exposed through a third-party CRM in July.</p><p>Edition 9 on vendor due diligence became my most-shared piece. Why? Because founders realized their stack&#8217;s weakest link could rewrite their valuation more than any internal tech debt. DORA kicked in for financial services, NIS2 started rolling across EU member states, and suddenly &#8220;we have an SBOM&#8221; stopped being sufficient. Investors wanted continuous monitoring, vendor-risk scoring in live dashboards, and proof you could swap a critical vendor in 48 hours.</p><h3><strong>2. The AI Act went from theory to leverage</strong></h3><p>The EU AI Act hit enforcement back in September. What surprised me wasn&#8217;t the regulation itself, it was how quickly it became a sales tool for prepared companies. B2B SaaS selling into Europe suddenly had to answer one question: &#8220;Which risk tier? Show me your conformity file.&#8221;</p><p>Companies that had already mapped their AI risk classification, documented their data governance, and proven their human-oversight mechanisms started closing enterprise deals faster than competitors who were still scrambling. One founder told me their Data Protection Impact Assessment and SOC 2 controls basically wrote their AI Act conformity documentation. That 70% overlap I mentioned in Edition 8? Turned out to be pretty close.</p><p>The penalty structure (up to 7% of global revenue) made this non-negotiable. Investors started treating AI compliance readiness the way they treated GDPR in 2018, as a gating item, not a nice-to-have.</p><h3><strong>3. People risk became quantifiable</strong></h3><p>This one surprised me. <strong><a href="https://www.linkedin.com/pulse/people-lens-eitan-schuler-p6pme">Edition 11 (The People Lens)</a></strong> started as the piece I thought would get the least traction. Org charts and succession planning feel &#8220;soft&#8221; compared to API contracts and database sharding. I was completely wrong.</p><p>Investors in 2025 started asking for bench-depth models alongside burn-down charts. They wanted to know: &#8220;If your principal engineer is out for a month, what slows down?&#8221;. Bus-factor-of-one became a deal discount. On-call health metrics started appearing in data rooms next to deployment frequency.</p><p>The shift? People finally connected fragile teams to fragile deliveries. A clean codebase with a hero culture is just technical debt with better PR. Three weeks before one close, a buyer asked: &#8220;If your principal engineer is out for a month, what slows down?&#8221; The CTO said: &#8220;only he knows the data plane and deployment system end-to-end.&#8221; That answer triggered a holdback tied to succession planning and delivery predictability.</p><h2><strong>The patterns that paid off across 17 editions</strong></h2><p>Looking back at every conversation, every comment, every &#8220;this burned us&#8221; story, five habits separated teams that sailed through diligence from teams that scrambled:</p><p><strong>They treated evidence like a product.</strong> The winners didn&#8217;t create artifacts for diligence, they created them as operating tools. Data ownership maps updated with every schema change. Vendor registers refreshed quarterly. SBOMs generated in CI, not assembled the week before close. When diligence asked, they just pointed at what already existed.</p><p><strong>They priced risk before investors did.</strong> <strong><a href="https://www.linkedin.com/pulse/debt-deal-breaker-eitan-schuler-x1z9e">Edition 4</a></strong>&#8216;s Debt Ledger, <strong><a href="https://www.linkedin.com/pulse/deal-maker-checkbox-eitan-schuler-73j0f">Edition 1</a></strong>&#8216;s Risk Register, <strong><a href="https://www.linkedin.com/pulse/scaling-without-bleeding-cash-eitan-schuler-nm5uf">Edition 5</a></strong>&#8216;s FinOps dashboard, these weren&#8217;t compliance theater. They were steering mechanisms. Teams that tracked tech debt with owners and estimates, cloud costs per ARR Euro, and incident post-mortem velocity didn&#8217;t negotiate with fear. They negotiated with data.</p><p><strong>They made residency and sovereignty architectural, not contractual.</strong> The companies that aced <strong><a href="https://www.linkedin.com/pulse/data-governance-sovereign-data-readiness-eitan-schuler-5arle">Edition 10</a></strong> and <strong><a href="https://www.linkedin.com/pulse/cloud-strategy-deployment-models-eitan-schuler-611qe">14</a></strong> didn&#8217;t bolt on data residency later. They designed for it: regional sharding from day one, KMS keys pinned in-region, telemetry that never crossed borders. When customers asked &#8220;prove EU data stays in EU,&#8221; they exported a dashboard, not a promise.</p><p><strong>They automated the boring parts of governance.</strong> Tagging policies enforced in Terraform. Secrets scanning in every commit. Policy-as-code for IaC changes. Vulnerability SLAs tracked per service with automated escalation. This wasn&#8217;t DevSecOps theater, it was margin protection. Every hour not spent chasing down an untagged resource or a leaked secret was an hour of shipping features.</p><p><strong>They ran drills, not slides.</strong> Business continuity plans that had never been tested became liabilities (<strong><a href="https://www.linkedin.com/pulse/business-continuity-resilience-stress-test-eitan-schuler-vebre">Edition 13</a></strong>). API contracts that drifted from production became integration hell (<strong><a href="https://www.linkedin.com/pulse/api-strategy-integration-readiness-eitan-schuler-is0oe">Edition 12</a></strong>). But teams that ran quarterly failover drills, chaos exercises, and &#8220;assume vendor down&#8221; scenarios turned operational discipline into a competitive moat. Investors trust what&#8217;s rehearsed, not what&#8217;s promised.</p><h2><strong>What I got wrong (and learned fast)</strong></h2><p>I underestimated how fast supply chain risk would dominate. When I wrote <strong><a href="https://www.linkedin.com/pulse/vendor-due-diligence-third-party-risk-eitan-schuler-mjeue">Edition 9</a></strong> in early fall, third-party breaches were a concern. By December, they were the primary attack vector. The Salesforce cascade, the island hopping attacks, the procurement vendor compromises, these weren&#8217;t edge cases. They were the new normal. If you haven&#8217;t stress-tested your vendor exit clauses or run an &#8220;assume critical vendor compromised&#8221; drill, make that your January priority.</p><p>I didn&#8217;t emphasize multi-account architecture enough early. <strong><a href="https://www.linkedin.com/pulse/scaling-without-bleeding-cash-eitan-schuler-nm5uf">Edition 5</a></strong> touched on it, but I should have screamed it from page one: separate cloud accounts for each product and environment from Day 1. Every founder who told me &#8220;we&#8217;re trying to untangle mixed environments now&#8221; paid for it in diligence time and FinOps headaches.</p><p>I should have written the <strong><a href="https://www.linkedin.com/pulse/people-lens-eitan-schuler-p6pme">People Lens edition</a></strong> earlier. Org design, succession planning, and on-call health, these aren&#8217;t nice-to-haves at Series B. They&#8217;re gating items. The technical stack is easier to fix. Fragile teams take quarters.</p><h2><strong>Looking ahead: what&#8217;s coming in 2026</strong></h2><p><strong>The regulatory ratchet keeps tightening.</strong> The AI Act is enforcing. DORA is live. NIS2 is rolling out. The EU Data Act kicked in September 2025, with full switching-fee elimination coming January 2027. Every one of these shifts costs from &#8220;we&#8217;ll figure it out&#8221; to &#8220;show me the controls.&#8221; If your compliance posture is reactive, 2026 will hurt.</p><p><strong>Unit economics become non-negotiable.</strong> Cheap capital is gone. Every Series B and beyond will face one question: &#8220;Prove your cloud spend grows slower than ARR.&#8221; FinOps isn&#8217;t optional anymore, it&#8217;s margin defense. <strong><a href="https://www.linkedin.com/pulse/scaling-without-bleeding-cash-eitan-schuler-nm5uf">Edition 5</a></strong>&#8216;s habits (tagging, showback, right-sizing) are table stakes now.</p><p><strong>Supply chain scrutiny becomes standard.</strong> SBOM generation, vendor-risk scoring, continuous monitoring, and exit-clause negotiation won&#8217;t be &#8220;nice work if you have it,&#8221; they&#8217;ll be expected in every data room. The companies that treat third-party risk as a feature, not a footnote, will close deals faster.</p><p><strong>Platform engineering becomes the differentiator.</strong> The gap between teams with paved roads (golden paths, self-service IDP, automated guardrails) and teams without is widening. In 2026, investors will ask: &#8220;How long does it take a new engineer to ship to production?&#8221; and &#8220;What percentage of teams can deploy without a ticket?&#8221;</p><h2><strong>If you read only three editions before your next round</strong></h2><p>If time is short and a term sheet is close, start here:</p><ul><li><p><strong><a href="https://www.linkedin.com/pulse/deal-maker-checkbox-eitan-schuler-73j0f">Edition 1</a></strong> (Deal-Maker, Not Checkbox) - Build your risk register. Frame risk, don&#8217;t hide it.</p></li><li><p><strong><a href="https://www.linkedin.com/pulse/metrics-matter-eitan-schuler-3ulpe">Edition 3</a></strong> (The Metrics That Matter) - Get your five signals clean: speed, stability, quality, reliability, unit economics.</p></li><li><p><strong><a href="https://www.linkedin.com/pulse/vendor-due-diligence-third-party-risk-eitan-schuler-mjeue">Edition 9</a></strong> (Vendor Due Diligence &amp; Third-Party Risk) - Map your supply chain. Continuous monitoring, not annual PDFs.</p></li></ul><p>Then layer in whatever matches your stage and sector: APIs if you&#8217;re B2B SaaS, sovereign data if you touch EU customers, DevSecOps if you&#8217;re post-Series A.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://eitanschuler.substack.com/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://eitanschuler.substack.com/subscribe?"><span>Subscribe now</span></a></p><h2><strong>Your turn</strong></h2><p>This newsletter exists because you&#8217;ve shared your scars, your surprises, and your shortcuts. Over seventeen editions, the comments and direct messages taught me as much as the research.</p><p>So here&#8217;s my ask: What topic did I miss in 2025 that bit you during a deal? Was it M&amp;A carve-out complexity? Product-market fit under technical constraints? IP ownership in distributed teams? Kubernetes cost chaos? AI model governance beyond compliance checkboxes? Drop it in the comments. The best suggestions become Edition 18 and beyond in 2026.</p><div><hr></div><p><strong>Founders:</strong> Need a year-end tech health check before the next fundraise? A fast gap-scan of your data room readiness? Let&#8217;s talk.</p><p><strong>Investors:</strong> Want a second pair of eyes on a live deal, or a portfolio-wide benchmark of tech maturity? Let&#8217;s talk.</p><p><strong>Here&#8217;s to a year of better questions, cleaner evidence, and deals that close on momentum instead of surprises. See you all in 2026. Stay tuned!</strong></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://eitanschuler.substack.com/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://eitanschuler.substack.com/subscribe?"><span>Subscribe now</span></a></p>]]></content:encoded></item><item><title><![CDATA[Database Architecture & Data Strategy]]></title><description><![CDATA[Edition 17]]></description><link>https://eitanschuler.substack.com/p/database-architecture-and-data-strategy</link><guid isPermaLink="false">https://eitanschuler.substack.com/p/database-architecture-and-data-strategy</guid><dc:creator><![CDATA[Eitan Schuler]]></dc:creator><pubDate>Mon, 17 Nov 2025 12:38:35 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/0a80f270-295f-4f36-a337-ca4afdd1aa8c_1536x1024.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Originally published on <a href="https://www.linkedin.com/pulse/database-architecture-data-strategy-eitan-schuler-9fste/">LinkedIn </a>on November 12. 2025.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://eitanschuler.substack.com/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://eitanschuler.substack.com/subscribe?"><span>Subscribe now</span></a></p><p>Two months before a Series B close, the lead investor asked a simple question: &#8220;Walk me through your plan to migrate off Sybase.&#8221; The CTO froze. The 15-year-old database worked fine (until it didn&#8217;t). Licensing costs scaled with revenue, not usage. Cloud-native tooling couldn&#8217;t connect. Hiring engineers who understood the stack was nearly impossible. The migration plan? &#8220;We&#8217;ll figure it out after we close.&#8221;</p><p>The deal survived, but with a 10% holdback tied to a 12-month Microsoft SQL Server migration. Two senior engineers spent a year rewriting queries, testing data integrity, and managing dual-write periods instead of shipping features. The opportunity cost? Roughly &#8364;800K in delayed product work and a competitor who shipped faster.</p><h2>Why this matters</h2><p>Database architecture isn&#8217;t plumbing. It&#8217;s the foundation that determines how fast you scale, how much you spend, and whether you can evolve without rewriting everything. Investors care because the wrong choice compounds: migration risk grows with data volume, vendor lock-in tightens with revenue, and architectural debt strangles margin.</p><p><strong>There is no universal &#8220;right&#8221; answer.</strong> A single Postgres instance can outperform a distributed system if workload and team fit the model. Microservices with 47 databases can be worse than a well-factored monolith if ownership is unclear. The question isn&#8217;t &#8220;what&#8217;s trendy?&#8221; but &#8220;what fits your constraints, and can you prove it?&#8221;</p><h2>What investors look for</h2><p><strong>Clear data ownership and boundaries</strong> <br>Every dataset has a single writer and a named owner. Cross-service writes to shared tables signal fragile deploys and integration hell during carve-outs. Maintain a data ownership map showing which service owns which tables and how data flows between them (see Edition 10 on data governance and Edition 15 on domain boundaries).</p><p><strong>Architecture matched to workload</strong> <br>Show why you chose what you chose. High-write transactional systems favor strong consistency. Analytics or read-heavy patterns tolerate eventual consistency. Mixed workloads might justify polyglot persistence. But every choice should tie to measured query patterns, not trends.</p><p><strong>Performance tracked as SLOs</strong> <br>Track P95/P99 latency per critical query type. Prove you know which queries are slow, why, and what happens when they breach SLO. Slow query logs, index coverage, and optimization backlogs with ROI estimates matter.</p><p><strong>Scalability with evidence</strong> <br>Can you handle 5x traffic without a rewrite? Show vertical scaling limits, sharding plans if needed, read replica strategy, and load test results that prove the theory.</p><p><strong>Migration and exit readiness</strong> <br>Vendor lock-in is priced like technical debt (see edition 4). Can you export data in standard formats? How long would a migration take? If you&#8217;re on proprietary tech, investors will assume a multi-quarter, high-risk migration and discount accordingly.</p><p><strong>Capacity forecasting tied to revenue</strong> <br>Model database cost and performance against ARR growth. Storage rates, IOPS trends, connection pool saturation should stay flat or decline as you scale (more in Edition 5).</p><h2>Decision framework: when to choose what</h2><p><strong>Single database works when</strong> domains are evolving, teams are small, strong consistency matters, and you enforce modular boundaries within the schema. Watch for: if one table becomes the bottleneck, plan extraction seams.</p><p><strong>Distributed databases work when</strong> domains are stable with clear ownership, independent scaling matters (batch vs. real-time), and you can tolerate eventual consistency or partition data cleanly. Watch for: if ownership is fuzzy or transactions span services, a modular monolith is simpler.</p><p><strong>Polyglot persistence works when</strong> workload shapes genuinely differ (transactional + search + analytics), each DB has a clear owner and migration path, and operational overhead is staffed. Watch for: using five databases &#8220;because we tried them all&#8221; is sprawl, not strategy.</p><h2>How stage and stake sharpen the lens</h2><p><strong>Seed / early A:</strong> A single database with a documented scaling plan is acceptable. Show you understand vertical limits, have a read-replica or caching strategy sketched, and can articulate when you&#8217;d shard or split. Basic query observability and nightly backups with one timed restore per quarter.</p><p><strong>Series B / Growth:</strong> Expect clear data ownership, capacity models tied to ARR, query SLOs tracked per service, and a tested migration path if you&#8217;re on proprietary tech. Distributed systems require proof: how you handle consistency, partition data, and recover from split-brain scenarios.</p><p><strong>Control buy-outs:</strong> Buyers sample query performance against SLOs, run capacity models forward 3 years, verify backup/restore in clean rooms, and check migration cost if lock-in exists. They price the engineering quarters needed to scale or migrate, and they discount uncertainty.</p><h2>Red flags that trigger discounts or 100-day plans</h2><ul><li><p>Single massive database with no sharding or replica strategy; vertical scaling limit is 12 months out</p></li><li><p>Cross-service writes to shared tables; changes ripple unpredictably</p></li><li><p>Proprietary database with no export path; migration estimate is &#8220;we&#8217;ll figure it out&#8221;</p></li><li><p>Query performance degrading with growth; no SLOs, no optimization backlog</p></li><li><p>Backup/restore untested; RTO/RPO are aspirational</p></li><li><p>Database cost growing faster than ARR; no capacity forecasting</p></li></ul><h2>Habits worth adopting before the next round</h2><ul><li><p><strong>Maintain a data ownership map</strong>: services, datasets, writers, readers, contracts (APIs/events/CDC), and owners. Update it with every schema change.</p></li><li><p><strong>Set query SLOs and track them</strong>: P95/P99 latency per critical query type. Alert on breaches, maintain an optimization backlog.</p></li><li><p><strong>Run quarterly capacity reviews</strong>: storage growth, IOPS saturation, connection pool usage. Model against ARR growth; flag when you&#8217;ll hit limits.</p></li><li><p><strong>Keep a migration readiness checklist</strong>: schema portability, dialect mapping, tooling gaps, testing plan, timeline estimate. Update annually.</p></li><li><p><strong>Test backups with timed restores</strong>: clean-room restore every quarter. Measure RTO/RPO and verify data integrity (Edition 13).</p></li><li><p><strong>Model database spend as FinOps</strong>: cost per query, per GB, per connection. Tie it to revenue; prove margins improve at scale (Edition 5).</p></li></ul><p>Mini-Glossary</p><ul><li><p><strong>Polyglot persistence</strong>: Using multiple database types (SQL, NoSQL, time-series) matched to workload needs.</p></li><li><p><strong>CDC (Change Data Capture)</strong>: Streaming database changes to other systems via transaction logs, not polling.</p></li><li><p><strong>Sharding</strong>: Horizontal partitioning of data across multiple DB instances; critical for scale but adds operational overhead.</p></li><li><p><strong>Read replica</strong>: A copy of the database that handles read queries to reduce load on the primary; can&#8217;t accept writes.</p></li><li><p><strong>IOPS</strong>: Input/Output Operations Per Second; measures database workload and performance capacity.</p></li><li><p><strong>Connection pool saturation</strong>: When all available database connections are in use; causes new requests to queue or fail.</p></li></ul><h2>Your turn</h2><p>What database choice has bitten you (or saved you) during diligence? Was it a migration nightmare, a scalability wall, or tight coupling that stalled a carve-out? Share the story; scars teach best.</p><p><strong>Founders:</strong> Need a data architecture health check or migration readiness review? <strong>Let&#8217;s talk.</strong> <br><strong>Investors:</strong> Want a pre-deal assessment of database strategy and scaling risk? <strong>Let&#8217;s talk.</strong></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://eitanschuler.substack.com/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://eitanschuler.substack.com/subscribe?"><span>Subscribe now</span></a></p><div><hr></div><p><strong>Next in the Playbook:</strong> Edition 18 will explore Quality Assurance &amp; Testing Maturity. Stay tuned!</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://eitanschuler.substack.com/p/database-architecture-and-data-strategy?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://eitanschuler.substack.com/p/database-architecture-and-data-strategy?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Share</span></a></p><p></p>]]></content:encoded></item><item><title><![CDATA[DevSecOps Maturity & Shift‑Left Security]]></title><description><![CDATA[Edition 16]]></description><link>https://eitanschuler.substack.com/p/devsecops-maturity-and-shiftleft</link><guid isPermaLink="false">https://eitanschuler.substack.com/p/devsecops-maturity-and-shiftleft</guid><dc:creator><![CDATA[Eitan Schuler]]></dc:creator><pubDate>Mon, 10 Nov 2025 12:25:42 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/1f49f8f0-4195-46a0-946a-48776d5e56e2_1536x1024.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Originally published on <a href="https://www.linkedin.com/pulse/devsecops-maturity-shiftleft-security-eitan-schuler-dhibe/">LinkedIn</a> on November 5, 2025</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://eitanschuler.substack.com/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://eitanschuler.substack.com/subscribe?"><span>Subscribe now</span></a></p><p>Three weeks before close, a buyer&#8217;s security team requested &#8220;evidence of vulnerability management.&#8221; The CTO pulled up a quarterly scan report showing 47 high-severity findings, half of them six months old. One critical CVE sat in a transitive dependency nobody had noticed. Worse, secrets were scattered across config files, CI tokens had admin scope, and the team couldn&#8217;t prove which services were actually exposed to the internet. The deal survived, but with a 15% discount and a mandatory 90-day security sprint that stalled two product launches.</p><h2>Why this matters now</h2><p><strong>Shift-left</strong> means moving security checks earlier in the development cycle and catching issues in code review rather than production. For investors, this translates directly to margin and speed: fixing a SQL injection during PR review costs hours; fixing it after a breach costs millions in remediation, legal fees, and customer churn.</p><p><strong>Supply-chain attacks have gone mainstream.</strong> SolarWinds, Log4Shell, and MOVEit showed that your dependency tree is your attack surface. Buyers now expect SBOMs (Software Bills of Materials), signed artifacts, and proof you know what&#8217;s running in production.</p><p><strong>Enterprise buyers demand it.</strong> SOC 2, ISO 27001, and vendor security questionnaires are table stakes for mid-market deals. Companies that treat security as a Friday audit rather than a daily gate lose sales cycles or accept margin-crushing exceptions.</p><p><strong>Regulators are watching.</strong> DORA, NIS2, and the AI Act all require demonstrable security controls, not promises. I wrote about these extensively in Edition 8 and 9. Investors price the risk of enforcement, reputational damage, and the engineering capacity needed to retrofit controls post-close.</p><h2>What investors look for: signals that separate theater from discipline</h2><p><strong>Security built into delivery, not bolted on later</strong> Investors want to see controls wired into CI/CD: branch protection, mandatory code reviews, automated scanning that fails fast on secrets or high-severity vulnerabilities, and signed build artifacts. A monthly scanner report gathering dust signals that security is separate from shipping, not part of it.</p><p><strong>Clear ownership and time-bound SLAs</strong> Every vulnerability should map to severity, exploitability, and a fix deadline. Critical CVEs in exposed services get patched within days, not quarters. Exceptions require explicit approval, expiry dates, and compensating controls, not a backlog labeled &#8220;technical debt.&#8221;</p><p><strong>Supply-chain transparency</strong> Generate an SBOM for every build and attach it to release artifacts. Pin dependencies to specific versions, scan them before merge, and verify signatures at deploy. Investors check whether you can answer &#8220;what&#8217;s inside this container?&#8221; in minutes, not days.</p><p><strong>Infrastructure policy enforced as code</strong> Terraform and Kubernetes manifests should pass policy checks before they reach production: no overly permissive IAM roles, no unencrypted storage, no surprise egress paths. Hand-edited production environments signal drift, weak change control, and brittle disaster recovery.</p><p><strong>Secrets and credentials hygiene</strong> Use short-lived, scoped tokens in CI/CD, rotate secrets on a schedule, and scan for leaked credentials in every commit. Long-lived admin tokens or secrets checked into repos are immediate red flags. Investors assume the blast radius is &#8220;everything.&#8221;</p><p><strong>Threat modeling that fits the sprint</strong> Run lightweight threat reviews at story kickoff for any new API endpoint, auth change, or data flow. Annual workshops that never affect code are &#8220;theater&#8221;. Practical, card-based models that shape design decisions prove security is embedded in product thinking.</p><p><strong>Runtime visibility tied to teams</strong> Security dashboards should live where engineers look: alongside deployment frequency, error rates, and SLOs. Alerts must route to clear owners with runbooks, not a generic &#8220;security queue.&#8221; If engineering never sees security metrics, they won&#8217;t act on them.</p><h2>How stage and stake sharpen the lens</h2><p><strong>Seed / early Series A:</strong> Basic controls are enough: MFA and SSO on critical systems, secrets scanning in CI, branch protection on main repos, and SBOMs generated for core services. Investors accept that the paved road is still under construction as long as you show momentum and a plan.</p><p><strong>Series B / Growth:</strong> Enforcement becomes the standard. PRs should fail on policy violations, images must be signed and verified at deploy, IaC changes require policy approval, and vulnerability SLAs are tracked and met. Golden templates exist so new services start secure by default.</p><p><strong>Control buy-outs / Late-stage:</strong> Buyers expect provenance: cryptographic proof of how and where artifacts were built, reproducible builds, and audit-ready evidence packs that map SOC 2 or ISO controls to pipeline data. Investors will sample your SBOM, test a credential rotation drill, and verify that critical vulnerabilities are patched and deployed within a week.</p><h2>Red flags that slow or sink deals</h2><ul><li><p><strong>CI tokens with admin scope</strong> that never expire; if CI is compromised, the blast radius is &#8220;everything.&#8221;</p></li><li><p><strong>No SBOMs or signing</strong>; buyers can&#8217;t verify what&#8217;s running or where it came from.</p></li><li><p><strong>Scanner fatigue</strong>: thousands of findings with zero enforcement gates; nobody knows what matters.</p></li><li><p><strong>Secrets in environment files, CI logs, or issue comments</strong>; leaked credentials with no rotation plan.</p></li><li><p><strong>Infrastructure drift</strong>: production patched by hand while IaC sits in a repo as documentation, not source of truth.</p></li><li><p><strong>Vulnerability backlogs older than a fiscal year</strong>; exploit risk priced into escrow or discounted from enterprise value.</p></li></ul><p>Two or more of these typically trigger price protection, mandated remediation roadmaps, or sometimes even a walk-away.</p><h2>Habits worth adopting before the next round</h2><ul><li><p><strong>Track patch time</strong> as a KPI: measure the time from CVE disclosure to deployed fix, per service. Publish it monthly.</p></li><li><p><strong>Attach SBOMs to every release artifact</strong> and keep 12 months of history. Make &#8220;show me what&#8217;s inside&#8221; a 2-minute query, not a forensic exercise.</p></li><li><p><strong>Enforce policy-as-code</strong> for IaC and manifests; treat security rules like application code with review, versioning, and rollback.</p></li><li><p><strong>Run a quarterly controls game-day</strong>: rotate a leaked secret under time pressure, block an unsigned image at deploy, patch a live vulnerability via the pipeline. Measure MTTR and refine runbooks.</p></li><li><p><strong>Embed a security engineer in your platform team</strong> to own the paved road and treat security controls as product features with SLAs, not audit checklists.</p></li></ul><h2>Mini-Glossary</h2><ul><li><p><strong>Shift-left</strong>: Moving security checks earlier in development (design, code review) rather than late (production, audits).</p></li><li><p><strong>SBOM</strong>: Software Bill of Materials&#8212;a machine-readable list of all components and versions in an artifact.</p></li><li><p><strong>Policy-as-code</strong>: Security and compliance rules expressed as code, enforced in CI/CD pipelines.</p></li><li><p><strong>Provenance</strong>: Cryptographically signed metadata proving how and where an artifact was built.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://eitanschuler.substack.com/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://eitanschuler.substack.com/subscribe?"><span>Subscribe now</span></a></p></li></ul><h2>Your turn</h2><p>Which security gap hit hardest in your last deal? Unpatched dependencies, leaked secrets, or policy theater? What fixed it, and how fast? Share the scar. It helps the next founder dodge it.</p><p><strong>Founders:</strong> Need a 2-hour security posture review before the next term sheet? Or need me to review your development processes? <strong>Let&#8217;s talk.</strong></p><p><strong>Investors:</strong> Want a pre-deal assessment of DevSecOps maturity in a target company? <strong>Let&#8217;s talk.</strong></p><div><hr></div><p><strong>Next in the Playbook:</strong> Edition 17 will explore Database Architecture &amp; Data Strategy.</p><p><strong>Stay tuned!</strong></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://eitanschuler.substack.com/p/devsecops-maturity-and-shiftleft?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://eitanschuler.substack.com/p/devsecops-maturity-and-shiftleft?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Share</span></a></p>]]></content:encoded></item><item><title><![CDATA[Platform Architecture Assessment]]></title><description><![CDATA[Edition 15]]></description><link>https://eitanschuler.substack.com/p/platform-architecture-assessment</link><guid isPermaLink="false">https://eitanschuler.substack.com/p/platform-architecture-assessment</guid><dc:creator><![CDATA[Eitan Schuler]]></dc:creator><pubDate>Mon, 27 Oct 2025 20:01:19 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/d5cd88b1-ef75-4df4-8e6b-4b265c3c6e08_1536x1024.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Originally published on <a href="https://www.linkedin.com/pulse/platform-architecture-assessment-eitan-schuler-yjvfe/">LinkedIn</a> on October 22, 2025</p><p>A familiar pattern in a Quarterly Business Review: harsh questions are being asked about why performance at peak was uneven, releases were risky, and that one noisy dependency kept rippling across teams. The debate starts again and again. Re-platform and rewrite to microservices or harden the good old monolith? As always - the right answer <strong>is not ideology</strong>. It is a clear read on your domain boundaries, deployment independence, and the cost of change.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://eitanschuler.substack.com/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://eitanschuler.substack.com/subscribe?"><span>Subscribe now</span></a></p><p></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://eitanschuler.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading The Tech Due Diligence Playbook! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><h2>Why this matters</h2><p>Investors want scale without fragility, faster iteration without runaway cost, and a predictable path from here to the next 10x. They will ask the founders how architecture supports revenue goals, regulated customers, and uptime promises. Founders need a framework, not slogans.</p><p>Investor expectations: Dos and Don&#8217;ts</p><ol><li><p><strong>Domain boundaries</strong> Draw clear lines between parts of the system and show them on one page. Use context maps and bounded contexts so each area owns its data and decisions, and changes stay local. Don&#8217;t let teams call each other at random or share code in ways that blur ownership. If boundaries are not written down, every change risks breaking something else.</p></li><li><p><strong>Coupling and cohesion</strong> Keep each module focused on one purpose and list its allowed dependencies. Use code reviews and simple tools to prevent circular dependencies. Don&#8217;t hide shared state or let services talk through the same database tables. Avoid grab bag utility libraries that everything depends on.</p></li><li><p><strong>Data ownership and integration</strong> Assign a clear owner for every dataset. Version your schemas. Connect systems through APIs or events. If you use change data capture, say so in simple terms and document the contract. Don&#8217;t allow multiple services to write to the same table. Never ship breaking changes without a version and a migration plan.</p></li><li><p><strong>Deployment independence</strong> Make it possible to deploy one service at a time with blue green or canary releases. Keep interfaces backward compatible so others do not need to deploy with you. Don&#8217;t force lockstep releases or shared maintenance windows just because systems are tightly coupled.</p></li><li><p><strong>Runtime performance and bottlenecks</strong> Measure real user latency at P95 and P99. Profile hotspots. Size queues. Tune databases and caches based on evidence. Don&#8217;t overprovision without data or chase CPU charts without flame graphs and load tests.</p></li><li><p><strong>Scalability mode</strong> Be explicit about where you scale up a machine, where you scale out across many machines, and how state is partitioned. Test autoscaling under load. Don&#8217;t just rely on a single stateful chokepoint or expect autoscaling to fix design limits.</p></li><li><p><strong>Resilience and failure isolation</strong> Set service level objectives, use error budgets, add circuit breakers and bulkheads, and run disaster recovery and restore drills in a clean room. Don&#8217;t accept failures that cascade across services or skip timed restore tests.</p></li><li><p><strong>Observability and SLOs</strong> Ship metrics, logs, and traces with the same tags for service, environment, and team. Track simple health views like Requests, Errors, Duration and Utilization, Saturation. Review alerts often. Don&#8217;t rely on ad hoc log searches or tolerate silent failures that users feel before you do.</p></li><li><p><strong>Team topology fit</strong> Align teams to the slices of the system they build and run. Each team should own its service, its data, and its on-call. Don&#8217;t organize by technical layers that create gaps in ownership and constant cross team coordination.</p></li><li><p><strong>Cost and capacity predictability</strong> Track cost per service and per unit of work, for example per API call or job. Reserve steady capacity when it saves money. Watch egress fees between regions and providers. Don&#8217;t treat list prices as a forecast or hide cross plane and cross service costs inside averages.</p></li></ol><h2>Monolith vs Microservices</h2><h3>Monolith is a better fit when</h3><ul><li><p>Domain boundaries are still evolving and you refactor often.</p></li><li><p>Team is small and benefits from shared context and in process changes.</p></li><li><p>Strong consistency and low latency matter more than independent scaling.</p></li><li><p>You can enforce modular boundaries, internal APIs, and feature flags inside one repo.</p></li><li><p>Clean data ownership is not yet possible across teams.</p></li><li><p>Platform capacity for contracts, tracing, and SRE is limited right now.</p></li></ul><p>Red flag: if one module is the clear hotspot or release coordination is the main blocker, start planning an extraction seam.</p><h3>Microservices are a better fit when</h3><ul><li><p>Domains are stable and ownership is clear per team.</p></li><li><p>You need independent deploys and scaling for different slices, for example batch vs real time.</p></li><li><p>Workload shapes differ and one area is a proven hotspot for CPU, memory, IOPS, or special hardware like GPUs.</p></li><li><p>You can staff platform basics such as identity, secrets, templates, contracts, tracing, and SLOs.</p></li><li><p>Data can be owned per service without cross writes to the same tables.</p></li><li><p>Cost needs to be tuned per slice, and egress and capacity can be managed per service.</p></li></ul><p>Red flag: if traffic is uniform, transactions are tightly coupled, or boundaries are fuzzy, a modular monolith is simpler and cheaper for now.</p><h2>Migration readiness process</h2><ul><li><p>Map seams and ownership: produce a one page context map with dataset owners and contracts. If ownership is unclear, stay monolith and modularize.</p></li><li><p>Measure delivery pain: track change failure rate, lead time, deploy frequency, MTTR for 4 to 6 weeks. If the main bottleneck is cross team coordination or blast radius, consider extracting a seam.</p></li><li><p>Prove a hotspot: show one area driving a disproportionate share of CPU, memory, IOPS, GPU, or incident minutes. If yes, isolate it.</p></li><li><p>Validate data boundaries: confirm the candidate service can own its writes without cross table edits. If not, keep it in the monolith while you refactor ownership.</p></li><li><p>Test state partitioning: demonstrate sharding or queue based isolation in a sandbox. If you cannot partition state, microservices will add cost without benefit.</p></li><li><p>Check platform readiness: confirm paved paths exist for identity, secrets, logging, tracing, contract tests, SLOs, and release strategies. If missing, invest first.</p></li><li><p>Build a cost model: compare 12 to 36 month TCO for both options including egress, support tiers, and staffing. Choose the cheaper model for the same SLOs.</p></li><li><p>Run a time boxed spike: implement one extraction with blue green or canary, backward compatible contracts, and a strangler pattern. Measure the payoff before scaling out.</p></li><li><p>Set exit criteria: define in advance what success looks like, for example 30% latency drop or 50% less coordination for releases and stop if you do not hit it.</p></li></ul><h2>Stage and stake for monolith vs. microservices</h2><p>Maturity is not &#8220;microservices by default.&#8221; It is about conscious, evidence-based choices. Choose the simplest architecture that meets today&#8217;s constraints and can evolve tomorrow. Revisit the choice with data, not fashion.</p><p>What good looks like at any stage:</p><ul><li><p>You can explain why each boundary exists, who owns it, and how it changes.</p></li><li><p>Delivery, reliability, and cost are measured and guide decisions.</p></li><li><p>Rollout, rollback, and restore are practiced.</p></li><li><p>Contracts are versioned and backward compatible during change.</p></li></ul><p>How to communicate maturity to investors:</p><ul><li><p>&#8220;Here is our current shape and why.&#8221;</p></li><li><p>&#8220;Here are the seams we are watching and what would trigger change.&#8221;</p></li><li><p>&#8220;Here is the evidence that the last change paid off.&#8221;</p></li><li><p>&#8220;Here is our rollback and restore plan if it does not.&#8221;</p></li></ul><h2>Glossary</h2><ul><li><p>Bounded context: The smallest coherent domain where a model and language stay consistent.</p></li><li><p>Change Data Capture: a method that reads a database&#8217;s commit log to stream row level inserts, updates, and deletes so other systems stay in sync in near real time.</p></li><li><p>Contract: The explicit interface and schema a consumer relies on.</p></li><li><p>Strangler pattern: Incrementally replacing a legacy capability by routing traffic to a new component at the seam.</p></li><li><p>Bulkhead: A limit or partition that keeps one failure from cascading.</p></li><li><p>Error budget: The agreed allowance of unreliability that guides release risk.</p></li></ul><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://eitanschuler.substack.com/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://eitanschuler.substack.com/subscribe?"><span>Subscribe now</span></a></p><h2>Your turn</h2><p>Where did your architecture hurt the most under peak or during releases? What change made the biggest difference?</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://eitanschuler.substack.com/p/platform-architecture-assessment?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://eitanschuler.substack.com/p/platform-architecture-assessment?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Share</span></a></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://eitanschuler.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading The Tech Due Diligence Playbook! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[Cloud Strategy & Deployment Models]]></title><description><![CDATA[Edition 14]]></description><link>https://eitanschuler.substack.com/p/cloud-strategy-and-deployment-models</link><guid isPermaLink="false">https://eitanschuler.substack.com/p/cloud-strategy-and-deployment-models</guid><dc:creator><![CDATA[Eitan Schuler]]></dc:creator><pubDate>Sun, 21 Sep 2025 06:24:18 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/7f64e697-ffcb-4ecf-b262-c5431ceea1d1_1536x1024.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Originally published on <a href="https://www.linkedin.com/pulse/cloud-strategy-deployment-models-eitan-schuler-611qe/">LinkedIn</a> on September 17, 2025</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://eitanschuler.substack.com/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://eitanschuler.substack.com/subscribe?"><span>Subscribe now</span></a></p><p>At renewal a flagship customer asked three things: keep EU data in region, run inference predictably at peak, and pass their vendor audit without a six-month exception plan. Our answer used to be public cloud only. Procurement read this as not under our control. Then we had to split workloads: core in public cloud, regulated analytics in a private tenancy, and an on-prem edge for latency and data gravity. Same product, different deployment environments. Sales cycles shortened because the architecture matched the customer, not our preference.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://eitanschuler.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading The Tech Due Diligence Playbook! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p>In this article I will mention &#8220;planes&#8221;. A plane is a separate deployment environment you operate and secure independently, for example a public cloud account, a private single-tenant VPC, or an on-prem or edge site.</p><h2>Why this matters</h2><p>Investors want predictable unit economics and the ability to win regulated deals. They ask: where do workloads run and why? Can you prove residency, key custody, and audit posture per plane? What is real TCO including egress, GPUs, support, and people? How do you fail over or rebuild if a region or provider is unavailable?</p><h2>Investor expectations: Dos and Don&#8217;ts</h2><h3>Workload placement and rationale</h3><p><strong>Do:</strong> Keep a workload map showing each service, constraints, placement, SLOs, and owner, plus the reason (latency, sovereignty, predictability, GPU). <strong>Don&#8217;t </strong>run public-only or on-prem-only by dogma with no written rationale.</p><h3>Residency, keys, and audit posture</h3><p><strong>Do:</strong> For each plane show where data and keys live, how keys are pinned in region (BYOK/CMK or HSM/KMS), and the artifacts that back it up (rotation logs, DPAs/SCCs, SOC 2/ISO, shared-responsibility matrix). Prove failover keeps data and keys in jurisdiction. <strong>Don&#8217;t </strong>let KMS or observability cross borders during failover or wave at provider badges without mapping them to your controls.</p><h3>Cost, capacity, and predictability</h3><p><strong>Do:</strong> Maintain a TCO model per plane including egress, storage growth, GPU reservations, support tiers, compliance and staffing; call out workload predictability and show budget, showback, alerts. <strong>Don&#8217;t </strong>hide egress behind averages, rely on uncontrolled spot for production, treat list price as forecast, or assume public cloud is always cheaper.</p><h3>Security and access</h3><p><strong>Do:</strong> Use one identity baseline across planes: SSO, least-privilege roles, short-lived credentials, secrets management, and the same logging and patching. <strong>Don&#8217;t </strong>create security snowflakes where private or on-prem is weaker.</p><h3>Continuity across planes</h3><p><strong>Do:</strong> Time restores in a clean room per plane, rehearse failover where applicable, keep DNS TTL short on failover records, and run drift detection. <strong>Don&#8217;t </strong>present multi-cloud slides without drills or discover configuration drift at promotion.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://eitanschuler.substack.com/p/cloud-strategy-and-deployment-models?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://eitanschuler.substack.com/p/cloud-strategy-and-deployment-models?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Share</span></a></p><p></p><h2>Implementation guide</h2><p>Start in layers. Seed and early A teams usually need the first 3. Add the rest as you grow and as customers or regulators demand it. Remember: while public cloud or private tenancy costs are based on a price-lists or negotiated deals, calculating on-prem TCO is much more complex. It includes floor space and structural load approvals, power and cooling capacity, fire suppression, physical security and access logs, network redundancy and cross-connects, hardware lifecycle and spares with vendor maintenance SLAs, plus site audits, permits, and insurance.</p><ol><li><p><strong>Write a placement policy:</strong> Simple rules, written down. Regulated PII stays in region under your key custody. Workloads that need guaranteed GPU capacity go to a reserved pool. Batch analytics can move to lower-cost infrastructure if SLOs allow.</p></li><li><p><strong>Model workload predictability:</strong> Keep base load on predictable capacity, burst to public cloud for spikes. If a 3 to 5 year TCO shows steady, high-utilization jobs are cheaper on private tenancy or on-prem and you can operate it, place them there.</p></li><li><p><strong>Watch egress costs like a hawk.</strong> Data transfer often dominates TCO. Minimize cross-region and cross-provider traffic, keep analytics close to data, use peering or private links for chatty paths, and make egress a standing line in every cost review.</p></li><li><p><strong>Data and keys plan with audit pack:</strong> Classify datasets and their placement. Define encryption and custody with region-pinned KMS or HSM and BYOK/CMK where required. Set rotation policy and keep evidence. Maintain a one-pager per environment with datasets, custody, access roles, rotation cadence and last rotation, and the audit artifacts that apply. Include a short log or screenshot showing region pinning and how failover keeps data and keys in jurisdiction.</p></li><li><p><strong>Connectivity by design:</strong> Use private links or peering for noisy paths, zero-trust access for staff, clear egress boundaries, and a single service catalog so teams do not invent ad hoc tunnels.</p></li><li><p><strong>Unify observability and FinOps:</strong> Put operations and cost in one place. Use a single dashboard that shows health and spend side by side. Tag every metric, log, trace, and cloud bill with the same tags for service and environment, plus team and region. Give each team a budget, set up cost anomaly alerts, and use reserved or committed capacity when it saves money. Define simple cost units per API call or job so Product can make trade-offs. Review cost and SLOs together each month.</p></li><li><p><strong>Capacity strategy:</strong> Choose reservations, committed use, or on-demand per workload, provide queues and fair-share scheduling to avoid starvation. Keep a fallback SKU and a tested burst plan.</p></li></ol><h2>Stage and stake</h2><p><strong>Seed and early A:</strong> Public cloud by default is fine; show a simple placement policy, a basic landing zone, cost guardrails, and a plan for regulated asks.</p><p><strong>Series B and growth:</strong> Hybrid readiness for enterprise, private tenancy or VPC peering for regulated customers, a real GPU plan if relevant, a data and key custody note, and continuity tests in the secondary plane.</p><p><strong>Control buyouts:</strong> Buyers sample the workload map against reality, check residency and key custody artifacts, run a restore test, and review cost predictability under growth, pricing egress exposure and capex or opex to close gaps.</p><h2>Glossary</h2><ul><li><p><strong>Plane:</strong> a separate deployment environment you operate and secure independently.</p></li><li><p><strong>TCO:</strong> total cost of ownership including cloud, licenses, egress, support, and staffing.</p></li><li><p><strong>Data gravity:</strong> data size and movement make some placements costly or slow.</p></li><li><p><strong>Edge / On-prem edge:</strong> Compute and storage deployed close to where data is produced or used to cut latency, reduce data transfer, meet residency rules, or run during cloud/network outages.</p></li><li><p><strong>Egress: </strong>paid data transfer out of a provider or region.</p></li><li><p><strong>BYOK and CMK:</strong> customer-controlled keys for encryption at rest.</p></li><li><p><strong>Private tenancy:</strong> isolated resources for a single customer inside a provider.</p></li><li><p><strong>Landing zone:</strong> standardized account or project setup with guardrails.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://eitanschuler.substack.com/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://eitanschuler.substack.com/subscribe?"><span>Subscribe now</span></a></p></li></ul><h2>Your turn</h2><p>Which constraint has driven your placement choices: residency, GPUs, latency, or cost predictability. Share the scar and the fix that worked.</p><div><hr></div><p><strong>Next in the Playbook:</strong> Edition 15 will be published after a short break in the second half of October after my vacation. Will dive into platform architecture assessment.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://eitanschuler.substack.com/p/cloud-strategy-and-deployment-models?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://eitanschuler.substack.com/p/cloud-strategy-and-deployment-models?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Share</span></a></p><p></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://eitanschuler.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading The Tech Due Diligence Playbook! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[Business Continuity & Resilience Stress-Test]]></title><description><![CDATA[Edition 13]]></description><link>https://eitanschuler.substack.com/p/business-continuity-and-resilience</link><guid isPermaLink="false">https://eitanschuler.substack.com/p/business-continuity-and-resilience</guid><dc:creator><![CDATA[Eitan Schuler]]></dc:creator><pubDate>Mon, 15 Sep 2025 09:28:30 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/c8d91f22-8134-4e16-bca5-161df0757fc8_1536x1024.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>A familiar story... at 3 am, our primary cloud region had issues and our payment provider began rate-limiting our traffic. We reached for the playbook: fail over to the standby environment, restore any missing data from backups, and inform customers. On paper this was covered. In reality the standby was not in sync, replication lagged, the restore ran longer than expected, and two people on the escalation tree had already left the company. We restored service within the hour, but cleaning up data and trust took much longer. The planned investment deal still happened, at a lower price.</p><p>Business continuity is not a binder on a shelf. It is the ability to keep operating under stress and to prove that ability with recent, simple evidence.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://eitanschuler.substack.com/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://eitanschuler.substack.com/subscribe?"><span>Subscribe now</span></a></p><h2>Why this matters</h2><p>Investors do not buy your best-case demo. They buy your worst-day recovery curve. They ask 4 blunt questions:</p><ol><li><p>How fast can you restore critical services when a tier-1 dependency fails?</p></li><li><p>How much data could you lose, measured in seconds or minutes?</p></li><li><p>What do customers experience while you fix things, and can you run in a safe reduced mode instead of going completely dark?</p></li><li><p>Have you tested this recently, with timed restores, rehearsed failovers, and communications you actually used?</p></li></ol><p>Get continuity right and incidents become small, well managed events. Get it wrong and you will see churn, SLA credits, audit findings, and a valuation discount for operational fragility.</p><h2>Investor expectations: Dos and Don&#8217;ts</h2><p><strong>Recovery Time and Recovery Point Objectives (RTO and RPO)</strong></p><p><strong>Do:</strong> Define RTO and RPO per business service, not company-wide. Show recent test results that met those targets, for example a clean-room restore last week within X minutes, with immutable copies and point-in-time recovery tested for the last 30 days. <strong>Don&#8217;t:</strong> Say &#8220;we have backups&#8221; without restore evidence in the last quarter.</p><p><strong>Regional resilience</strong></p><p><strong>Do:</strong> Document and rehearse your posture. Warm-standby or active-active, with DNS, secrets, and configuration promotion practiced without a hero present. <strong>Don&#8217;t:</strong> Call read replicas &#8220;multi-region&#8221; if promotion is manual and unpracticed. Add one-liners on common pitfalls like long DNS TTLs and config drift.</p><p><strong>Graceful degradation</strong></p><p><strong>Do:</strong> Use load shedding and safe mode behaviors with customer messaging you have actually used. Queue and reconcile writes with idempotent reconciliation. Disable non-critical features. Serve cached content or switch to read-only with a banner. <strong>Don&#8217;t:</strong> Operate with no degradation plan where the only switch is off.</p><p><strong>Incident management</strong></p><p><strong>Do:</strong> Run a clear Incident Commander model with named roles, an up-to-date escalation tree, and pre-approved communications templates. Status page and partner updates are on the clock. Add a communications SLO like time-to-first-update within 15 to 30 minutes for Severity-1. <strong>Don&#8217;t:</strong> Invent incident communications on the day or let status updates lag reality.</p><p><strong>Vendor and identity dependencies</strong></p><p><strong>Do:</strong> Maintain a critical vendor register that includes BC and DR posture, regions, sub-processors, and your fallback plans. Include identity and on-call tooling in that register, for example your IdP and paging provider, and drill the case where the IdP is down. Keep data residency in view during failover. Keys and copies stay in jurisdiction. <strong>Don&#8217;t:</strong> Leave vendor and identity dependencies undocumented or lack a plan if an upstream API throttles.</p><h2>Implementation guide</h2><p><strong>Service level continuity maps:</strong> List the top business services like checkout, authentication, billing, ingest, and model inference. For each, tie RTO and RPO to owners, dependencies, and runbooks. Keep a single diagram that shows regional layout, replication mode, and kill switches.</p><p><strong>Backup discipline:</strong> Use immutable, versioned backups with a clear retention policy. Test restores on a schedule in a clean-room environment. Track mean time to full restore as a metric and scan restored images before cutover to avoid reinfection after a ransomware event.</p><p><strong>Regional design:</strong> Pick a posture you can operate.</p><ul><li><p>Warm-standby: asynchronous replication, pre-provisioned infrastructure, promote on fail.</p></li></ul><ul><li><p>Active-active: synchronous or conflict-tolerant writes or per-region shards, with global routing.</p></li></ul><p>Other viable postures include pilot light, cold backup and restore, cell-based isolation, and edge fallback. Choose per service. Automate DNS and traffic switches, secrets, and configuration. Practice partial failovers by service before full failovers by region. Keep RTO and RPO aligned with what your customers pay for.</p><p><strong>Runbooks, not folklore:</strong> For each failure class like region loss, vendor outage, database corruption, or ransomware, keep step by step runbooks with commands, owners, rollbacks, and communications. Store docs as code with freshness dates.</p><p><strong>Incident command that scales: </strong>Use a minimal ICS: Incident Commander, Ops Lead, Comms Lead, and Scribe. Pre-assign rotations. Use a standard bridge or channel header with incident ID, severity, goals, and next update time. Convert findings to tickets and close loops.</p><p><strong>Controlled chaos:</strong> Run tabletops monthly, game days quarterly, and targeted chaos with blast radius controls. Classic inspiration is <a href="https://netflixtechblog.com/the-netflix-simian-army-16e57fbab116">Netflix&#8217;s Simian Army</a> including the famous Chaos Monkey, which killed instances in production to validate resilience. Most teams do safer, scoped drills that simulate loss of a node, zone, or dependency. Publish the learning and the concrete changes you shipped.</p><p><strong>Vendor continuity is your continuity:</strong> Keep a vendor register with SLA, RTO, RPO, regions, status pages, and fallbacks. Define brownout behavior. For example, many checkouts call an external fraud or risk engine. If risk scoring is down, allow low risk transactions with flagging. Test identity and paging tools as part of the drill.</p><h2>Stage and stake</h2><p><strong>Seed and early A:</strong> one region is acceptable if you can prove backup to restore within a realistic RTO and you have basic safe modes. One tabletop per quarter and one clean-room restore per month beat an unused multi-region diagram.</p><p><strong>Series B and growth:</strong> define RTO and RPO per service. Use warm-standby or active-active for tier-1 paths. Run quarterly regional failover drills. Keep immutable backups and exercised incident communications with time-to-first-update SLOs.</p><p><strong>Control buyouts:</strong> buyers will ask for artifacts: the last two restore runbooks with timestamps, the last regional failover game day, partner notification logs, and evidence that residency and key management hold under failover with no cross-border KMS hops. They price downtime, SLA exposure, and remediation capex, and they discount uncertainty.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://eitanschuler.substack.com/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://eitanschuler.substack.com/subscribe?"><span>Subscribe now</span></a></p><h2>Glossary</h2><ul><li><p>RTO and RPO: Recovery Time and Recovery Point Objectives.</p></li><li><p>Immutable or WORM backups: Write once, tamper resistant copies.</p></li><li><p>Clean-room restore: Recovery into an isolated account or project that proves backups stand alone.</p></li><li><p>Load shedding: Controlled degradation that drops lower-value work to keep critical services healthy.</p></li><li><p>Incident Command System (ICS): Lightweight roles and rituals for leading incidents at speed.</p></li><li><p>Tabletop / Game day / Chaos: Discussion exercise, hands-on drill, and fault injection in a controlled blast radius.</p></li></ul><h2>Your turn</h2><p>What broke first in your last real test? The tech, the runbook, or the communications? Share the scar. It helps the next team.</p><p><strong>Next in the Playbook:</strong> Edition 14 - Cloud Strategy &amp; Deployment Models. Public cloud, private cloud or on-prem? What makes sense when?</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://eitanschuler.substack.com/p/business-continuity-and-resilience?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://eitanschuler.substack.com/p/business-continuity-and-resilience?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Share</span></a></p>]]></content:encoded></item><item><title><![CDATA[API Strategy & Integration Readiness]]></title><description><![CDATA[Edition 12]]></description><link>https://eitanschuler.substack.com/p/api-strategy-and-integration-readiness</link><guid isPermaLink="false">https://eitanschuler.substack.com/p/api-strategy-and-integration-readiness</guid><dc:creator><![CDATA[Eitan Schuler]]></dc:creator><pubDate>Mon, 08 Sep 2025 06:32:25 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/e0a461a9-5243-4094-8bd3-cd1852604efb_1536x1024.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Originally published on <a href="https://www.linkedin.com/pulse/api-strategy-integration-readiness-eitan-schuler-is0oe">LinkedI</a>n on September 3, 2025</p><p>An old story. At 10:00 our partner went live consuming our API. The day after their calls were failing. Not because their code changed, but because ours had. We renamed an enum, turned a 200 into a 204, and &#8220;temporarily&#8221; disabled idempotency in a tidy-up branch. The spec still said v1.6; production was v1.6-and-a-half. Worse, our outbound webhooks to their system had no replay, so paid orders never reached them. What a mess. We patched it in a day, but it took weeks to recover trust.</p><p>APIs are no longer plumbing. They are distribution, revenue, and reputation. &#8220;Integration readiness&#8221; is the difference between shipping a contract and losing customers to fragile integration points.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://eitanschuler.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading The Tech Due Diligence Playbook! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p>This is a deeply technical episode. If you are a software engineer, CTO, a founder or a tech-savvy investor, this episode is for you.</p><p>Do investors really care about something this technical? <strong>Yes. </strong>API strategy sits at the core of a SaaS business. It determines how fast customers integrate, how resilient partnerships are, and how predictable revenue becomes. Can investors go this deep in diligence? Often, yes. When they don&#8217;t have that capability in-house, they hire a technical due-diligence specialist (like me). The specialist examines contracts and versioning, security and auth, webhook hygiene, and operability, then translates those findings into commercial risk.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://eitanschuler.substack.com/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://eitanschuler.substack.com/subscribe?"><span>Subscribe now</span></a></p><h2>Why this matters</h2><p>Investors don&#8217;t just buy features; they buy <strong>predictable integrations</strong> with customers, partners, and your own ecosystem. In practice that means:</p><ul><li><p><strong>Stable contracts</strong> that evolve without breaking consumers.</p></li><li><p><strong>Clear ownership</strong> and a lifecycle for versioning, deprecation, and support.</p></li><li><p><strong>Operational discipline:</strong> idempotency, retries, pagination, and back-pressure that keep systems healthy under load.</p></li><li><p><strong>Security and data hygiene:</strong> scoped auth, least privilege principle, and explicit handling of PII across boundaries.</p></li><li><p><strong>Proof, not promises</strong> in form of specs, changelogs, dashboards, and test harnesses that anyone can verify.</p></li></ul><p>Get APIs right and sales cycles shorten, and partnerships scale. Get them wrong and every new integration adds extra fragility.</p><h2>What investors look for (beyond API endpoints)</h2><p>Treat the API as a product, not plumbing. Each API domain has a single accountable owner, a roadmap, and a public contract (OpenAPI or JSON Schema) that <strong>matches what runs in production</strong>. Breaking changes are deliberate and rare, not incidental. That product mindset is backed by lifecycle discipline: a written versioning policy, a deprecation playbook with timelines, and a changelog with clear migration notes. Consumers hear about changes through a channel you control, not because they discover them on a status page after the fact.</p><p>Quality starts at the contract. Specs are complete and unambiguous: types and enums are defined, error models are consistent, rate limits and pagination style are documented, and event/webhook semantics are explicit. Backward compatibility is the default. Make additive changes first, and remove only with a well-advertised deprecation window. Safety is built in: writes are idempotent, clients retry with jitter, servers enforce timeouts and circuit breakers, and SLAs/SLOs set expectations. Where you emit events, webhooks are signed, retried with exponential backoff, and easy to replay when receivers need to catch up.</p><p>Authentication reflects real risk. Use OAuth 2.0 / OIDC where appropriate, issue short-lived tokens with fine-grained scopes, and carry tenant isolation in token claims so enforcement is simple and auditable. Keys are revocable without downtime and never hard-coded. Operability is per consumer: dashboards can answer &#8220;What did Partner X call? What failed? Who is saturating limits?&#8221; while tracking p95/p99 latency, error rates, saturation, and webhook success for each partner.</p><p>Finally, integrations run as a program, not ad-hoc hand-holding. Provide a sandbox with seed data, a certification checklist, a test harness, and minimal SDKs and examples (surfaced through a partner portal with docs and keys) so your best engineers are not the permanent support desk. And be honest about upstream dependencies: for third-party APIs you rely on, implement health checks, fallbacks, and back-pressure, define how you degrade gracefully, and make those dependencies explicit in your contracts.</p><h2>Stage and stake - how the lens sharpens</h2><ul><li><p><strong>Seed / early A:</strong> A single API surface with a clean spec, consistent error model, idempotency on writes, and a basic sandbox is enough. You should still have a written versioning stance, even if it only says &#8220;we prefer additive change, no breaking changes this year&#8221;.</p></li><li><p><strong>Series B / Growth:</strong> Expect a real lifecycle: version policy, deprecation windows, changelog, partner notifications, and a certification checklist. Observability must break down by consumer, and the integration team should operate a repeatable process, not heroics.</p></li><li><p><strong>Control buy-outs:</strong> Buyers sample specs vs. reality, run the sandbox, and review partner escalations. They expect per-domain ownership, partner SLAs, webhook hygiene, and resilience to upstream API failures. Integration revenue and support cost are modeled, not guessed.</p></li></ul><h2>Patterns that work (and why)</h2><p><strong>Specs as the source of truth:</strong> Publish OpenAPI/JSON Schema and treat it like code. Lint it in CI, generate examples and SDKs, and fail pipelines that drift from the spec. Consumers integrate against a contract that won&#8217;t surprise them.</p><p><strong>Versioning that respects consumers:</strong> Default to backward-compatible, additive changes. When you must break, prefer new fields over new meanings, ship vNext alongside vCurrent, and document migrations with dates. Use deprecation headers and a public schedule, not just a blog post.</p><p><strong>Idempotency everywhere writes happen</strong>: Accept an Idempotency-Key on POST/PUT/PATCH for operations that create or change resources. On retries you return the original result. This keeps integrity under client retries, timeouts, and network flakiness.</p><p><strong>Cursor-based pagination and consistent error shapes:</strong> Use cursors over page numbers for reliability at scale. Standardize error envelopes with machine-readable codes, correlation IDs, and actionable messages. Your support team and partners will thank you.</p><p><strong>Events over polling, with webhook hygiene:</strong> Prefer webhooks for changes, signed with a rotating secret, delivered with exponential backoff and a dead-letter policy. Provide a replay endpoint. Document exactly when events fire and how you guarantee order or de-duplication.</p><p><strong>Auth that limits blast radius:</strong> Scopes map to business capabilities, tokens are short-lived, and least-privilege is the default. Tenant IDs sit in claims so enforcement is simple and auditable. Key rotation is tested, not theoretical.</p><p><strong>Observability by consumer:</strong> Every request carries a consumer ID. Dashboards show latency, error rates, quotas, and webhook success per partner. Ideally, alerting routes to an integration on-call with runbooks that include partner contacts and rollback steps.</p><p><strong>A real sandbox and test harness:</strong> Provide stable test accounts, seeded data, and a deterministic way to trigger failure modes. Ship Postman collections or a CLI, plus minimal SDKs that mirror your spec. Add a certification checklist and a stamp when partners pass.</p><p><strong>Resilience to upstream APIs:</strong> Wrap outbound calls with timeouts, retries, circuit breakers, and back-pressure. Document partial-degradation behavior: what the user sees if payments or risk scoring is down. Your API should fail gracefully.</p><p><strong>Change management as muscle memory:</strong> Changes ship behind flags and can be rolled back quickly. Every release updates the spec, the changelog, and (if relevant) deprecation notices. Consumers get heads-up via a channel you control.</p><h2>Red flags that lengthen negotiations</h2><ul><li><p>Specs exist but do not match runtime responses, or there is no single source of truth.</p></li><li><p>Breaking changes land without notice, enums repurposed, fields removed, error shapes altered.</p></li><li><p>No idempotency on writes, ambiguous pagination, or webhook retries without signing.</p></li><li><p>OAuth scopes are &#8220;admin or nothing,&#8221; long-lived tokens, or secrets checked into repos.</p></li><li><p>No sandbox with seed data. Integration relies on production toggles and engineer hand-holding.</p></li><li><p>No visibility by consumer. You cannot say what Partner X called during an incident.</p></li><li><p>Tight coupling to a single upstream API with no fallbacks or partial-degradation plan.</p></li></ul><p>One or two of these can be fixed pre-close. Three or more usually trigger price protection, escrowed deliverables, or a pause.</p><h2>Habits worth adopting before the next round</h2><ul><li><p><strong>Adopt an API style guide</strong> and lint it in CI so every team ships consistent paths, verbs, errors, and pagination.</p></li><li><p><strong>Make OpenAPI the contract of record.</strong> Generate docs and SDKs from it, not the other way around.</p></li><li><p><strong>Set up a partner portal</strong> with keys, sandbox access, docs, changelog, and a webhook replay tool.</p></li><li><p><strong>Run consumer-driven contract tests</strong> so changes that break a key partner are caught before deploy.</p></li><li><p><strong>Track integration health as a KPI:</strong> time-to-first-call, certification pass rate, partner-caused and provider-caused incident minutes.</p></li><li><p><strong>Practice deprecation</strong> with a small, safe removal so the muscle exists before a big one.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://eitanschuler.substack.com/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://eitanschuler.substack.com/subscribe?"><span>Subscribe now</span></a></p></li></ul><h2>Mini-Glossary</h2><ul><li><p><strong>OpenAPI:</strong> A machine-readable API contract format used to drive docs, SDKs, and tests.</p></li><li><p><strong>Idempotency:</strong> A property of write operations where retries return the same result instead of duplicating work.</p></li><li><p><strong>Backward compatibility:</strong> Changes that do not break existing consumers, typically additive.</p></li><li><p><strong>Back pressure</strong>: controlled slowdown that keeps integrations healthy. Explicit signals, safe retries, and graceful degradation instead of outages.</p></li><li><p><strong>Consumer-driven contract testing:</strong> Tests authored from the client&#8217;s expectations that providers must satisfy before deploy.</p></li><li><p><strong>Jitter: </strong>randomizes backoff intervals so clients retry out of sync, reducing load spikes and speeding recovery.</p></li><li><p><strong>Webhook signing:</strong> Attaching a verifiable signature to events so receivers can trust origin and integrity.</p></li><li><p><strong>SLA / SLO (for APIs):</strong> The commercial promise and the internal objective for availability, latency, or error budgets.</p></li><li><p><strong>Circuit breaker:</strong> A pattern that stops calling a failing dependency to allow recovery and protect your system.</p></li><li><p><strong>Cursor pagination:</strong> Pagination based on opaque cursors for stable iteration under change.</p></li><li><p><strong>OAuth 2.0 / OIDC:</strong> Standards for delegated authorization and identity that enable scoped, short-lived access.</p></li></ul><h2>Your turn</h2><p>Which integration risk has bitten you? A stealth breaking change, webhook chaos, or an upstream outage without a safety net? Share the scar, it helps the next team.</p><p><strong>Next in the Playbook</strong>: Edition 13 will be about Business-Continuity &amp; Resilience Stress-Test. We&#8217;ll turn resilience from policy into proof. Tabletop-to-chaos drills that validate RTO/RPO, failover and backup restores, upstream/API loss, regional outages, and key-people unavailability, producing artifacts investors can verify in an hour. Stay tuned!</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://eitanschuler.substack.com/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://eitanschuler.substack.com/subscribe?"><span>Subscribe now</span></a></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://eitanschuler.substack.com/p/api-strategy-and-integration-readiness?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://eitanschuler.substack.com/p/api-strategy-and-integration-readiness?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Share</span></a></p><p></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://eitanschuler.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading The Tech Due Diligence Playbook! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[The People Lens]]></title><description><![CDATA[Edition 11]]></description><link>https://eitanschuler.substack.com/p/the-people-lens</link><guid isPermaLink="false">https://eitanschuler.substack.com/p/the-people-lens</guid><dc:creator><![CDATA[Eitan Schuler]]></dc:creator><pubDate>Mon, 01 Sep 2025 07:08:24 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/741c18ab-7465-43ab-b55c-028ae43924ae_1536x1024.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://eitanschuler.substack.com/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://eitanschuler.substack.com/subscribe?"><span>Subscribe now</span></a></p><p>Three weeks before close, a buyer asked a simple question: &#8220;If your principal engineer is out for a month, what slows down?&#8221; The CTO shrugged and said: &#8220;only he knows the data plane and the deployment system end-to-end.&#8221; Two days later, the investor requested a different model: not burn-down charts, rather bench depth. The code looked fine, the organization did not. The deal still closed, but with a holdback tied to succession, on-call health, and predictable delivery.</p><p>People risk is not soft. It shows up as missed roadmaps, fragile releases, and incident drag. This edition is about how diligence converts org charts and practices into execution forecasts.</p><h2>Why this matters</h2><p>Technology is a snapshot, but teams are the future. Investors don&#8217;t buy the last release, but rather the next 8 quarters of predictable shipping under stress. The fastest way to de-risk that future is to look through the following angles and answer related questions:</p><ul><li><p><strong>Leadership &amp; succession:</strong> Can the company survive vacations, attrition, or a sudden scale-up without changing its risk profile?</p></li><li><p><strong>Org design &amp; interfaces:</strong> Does the structure mirror the architecture and product boundaries with clear ownership and healthy surfaces to Product, Security, and QA? Where the company develops multiple products, the system should be shaped so each team truly owns a small, coherent slice, shipping without constant cross-team handoffs.</p></li><li><p><strong>Execution health:</strong> Are delivery metrics reliable and used for improvement, not theater?</p></li><li><p><strong>Culture behind the numbers:</strong> Do incidents create learning or blame? Are people burning out? Is knowledge durable and well organized?</p></li></ul><p>Get these right and velocity compounds. Get them wrong and the cleanest codebase develops a limp.</p><h2>What investors look for &#8212; beyond resumes</h2><p><strong>Leadership that operates, not just presents: </strong>Weekly decisions documented, architectural guardrails enforced, leaders who can explain trade-offs without deflecting. A named #2 for each critical area is nominated and explicit succession maps exist. If the CTO is still the de facto SRE lead, the risk goes up.</p><p><strong>Org topology that mirrors the system and products: </strong>Service owners exist for every revenue-critical domain, with a platform team providing &#8220;paved roads&#8221; (CI/CD, observability, golden paths). Healthy IC/manager ratios and spans of control (managers with 5&#8211;8 directs is typical, 12+ hints at neglect, 3 or fewer signals micromanagement). If the company works with outcome-aligned product teams, boundaries should match that reality: &#8220;team = API boundary&#8221; where sensible, 1&#8211;3 services per team, and SLOs the team owns.</p><p><strong>Execution that is measured and humane: </strong>Cycle time, deployment frequency, change failure rate, and MTTR matter, but only if coupled with on-call load and post-incident learning. A team shipping daily but paging people at 2 a.m. three nights a week is trading today&#8217;s velocity for tomorrow&#8217;s attrition. Investors might sample a quarter&#8217;s worth of incident reviews and look for the words &#8220;we missed,&#8221; &#8220;we changed,&#8221; not &#8220;root cause: human error.&#8221;</p><p><strong>Talent engine, not heroics: </strong>A written Skill Level Reference Framework (SLRF), structured hiring loops, time-to-fill and time-to-productivity metrics in range, and an intentional contractor/agency mix. Upskilling ahead of the curve in areas like AI guardrails and core security shows the organization learns faster than the threat landscape evolves.</p><h2>Outcome-first teams</h2><p><strong>Outcome teams as the default, not a dogma.</strong> There isn&#8217;t a single &#8220;correct&#8221; org model, and early on a one-team mission can be the smartest move. That said, the pattern we most often see succeed at scale in software startups is empowered, outcome-aligned product teams: a PM&#8211;Design&#8211;Tech triad that owns a customer outcome and the small system slice needed to ship independently. Treat that as the default starting point in growth phases, then deviate deliberately when the context demands it.</p><p><strong>Outcome first.</strong> Make the above-mentioned <strong>product team</strong> your atomic unit: a cross-functional squad that owns a customer outcome end-to-end and is accountable for impact, not a feature backlog.</p><p><strong>System follows.</strong> Shape the architecture so that outcome is actually ownable: clear service/API boundaries, explicit data contracts, and runbooks so the team can ship independently. Aim for a small, coherent slice (often 1&#8211;3 services) with SLOs the team truly owns.</p><p><strong>Platform as leverage.</strong> Keep a small platform group to build paved roads: CI/CD, observability and an Internal Developer Platform. Their job is to remove friction and cognitive load so product teams self-serve 90% of the time and approvals remain the exception.</p><p><strong>Guilds for influence. </strong>Use lightweight chapters/guilds (design, data, security) to set standards and coach across teams, so autonomy doesn&#8217;t decay into inconsistency.</p><p><strong>The diligence question. </strong>Choose one customer journey and ask: How many teams must say &#8220;yes&#8221; for a small change to ship? If the answer is regularly more than two, you have an org/architecture mismatch. Fix it by moving ownership to the outcome team or reshaping boundaries until the system fits the team.</p><h2>Stage and stake: how the lens sharpens</h2><ul><li><p><strong>Seed/early A.</strong> Investors accept potential key-person risk if the team shows clarity: explicit owners, a realistic hiring roadmap, basic on-call rotation, and evidence of learning.</p></li><li><p><strong>Series B/Growth.</strong> Expect real bench depth in platform and product, target IC/manager ratios, measurable delivery and incident health, and a working hiring machine that can add teams without collapsing the culture.</p></li><li><p><strong>Control buy-outs.</strong> Buyers probe succession and knowledge transfer hard, might sample on-call calendars, review a quarter of incidents, and test whether the org can absorb a 2&#215; customer load without a 3&#215; increase in headcount.</p></li></ul><h2>Some patterns that work (and why)</h2><p><strong>Owner&#8211;operator maps with succession: </strong>a list of the top 8-12 domains (payments, auth, data platform, release train, AI pipeline, etc.). For each: owner, deputy, and &#8220;two things that break if both are out&#8221;. Make the deputy a real shadow participating in rotation for design reviews and incident calls. This collapses key-person risk before it is priced into the deal.</p><p><strong>Team topology mirrors architecture: </strong>small, cross-functional product teams own customer-facing domains and a platform group owns the paved roads (CI/CD, observability, developer portal, etc.). Security champions are embedded in teams. Clear service ownership means dependencies are known, incident paths are short. Where teams are outcome-aligned, keep &#8220;team = API boundary&#8221; a guiding rule and cap ownership at 1&#8211;3 services to manage cognitive load.</p><p><strong>On-call health with SLOs and error budgets: </strong>rotation coverage is fair, out-of-hours pages are rare, and there&#8217;s comp time/money for hard nights. Service SLOs feed error budgets; when they&#8217;re blown, pause feature work and focus on reliability until you&#8217;re back within budget.</p><p><strong>Talent scorecards and predictable hiring: </strong>a skills matrix tied to the roadmap (what we need, by when), structured interviews with rubrics, and a standard onboarding path. Track time-to-productivity. Contractor reliance should be documented and tapered with knowledge transfer milestones.</p><p><strong>Decision hygiene via lightweight documentation: </strong>ADRs capture why a choice was made, what alternatives were rejected, and the rollback plan. Postmortems are blameless and produce two classes of action: quick wins and systemic fixes. Decisions survive staff turnover.</p><h2>Red flags that lengthen negotiations</h2><ul><li><p>A <strong>bus factor of one</strong> on anything revenue-critical is a major risk. For example, if &#8220;only Priya understands the data pipeline&#8221;, the business is exposed.</p></li><li><p>There is a <strong>manager/IC imbalance</strong> when managers carry 12&#8211;15 direct reports with no time to coach, or conversely spend 80% of the week coding instead of leading.</p></li><li><p>A <strong>hero culture</strong> emerges when after-hours paging is chronic, there are no compensating policies, and &#8220;we pulled an all-nighter&#8221; is celebrated in Slack.</p></li><li><p><strong>Metrics theater</strong> is evident when DORA charts exist but no decisions come from them and incidents routinely conclude with &#8220;human error&#8221; instead of systemic fixes.</p></li><li><p><strong>Silo friction</strong> shows up when Security acts as a last-minute gatekeeper, QA remains isolated, and the Platform team is treated merely as a ticket queue.</p></li><li><p><strong>Outsourcing as a crutch</strong> occurs when agencies run core operations without knowledge transfer and a single contractor effectively &#8220;owns&#8221; release automation.</p></li></ul><p>One or two of these can be mitigated post-close, but 3 or more usually trigger a price adjustment, earn-out conditions, or a pause.</p><h2>Habits worth adopting before the next round</h2><ul><li><p>Maintain a People-Risk Register: key domains &#215; owner &#215; deputy &#215; risk notes &#215; mitigation due date. Review monthly.</p></li><li><p>Publish an Engineering Operating Manual: how we plan, ship, staff, escalate, and learn. Make it part of the onboarding material.</p></li><li><p>Track delivery and well-being together: cycle time, deployment frequency, change failure, MTTR and weekly pager minutes per person. Act on both.</p></li><li><p>Institutionalize learning: postmortems with owners, deadlines, and follow-up audits, and quarterly &#8220;delete a process&#8221; reviews to keep governance lean.</p></li><li><p>Make onboarding a product: day-1 dev environment, golden paths, shadow rotations. Measure metrics like time-to-first-MR and time-to-on-call.</p></li></ul><div><hr></div><h2>Mini-Glossary</h2><ul><li><p><strong>IC:</strong> Individual Contributor (non-manager engineer).</p></li><li><p><strong>Span of control:</strong> Number of direct reports per manager; extremes signal risk.</p></li><li><p><strong>Bus factor:</strong> How many people can leave before a function stops; 1 is dangerous.</p></li><li><p><strong>ADRs:</strong> Architectural Decision Records: lightweight docs of key technical choices.</p></li><li><p><strong>SLO / Error budget:</strong> Service Level Objective and the allowed &#8220;unreliability&#8221; that guides when to pause feature work.</p></li><li><p><strong>DORA (DevOps) metrics:</strong> Deployment frequency, lead/cycle time, change failure rate, MTTR (not the EU regulation).</p></li><li><p><strong>Bench Depth Model:</strong> A talent management approach that measures how many capable successors are available for critical roles, assessing both readiness (ready now, soon, later) and coverage depth to ensure organizational resilience.</p></li></ul><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://eitanschuler.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading The Tech Due Diligence Playbook! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://eitanschuler.substack.com/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://eitanschuler.substack.com/subscribe?"><span>Subscribe now</span></a></p><h2><strong>Your turn</strong> </h2><p>What People-Lens surprise have you hit in a deal? A single-point-of-failure staff engineer, pager fatigue, or metrics theater? Share the scar; it helps the next team.</p><div><hr></div><p><strong>Next in the Playbook: </strong>I&#8217;ll write about API Strategy &amp; Integration Readiness in Edition 12. Stay tuned!</p>]]></content:encoded></item><item><title><![CDATA[Data Governance & Sovereign-Data Readiness ]]></title><description><![CDATA[Edition 10]]></description><link>https://eitanschuler.substack.com/p/data-governance-and-sovereign-data</link><guid isPermaLink="false">https://eitanschuler.substack.com/p/data-governance-and-sovereign-data</guid><dc:creator><![CDATA[Eitan Schuler]]></dc:creator><pubDate>Mon, 25 Aug 2025 05:27:18 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/8e0c89f2-003f-4a4a-b717-981598dea9c1_1536x1024.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://eitanschuler.substack.com/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://eitanschuler.substack.com/subscribe?"><span>Subscribe now</span></a></p><p>Originally published on <a href="https://www.linkedin.com/pulse/data-governance-sovereign-data-readiness-eitan-schuler-5arle">LinkedIn</a> on August 20, 2025</p><p>A growth-stage SaaS had spotless product metrics and a data map drawn on a whiteboard. During diligence a different picture was formed. Nightly backups hopped regions, US-hosted log analytics ingested EU personal data, and a support run-book that paged an on-call engineer in a different legal jurisdiction. Nothing was malicious, just a bit ad-hoc. The buyer didn&#8217;t question the product, they only asked whether the company could <strong>prove</strong> where customer data lived, who could touch it, and how fast it could be deleted. In 2025, that proof moves valuation.</p><h2>Why this matters</h2><p><strong>Regulators, customers, and acquirers</strong> are converging on the same questions: Where is the data, who can access it, and what exits the promised boundary? &#8220;Sovereign-data&#8221; readiness is the ability to keep certain data in-region, under your control, administered by in-region personnel, and to demonstrate it with artifacts, not promises. You don&#8217;t need to be a regulated bank to face these questions, a single enterprise customer or a cross-border acquisition can put them on page one of the checklist.</p><p>Good governance compounds. Clear ownership, lineage, and deletion pipelines lower breach risk and cloud cost. Sloppy governance leaks margin (storage creep, zombie copies), slows sales, and drags diligence.</p><h2>What investors look for</h2><p>Investors start with a real <strong>data map</strong>, not a diagram. That means a system-of-record listing of datasets, fields, sensitivity, lawful basis, retention, region, key owner, and the processing activities that touch each set (ETL jobs, training pipelines, analytics queries). A clean map should tie back to lineage: where the data came from, where it flows, and where it rests (including backups and logs).</p><p>Next comes <strong>access governance</strong>. Investors want to see least-privilege enforced in code (IAM policies, role-based access, JIT elevation), quarterly access reviews with sign-off, and auditable logs. &#8220;We trust the team&#8221; doesn&#8217;t survive diligence; &#8220;we trust our policy, and here are the reviews&#8221; does.</p><p>Then <strong>encryption &amp; key control</strong>: encryption at rest and in transit is table stakes. What moves the needle is <strong>customer-managed or tenant-scoped keys</strong> (BYOK/CMK), clear key-rotation policy, and proof that keys are region-pinned (no KMS hop across borders).</p><p>Finally, <strong>data-residency architecture</strong>. Can you keep EU data in the EU including backups, telemetry, and third-party tools? It&#8217;s common to localize the database but leak residency through US-hosted error tracking, CDN logs, or a global SIEM. Investors might ask where <strong>every</strong> copy lands.</p><h2>Stage and stake: how the lens sharpens</h2><p>At <strong>Seed/early A</strong>, a crisp written policy, a living data inventory, and a basic deletion pipeline alongside with a roadmap to regionalization are typically enough. By <strong>Series B</strong>, diligence expects enforcement evidence: access reviews, key-rotation logs, automated retention jobs, and vendor DPAs for every sub-processor. In <strong>majority buy-outs</strong>, the bar rises to <strong>sovereign-by-design</strong>: per-region shards or accounts, region-locked keys, in-region logging and monitoring , and contractual controls (e.g.: EU-only support, named sub-processors).</p><h2>Patterns that work</h2><p><strong>Regional sharding with consistent abstractions: </strong>Run one product, multiple regional data planes: separate accounts/projects per region, region-pinned databases, buckets and keys, and a routing layer that keeps each tenant in its home shard. No cross-region replication &#8220;for resilience&#8221; outside the legal boundary. DR stays within jurisdiction. Audits become mechanical: list the EU account, export the inventory.</p><p><strong>Per-tenant isolation without over-engineering:</strong> You don&#8217;t need &#8220;one DB per customer&#8221; to get strong isolation. Combine row-level security, tenant-scoped keys, and separate schemas, but make it provable. Telemetry should show access by tenant, least-privilege roles enforced in code, and a quarantine kill-switch to contain one tenant without touching the rest.</p><p><strong>Customer-managed keys as a control and termination lever:</strong> BYOK/CMK assures large customers you can&#8217;t read their data unilaterally and that, on termination, they (or you under their instruction) can render it fast. Pin keys to the same region as the data, document rotation, and show who can use keys under JIT elevation. From a diligence angle, it&#8217;s a concrete signal of control, not just encryption &#8220;on paper.&#8221;</p><p><strong>Data contracts for analytics &amp; AI:</strong> Treat every downstream consumer (warehouse, lake, model training job, feature store) as a contract: schema, allowed fields, sensitivity/masking rules, retention, owner, and permitted purpose. Contracts prevent PII from &#8220;sneaking&#8221; into features, enforce minimization and synthetic/masked data in lower environments, and give you runnable deletion hooks.</p><p><strong>In-region telemetry and backups:</strong> Residency isn&#8217;t real if logs, traces, crash dumps, metrics, or snapshots exit the boundary. Keep observability stacks and backup targets in-region, or use providers with regional data boundaries.</p><p><strong>Enforcement and evidence by design:</strong> Make sovereignty fail-closed. At the org layer: region-allow policies, prevent creation of resources outside allowed regions, and block cross-region KMS &#8220;hops.&#8221; In CI/CD: require every dataset to be registered (owner, region, retention, key) or the build fails. For audits: keep access reviews, key-rotation logs, DSAR/erasure job runs, and vendor DPA mappings tied to specific datasets.</p><h2>Red flags that slow or sink deals</h2><ul><li><p><strong>Ambiguous residency:</strong> &#8220;EU data stays in Frankfurt&#8221; while backups replicate to another region &#8220;for resilience&#8221;.</p></li><li><p><strong>Telemetry leakage:</strong> Application data local, but crash dumps and access logs ship to a global SaaS. Easy to miss, hard to defend.</p></li><li><p><strong>Live data in lower environments:</strong> Dev/test using production PII with no masking, no synthetic data. That&#8217;s a governance smell and a breach risk.</p></li><li><p><strong>Root-level access culture:</strong> Wide admin roles (&#8220;*&#8221;) or shared credentials, plus no quarterly reviews. Investors assume insider-risk and operational fragility.</p></li><li><p><strong>No deletion proof:</strong> You can accept a Data Subject Request, but can you show verifiable erasure across hot storage, backups, caches, and search indexes within policy?</p></li><li><p><strong>Sub-processor sprawl:</strong> A dozen vendors touch production data, but the DPA list in customer contracts is outdated. Integration risk goes up, trust goes down.</p></li></ul><p>Two or more of these typically trigger a price adjustment or post-close capex to retrofit sovereignty.</p><h2>Habits worth adopting before the next round</h2><ul><li><p><strong>Make the data map an operational tool:</strong> Keep it in a system (not a slide). Every new table or bucket must register with owner, sensitivity, region, retention, and key. CI pipelines should fail if the registry doesn&#8217;t have an entry.</p></li><li><p><strong>Prove deletion, don&#8217;t just promise it:</strong> Implement &#8220;erasure jobs&#8221; that accept a subject ID and traverse application DBs, object stores, caches, analytics tables, and model feature stores. Log what was removed and where propagation is pending (e.g.: immutable backups). Track deletion SLA as a metric.</p></li><li><p><strong>Region-pin everything:</strong> Error tracking, metrics, SIEM, object-storage replication, backup targets, CDN logs: choose in-region endpoints or providers with regional data boundaries. Treat &#8220;unknown region&#8221; as tech debt.</p></li><li><p><strong>Key management with intent:</strong> Use region-scoped KMS/HSM, rotate keys on a schedule, and prefer tenant-scoped or customer-managed keys for high-sensitivity data. Keep a one-pager that shows which datasets use which keys and who can access them.</p></li><li><p><strong>Separate people, not only data: </strong>For strict customers, operate an in-region support rotation with audited access and break-glass procedures. Diligence increasingly asks not just where data sits, but which human can touch it.</p></li><li><p><strong>Data for test/dev:</strong> Default to masked or synthetic data in lower environments. If you must use production slices, apply minimization and time-boxed access with approvals; expire copies automatically.</p></li><li><p><strong>Quarterly vendor hygiene:</strong> Maintain a single list of sub-processors with DPAs/SCCs, residency statements, and last review date. Tag which customer contracts reference which version of the list so you can notify accurately.</p></li><li><p><strong>Set 3 governance KPIs and publish them:</strong> Examples: &#8220;% assets classified,&#8221; &#8220;% resources with region tag,&#8221; &#8220;mean deletion lead time&#8221;.</p></li></ul><h2>Mini-Glossary</h2><ul><li><p><strong>Data sovereignty</strong>: Keeping data in a jurisdiction and under the control of entities governed by that jurisdiction.</p></li><li><p><strong>Data residency</strong>: The physical/virtual location where data is stored and processed.</p></li><li><p><strong>BYOK / CMK</strong>: Bring-Your-Own-Key / Customer-Managed Key; customers control encryption keys.</p></li><li><p><strong>Data contract</strong>: A formal agreement defining a dataset&#8217;s schema, allowed fields, retention, and owner.</p></li><li><p><strong>Lineage</strong>: Trace of where data originates and how it moves and transforms across systems.</p></li><li><p><strong>DPA:</strong> Data Privacy Agreement. GDPR Art. 28 contract between controller and processor setting purpose/instructions, security measures, sub-processor rules, audit/right to information, and breach-notification terms.</p></li><li><p><strong>SCC: </strong>Standard Contractual Clause. European Commission&#8211;approved contract templates to lawfully transfer EU personal data to non-adequate countries, often paired with technical safeguards.</p></li></ul><div><hr></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://eitanschuler.substack.com/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://eitanschuler.substack.com/subscribe?"><span>Subscribe now</span></a></p><h2>Your turn</h2><p>What&#8217;s the hardest sovereignty gap you&#8217;ve had to close&#8212;telemetry leakage, deletion across backups, or vendor sprawl? Share the scar story; it helps the next team avoid it.</p><p><strong>Founders:</strong> need a sovereignty gap-scan and a one-page remediation plan for your data room? <strong>Let&#8217;s talk.</strong></p><p><strong>Investors:</strong> need a pre-deal heat-map of residency, access, and deletion risk across a target&#8217;s stack? <strong>Let&#8217;s talk.</strong></p><div><hr></div><div class="captioned-button-wrap" data-attrs="{&quot;url&quot;:&quot;https://eitanschuler.substack.com/p/data-governance-and-sovereign-data?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="CaptionedButtonToDOM"><div class="preamble"><p class="cta-caption">Thanks for reading The Tech Due Diligence Playbook! This post is public so feel free to share it.</p></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://eitanschuler.substack.com/p/data-governance-and-sovereign-data?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://eitanschuler.substack.com/p/data-governance-and-sovereign-data?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Share</span></a></p></div><p><strong>Next in the Playbook:</strong> Edition 11 will dive into the &#8220;People Lens&#8221;. Data is governed by systems. Velocity is governed by people. I&#8217;ll unpack how investors read org charts, leadership, and culture to predict delivery, resilience, and risk.</p>]]></content:encoded></item><item><title><![CDATA[Vendor Due Diligence & Third-Party Risk]]></title><description><![CDATA[Edition 9]]></description><link>https://eitanschuler.substack.com/p/vendor-due-diligence-and-third-party</link><guid isPermaLink="false">https://eitanschuler.substack.com/p/vendor-due-diligence-and-third-party</guid><dc:creator><![CDATA[Eitan Schuler]]></dc:creator><pubDate>Mon, 18 Aug 2025 08:09:01 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/3b07fa55-862f-442f-b7a7-8d9b291c8a23_1536x1024.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Originally published on <a href="https://www.linkedin.com/pulse/vendor-due-diligence-third-party-risk-eitan-schuler-mjeue/">LinkedIn </a>on August 13, 2025</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://eitanschuler.substack.com/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://eitanschuler.substack.com/subscribe?"><span>Subscribe now</span></a></p><p>At a recent buy-out signing, the celebration fizzled when the acquirer&#8217;s CISO asked one last question: <em>&#8220;Show me the log that proves your storage vendor patched the October CVE within 72 hours&#8221;.</em> The target had no such evidence, only an expired SOC2 report. The deal closed, but at a price cut to cover &#8220;supply-chain uncertainty&#8221;.</p><p>Stories like this have multiplied since supply-chain attacks (from SolarWinds to MOVEit) showed that the easiest way to compromise a fast-growing SaaS is to slip through one of its many vendors. Regulators noticed. Europe&#8217;s <strong>Digital Operational Resilience Act (DORA)</strong> now requires financial services to catalogue and monitor &#8220;critical ICT third-party providers&#8221; and empowers regulators to inspect them directly. In the US, the <strong>SEC cybersecurity-disclosure rule</strong> forces public companies to reveal material incidents irrespective of whose software caused them. Founders and investors can no longer assume that vendor risk is somebody else&#8217;s problem.</p><h2>Why third-party risk now sits on the due diligence critical path</h2><p><strong>Attack surface inflation:</strong> Modern stacks include hundreds of SaaS APIs, open-source libraries and cloud services. Each shortens delivery time but widens the blast radius when one link fails or gets breached.</p><p><strong>Regulator reach-through:</strong> DORA, NIS2 and the AI Act all contain &#8220;look-through&#8221; clauses that make the primary business liable for vendors&#8217; missteps. If one of your vendors is breached and attackers exfiltrate the logs containing your customers&#8217; data, regulators (under DORA, NIS2, GDPR, or the AI Act) will still treat <em>your </em>company as responsible.</p><p><strong>Investor math:</strong> Supply-chain incidents translate directly into churn, SLA credits and remediation capex. When diligence teams cannot model that exposure, they widen discount ranges or they pass on the deal.</p><h2>What investors expect to see, no matter the term sheet</h2><ul><li><p><strong>A living dependency map.</strong> A single page that lists every external service (commercial, open-source, data supplier, etc.), its business criticality, the data it touches and its current assurance level. Think of it as the SBOM&#8217;s big sister.</p></li><li><p><strong>Risk-tiered vendor assessments:</strong> Low-risk tools (internal analytics) may only need a questionnaire while high-risk vendors (payments, auth, LLM APIs) warrant audits, pen-test results and financial health checks.</p></li><li><p><strong>Contractual safeguards:</strong> Clauses for data-breach notification (&lt;24 h), the right to audit, encryption at rest and in transit, sub-processor disclosure, exit assistance and migration-support if the vendor is acquired or goes dark are important. Founders should consider their own risk while contracting vendors.</p></li><li><p><strong>Continuous monitoring:</strong> Not a once-a-year PDF. Investors look for automated alerts on vendor status pages, real-time SBOM diffing and periodical tabletop exercises that simulate a compromised dependency in a vendor or on an open-source library.</p></li><li><p><strong>Regulatory mapping.</strong> A short memo showing which vendors fall under DORA &#8220;critical ICT&#8221; scope, NIS2 essentials or the upcoming AI-Act GPAI transparency and how you flow those obligations down.</p></li></ul><h2>Stage, stake&#8230; and visibility</h2><p><strong>Minority Series A/B</strong> investors often accept a spreadsheet dependency list plus policy docs because they neither control operations nor bear integration cost.</p><p>Some<strong> series C and growth equity</strong> backers demand live dashboards and vendor-risk scores. They must defend brand equity once the startup appears on analysts&#8217; radars.</p><p><strong>Control buy-outs and IPO prep</strong> trigger deep dives and demand a very high level of clarity including sampled vendor contracts, penetration tests for externally hosted code, financial viability analysis and even &#8220;shadow-copy SBOMs&#8221; (parallel SBOM you generate yourself to cross-check vendor-provided one) to detect hidden transitive risks.</p><p>Regulatory fines do not change with share ownership. Therefore, <strong>irrespective of stage/stake</strong>, visibility plays an important role here. The moment a company&#8217;s logo lands on Gartner slides or front-page tech news, regulators and customers scrutinize every supplier in the chain. Investors calibrate their lenses accordingly.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://eitanschuler.substack.com/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://eitanschuler.substack.com/subscribe?"><span>Subscribe now</span></a></p><h2>Some red flags that lengthen negotiations</h2><ul><li><p>Dependency maps live in tribal knowledge.</p></li><li><p>No contractual right to retrieve customer data within 30 days of termination.</p></li><li><p>SaaS vendors with lapsed SOC2 Type II reports or ISO27001 certificates.</p></li><li><p>Open-source libraries pinned to versions with known critical CVEs and no patch plan exists.</p></li><li><p>A single cloud region for all workloads because &#8220;the provider is multi-AZ anyway&#8221;.</p></li><li><p>Pen-tests leaving third-party integrations untested; third-party APIs mocked out &#8220;to save cost&#8221;.</p></li></ul><p>Two or more of these usually lead to escrow demands, hold-backs or sometimes even walk-aways.</p><h2>Habits founders should adopt</h2><ol><li><p><strong>Publish a Vendor-Risk Register:</strong> Mirrors the risk register from Edition 1 but focuses on third parties: purpose, data scope, risk owner, criticality score, last review date, next action. Drop it in the data room before anyone asks for it.</p></li><li><p><strong>Automate SBOM watching:</strong> Tools like GUAC or Dependency-Track can ingest vendor software bills-of-materials and alert you to freshly disclosed CVEs.</p></li><li><p><strong>Run a periodical &#8220;assume vendor down&#8221; drill.</strong> Can you swap payment processors in 48 hours? Serve read-only mode if your feature-flag service dies? Document the recovery steps and capture real metrics.</p></li><li><p><strong>Negotiate exit clauses up front.</strong> Termination-assistance, data-export in machine-readable formats, potential escrow and the right to run a self-hosted version for up to 12 months are easier to secure before signing, not amid an incident.</p></li><li><p><strong>Link vendor risk scores to engineering workflow.</strong> If a library slips from &#8220;green&#8221; to &#8220;amber,&#8221; create a ticket. Risk posture then improves as part of normal work, not a separate governance effort.</p></li></ol><h2>Common traps</h2><ul><li><p><strong>Paper-only assurance:</strong> shiny SOC2 report is dated the moment it lands. Dig in deeper. Follow up on status pages and uptime stats. Continuous controls matter more.</p></li><li><p><strong>Critical vendor concentration: </strong>hosting, database and observability all from the same cloud provider wipes out redundancy. Tempting, but not great.</p></li><li><p><strong>Free-tier complacency: </strong>A startup might rely on the free plan of a feature-flag service that provides no uptime SLA, until the day an outage locks every user out.</p></li><li><p><strong>Licenses without indemnity:</strong> Using a generative-AI model under a non-commercial license in production can trigger copyright claims during M&amp;A disclosure.</p></li><li><p><strong>Ignoring upstream sub-processors:</strong> Your CRM outsources search to a boutique provider that hosts in a different jurisdiction.</p></li></ul><h2>Mini-glossary</h2><ul><li><p><strong>C-SCRM:</strong> Cybersecurity Supply-Chain Risk Management as defined by NIST.</p></li><li><p><strong>DORA</strong>: Digital Operational Resilience Act (EU). DORA puts banks, insurers and fintechs on the hook for the resilience and security of all &#8220;critical ICT third-party providers.&#8221;</p></li><li><p><strong>CVE</strong>: Common Vulnerabilities and Exposures. The global ID system for publicly disclosed security flaws.</p></li><li><p><strong>NIST</strong>: US National Institute of Standards and Technology publishing the Cybersecurity Framework, AI RMF and supply-chain guidelines that many investors treat as de-facto standards.</p></li><li><p><strong>SBOM:</strong> Software Bill of Materials listing every component and its version.</p></li><li><p><strong>Escrow </strong>(software or data): A neutral third party holds source code or critical data so the customer can access it if the vendor goes bust, changes ownership, or breaches contract.</p></li><li><p><strong>NIS2</strong>: The EU&#8217;s 2023 Network and Information Security Directive. It widens the original NIS scope to cover more sectors (energy, health, digital providers, etc.) and obliges &#8220;essential&#8221; and &#8220;important&#8221; entities to manage and report cybersecurity and supply-chain risks. Not yet equally enforced in all EU countries.</p></li><li><p><strong>Flow-down obligation:</strong> Contractual requirements that a company must pass on to its subcontractors or downstream vendors.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://eitanschuler.substack.com/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://eitanschuler.substack.com/subscribe?"><span>Subscribe now</span></a></p></li></ul><div><hr></div><h2>Your turn</h2><p>Which vendor surprise burnt you in a deal? An unpatched open-source library? A data-export clause that turned out optional? Share the scar, it may save someone else.</p><p><strong>Founders:</strong> Want a quick stress-test of your vendor register or SBOM posture? <strong>Let&#8217;s talk.</strong> <strong>Investors:</strong> Need a second opinion on third-party exposure in a live deal? <strong>Happy to dive in.</strong></p><div><hr></div><p><strong>Next in the Playbook:</strong> In Edition 10 I&#8217;ll write about &#8220;Data Governance &amp; Sovereign-Data Readiness&#8221;. Subscribe so it lands in your inbox.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://eitanschuler.substack.com/?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share The Tech Due Diligence Playbook&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://eitanschuler.substack.com/?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Share The Tech Due Diligence Playbook</span></a></p><p></p>]]></content:encoded></item><item><title><![CDATA[Security & Compliance in the AI Act Era]]></title><description><![CDATA[Edition 8]]></description><link>https://eitanschuler.substack.com/p/security-and-compliance-in-the-ai</link><guid isPermaLink="false">https://eitanschuler.substack.com/p/security-and-compliance-in-the-ai</guid><dc:creator><![CDATA[Eitan Schuler]]></dc:creator><pubDate>Mon, 11 Aug 2025 07:37:15 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/32b4e273-35b5-4b4d-8445-9faad79f56c8_1536x1024.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Originally published on LinkedIn on August 6, 2025<br></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://eitanschuler.substack.com/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://eitanschuler.substack.com/subscribe?"><span>Subscribe now</span></a></p><p><br>The European Union's AI Act, alongside existing regulations like GDPR and the increasing emphasis on frameworks like SOC 2, is reshaping how investors and acquirers evaluate a target company's technological health. The declared purpose of the regulation is to &#8220;improve the functioning of the internal market and promote the uptake of human-centric and trustworthy artificial intelligence (AI), while ensuring a high level of protection of health, safety, fundamental rights enshrined in the Charter, including democracy, the rule of law and environmental protection, against the harmful effects of AI systems in the Union and supporting innovation&#8221;. The Act is publicly debated, but I&#8217;m not going into the dive into the scope, maintainability, criticality and political debates around it.</p><p>To be completely honest here I haven&#8217;t talked to founders or investors about the AI Act yet, but I decided to dig in and evaluate how it <em>will</em> affect the world of Technical Due Diligence based on its letter and spirit. We'll touch on the critical interplay between security, compliance and AI and how companies can demonstrate readiness in this new era.</p><h2>The EU AI Act: A New Paradigm for Due Diligence</h2><h3>Risk-based approach</h3><p>The EU AI Act introduces a risk-based approach to AI regulation. This means that the level of scrutiny and compliance requirements for an AI system will depend on the <em>potential harm</em> it can cause. For investor due diligence this translates into a critical first step: classifying the target company's AI systems according to the Act's risk categories:</p><ul><li><p><strong>Unacceptable Risk:</strong> AI systems that pose a clear threat to fundamental rights (e.g., social scoring by governments) are banned. Any presence of such systems in a target company might be an immediate deal-breaker.</p></li><li><p><strong>High-Risk AI Systems: </strong>These systems are subject to stringent requirements, including robust risk management systems, data governance, technical documentation, human oversight and conformity assessments (e.g.: critical infrastructure, employment, law enforcement, credit scoring). For companies developing or deploying high-risk AI, due diligence will involve a deep dive into their compliance frameworks, testing methodologies and data quality processes. Investors will need to verify that the company has established an AI risk management system, it maintains comprehensive technical documentation and has a clear plan for keeping security, compliance and AI-risk controls alive and verifiable in the long run.</p></li><li><p><strong>Limited Risk</strong> <strong>AI Systems:</strong> These systems have specific transparency obligations (e.g.: chatbots must inform users they are interacting with an AI). Due diligence here would focus on verifying these transparency mechanisms are in place.</p></li><li><p><strong>Minimal or No Risk</strong> <strong>AI Systems:</strong> Most AI systems fall into this category and are subject to voluntary codes of conduct. While less regulated, investors may still look for evidence of responsible AI practices.</p></li></ul><h3>Key Due Diligence areas under the EU AI Act</h3><ul><li><p><strong>Risk Management System:</strong> Does the company have a documented and implemented risk management system for its AI applications? This includes identifying, analyzing and evaluating risks, as well as implementing appropriate mitigation measures.</p></li><li><p><strong>Data Governance</strong>: Given that AI models are only as good as the data they are trained on, due diligence will heavily scrutinize data governance practices. This includes data quality, data collection methods, bias detection and mitigation and data security.</p></li><li><p><strong>Technical Documentation and Record-Keeping</strong>: The Act mandates extensive technical documentation for high-risk AI systems. Due diligence will require reviewing these documents to ensure they are complete, accurate and demonstrate compliance.</p></li><li><p><strong>Human Oversight</strong>: For high-risk AI, human oversight is crucial. Due diligence will assess the mechanisms in place to ensure human control and intervention capabilities.</p></li><li><p><strong>Conformity Assessment</strong>: High-risk AI systems will require a conformity assessment before being placed on the market. Investors will need to verify that these assessments have been conducted and that the systems meet the required standards.</p></li><li><p><strong>Post-Market Monitoring:</strong> The Act requires continuous monitoring of high-risk AI systems once they are in use. Due diligence should examine the company's post-market surveillance plans and incident reporting mechanisms.</p></li></ul><p>The EU AI Act fundamentally shifts the burden of proof onto companies developing and deploying AI. For investors this means a more rigorous and specialized due diligence process is required to identify and quantify regulatory risks, ensuring that the target company is not only innovative but also compliant and future-proof in the evolving AI regulatory landscape in the EU.</p><h2>GDPR and SOC 2 Readiness: Pillars of Compliance</h2><p>While the EU AI Act introduces new considerations, existing compliance frameworks like GDPR (General Data Protection Regulation) and SOC 2 (Service Organization Control 2) remain critical pillars of due diligence on compliance. Most of what the AI Act demands already lives inside GDPR and SOC 2. GDPR&#8217;s data-map and Data Privacy Impact Assessment (DPIA) exercises force you to catalogue every dataset, spell out lawful purpose and assess privacy risk complying with the first half of the AI Act&#8217;s &#8220;data governance and risk-management&#8221; chapter. SOC 2 then picks up the baton: its security and change-management criteria require immutable logs, access reviews and incident playbooks, which satisfy the AI Act&#8217;s call for technical documentation, audit trails and secure development. Even the &#8220;human-in-the-loop&#8221; clause for high-risk AI mirrors safeguards you must document under GDPR Article 22 and rehearse under SOC 2&#8217;s incident-response control. In short, if you can already show a clean DPIA, a live data-catalog and six months of SOC-style control evidence, you are roughly 70% of the way to an AI Act conformity file.</p><p>In times of diligence or audits this approach pays off fast. You are rearranging chapters, not starting with blank pages. Controls are measured in dashboards your teams consult every week, so regulators and investors see living metrics, not promises. Staff have been through GDPR and security training, making an AI-risk module an incremental, not a green-field, task. Vendor contracts already carry data-processing addendum and security questionnaires, so supply-chain scrutiny is not built from scratch either. And because you have run at least one mock SOC 2 or ISO gap assessment, the organization knows how to gather evidence and close tickets on a deadline. The muscle is trained and that will matter when an AI Act assessor or an acquirer comes calling.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://eitanschuler.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading The Tech Due Diligence Playbook! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://eitanschuler.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading The Tech Due Diligence Playbook! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><h2>Habits worth adopting</h2><ul><li><p>Be GDPR compliant by design (If you or your customers are in the EU you must be anyways) and SOC 2 ready even if not being audited for it. This will help a lot in times of diligence.</p></li><li><p>Run an annual AI-focused breach drill. A red-team can inject prompt-injection, data-poisoning and model-exfiltration scenarios. Test your resilience and measure response metrics.</p></li><li><p>Risk-tag every ticket. A custom field &#8220;AI Act risk: minimal / limited / high&#8221; required at ticket creation. Closing a high-risk ticket could trigger an automated checklist: bias test run, explainability score logged, rollback plan merged.</p></li><li><p>Maintain an AI Act heat-map: A single page listing every feature, model and dataset with its risk tier and the control evidence (test, log, document) that supports it.</p></li><li><p>Run periodical self-audits: The &#8220;Govern &#8594; Map &#8594; Measure &#8594; Manage&#8221; loop surfaces blind spots before investors do.</p></li></ul><h2>Mini-Glossary</h2><ul><li><p><strong>EU AI Act:</strong> A proposed European Union regulation that aims to provide a legal framework for artificial intelligence, categorizing AI systems by risk level.</p></li><li><p><strong>GDPR (General Data Protection Regulation):</strong> A comprehensive data protection law in the European Union and European Economic Area, governing how personal data is collected, processed and stored.</p></li><li><p><strong>SOC 2 (Service Organization Control 2):</strong> An auditing procedure that ensures service providers securely manage data to protect the interests of their clients and the privacy of their customers.</p></li><li><p><strong>DPIA (Data Protection Impact Assessment): </strong>A process designed to help organizations identify and minimize the data protection risks of a project or plan.</p></li><li><p><strong>Automated Decision-Making:</strong> Decisions made by technological means without human involvement, particularly when they have legal or similarly significant effects on individuals.</p></li><li><p><strong>Trust Services Criteria (TSC):</strong> a set of principles and criteria used in SOC 2 audits to evaluate the controls of a service organization related to information security.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://eitanschuler.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading The Tech Due Diligence Playbook! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://eitanschuler.substack.com/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://eitanschuler.substack.com/subscribe?"><span>Subscribe now</span></a></p></li></ul><h2>Your turn</h2><p>How are you preparing your organization for the evolving AI regulatory landscape? What challenges have you faced in mapping GDPR, EU AI Act and SOC 2 readiness to your due diligence scope? Share your insights and experiences below.</p><p><strong>Founders</strong>: Need to assess your compliance posture in the AI era or prepare for tech due diligence? <strong>Let's talk.</strong> <strong>Investors</strong>: Looking to navigate the complexities of AI-related security and compliance risks in your investment targets? <strong>Let's talk.</strong></p><h2>Next in the Playbook</h2><p>In Edition 9 we&#8217;ll dive into the topic of Vendor Due Diligence &amp; Third-Party Risk. <strong>Stay tuned!</strong></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://eitanschuler.substack.com/?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share The Tech Due Diligence Playbook&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://eitanschuler.substack.com/?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Share The Tech Due Diligence Playbook</span></a></p><p></p>]]></content:encoded></item><item><title><![CDATA[Build vs. Buy: Innovation or Lock-In?]]></title><description><![CDATA[Edition 7]]></description><link>https://eitanschuler.substack.com/p/build-vs-buy-innovation-or-lock-in</link><guid isPermaLink="false">https://eitanschuler.substack.com/p/build-vs-buy-innovation-or-lock-in</guid><dc:creator><![CDATA[Eitan Schuler]]></dc:creator><pubDate>Mon, 04 Aug 2025 06:20:23 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/883c0610-e271-4086-956b-a0fd0eeb1e69_1536x1024.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://eitanschuler.substack.com/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://eitanschuler.substack.com/subscribe?"><span>Subscribe now</span></a></p><p>Originally published on <a href="https://www.linkedin.com/pulse/build-vs-buy-innovation-lock-in-eitan-schuler-ia9ke/">LinkedIn</a> on July 30, 2025.</p><p>Over coffee with a founder recently I heard a familiar lament: <em>&#8220;We spent nearl</em></p><p><em>y a year building our own data-pipeline engine, and now the VC is grilling us on why we didn&#8217;t use a proven vendor&#8221;.</em> A week earlier, an investor complained that one of their portfolio companies was so tightly tied to a proprietary product that any pivot would trigger legal wrangling and year-long rewrites. Go figure...</p><p>Whether you <strong>build</strong> technology yourself or <strong>buy</strong> it off the shelf can raise enterprise value, or introduce future friction during diligence. Investors dig hard into these decisions because every choice implies something about cost, speed, and eventual exit readiness.</p><h2>Why build&#8209;versus&#8209;buy sits on the due diligence critical path</h2><p>First comes <strong>strategic importance</strong>. If a component is part of the competitive moat, home-grown innovation makes sense. McKinsey found that companies investing in genuinely differentiating tech outpace peers by ~20% in revenue growth. But when the capability is commodity (think payments, CRM, off-the-shelf observability) buyers prefer to see a battle-tested vendor so the team can stay laser-focused on its real secret sauce.</p><p>Second is the <strong>uniqueness of requirements</strong>. Off-the-shelf tools cover the 90% case. When your workflows are truly novel (e.g.: a proprietary machine-learning pipeline) custom code avoids painful compromises. Netflix famously built its recommendation engine in-house because no vendor could match the scale and accuracy they needed.</p><p>Then there is <strong>time-to-market and total cost of ownership (TCO)</strong>. Buying nearly always ships faster, arrives with support, and converts capex to predictable opex. BUilding absorbs more engineers up front, but once a solution is heavily used the per-transaction cost may drop well below perpetual license fees. Diligence teams want to know how you did the maths.</p><p>Finally, investors examine <strong>risk tolerance and vendor lock-in</strong>. Commercial software shifts some operational risk to the vendor but introduces dependency: contract renewals, price increases, data-migration headaches. Custom code hands you control yet exposes you to delivery and maintenance risk. Showing how you balanced those forces tells buyers you well understand the considerations and keep future choices open under your control.</p><p>Taken together, build&#8209;versus&#8209;buy choices reveal how a team balances innovation, speed, cost and optionality. They influence gross margin, scalability and even integration complexity during a carve&#8209;out or acquisition.</p><h2>How investors weigh the decision</h2><p>Investors use a simple framework:</p><ol><li><p><strong>Core vs. commodity:</strong> they ask: &#8220;Is this function part of the company&#8217;s competitive moat or table stakes?&#8221; Founders should be able to articulate which components differentiate the product. If everything is built in&#8209;house, they will probe whether resources are misallocated.</p></li><li><p><strong>Economic analysis:</strong> investors model the TCO for both options: license fees, cloud spend, engineering salaries, maintenance and upgrade cycles. They also factor in time&#8209;to&#8209;value: a delayed launch can erode first&#8209;mover advantage.</p></li><li><p><strong>Exit readiness:</strong> a stack littered with proprietary licenses can slow down an IPO or trade sale because renegotiating vendor contracts takes time. Conversely, deep bespoke code with no documentation scares buyers because key engineers may walk away. Due diligence will ask about vendor termination clauses, escrow arrangements, and the portability of custom code.</p></li><li><p><strong>Governance and roadmap control:</strong> a vendor&#8217;s roadmap may diverge from your needs, while in&#8209;house teams risk falling behind on maintenance. Investors might look for evidence that you review vendor roadmaps quarterly, negotiate SLAs that match your SLOs, and allocate capacity for refactoring home&#8209;grown components.</p></li></ol><h2>Signals that raise eyebrows</h2><p>Investors notice when teams write bespoke billing engines or identity providers while world-class SaaS alternatives exist and they read it as opportunity cost. They worry when a critical module is tied to a single vendor, yet no migration path exists. They flinch at opaque TCO spreadsheets or, worse, decisions made by gut feel. And they downgrade valuation if the codebase is full of clever features but no clean APIs exist. This shows lack of integration maturity. Investing heavily in custom features without mature APIs or integration hooks hampers partnership opportunities and future acquisitions.</p><div class="captioned-button-wrap" data-attrs="{&quot;url&quot;:&quot;https://eitanschuler.substack.com/p/build-vs-buy-innovation-or-lock-in?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="CaptionedButtonToDOM"><div class="preamble"><p class="cta-caption">Thanks for reading The Tech Due Diligence Playbook! This post is public so feel free to share it.</p></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://eitanschuler.substack.com/p/build-vs-buy-innovation-or-lock-in?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://eitanschuler.substack.com/p/build-vs-buy-innovation-or-lock-in?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Share</span></a></p></div><h2>Habits startups should adopt</h2><ul><li><p><strong>Document your rationale: </strong>keep a build&#8209;vs&#8209;buy decision log. For each component list the strategic importance, alternatives considered, estimated build cost and TCO, vendor pricing, and exit plan. Investors love seeing that you compare options systematically.</p></li><li><p><strong>Prototype before buying:</strong> for third&#8209;party solutions, run a proof of concept. Evaluate integration complexity, performance, and vendor responsiveness before signing.</p></li><li><p><strong>Have a vendor assessment process in place</strong>: Check the service not only from the technical aspect, but also from the legal, security and data privacy angles.</p></li><li><p><strong>Review decisions periodically:</strong> a choice that made sense at Seed might not fit at Series B. Schedule annual reviews of home&#8209;grown modules and vendor contracts. Cloud&#8209;native SaaS options improve quickly so your bespoke feature may no longer justify its maintenance burden.</p></li><li><p><strong>Negotiate portability:</strong> when you do license software, negotiate termination assistance and data&#8209;export clauses up front (the EU Data Act will be on your side). Ideally ensure that you can extract your data and run the service in a private cloud if the vendor is acquired or fails to meet SLOs.</p></li><li><p><strong>Calculate payback:</strong> use a simple ROI calculator: compare development cost and delay against subscription fees and license renewals. Assign probability and margin of error to your estimates.</p></li></ul><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://eitanschuler.substack.com/?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share The Tech Due Diligence Playbook&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://eitanschuler.substack.com/?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Share The Tech Due Diligence Playbook</span></a></p><h2>Mini&#8209;Glossary</h2><p>Vendor lock-in: Switching away from a third-party product incurs high costs (proprietary formats, long contracts). Total Cost of Ownership (TCO): FUll life-cycle cost - build or purchase, hosting, upgrades, training, support. Strategic differentiator: A capability that truly separates you from competitors, worth bespoke investment. Commodity function: A standard need (e.g., payroll, CRM) where buying saves time and cash.</p><div><hr></div><h2>Your turn</h2><p>When did a build-vs-buy decision bite you, or save the roadmap? Did custom code become a moat, or did vendor lock-in stall a pivot? Share the story below, scars teach best.</p><p><strong>Founders</strong>: Need help auditing your build-vs-buy ledger before the next round? <strong>Let&#8217;s talk.</strong></p><p><strong>Investors</strong>: Looking to benchmark vendor-lock exposure across your portfolio? <strong>I can help.</strong></p><div><hr></div><p><strong>Next in the Playbook:</strong> Edition 8 will look at &#8220;Security &amp; Compliance in the AI-Act Era&#8221;:<strong> </strong>how emerging EU rules and baseline security metrics are reshaping diligence checklists for both SaaS vendors and their investors.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://eitanschuler.substack.com/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://eitanschuler.substack.com/subscribe?"><span>Subscribe now</span></a></p><p><strong>Subscribe and it will land in your inbox.</strong></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://substack.com/@eitanschuler/note/p-169635620&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://substack.com/@eitanschuler/note/p-169635620"><span>Leave a comment</span></a></p>]]></content:encoded></item><item><title><![CDATA[Incident Response and the Culture Behind the Numbers ]]></title><description><![CDATA[Edition 6]]></description><link>https://eitanschuler.substack.com/p/incident-response-and-the-culture</link><guid isPermaLink="false">https://eitanschuler.substack.com/p/incident-response-and-the-culture</guid><dc:creator><![CDATA[Eitan Schuler]]></dc:creator><pubDate>Mon, 28 Jul 2025 06:50:33 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/3073d749-620c-4195-9512-74382b525ef1_1536x1024.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>A clean codebase can still derail a deal if incidents linger in production. A buyer may discover that every Sev-1 outage took an average of 6 hours to resolve, even though the team promises a sub-hour Mean Time to Recover (MTTR). No one wants to pay a full multiple for a platform that lost half a business day each time it hiccupped. Speed matters, accuracy matters even more. Some of these metrics I already mentioned in Edition 3, but now I'm writing with lens of Operational Excellence and Incident Response practices.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://eitanschuler.substack.com/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://eitanschuler.substack.com/subscribe?"><span>Subscribe now</span></a></p><h3>Why incident response sits on the due diligence critical path</h3><p>Investors track uptime, but they worry even more about <strong>how quickly you bounce back</strong> when things break. A short MTTR limits SLA credits, protects NPS, and keeps churn down. Fast containment (MTTC) also signals mature on-call practices, clear ownership, and a culture that learns rather than blames. If recovery is delayed or post-mortems gather dust, buyers assume hidden debt in monitoring, run-books, and team structure. They will discount accordingly.</p><h3>The metrics that tell the real story</h3><p>Important operational metrics teach us about <strong>detecting </strong>downtime and incidents,<strong> acknowledging and containing </strong>them, <strong>recovering and learning </strong>from them.</p><ul><li><p><strong>Mean Time to Detect (MTTD) </strong>shows how long it takes the monitors (not the customers) to realize something is wrong. Sub-5-minute MTTD conveys that observability is wired into every layer while double-digit minutes hint at blind spots.</p></li><li><p><strong>Mean Time to Acknowledge (MTTA) </strong>is about hand-off from machine to human. A healthy on-call rota keeps MTTA in the low single digits, but anything beyond 10 minutes shouts &#8220;pager fatigue&#8221; or thin coverage.</p></li><li><p><strong>Mean Time to Contain (MTTC)</strong> measures how fast damage is halted even if the full fix takes longer. A strong containment metric shows good alerting, well-defined playbooks, and confidence in rollback tools.</p></li><li><p><strong>Mean Time to Recover (MTTR)</strong> is the headline: the clock starts when a customer feels pain and stops when normal service resumes. For growth-stage SaaS, anything under an hour for Sev-1 incidents calms investors. A drift toward 2-3 hours raises eyebrows.</p></li><li><p><strong>Change Failure Rate (CFR)</strong> pairs with MTTR. If fewer than 15% of deployments trigger incidents, automated testing and progressive delivery are doing their job.</p></li><li><p>Investors also understand incident <strong>post-mortem velocity</strong>: not just whether a document exists, but how quickly it is written, shared, and closed out with follow-up tasks. A 5-day turnaround on write-ups and a short window to burn down action items indicate a learning organization.</p></li></ul><h3>How stage and stake sharpen the lens</h3><p>Seed or early Series A backers tolerate informal on-call rotations and Google Doc post-mortems, provided the team can point to improving MTTR trends. By Series B, buyers expect real on-call schedules, PagerDuty data, and monthly incident reviews. In control buy-outs the bar rises again: investors want hour-level graphs, compliance-grade run-books, and tracking of follow-up work to completion. The larger the cheque and the more control it buys the deeper investors drill.</p><h3>Red flags that lengthen negotiations</h3><p>If incident dashboards show spikes that aren&#8217;t explained, if major outages lack post-mortems, or if the same root cause appears 3 quarters in a row, diligence slows. Investors must model churn risk and SLA credits, so they build extra buffer into the price.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://eitanschuler.substack.com/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://eitanschuler.substack.com/subscribe?"><span>Subscribe now</span></a></p><h3>Habits worth adopting before the next term sheet</h3><p>The goal is to show a reliability culture that&#8217;s measurable, repeatable, and not personality-driven.</p><ul><li><p><strong>Measure</strong> everything you can, but at least MTTR and CFR. That&#8217;s the bare minimum.</p></li><li><p><strong>Run a periodical incident-review.</strong> Invite engineering, support, customer success and product and review MTTR, MTTC, and CFR trends. Keep the agenda tight: what happened, why it mattered, what has already been fixed, and which follow-ups remain.</p></li><li><p><strong>Publish a public-facing uptime page fed directly from your monitor.</strong> Nothing builds trust faster during due diligence than a third-party chart showing 99.96 % over the past twelve months.</p></li><li><p><strong>Automate &#8220;first-5-minutes&#8221; actions.</strong> Pre-built scripts that flip feature flags, roll back canary pods, or increase replica counts cut containment time in half and impress investors who understand operational excellence.</p></li><li><p><strong>Close the loop on post-mortems.</strong> Assign an owner, set a due date, and track action items in the same backlog as features. Burned-down debt is visible proof of learning.</p></li><li><p><strong>Rotate on-call with follow-up rest.</strong> A humane schedule keeps engineers sharp and retention high so MTTR stays low without burning out talent. This is typically well regulated in the law (e.g. in Germany).</p></li><li><p>Schedule an <strong>annual third-party &#8220;chaos&#8221; or controlled-incident exercise</strong>. When outside facilitators inject surprise failures: DNS black-holes, database corruption, credential leaks, your engineers rehearse under pressure while observers time the metrics and note playbook gaps. The report becomes instant diligence evidence that you test resilience, not just talk about it.</p></li><li><p><strong>Formalize a 1-2-3 support ladder</strong>. Level-1 responders (support or SRE) triage and apply run-book fixes; level-2 engineers dig into code; level-3 (staff or architects) own systemic remediation. Documenting the structure, with escalation timers and after-hours rotations, tells investors incident response won&#8217;t bottleneck around a single heroic CTO.</p></li></ul><h3>Common traps</h3><p>Slashing cloud-monitoring budgets right before diligence leaves gaps in incident logs, buyers wonder what else is missing. Counting only &#8220;declared&#8221; incidents hides near-misses that matter just as much to future reliability. Pushing every post-mortem into a shared folder but never checking whether fixes shipped convinces no one.</p><h3>Mini-Glossary</h3><ul><li><p><strong>MTTR (Mean Time to Recover):</strong> average time from user impact to full restoration.</p></li><li><p><strong>MTTC (Mean Time to Contain):</strong> time from alert to halting customer pain.</p></li><li><p><strong>CFR (Change Failure Rate):</strong> percentage of deployments that trigger incidents or rollbacks.</p></li><li><p><strong>Post-mortem velocity:</strong> elapsed time from incident close to documented, accepted retro with actions underway.</p></li></ul><div><hr></div><h3>Your turn</h3><p>What&#8217;s the toughest incident you&#8217;ve had to explain during diligence? A silent data-loss bug, a runaway queue, or a 3-hour DNS outage? How did you prove it wouldn&#8217;t happen again? Share your scar stories below.</p><p><strong>Founders: </strong>Need a second set of eyes on your incident metrics or post-mortem workflow? <strong>Let&#8217;s talk.</strong></p><p><strong>Investors: </strong>Need more clarity on the operational excellence and the internal culture of your target company? <strong>Let&#8217;s talk.</strong></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://eitanschuler.substack.com/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://eitanschuler.substack.com/subscribe?"><span>Subscribe now</span></a></p><div><hr></div><p><strong>Next in the Playbook:</strong> Edition 7 tackles build-versus-buy decisions and how investors weigh home-grown innovation against third-party lock-in. Subscribe and it will land in your inbox.</p>]]></content:encoded></item></channel></rss>