{
    "archive_path": "archive/1777159919.225477",
    "base_url": "chronicbuildfailure.co/how-to-avoid-shipping-your-org-chart-c086effe751c",
    "basename": "how-to-avoid-shipping-your-org-chart-c086effe751c",
    "bookmarked_date": "2026-04-25 23:31",
    "canonical": {
        "archive_org_path": "https://web.archive.org/web/chronicbuildfailure.co/how-to-avoid-shipping-your-org-chart-c086effe751c",
        "dom_path": "output.html",
        "favicon_path": "favicon.ico",
        "git_path": "git/",
        "google_favicon_path": "https://www.google.com/s2/favicons?domain=chronicbuildfailure.co",
        "headers_path": "headers.json",
        "htmltotext_path": "htmltotext.txt",
        "index_path": "index.html",
        "media_path": "media/",
        "mercury_path": "mercury/content.html",
        "pdf_path": "output.pdf",
        "readability_path": "readability/content.html",
        "screenshot_path": "screenshot.png",
        "singlefile_path": "singlefile.html",
        "warc_path": "warc/",
        "wget_path": null
    },
    "domain": "chronicbuildfailure.co",
    "downloaded_at": "2026-04-25T23:32:08.729545+00:00",
    "downloaded_datestr": "2026-04-25 23:32",
    "extension": "",
    "hash": "Y9VS56JV8T1VDGGGT2XM",
    "history": {
        "archive_org": [
            {
                "cmd": [
                    "/usr/bin/curl",
                    "--silent",
                    "--location",
                    "--compressed",
                    "--proxy",
                    "socks5://tor-socks-proxy:9150",
                    "--head",
                    "--max-time",
                    "60",
                    "--user-agent",
                    "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.0.0.0 Safari/537.36 ArchiveBox/{VERSION} (+https://github.com/ArchiveBox/ArchiveBox/)",
                    "https://web.archive.org/save/https://chronicbuildfailure.co/how-to-avoid-shipping-your-org-chart-c086effe751c"
                ],
                "cmd_version": "8.10.1",
                "end_ts": "2026-04-25T23:33:08.819613+00:00",
                "index_texts": null,
                "output": "ArchiveError: Failed to find \"content-location\" URL header in Archive.org response.",
                "pwd": "/data/archive/1777159919.225477",
                "schema": "ArchiveResult",
                "start_ts": "2026-04-25T23:33:07.114269+00:00",
                "status": "failed"
            }
        ],
        "dom": [
            {
                "cmd": [
                    "/usr/bin/chromium-browser",
                    "--proxy-server=socks5://tor-socks-proxy:9150",
                    "--disable-features=DarkMode",
                    "--run-all-compositor-stages-before-draw",
                    "--hide-scrollbars",
                    "--autoplay-policy=no-user-gesture-required",
                    "--no-first-run",
                    "--use-fake-ui-for-media-stream",
                    "--use-fake-device-for-media-stream",
                    "--simulate-outdated-no-au='Tue, 31 Dec 2099 23:59:59 GMT'",
                    "--headless=new",
                    "--no-sandbox",
                    "--no-zygote",
                    "--disable-dev-shm-usage",
                    "--disable-software-rasterizer",
                    "--disable-sync",
                    "--window-size=1440,2000",
                    "--user-agent=Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.0.0.0 Safari/537.36 ArchiveBox/{VERSION} (+https://github.com/ArchiveBox/ArchiveBox/)",
                    "--user-data-dir=/data/personas/Default/chrome_profile",
                    "--profile-directory=Default",
                    "--dump-dom",
                    "https://chronicbuildfailure.co/how-to-avoid-shipping-your-org-chart-c086effe751c"
                ],
                "cmd_version": "131.0.6778",
                "end_ts": "2026-04-25T23:32:46.057306+00:00",
                "index_texts": null,
                "output": "output.html",
                "pwd": "/data/archive/1777159919.225477",
                "schema": "ArchiveResult",
                "start_ts": "2026-04-25T23:32:20.461854+00:00",
                "status": "succeeded"
            }
        ],
        "favicon": [
            {
                "cmd": [
                    "/usr/bin/curl",
                    "--silent",
                    "--location",
                    "--compressed",
                    "--proxy",
                    "socks5://tor-socks-proxy:9150",
                    "--max-time",
                    "60",
                    "--output",
                    "favicon.ico",
                    "--user-agent",
                    "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.0.0.0 Safari/537.36 ArchiveBox/{VERSION} (+https://github.com/ArchiveBox/ArchiveBox/)",
                    "https://www.google.com/s2/favicons?domain=chronicbuildfailure.co"
                ],
                "cmd_version": "8.10.1",
                "end_ts": "2026-04-25T23:32:11.869740+00:00",
                "index_texts": null,
                "output": "favicon.ico",
                "pwd": "/data/archive/1777159919.225477",
                "schema": "ArchiveResult",
                "start_ts": "2026-04-25T23:32:09.148372+00:00",
                "status": "succeeded"
            }
        ],
        "git": [],
        "headers": [
            {
                "cmd": [
                    "/usr/bin/curl",
                    "--silent",
                    "--location",
                    "--compressed",
                    "--proxy",
                    "socks5://tor-socks-proxy:9150",
                    "--head",
                    "--max-time",
                    "60",
                    "--user-agent",
                    "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.0.0.0 Safari/537.36 ArchiveBox/{VERSION} (+https://github.com/ArchiveBox/ArchiveBox/)",
                    "https://chronicbuildfailure.co/how-to-avoid-shipping-your-org-chart-c086effe751c"
                ],
                "cmd_version": "8.10.1",
                "end_ts": "2026-04-25T23:32:12.270539+00:00",
                "index_texts": null,
                "output": "SSLError: None: Max retries exceeded with url: /how-to-avoid-shipping-your-org-chart-c086effe751c (Caused by None)",
                "pwd": "/data/archive/1777159919.225477",
                "schema": "ArchiveResult",
                "start_ts": "2026-04-25T23:32:11.930500+00:00",
                "status": "failed"
            }
        ],
        "htmltotext": [
            {
                "cmd": [
                    "(internal) archivebox.extractors.htmltotext",
                    "./{singlefile,dom}.html"
                ],
                "cmd_version": "0.8.5rc51",
                "end_ts": "2026-04-25T23:33:01.510010+00:00",
                "index_texts": [
                    "Avoid Shipping Your Org Chart. I\u2019ve worked at a few different\u2026 | by Jon Daniel | Apr, 2026 | Chronic Build Failure (https://miro.medium.com/v2/5d8de952517e8160e40ef9841c781cdc14a5db313057fa3c3de41c6f5b494b19) (Medium) (/osd.xml) (/manifest.json) (https://www.google.com) (https://www.gstatic.com) (https://glyph.medium.com/css/unbound.css) (https://glyph.medium.com/css/unbound.css) (https://medium.com/@binarycleric) (https://chronicbuildfailure.co/how-to-avoid-shipping-your-org-chart-c086effe751c) (android-app://com.medium.reader/https/medium.com/p/c086effe751c) (https://miro.medium.com/v2/resize:fill:152:152/10fd5c419ac61637245384e7099e131627900034828f4f386bdaa47a74eae156) (https://miro.medium.com/v2/resize:fill:120:120/10fd5c419ac61637245384e7099e131627900034828f4f386bdaa47a74eae156) (https://miro.medium.com/v2/resize:fill:76:76/10fd5c419ac61637245384e7099e131627900034828f4f386bdaa47a74eae156) (https://miro.medium.com/v2/resize:fill:60:60/10fd5c419ac61637245384e7099e131627900034828f4f386bdaa47a74eae156) (https://miro.medium.com/v2/resize:fill:500:500/7*GAOKVe--MXbEJmV9230oOQ.png)  (/sitemap/sitemap.xml) Sitemap  (https://play.google.com/store/apps/details?id=com.medium.reader&referrer=utm_source%3DmobileNavBar&source=post_page---top_nav_layout_nav-----------------------------------------) Open in app   Sign up   (https://medium.com/m/signin?operation=login&redirect=https%3A%2F%2Fchronicbuildfailure.co%2Fhow-to-avoid-shipping-your-org-chart-c086effe751c&source=post_page---top_nav_layout_nav-----------------------global_nav------------------) Sign in      (https://medium.com/?source=post_page---top_nav_layout_nav-----------------------------------------) Medium Logo        (Search) ()          Get app   (https://medium.com/m/signin?operation=register&redirect=https%3A%2F%2Fmedium.com%2Fnew-story&source=---top_nav_layout_nav-----------------------new_post_topnav------------------)    Write    (https://medium.com/search?source=post_page---top_nav_layout_nav-----------------------------------------)   Search    Sign up   (https://medium.com/m/signin?operation=login&redirect=https%3A%2F%2Fchronicbuildfailure.co%2Fhow-to-avoid-shipping-your-org-chart-c086effe751c&source=post_page---top_nav_layout_nav-----------------------global_nav------------------) Sign in      ()            (https://chronicbuildfailure.co/?source=post_page---publication_nav-6efbd51be2a5-c086effe751c---------------------------------------) Chronic Build Failure    \u00b7  Follow publication               (https://chronicbuildfailure.co/?source=post_page---post_publication_sidebar-6efbd51be2a5-c086effe751c---------------------------------------) (Chronic Build Failure)     Mindless ramblings from a supposedly professional software developer.   Follow publication            Avoid Shipping Your Org Chart (https://medium.com/@binarycleric?source=post_page---byline--c086effe751c---------------------------------------) (Jon Daniel)         (https://medium.com/@binarycleric?source=post_page---byline--c086effe751c---------------------------------------) Jon Daniel       Follow       4 min read \u00b7   18 hours ago    (https://medium.com/m/signin?actionUrl=https%3A%2F%2Fmedium.com%2F_%2Fvote%2Fchronic-build-failure%2Fc086effe751c&operation=register&redirect=https%3A%2F%2Fchronicbuildfailure.co%2Fhow-to-avoid-shipping-your-org-chart-c086effe751c&user=Jon+Daniel&userId=ad0e2af15627&source=---header_actions--c086effe751c---------------------clap_footer------------------)          5           1          (https://medium.com/m/signin?actionUrl=https%3A%2F%2Fmedium.com%2F_%2Fbookmark%2Fp%2Fc086effe751c&operation=register&redirect=https%3A%2F%2Fchronicbuildfailure.co%2Fhow-to-avoid-shipping-your-org-chart-c086effe751c&source=---header_actions--c086effe751c---------------------bookmark_footer------------------)          (https://medium.com/m/signin?actionUrl=https%3A%2F%2Fmedium.com%2Fplans%3Fdimension%3Dpost_audio_button%26postId%3Dc086effe751c&operation=register&redirect=https%3A%2F%2Fchronicbuildfailure.co%2Fhow-to-avoid-shipping-your-org-chart-c086effe751c&source=---header_actions--c086effe751c---------------------post_audio_button------------------)   Listen               Share               Press enter or click to view image in full size (Credit: https://www.youtube.com/watch?v=y8OnoxKotPQ)        I\u2019ve worked at a few different companies, and at every one of them I\u2019ve watched the same pattern play out. Somebody decides we should pull a chunk of functionality out into its own service. Two years later, somebody else decides we should consolidate it back. In between, a small group of people did the same job they were already doing, except now over HTTPS, with worse latency, query semantics they don\u2019t control, and a dependency graph nobody can hold in their head. The system isn\u2019t better. The org chart is. That\u2019s the failure mode I want to name. People keep shipping the org chart as a service architecture and pretending they\u2019ve solved a system problem. Here\u2019s how it actually unfolds. A team owns a chunk of functionality. They look at the codebase and decide it would be cleaner if their stuff lived behind its own boundary. They build a service with a tidy scope, a clean SLA, a good README. They ship it, get applause, and move on. The complexity that used to live in one repo (joins across tables, in-process filtering, transactional consistency) doesn\u2019t vanish. It migrates. Now it lives in every upstream caller. Somebody whose feature used to be a WHERE clause is writing a paginated HTTP loop and filtering rows in memory because the new API doesn\u2019t support filter composition, retrying on a 503 they didn\u2019t expect. They ask the owning team for a richer query. They\u2019re told it\u2019s not on the roadmap. A few quarters later, the extracted team is doing serene work behind their boundary. They refactor. They write design docs. Their tests pass. Meanwhile the apps that generate the revenue (the ones now carrying all the displaced complexity in their callsites) are getting harder to change. The pain got redistributed, and it got redistributed unevenly. The people who moved fastest got cleanliness. The people who own outcomes got a tax. Get Jon Daniel\u2019s stories in\u00a0your\u00a0inbox  Join Medium for free to get updates from\u00a0this\u00a0writer.  (Enter your email) ()    Subscribe   Subscribe       Remember me for faster sign in       Service extractions feel like progress while you\u2019re doing them. You can name the boundary, count the lines moved, the wiki page reads well. What you can\u2019t easily count is the cost you pay forever after: the deploy, the on-call rotation, the SDK, the schema versioning, the latency floor, the eternal question of who owns the thing nobody quite remembers extracting. Services aren\u2019t free. The bill is paid by people who didn\u2019t benefit from the extraction. I\u2019ve boiled it down to one test. A service should exist only when it\u2019s genuinely the wrong thing to keep in the monolith. Not when it would feel better to work on. Not when one team wants to stop coordinating with another. The worst version is when somebody pitches a service to escape gnarly SQL. That one sounds virtuous, and people fall for it constantly. You can\u2019t trade expressive, optimizable, indexable SQL for HTTP parameters and call it an improvement. JOINs don\u2019t get better when they become network hops. If the database is the bottleneck, fix the database. Add the index. Denormalize where the access pattern demands it. Move heavy aggregations into materialized views. Don\u2019t throw away the query planner because somebody got tired of writing CTEs. The less popular reason people ship the org chart is that the codebase is painful to work in, and a new service feels like a fresh start. It isn\u2019t. The new service will inherit, within six months, the same conditions that made the old codebase painful, because those conditions are organizational and not technical. The fix to a painful codebase is to fix the codebase. The fix to a fragmented system is rarely to fragment it more. If you\u2019re sitting in a meeting where the company is gearing up for its third \u201cthis time we\u2019re going to do it right\u201d microservices push, stay in the monolith until the monolith stops working in a way you can describe in a single sentence. Performance isolation the runtime can\u2019t provide. A scaling axis that genuinely diverges. A datasource that simply has to be owned somewhere else. When the answer is \u201cso my team has its own thing to ship,\u201d you\u2019re not solving a system problem. You\u2019re solving an org problem with a system tool, and the system will spend the next five years pushing back. The cleanest engineering organizations I\u2019ve worked in weren\u2019t the ones with the prettiest service catalog. They were the ones whose engineers had the conviction, every time it came up, that adding another box to the architecture diagram was a cost. The burden of proof was always on extraction, never on consolidation. Don\u2019t ship the org chart. If you ever need to extract a service, it should be because the system actually demanded it, in a sentence you can write down. Anything else is a reorg in disguise.          (https://medium.com/tag/microservices?source=post_page-----c086effe751c---------------------------------------) Microservices   (https://medium.com/tag/software-architecture?source=post_page-----c086effe751c---------------------------------------) Software Architecture   (https://medium.com/tag/engineering-management?source=post_page-----c086effe751c---------------------------------------) Engineering Management   (https://medium.com/tag/software-engineering?source=post_page-----c086effe751c---------------------------------------) Software Engineering   (https://medium.com/tag/distributed-systems?source=post_page-----c086effe751c---------------------------------------) Distributed Systems       (https://medium.com/m/signin?actionUrl=https%3A%2F%2Fmedium.com%2F_%2Fvote%2Fchronic-build-failure%2Fc086effe751c&operation=register&redirect=https%3A%2F%2Fchronicbuildfailure.co%2Fhow-to-avoid-shipping-your-org-chart-c086effe751c&user=Jon+Daniel&userId=ad0e2af15627&source=---footer_actions--c086effe751c---------------------clap_footer------------------)          5         (https://medium.com/m/signin?actionUrl=https%3A%2F%2Fmedium.com%2F_%2Fvote%2Fchronic-build-failure%2Fc086effe751c&operation=register&redirect=https%3A%2F%2Fchronicbuildfailure.co%2Fhow-to-avoid-shipping-your-org-chart-c086effe751c&user=Jon+Daniel&userId=ad0e2af15627&source=---footer_actions--c086effe751c---------------------clap_footer------------------)          5           1        (https://medium.com/m/signin?actionUrl=https%3A%2F%2Fmedium.com%2F_%2Fbookmark%2Fp%2Fc086effe751c&operation=register&redirect=https%3A%2F%2Fchronicbuildfailure.co%2Fhow-to-avoid-shipping-your-org-chart-c086effe751c&source=---footer_actions--c086effe751c---------------------bookmark_footer------------------)                        (https://chronicbuildfailure.co/?source=post_page---post_publication_info--c086effe751c---------------------------------------) (Chronic Build Failure)     (https://chronicbuildfailure.co/?source=post_page---post_publication_info--c086effe751c---------------------------------------) (Chronic Build Failure)     Follow      (https://chronicbuildfailure.co/?source=post_page---post_publication_info--c086effe751c---------------------------------------) Published in Chronic Build Failure   (/followers?source=post_page---post_publication_info--c086effe751c---------------------------------------) 19 followers   \u00b7  (/how-to-avoid-shipping-your-org-chart-c086effe751c?source=post_page---post_publication_info--c086effe751c---------------------------------------) Last published 18 hours ago   Mindless ramblings from a supposedly professional software developer.     Follow       (https://medium.com/@binarycleric?source=post_page---post_author_info--c086effe751c---------------------------------------) (Jon Daniel)     (https://medium.com/@binarycleric?source=post_page---post_author_info--c086effe751c---------------------------------------) (Jon Daniel)     Follow      (https://medium.com/@binarycleric?source=post_page---post_author_info--c086effe751c---------------------------------------) Written by Jon Daniel   (https://medium.com/@binarycleric/followers?source=post_page---post_author_info--c086effe751c---------------------------------------) 170 followers   \u00b7  (https://medium.com/@binarycleric/following?source=post_page---post_author_info--c086effe751c---------------------------------------) 155 following   Software Developer. Supposedly Professional. Others fret, hesitate, calculate, and pontificate. Like Winnie the Pooh, I just am.     Follow          Responses (1) (https://policy.medium.com/medium-rules-30e5502c4eb4?source=post_page---post_responses--c086effe751c---------------------------------------)         ()   Write a response   (https://medium.com/m/signin?operation=register&redirect=https%3A%2F%2Fchronicbuildfailure.co%2Fhow-to-avoid-shipping-your-org-chart-c086effe751c&source=---post_responses--c086effe751c---------------------respond_sidebar------------------) What are your thoughts?                  Cancel  Respond          See all responses          (https://help.medium.com/hc/en-us?source=post_page-----c086effe751c---------------------------------------) Help   (https://status.medium.com/?source=post_page-----c086effe751c---------------------------------------) Status   (https://medium.com/about?autoplay=1&source=post_page-----c086effe751c---------------------------------------) About   (https://medium.com/jobs-at-medium/work-at-medium-959d1a85284e?source=post_page-----c086effe751c---------------------------------------) Careers   (mailto:pressinquiries@medium.com) Press   (https://blog.medium.com/?source=post_page-----c086effe751c---------------------------------------) Blog   (https://policy.medium.com/medium-privacy-policy-f03bf92035c9?source=post_page-----c086effe751c---------------------------------------) Privacy   (https://policy.medium.com/medium-rules-30e5502c4eb4?source=post_page-----c086effe751c---------------------------------------) Rules   (https://policy.medium.com/medium-terms-of-service-9db0094a1e0f?source=post_page-----c086effe751c---------------------------------------) Terms   (https://speechify.com/medium?source=post_page-----c086effe751c---------------------------------------) Text to speech              (reCAPTCHA)           "
                ],
                "output": "htmltotext.txt",
                "pwd": "/data/archive/1777159919.225477",
                "schema": "ArchiveResult",
                "start_ts": "2026-04-25T23:33:01.455410+00:00",
                "status": "succeeded"
            }
        ],
        "media": [
            {
                "cmd": [
                    "/usr/local/bin/yt-dlp",
                    "--restrict-filenames",
                    "--trim-filenames",
                    "128",
                    "--write-description",
                    "--write-info-json",
                    "--write-annotations",
                    "--write-thumbnail",
                    "--no-call-home",
                    "--write-sub",
                    "--write-auto-subs",
                    "--convert-subs=srt",
                    "--yes-playlist",
                    "--continue",
                    "--no-abort-on-error",
                    "--ignore-errors",
                    "--geo-bypass",
                    "--add-metadata",
                    "--format=(bv*+ba/b)[filesize<=750m][filesize_approx<=?750m]/(bv*+ba/b)",
                    "--skip-download",
                    "--cache-dir=/data/yt-dlp-cache/",
                    "--cookies=/data/yt-dlp-cache/cookies.txt",
                    "--proxy=socks5://tor-socks-proxy:9150",
                    "--no-playlist",
                    "https://chronicbuildfailure.co/how-to-avoid-shipping-your-org-chart-c086effe751c"
                ],
                "cmd_version": "2024.10.7",
                "end_ts": "2026-04-25T23:33:06.946390+00:00",
                "index_texts": [],
                "output": "ArchiveError: Failed to save media",
                "pwd": "/data/archive/1777159919.225477",
                "schema": "ArchiveResult",
                "start_ts": "2026-04-25T23:33:04.485510+00:00",
                "status": "failed"
            }
        ],
        "mercury": [
            {
                "cmd": [
                    "/home/archivebox/.npm/bin/postlight-parser",
                    "--format=text",
                    "https://chronicbuildfailure.co/how-to-avoid-shipping-your-org-chart-c086effe751c"
                ],
                "cmd_version": "2.2.3",
                "end_ts": "2026-04-25T23:33:01.396424+00:00",
                "index_texts": null,
                "output": "ArchiveError: Got /home/archivebox/.npm/bin/postlight-parser response code: 1).",
                "pwd": "/data/archive/1777159919.225477",
                "schema": "ArchiveResult",
                "start_ts": "2026-04-25T23:32:59.849846+00:00",
                "status": "failed"
            }
        ],
        "pdf": [],
        "readability": [
            {
                "cmd": [
                    "/home/archivebox/.npm/bin/readability-extractor",
                    "/tmp/tmpwcurmrec",
                    "https://chronicbuildfailure.co/how-to-avoid-shipping-your-org-chart-c086effe751c"
                ],
                "cmd_version": "0.0.11",
                "end_ts": "2026-04-25T23:32:50.413120+00:00",
                "index_texts": [
                    "I\u2019ve worked at a few different companies, and at every one of them I\u2019ve watched the same pattern play out. Somebody decides we should pull a chunk of functionality out into its own service. Two years later, somebody else decides we should consolidate it back. In between, a small group of people did the same job they were already doing, except now over HTTPS, with worse latency, query semantics they don\u2019t control, and a dependency graph nobody can hold in their head. The system isn\u2019t better. The org chart is.That\u2019s the failure mode I want to name. People keep shipping the org chart as a service architecture and pretending they\u2019ve solved a system problem.Here\u2019s how it actually unfolds. A team owns a chunk of functionality. They look at the codebase and decide it would be cleaner if their stuff lived behind its own boundary. They build a service with a tidy scope, a clean SLA, a good README. They ship it, get applause, and move on. The complexity that used to live in one repo (joins across tables, in-process filtering, transactional consistency) doesn\u2019t vanish. It migrates. Now it lives in every upstream caller. Somebody whose feature used to be a WHERE clause is writing a paginated HTTP loop and filtering rows in memory because the new API doesn\u2019t support filter composition, retrying on a 503 they didn\u2019t expect. They ask the owning team for a richer query. They\u2019re told it\u2019s not on the roadmap.A few quarters later, the extracted team is doing serene work behind their boundary. They refactor. They write design docs. Their tests pass. Meanwhile the apps that generate the revenue (the ones now carrying all the displaced complexity in their callsites) are getting harder to change. The pain got redistributed, and it got redistributed unevenly. The people who moved fastest got cleanliness. The people who own outcomes got a tax.Get Jon Daniel\u2019s stories in\u00a0your\u00a0inboxJoin Medium for free to get updates from\u00a0this\u00a0writer.Remember me for faster sign inService extractions feel like progress while you\u2019re doing them. You can name the boundary, count the lines moved, the wiki page reads well. What you can\u2019t easily count is the cost you pay forever after: the deploy, the on-call rotation, the SDK, the schema versioning, the latency floor, the eternal question of who owns the thing nobody quite remembers extracting. Services aren\u2019t free. The bill is paid by people who didn\u2019t benefit from the extraction.I\u2019ve boiled it down to one test. A service should exist only when it\u2019s genuinely the wrong thing to keep in the monolith. Not when it would feel better to work on. Not when one team wants to stop coordinating with another. The worst version is when somebody pitches a service to escape gnarly SQL. That one sounds virtuous, and people fall for it constantly. You can\u2019t trade expressive, optimizable, indexable SQL for HTTP parameters and call it an improvement. JOINs don\u2019t get better when they become network hops. If the database is the bottleneck, fix the database. Add the index. Denormalize where the access pattern demands it. Move heavy aggregations into materialized views. Don\u2019t throw away the query planner because somebody got tired of writing CTEs.The less popular reason people ship the org chart is that the codebase is painful to work in, and a new service feels like a fresh start. It isn\u2019t. The new service will inherit, within six months, the same conditions that made the old codebase painful, because those conditions are organizational and not technical. The fix to a painful codebase is to fix the codebase. The fix to a fragmented system is rarely to fragment it more.If you\u2019re sitting in a meeting where the company is gearing up for its third \u201cthis time we\u2019re going to do it right\u201d microservices push, stay in the monolith until the monolith stops working in a way you can describe in a single sentence. Performance isolation the runtime can\u2019t provide. A scaling axis that genuinely diverges. A datasource that simply has to be owned somewhere else. When the answer is \u201cso my team has its own thing to ship,\u201d you\u2019re not solving a system problem. You\u2019re solving an org problem with a system tool, and the system will spend the next five years pushing back.The cleanest engineering organizations I\u2019ve worked in weren\u2019t the ones with the prettiest service catalog. They were the ones whose engineers had the conviction, every time it came up, that adding another box to the architecture diagram was a cost. The burden of proof was always on extraction, never on consolidation.Don\u2019t ship the org chart. If you ever need to extract a service, it should be because the system actually demanded it, in a sentence you can write down. Anything else is a reorg in disguise."
                ],
                "output": "readability/",
                "pwd": "/data/archive/1777159919.225477",
                "schema": "ArchiveResult",
                "start_ts": "2026-04-25T23:32:47.417748+00:00",
                "status": "succeeded"
            }
        ],
        "screenshot": [],
        "singlefile": [],
        "title": [
            {
                "cmd": [
                    "/usr/bin/curl",
                    "--silent",
                    "--location",
                    "--compressed",
                    "--proxy",
                    "socks5://tor-socks-proxy:9150",
                    "--max-time",
                    "60",
                    "--user-agent",
                    "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.0.0.0 Safari/537.36 ArchiveBox/{VERSION} (+https://github.com/ArchiveBox/ArchiveBox/)",
                    "https://chronicbuildfailure.co/how-to-avoid-shipping-your-org-chart-c086effe751c"
                ],
                "cmd_version": "8.10.1",
                "end_ts": "2026-04-25T23:32:46.437446+00:00",
                "index_texts": null,
                "output": "Avoid Shipping Your Org Chart. I\u2019ve worked at a few different\u2026 | by Jon Daniel | Apr, 2026 | Chronic Build Failure",
                "pwd": "/data/archive/1777159919.225477",
                "schema": "ArchiveResult",
                "start_ts": "2026-04-25T23:32:46.300007+00:00",
                "status": "succeeded"
            }
        ],
        "wget": []
    },
    "icons": null,
    "is_archived": true,
    "is_static": false,
    "latest": {
        "archive_org": "ArchiveError: Failed to find \"content-location\" URL header in Archive.org response.",
        "dom": "output.html",
        "favicon": "favicon.ico",
        "git": null,
        "media": "ArchiveError: Failed to save media",
        "pdf": null,
        "screenshot": null,
        "singlefile": null,
        "title": "Avoid Shipping Your Org Chart. I\u2019ve worked at a few different\u2026 | by Jon Daniel | Apr, 2026 | Chronic Build Failure",
        "warc": null,
        "wget": null
    },
    "link_dir": "/data/archive/1777159919.225477",
    "newest_archive_date": "2026-04-25T23:33:07.114269+00:00",
    "num_failures": 4,
    "num_outputs": 5,
    "oldest_archive_date": "2026-04-25T23:32:09.148372+00:00",
    "path": "/how-to-avoid-shipping-your-org-chart-c086effe751c",
    "schema": "Link",
    "scheme": "https",
    "snapshot_abid": "snp_01KQ3FRNNV195F7CBE01TD51ZG",
    "snapshot_id": "fc5d4bac-5bff-4c5f-8507-c0d374d287f0",
    "sources": [
        "/data/sources/1777159918-import.txt"
    ],
    "tags": null,
    "tags_str": "",
    "timestamp": "1777159919.225477",
    "title": "Avoid Shipping Your Org Chart. I\u2019ve worked at a few different\u2026 | by Jon Daniel | Apr, 2026 | Chronic Build Failure",
    "url": "https://chronicbuildfailure.co/how-to-avoid-shipping-your-org-chart-c086effe751c"
}