{
    "archive_path": "archive/1759123562.567732",
    "base_url": "archaeologist.dev/artifacts/priorities",
    "basename": "priorities",
    "bookmarked_date": "2025-09-29 05:26",
    "canonical": {
        "archive_org_path": "https://web.archive.org/web/archaeologist.dev/artifacts/priorities",
        "dom_path": "output.html",
        "favicon_path": "favicon.ico",
        "git_path": "git/",
        "google_favicon_path": "https://www.google.com/s2/favicons?domain=archaeologist.dev",
        "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": "archaeologist.dev",
    "downloaded_at": "2025-09-29T05:26:10.770308+00:00",
    "downloaded_datestr": "2025-09-29 05:26",
    "extension": "",
    "hash": "1NCCNXBSAQ2C1KBTFFKY",
    "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://archaeologist.dev/artifacts/priorities"
                ],
                "cmd_version": "8.10.1",
                "end_ts": "2025-09-29T05:27:46.138604+00:00",
                "index_texts": null,
                "output": "TimeoutExpired: Command '['/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://archaeologist.dev/artifacts/priorities']' timed out after 60 seconds",
                "pwd": "/data/archive/1759123562.567732",
                "schema": "ArchiveResult",
                "start_ts": "2025-09-29T05:26:46.057120+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://archaeologist.dev/artifacts/priorities"
                ],
                "cmd_version": "131.0.6778",
                "end_ts": "2025-09-29T05:26:25.310638+00:00",
                "index_texts": null,
                "output": "output.html",
                "pwd": "/data/archive/1759123562.567732",
                "schema": "ArchiveResult",
                "start_ts": "2025-09-29T05:26:19.718968+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=archaeologist.dev"
                ],
                "cmd_version": "8.10.1",
                "end_ts": "2025-09-29T05:26:15.066421+00:00",
                "index_texts": null,
                "output": "favicon.ico",
                "pwd": "/data/archive/1759123562.567732",
                "schema": "ArchiveResult",
                "start_ts": "2025-09-29T05:26:11.332081+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://archaeologist.dev/artifacts/priorities"
                ],
                "cmd_version": "8.10.1",
                "end_ts": "2025-09-29T05:26:15.166796+00:00",
                "index_texts": null,
                "output": "headers.json",
                "pwd": "/data/archive/1759123562.567732",
                "schema": "ArchiveResult",
                "start_ts": "2025-09-29T05:26:15.093223+00:00",
                "status": "succeeded"
            }
        ],
        "htmltotext": [
            {
                "cmd": [
                    "(internal) archivebox.extractors.htmltotext",
                    "./{singlefile,dom}.html"
                ],
                "cmd_version": "0.8.5rc51",
                "end_ts": "2025-09-29T05:26:39.652782+00:00",
                "index_texts": [
                    "(/favicon.ico) Priorities (/_next/static/css/0275f6d90e7ad339.css) (/_next/static/css/0f9823b70465c7a9.css) (/_next/static/css/0275f6d90e7ad339.css) (/_next/static/css/0f9823b70465c7a9.css)   (/) The Software Arch\u00e6ologist   Priorities September 28, 2025  Adam Thalhammer  Story time. I used to live in a rented townhouse across the street from a\nmansion. One night, its inhabitants hosted a flamboyant outdoor pool party /\nrave with many guests, a professional DJ, and no regard for how their actions\nmight be impacting others. In the wee hours of the morning, our walls and\nfloors were still reverberating from the music, loud screams were heard, and\nguests were seen climbing onto the roof of a car. Knowing that my next door neighbours had just come home from the hospital with a\nnewborn, and wanting to get some sleep myself, I called the police; in my\njurisdiction, amplified music is illegal after 8pm. What do you think happened\nnext? Nothing was done, of course, and the reason why is worth considering. It was a\nFriday night. All kinds of violent and/or petty crimes were being committed,\nand the police were doing their best to prioritise. In the grand scheme of\nthings, a noise complaint seems rather quaint when compared to an armed\nrobbery. Effectively, their strategy was one of \"greedily\" allocating capacity\nto the highest priority items. What could possibly be wrong with that? The\nproblem is that by choosing not to act on the \"lower priority\" noise complaint,\nthey effectively repealed a law they had a mandate to uphold. I am not here to\njudge the people who attended the party (I'm sure many of them had a great\ntime!) nor the police (I guess they allocated their scarce resources to the\nmost pressing concerns). But this story does illustrates how a prioritisation\ndecision that seems completely reasonable in isolation can result in unintended\nconsequences -- in this case, a failure to prevent and/or punish antisocial\nbehaviour with (https://en.wikipedia.org/wiki/Health_effects_from_noise) downstream impacts on the health and happiness of others. Bringing it back to building software, many of us have been confronted with a\nsimilar challenge: how do we decide what to work on? If we strictly work on the\nmost urgent task, then less urgent (but still important) items such as bugs,\ntechnical debt, etc. will never get fixed, just like noise laws never get\nenforced, rendering them effectively non-existent. And just like in the real\nworld, this can have unintended consequences -- development velocity stalls as\nengineers get stuck in a quagmire of unresolved technical debt, customers get\nfed up with all the bugs and churn. What can be done to prevent this? We have two options: accept it and live with\nthe consequences, or adopt a portfolio strategy that focuses most of our\nresources on the most valuable problem to be solved, while reserving some capacity for important, but lower priority, items. Here are some approaches I've seen in the wild: Time allocation: reserve 1 day per week for non-urgent but important work\n(example: (https://blog.alexewerlof.com/p/tech-debt-day) Technical Debt Fridays )  Human allocation: dedicate 1 person to a particular kind of task for a week\n(example: (https://www.datadoghq.com/blog/on-call-rotations/#structuring-responsibilities) Datadog's practice of having on-call engineers work on operational\nimprovements rather than features )  Team allocation: create a dedicated team to handle a particular kind of task\n(example: (https://blog.pragmaticengineer.com/platform-teams/) Gergely Orosz's writeup on platform teams )  Zero tolerance: prioritise important work over urgent work to prevent it from\nbuilding up in the backlog (example: (https://linear.app/now/zero-bugs-policy) Linear's zero-bugs policy ).   On my team, we simply bring in at least one technical debt or operational\nexcellence ticket every single week; any engineer can propose one, and\ndepending on capacity, we may decide to pick up more than one. This has been\nworking well for us so far, in that we've managed to consistently ship new\ncapabilities while simultaneously keeping technical debt at bay and improving\nour standards of operational excellence over time. While there's still room for\nimprovement, I'm proud that we've been able to significantly reduce the amount\nof time spent on toilsome manual tasks and reduced the on-call burden to the\npoint where even early-career engineers on our team felt comfortable joining\nthe rotation. What about your, dear reader? Have you grappled with prioritisation challenges\nof your own? How did you balance the urgent versus the important? Let me know (https://twitter.com/intent/tweet?in_reply_to=1972210312343704031) on\nTwitter , (https://www.linkedin.com/posts/adamthalhammer_i-havent-been-very-successful-in-establishing-activity-7377978652673818624-aPyV) on\nLinkedIn or discuss (https://news.ycombinator.com/item?id=45402593) on the orange site .    (/) \u2190 Back to home      "
                ],
                "output": "htmltotext.txt",
                "pwd": "/data/archive/1759123562.567732",
                "schema": "ArchiveResult",
                "start_ts": "2025-09-29T05:26:39.637535+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://archaeologist.dev/artifacts/priorities"
                ],
                "cmd_version": "2024.10.7",
                "end_ts": "2025-09-29T05:26:46.017853+00:00",
                "index_texts": [],
                "output": "media/",
                "pwd": "/data/archive/1759123562.567732",
                "schema": "ArchiveResult",
                "start_ts": "2025-09-29T05:26:41.435191+00:00",
                "status": "succeeded"
            }
        ],
        "mercury": [
            {
                "cmd": [
                    "/home/archivebox/.npm/bin/postlight-parser",
                    "https://archaeologist.dev/artifacts/priorities"
                ],
                "cmd_version": "2.2.3",
                "end_ts": "2025-09-29T05:26:39.609473+00:00",
                "index_texts": null,
                "output": "mercury/",
                "pwd": "/data/archive/1759123562.567732",
                "schema": "ArchiveResult",
                "start_ts": "2025-09-29T05:26:37.819026+00:00",
                "status": "succeeded"
            }
        ],
        "pdf": [],
        "readability": [
            {
                "cmd": [
                    "/home/archivebox/.npm/bin/readability-extractor",
                    "/tmp/tmpviu4e0fw",
                    "https://archaeologist.dev/artifacts/priorities"
                ],
                "cmd_version": "0.0.11",
                "end_ts": "2025-09-29T05:26:29.071740+00:00",
                "index_texts": [
                    "Story time. I used to live in a rented townhouse across the street from a\nmansion. One night, its inhabitants hosted a flamboyant outdoor pool party /\nrave with many guests, a professional DJ, and no regard for how their actions\nmight be impacting others. In the wee hours of the morning, our walls and\nfloors were still reverberating from the music, loud screams were heard, and\nguests were seen climbing onto the roof of a car.\nKnowing that my next door neighbours had just come home from the hospital with a\nnewborn, and wanting to get some sleep myself, I called the police; in my\njurisdiction, amplified music is illegal after 8pm. What do you think happened\nnext?\nNothing was done, of course, and the reason why is worth considering. It was a\nFriday night. All kinds of violent and/or petty crimes were being committed,\nand the police were doing their best to prioritise. In the grand scheme of\nthings, a noise complaint seems rather quaint when compared to an armed\nrobbery. Effectively, their strategy was one of \"greedily\" allocating capacity\nto the highest priority items. What could possibly be wrong with that? The\nproblem is that by choosing not to act on the \"lower priority\" noise complaint,\nthey effectively repealed a law they had a mandate to uphold. I am not here to\njudge the people who attended the party (I'm sure many of them had a great\ntime!) nor the police (I guess they allocated their scarce resources to the\nmost pressing concerns). But this story does illustrates how a prioritisation\ndecision that seems completely reasonable in isolation can result in unintended\nconsequences -- in this case, a failure to prevent and/or punish antisocial\nbehaviour with downstream impacts on the health and happiness of others.\nBringing it back to building software, many of us have been confronted with a\nsimilar challenge: how do we decide what to work on? If we strictly work on the\nmost urgent task, then less urgent (but still important) items such as bugs,\ntechnical debt, etc. will never get fixed, just like noise laws never get\nenforced, rendering them effectively non-existent. And just like in the real\nworld, this can have unintended consequences -- development velocity stalls as\nengineers get stuck in a quagmire of unresolved technical debt, customers get\nfed up with all the bugs and churn.\nWhat can be done to prevent this? We have two options: accept it and live with\nthe consequences, or adopt a portfolio strategy that focuses most of our\nresources on the most valuable problem to be solved, while reserving some\ncapacity for important, but lower priority, items.\nHere are some approaches I've seen in the wild:\n\nTime allocation: reserve 1 day per week for non-urgent but important work\n(example: Technical Debt Fridays)\n\nHuman allocation: dedicate 1 person to a particular kind of task for a week\n(example: Datadog's practice of having on-call engineers work on operational\nimprovements rather than features)\n\nTeam allocation: create a dedicated team to handle a particular kind of task\n(example: Gergely Orosz's writeup on platform teams)\n\nZero tolerance: prioritise important work over urgent work to prevent it from\nbuilding up in the backlog (example: Linear's zero-bugs policy).\n\n\nOn my team, we simply bring in at least one technical debt or operational\nexcellence ticket every single week; any engineer can propose one, and\ndepending on capacity, we may decide to pick up more than one. This has been\nworking well for us so far, in that we've managed to consistently ship new\ncapabilities while simultaneously keeping technical debt at bay and improving\nour standards of operational excellence over time. While there's still room for\nimprovement, I'm proud that we've been able to significantly reduce the amount\nof time spent on toilsome manual tasks and reduced the on-call burden to the\npoint where even early-career engineers on our team felt comfortable joining\nthe rotation.\nWhat about your, dear reader? Have you grappled with prioritisation challenges\nof your own? How did you balance the urgent versus the important? Let me know\non\nTwitter,\non\nLinkedIn\nor discuss on the orange site."
                ],
                "output": "readability/",
                "pwd": "/data/archive/1759123562.567732",
                "schema": "ArchiveResult",
                "start_ts": "2025-09-29T05:26:26.909753+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://archaeologist.dev/artifacts/priorities"
                ],
                "cmd_version": "8.10.1",
                "end_ts": "2025-09-29T05:26:25.633956+00:00",
                "index_texts": null,
                "output": "Priorities",
                "pwd": "/data/archive/1759123562.567732",
                "schema": "ArchiveResult",
                "start_ts": "2025-09-29T05:26:25.579091+00:00",
                "status": "succeeded"
            }
        ],
        "wget": []
    },
    "icons": null,
    "is_archived": true,
    "is_static": false,
    "latest": {
        "archive_org": "TimeoutExpired: Command '['/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://archaeologist.dev/artifacts/priorities']' timed out after 60 seconds",
        "dom": "output.html",
        "favicon": "favicon.ico",
        "git": null,
        "media": "media/",
        "pdf": null,
        "screenshot": null,
        "singlefile": null,
        "title": "Priorities",
        "warc": null,
        "wget": null
    },
    "link_dir": "/data/archive/1759123562.567732",
    "newest_archive_date": "2025-09-29T05:26:46.057120+00:00",
    "num_failures": 1,
    "num_outputs": 8,
    "oldest_archive_date": "2025-09-29T05:26:11.332081+00:00",
    "path": "/artifacts/priorities",
    "schema": "Link",
    "scheme": "https",
    "snapshot_abid": "snp_01K69YYR4Q8CF9A8E601VHHFVQ",
    "snapshot_id": "1d3e6c7e-ed15-48c1-addc-8737b718bf77",
    "sources": [
        "/data/sources/1759123561-import.txt"
    ],
    "tags": null,
    "tags_str": "",
    "timestamp": "1759123562.567732",
    "title": "Priorities",
    "url": "https://archaeologist.dev/artifacts/priorities"
}