PageSourceSearch

https://thefrugalarchitect.com/laws/

html thefrugalarchitect.com collected 2026-10-02 03:41:07 UTC 26,276 bytes, 14 lines download raw bytes

1<!doctype html><html lang=en-us><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1"><link rel=stylesheet href=/css/style.2b4380bf3a5112579205a93add215469f282546fd9ed4f243c9530211991a0e2f77ac860e80b457abbf3cdabe377fb8c615e9cfa4dcc80f43f0b5f88be20a4b4.css media=screen integrity="sha512-K0OAvzpREleSBak63SFUafKCVG/Z7U8kPJUwIRmRoOL3eshg6AtFervzzavjd/uMYV6c+k3MgPQ/C1+IviCktA==" crossorigin=anonymous><link rel=stylesheet href=/main.min.1fbf250ffd35cb308e7a953a60de095a36169ffb8ef12e5a797ad569dc9298105de1f7129e0dca05664d7024cb596b74f121da19339fcbf2410df2b32fe93b42.css media=screen integrity="sha512-H78lD/01yzCOepU6YN4JWjYWn/uO8S5aeXrVadySmBBd4fcSng3KBWZNcCTLWWt08SHaGTOfy/JBDfKzL+k7Qg==" crossorigin=anonymous><title>Laws</title>
2<meta name=description content><link rel=canonical href=https://thefrugalarchitect.com/laws/><meta property="og:type" content="website"><meta property="og:url" content="https://thefrugalarchitect.com/laws/"><meta property="og:title" content="The Frugal Architect"><meta property="og:description" content><meta property="og:image" content="https://thefrugalarchitect.com/images/wv.png"><meta name=twitter:card content="summary_large_image"><meta name=twitter:url content="https://thefrugalarchitect.com/laws/"><meta name=twitter:title content="The Frugal Architect"><meta name=twitter:description content><meta name=twitter:image content="https://thefrugalarchitect.com/images/wv.png">
2<script src=https://cdn.usefathom.com/script.js data-site=GNJVJOFC defer></script>
2</head><body class="laws list d-flex flex-column min-vh-100"><a href=#main class=skip-main tabindex=0>Skip to main</a><header id=main-header class="main-header py-1"><nav class="navbar navbar-expand-lg"><div class="d-flex flex-column w-100"><div class="w-100 border-bottom"><div class=container><div class=row><div class=col-3></div><div class="col-6 text-center"><p id=tfa-title class="h3 serif caps"><a href=/ class="text-decoration-none text-reset" onclick='fathom.trackEvent("Header - Home")'>The Frugal Architect</a></p></div><div class="col-3 text-end"><button class="menu-toggle reset-button-styles" data-bs-toggle=collapse data-bs-target=#fullWidthMenu aria-expanded=false aria-controls=fullWidthMenu>
3<img id=menu-icon src=/images/menu-icon.png data-icon-close=/images/close-x-icon.png alt=Menu width=20 height=20></button></div></div></div></div><div id=main-nav-container class=container><div class=row><div class="col text-center py-0"><ul class="nav justify-content-center py-0 flex-nowrap"><li class=nav-item><a class="nav-link serif active" href=/laws/ onclick='fathom.trackEvent("Header - Laws")'>Laws</a></li><li class=nav-item><a class="nav-link serif" href=/architects/ onclick='fathom.trackEvent("Header - Architects")'>Architects</a></li><li class=nav-item><a class="nav-link serif" href=/podcast/ onclick='fathom.trackEvent("Header - Podcast")'>Podcast</a></li></ul></div></div></div><div class=collapse id=fullWidthMenu><div class="bg-black menu-main navbar-nav w-100"><div class=container><div class="row flex-column flex-md-row"><div class="col-12 col-md-8 mb-4 mb-md-0"><h3 class="orange serif mb-3" style=font-size:18pt>Laws of Frugal Architecture</h3><div class="row mb-2 white"><div class="col-2 serif law-num">I.</div><div class="col law-title"><a href=/laws/#law-wrapper-I class="white serif" data-law=I>Make Cost a Non-functional Requirement</a></div></div><div class="row mb-2 white"><div class="col-2 serif law-num">II.</div><div class="col law-title"><a href=/laws/#law-wrapper-II class="white serif" data-law=II>Systems that Last Align Cost to Business</a></div></div><div class="row mb-2 white"><div class="col-2 serif law-num">III.</div><div class="col law-title"><a href=/laws/#law-wrapper-III class="white serif" data-law=III>Architecting is a Series of Trade-offs</a></div></div><div class="row mb-2 white"><div class="col-2 serif law-num">IV.</div><div class="col law-title"><a href=/laws/#law-wrapper-IV class="white serif" data-law=IV>Unobserved Systems Lead to Unknown Costs</a></div></div><div class="row mb-2 white"><div class="col-2 serif law-num">V.</div><div class="col law-title"><a href=/laws/#law-wrapper-V class="white serif" data-law=V>Cost Aware Architectures Implement Cost Controls</a></div></div><div class="row mb-2 white"><div class="col-2 serif law-num">VI.</div><div class="col law-title"><a href=/laws/#law-wrapper-VI class="white serif" data-law=VI>Cost Optimization is Incremental</a></div></div><div class="row mb-2 white"><div class="col-2 serif law-num">VII.</div><div class="col law-title"><a href=/laws/#law-wrapper-VII class="white serif" data-law=VII>Unchallenged Success Leads to Assumptions</a></div></div></div><div class="col-12 col-md-4 border-start-md"><div class="d-flex flex-column h-100"><div class="mb-4 ps-md-4 border-bottom border-secondary"><a href=/architects/ class="orange serif link" style=font-size:18pt>The Architects</a></div><div class="ps-md-4 mb-2"><a href=/architects/boyan-slat-theoceancleanup.html class="subitem white sans-serif">Boyan Slat</a><div class=lightGray style=font-size:10pt>Founder and CEO, The Ocean Cleanup</div></div><div class="ps-md-4 mb-2"><a href=/architects/craig-link-zillow.html class="subitem white sans-serif">Craig Link</a><div class=lightGray style=font-size:10pt>Chief Cloud Architect, Zillow</div></div><div class="ps-md-4 mb-2"><a href=/architects/morten-keldebaek-robert-christiansen-too-good-to-go.html class="subitem white sans-serif">Morten Keldebaek & Robert Christiansen</a><div class=lightGray style=font-size:10pt>CTO & VP Engineering, Too Good To Go</div></div><div class="ps-md-4 mb-2"><a href=/architects/tom-leaman-warner-bros-discovery.html class="subitem white sans-serif">Tom Leaman</a><div class=lightGray style=font-size:10pt>VP of Site Reliability Engineering, Warner Bros. Discovery</div></div><div class="ps-md-4 mb-2"><a href=/architects/john-mills-david-merritt-watch-duty.html class="subitem white sans-serif">John Mills & David Merritt</a><div class=lightGray style=font-size:10pt>CEO & CTO, Watch Duty</div></div><div class="ps-md-4 mb-2"><a href=/architects/mike-norton-pbs.html class="subitem white sans-serif">Mike Norton</a><div class=lightGray style=font-size:10pt>VP of Cloud Technologies, PBS</div></div><div class="ps-md-4 mb-2"><a href=/architects/dan-conti-wetransfer.html class="subitem white sans-serif">Dan Conti</a><div class=lightGray style=font-size:10pt>Former CTO, WeTransfer</div></div><div class="ps-md-4 mt-2"><hr class=lightGray><div class="d-flex flex-column"><a href=/podcast/ class="subitem white sans-serif mb-2">The Frugal Architect Podcast</a></div></div><div class="row mt-3 ps-md-4 pb-3"><div class="col d-flex align-items-center"><img src=/images/social-linkedin.png alt=LinkedIn class=social-icon>
4<a href=# class="subitem white sans-serif">LinkedIn</a></div><div class="col d-flex align-items-center"><img src=/images/social-twitter.png alt=Twitter class=social-icon>
5<a href=# class="subitem white sans-serif">X/Twitter</a></div></div></div></div></div></div></div></div></div></nav></header>
5<script>document.addEventListener("DOMContentLoaded",function(){const t=document.getElementById("fullWidthMenu"),s=document.querySelector(".navbar"),e=document.getElementById("menu-icon"),c=e.src,o=document.querySelector("#tfa-title"),n=document.querySelector(".main-header"),i=document.getElementById("main-nav-container"),a=document.querySelector(".w-100.border-bottom"),r=n.classList.contains("bg-black");t.addEventListener("show.bs.collapse",function(){s.classList.add("menu-expanded"),e.classList.add("menu-open"),e.src=e.getAttribute("data-icon-close"),r||(o.classList.add("white"),n.classList.add("bg-black")),i.classList.add("invisible"),a.classList.add("border-bottom-0")}),t.addEventListener("hide.bs.collapse",function(){s.classList.remove("menu-expanded"),e.classList.remove("menu-open"),e.src=c,r||(o.classList.remove("white"),n.classList.remove("bg-black")),i.classList.remove("invisible"),a.classList.remove("border-bottom-0")}),document.querySelectorAll(".law-title a[data-law]").forEach(e=>{e.addEventListener("click",function(e){const n=this.getAttribute("data-law");if(window.location.pathname==="/laws/"){e.preventDefault();const s=document.querySelector(`#law-wrapper-${n}`);s&&(bootstrap.Collapse.getInstance(t).hide(),setTimeout(()=>{s.scrollIntoView({behavior:"smooth"}),s.querySelector(".law-title").click()},300))}})})})</script>
5<main id=main><div id=content><div class="hero-section bg-black text-center"><div class="container bg-black py-4"><div class="row pt-4"><div class="col-md-8 offset-md-2"><h1 class="white sans-serif">The <strong>Laws</strong> of<br>Frugal Architecture</h1></div></div><div class="row mt-4"><div class="col-md-6 offset-md-3 px-4"><p class="h3 white serif">Simple laws for building cost-aware, sustainable, and modern architectures</p></div></div><div class="row my-4"><div class=col-md-12><a href=#laws class=smooth-scroll data-bs-smooth-scroll=true><img alt="Go to Laws" src=/images/chevron-circle-white.png width=17 height=17></a></div></div><div class=row><div class=col-md-12><img src=/images/tfa-cover.png alt="Book cover with title The Frugal Architect" class="img-fluid offset-image" style=width:340px></div></div></div></div><div id=laws class="laws-section bg-white text-left"><div class="container pt-4 mb-5"><h4 aria-level=2 class="gray serif mt-3"><span class=fst-italic>PHASE:</span> DESIGN</h4><div role=list><div role=listitem id=law-wrapper-I class=bg-white><div class=container><button class="reset-button-styles d-block w-100 text-start accordion-trigger" aria-expanded=false aria-controls=content-I data-toggle=collapse data-target=#content-I><div class="row py-3" id=row-I style=border-bottom:var(--accordion-border);border-top:var(--accordion-border)><span class="serif law-num-smal fs-4" style=width:45px>I.</span><div class=col><span class="law-title serif fs-4">Make Cost a Non-functional Requirement</span></div><div class="col-auto m-auto"><img alt src=/images/chevron-small.png class=chevron style="transition:transform .3s"></div></div></button></div><div id=content-I class=collapse style=background-color:#f1f3f3><div class=container><div class="row my-4"><div class="col py-3"><p>A non-functional requirement specifies criteria that can be used to judge the operation of a system, rather than specific features or functions. Examples are accessibility, availability, scalability, security, portability, maintainability, and compliance. What often goes overlooked is cost.</p><p>Companies can fail because they don’t consider cost at every stage of the business – from design to development to operation – or because they’re not measuring it properly. The math is simple: if costs are higher than your revenue, your business is at risk.</p><p>By considering cost implications early and continuously, systems can be designed to balance features, time-to-market, and efficiency. Development can focus on maintaining lean and efficient code. And operations can fine-tune resource usage and spending to maximize profitability.</p></div></div><div class="row justify-content-center py-4"><div class=col-auto><a href=#laws class=smooth-scroll><span style=color:#888>Top</span>
6<img alt src=/images/chevron-circle-gray-up.png width=17 height=17></a></div></div></div></div></div><div role=listitem id=law-wrapper-II class=bg-white><div class=container><button class="reset-button-styles d-block w-100 text-start accordion-trigger" aria-expanded=false aria-controls=content-II data-toggle=collapse data-target=#content-II><div class="row py-3" id=row-II style=border-bottom:var(--accordion-border)><span class="serif law-num-smal fs-4" style=width:45px>II.</span><div class=col><span class="law-title serif fs-4">Systems that Last Align Cost to Business</span></div><div class="col-auto m-auto"><img alt src=/images/chevron-small.png class=chevron style="transition:transform .3s"></div></div></button></div><div id=content-II class=collapse style=background-color:#f1f3f3><div class=container><div class="row my-4"><div class="col py-3"><p>The durability of a system depends on how well its costs are aligned to the business model. When designing and building systems, we must consider the revenue sources and profit levers. It&rsquo;s important to find the dimension you&rsquo;re going to make money over, then make sure the architecture follows the money.</p><p>For example, in e-commerce, that dimension might be the number of orders. When orders go up, infrastru
6cture and operation costs rise. And that&rsquo;s okay, because if your system is architected well, you can start to exploit economies of scale. What&rsquo;s important is that infrastructure costs have a measurable impact on the business.</p><p>As builders, we need to think about revenue – and use that knowledge to inform our choices. Because growth at all costs leads to a trail of destruction.</p></div></div><div class="row justify-content-center py-4"><div class=col-auto><a href=#laws class=smooth-scroll><span style=color:#888>Top</span>
7<img alt src=/images/chevron-circle-gray-up.png width=17 height=17></a></div></div></div></div></div><div role=listitem id=law-wrapper-III class=bg-white><div class=container><button class="reset-button-styles d-block w-100 text-start accordion-trigger" aria-expanded=false aria-controls=content-III data-toggle=collapse data-target=#content-III><div class="row py-3" id=row-III style=border-bottom:var(--accordion-border)><span class="serif law-num-smal fs-4" style=width:45px>III.</span><div class=col><span class="law-title serif fs-4">Architecting is a Series of Trade-offs</span></div><div class="col-auto m-auto"><img alt src=/images/chevron-small.png class=chevron style="transition:transform .3s"></div></div></button></div><div id=content-III class=collapse style=background-color:#f1f3f3><div class=container><div class="row my-4"><div class="col py-3"><p>In architecture, every decision comes with a trade-off. Cost, resilience, and performance are non-functional requirements that are often at tension with each other.</p><p>As the saying goes, &ldquo;Everything fails, all the time.&rdquo; Being able to defend against failure means investing in resilience, but performance may pay the price.</p><p>It&rsquo;s crucial to find the right balance between your technical and business needs – to find the sweet spot that aligns with your risk tolerance and budget. Remember, frugality is about maximizing value, not just minimizing spend. And to do that, you need to determine what you&rsquo;re willing to pay for.</p></div></div><div class="row justify-content-center py-4"><div class=col-auto><a href=#laws class=smooth-scroll><span style=color:#888>Top</span>
8<img alt src=/images/chevron-circle-gray-up.png width=17 height=17></a></div></div></div></div></div></div><h4 aria-level=2 class="gray serif mt-5"><span class=fst-italic>PHASE:</span> MEASURE</h4><div role=list><div role=listitem id=law-wrapper-IV class=bg-white><div class=container><button class="reset-button-styles d-block w-100 text-start accordion-trigger" aria-expanded=false aria-controls=content-IV data-toggle=collapse data-target=#content-IV><div class="row py-3" id=row-IV style=border-bottom:var(--accordion-border);border-top:var(--accordion-border)><span class="serif law-num-smal fs-4" style=width:45px>IV.</span><div class=col><span class="law-title serif fs-4">Unobserved Systems Lead to Unknown Costs</span></div><div class="col-auto m-auto"><img alt src=/images/chevron-small.png class=chevron style="transition:transform .3s"></div></div></button></div><div id=content-IV class=collapse style=background-color:#f1f3f3><div class=container><div class="row my-4"><div class="col py-3"><p>Without careful observation and measurement, the true costs of operating a system remain invisible. Like a utility meter tucked away in a basement, lack of visibility enables wasteful habits. Making meters more visible can profoundly shift behaviors.</p><p>Though observation requires investment, not implementing adequate monitoring is shortsighted. The adage warns, &ldquo;If you can&rsquo;t measure it, you can&rsquo;t manage it.&rdquo; Tracking utilization, spending, errors, and more, is crucial for cost management.</p><p>When critical cost metrics are placed front-and-center before engineers and their business partners, more sustainable practices emerge organically. Ongoing inspection lets you spot excess spend and tune operations to trim expenses. The return on investment in observability typically far outweighs the expense.</p><p>Most importantly, keeping costs in the forefront encourages sustainable practices.</p></div></div><div class="row justify-content-center py-4"><div class=col-auto><a href=#laws class=smooth-scroll><span style=color:#888>Top</span>
9<img alt src=/images/chevron-circle-gray-up.png width=17 height=17></a></div></div></div></div></div><div role=listitem id=law-wrapper-V class=bg-white><div class=container><button class="reset-button-styles d-block w-100 text-start accordion-trigger" aria-expanded=false aria-controls=content-V data-toggle=collapse data-target=#content-V><div class="row py-3" id=row-V style=border-bottom:var(--accordion-border)><span class="serif law-num-smal fs-4" style=width:45px>V.</span><div class=col><span class="law-title serif fs-4">Cost Aware Architectures Implement Cost Controls</span></div><div class="col-auto m-auto"><img alt src=/images/chevron-small.png class=chevron style="transition:transform .3s"></div></div></button></div><div id=content-V class=collapse style=background-color:#f1f3f3><div class=container><div class="row my-4"><div class="col py-3"><p>The essence of frugal architecture is robust monitoring combined with the ability to optimize costs. Well-designed systems allow you to take action on opportunities for improvement. For this to work, decompose applications into tunable building blocks.<
9/p><p>A common approach is tiering components by criticality. Tier 1 components are essential; optimize regardless of cost. Tier 2 components are important but can be temporarily scaled down without major impact. Tier 3 components are &ldquo;nice-to-have&rdquo;; make them low-cost and easily controlled.</p><p>Defining tiers enables trade-offs between cost and other requirements. Granular control over components optimizes both cost and experience. Infrastructure, languages, databases should all be tunable. Architect and build systems with revenue and profit in mind. Cost optimization must be measurable and tied to business impact.</p></div></div><div class="row justify-content-center py-4"><div class=col-auto><a href=#laws class=smooth-scroll><span style=color:#888>Top</span>
10<img alt src=/images/chevron-circle-gray-up.png width=17 height=17></a></div></div></div></div></div></div><h4 aria-level=2 class="gray serif mt-5"><span class=fst-italic>PHASE:</span> OBSERVE</h4><div role=list><div role=listitem id=law-wrapper-VI class=bg-white><div class=container><button class="reset-button-styles d-block w-100 text-start accordion-trigger" aria-expanded=false aria-controls=content-VI data-toggle=collapse data-target=#content-VI><div class="row py-3" id=row-VI style=border-bottom:var(--accordion-border);border-top:var(--accordion-border)><span class="serif law-num-smal fs-4" style=width:45px>VI.</span><div class=col><span class="law-title serif fs-4">Cost Optimization is Incremental</span></div><div class="col-auto m-auto"><img alt src=/images/chevron-small.png class=chevron style="transition:transform .3s"></div></div></button></div><div id=content-VI class=collapse style=background-color:#f1f3f3><div class=container><div class="row my-4"><div class="col py-3"><p>The pursuit of cost efficiency is an ongoing journey. Even after deployment, we must revisit systems to incrementally improve optimization. The key is continually questioning and diving deeper. Programming languages provide profiling tools to analyze code performance, and while these require setup and expertise, they enable granular analyses that can lead to changes that shave milliseconds. What may seem like small optimizations accumulate into large savings at scale.</p><p>In operations, most time is spent running existing systems. There are opportunities to profile resource usage and identify waste reduction. At Amazon, we continuously monitor services in production to understand patterns and trim inefficiencies. Frugality takes persistence – by incrementally reducing latencies and infrastructure costs, we can optimize the cost to serve.</p><p>There is always room for improvement… if we keep looking. The savings we reap today fund innovation for tomorrow.</p></div></div><div class="row justify-content-center py-4"><div class=col-auto><a href=#laws class=smooth-scroll><span style=color:#888>Top</span>
11<img alt src=/images/chevron-circle-gray-up.png width=17 height=17></a></div></div></div></div></div><div role=listitem id=law-wrapper-VII class=bg-white><div class=container><button class="reset-button-styles d-block w-100 text-start accordion-trigger" aria-expanded=false aria-controls=content-VII data-toggle=collapse data-target=#content-VII><div class="row py-3" id=row-VII style=border-bottom:var(--accordion-border)><span class="serif law-num-smal fs-4" style=width:45px>VII.</span><div class=col><span class="law-title serif fs-4">Unchallenged Success Leads to Assumptions</span></div><div class="col-auto m-auto"><img alt src=/images/chevron-small.png class=chevron style="transition:transform .3s"></div></div></button></div><div id=content-VII class=collapse style=background-color:#f1f3f3><div class=container><div class="row my-4"><div class="col py-3"><p>When software teams achieve significant success without facing major failures or roadblocks, complacency can set in. There is a dangerous tendency to become overconfident in the methods, tools, and practices that led to those wins.</p><p>Software teams often fall into the trap of assuming their current technologies, architectures, or languages will always be the best choice, simply because they have worked in the past. This can create a false sense of security that discourages questioning the status quo or exploring new options which could be more efficient, cost-effective, or scalable.</p><p>You see this frequently when it comes to programming languages. &ldquo;We&rsquo;re a Java shop&rdquo; is a phrase I&rsquo;ve heard too often – and it can stifle innovation. Unchallenged success breeds complacency through assumptions. We must always look for ways to question, optimize and improve.</p><p>As Grace Hopper famously stated, one of the most dangerous phrases in the English language is: &ldquo;We&rsquo;ve always done it this way.&rdquo;</p></div></div><div class="row justify-content-center py-4"><div class=col-auto><a href=#laws class=smooth-scroll><span style=color:#888>Top</span>
12<img alt src=/images/chevron-circle-gray-up.png width=17 height=17></a></div></div></div></div></div></div></div></div><section id=architects class="section mt-5"><div class=container><div class=row><div class="col-12 col-md-6 d-flex justify-content-center align-items-center"><img src=/images/wv-cropped.png alt=Architect class=img-fluid></div><div class="col-12 col-md-6 d-flex justify-content-center align-items-center"><div class=text-white><h3 aria-level=2 class="sans-serif architects-title">The <strong>Architects</strong></h3><p class="serif architects-subtitle">Firsthand frugal insights from seasoned cloud architects</p><a href=/architects class="read-articles text-white">READ ARTICLES</a></div></div></div></div></section>
12<script>document.addEventListener("DOMContentLoaded",function(){var e=document.querySelectorAll(".accordion-trigger");function t(e){var n=document.querySelector(e.getAttribute("data-target")),t=document.getElementById("law-wrapper-"+e.getAttribute("data-target").split("-")[1]),s=t.querySelector(".chevron"),o=t.querySelector(".accordion-trigger");document.querySelectorAll(".collapse.show").forEach(function(e){if(e!==n){var o,i,s=document.getElementById("law-wrapper-"+e.id.split("-")[1]);s.style.backgroundColor="#ffffff",o=s.querySelector(".chevron"),o.style.transform="rotate(0deg)",e.classList.remove("show"),i=t.querySelector(".accordion-trigger"),i.ariaExpanded="false"}}),n.classList.toggle("show"),n.classList.contains("show")?(s.style.transform="rotate(180deg)",t.style.backgroundColor="#f1f3f3",o.ariaExpanded="true"):(s.style.transform="rotate(0deg)",t.style.backgroundColor="#ffffff",o.ariaExpanded="false")}if(e.forEach(function(e){e.addEventListener("click",function(){t(e)})}),window.location.hash){const e=document.querySelector(window.location.hash);e&&setTimeout(()=>{e.scrollIntoView({behavior:"smooth"});const t=e.querySelector(".collapse"),s=e.querySelector(".law-title"),n=e.querySelector(".chevron");t&&!t.classList.contains("show")&&(t.classList.add("show"),n.style.transform="rotate(180deg)",e.style.backgroundColor="#f1f3f3")},300)}})</script>
12</div></main><footer class="mt-4 py-4 mt-auto border-top-full"><div class="container pt-4 pb-1 my-1"><div class=row><div class=col-4><div class="d-flex flex-column"><p class="orange serif text-uppercase m-0 h3">THE<br>FRUGAL<br>ARCHITECT</p><small class="orange mt-2">© 2026 The Frugal Architect</small></div></div><div class="col-8 text-end"><div class=row><a href=/laws/ class="footer-link mb-1">Laws</a>
13<a href=/architects/ class="footer-link mb-1">Architects</a>
14<a href=/podcast/ class="footer-link mb-1">Podcast</a></div></div></div></div></div></footer>
14<script src=/js/bootstrap/bootstrap.bundle.min.min.c90b9b454b73b06a9a0995c2e13ec9d39ba80362f34c0df2121a1082696ed4a150a348b559791bbc32d172b2246b44f6342722d553e22d78d8e908b169a12035.js integrity="sha512-yQubRUtzsGqaCZXC4T7J05uoA2LzTA3yEhoQgmlu1KFQo0i1WXkbvDLRcrIka0T2NCci1VPiLXjY6QixaaEgNQ==" crossorigin=anonymous defer></script>
14<script src=/js/main.min.e8d88c82c0438b527f1aca4115652ba1e2877bf805b75593b23ac0e3fe2b3fe95a467d1feef275355132ba061da6404b0d24d55afabc209b294b1db043be014d.js integrity="sha512-6NiMgsBDi1J/GspBFWUroeKHe/gFt1WTsjrA4/4rP+laRn0f7vJ1NVEyugYdpkBLDSTVWvq8IJspSx2wQ74BTQ==" crossorigin=anonymous defer></script>
14</body></html>

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.