{
    "ready": true,
    "site": {
        "id": 0,
        "domain": "hazelweakly.me",
        "display_name": "Hazel Weakly",
        "primary_country_code": "",
        "category_name": "Personal: Portfolios & CVs"
    },
    "metrics": {
        "global_rank": 30312,
        "country_rank": 15995,
        "category_rank": 43,
        "daily_pageviews_per_visitor": 3.8,
        "daily_time_on_site_seconds": 290,
        "bounce_rate": 33.92,
        "search_visits_percent": 39.77,
        "total_sites_linking_in": 1,
        "monthly_unique_visitors": 74,
        "recorded_at": "2026-03-20 16:46:32"
    },
    "audit": {
        "score": 86
    },
    "traffic_sources": {
        "direct_percent": 28.71,
        "search_percent": 36.64,
        "social_percent": 4.97,
        "referral_percent": 12.91,
        "email_percent": 7.53,
        "paid_percent": 9.24
    },
    "seo_profile": {
        "backlinks_total": 1,
        "referring_domains": 1,
        "dofollow_backlinks_percent": 100,
        "organic_keywords": 60,
        "indexed_pages": 70,
        "page_speed_score": 98,
        "mobile_friendliness_score": 85,
        "authority_score": 26,
        "spam_risk_score": 15
    },
    "crawl_report": {
        "robots_status": 200,
        "sitemap_status": 200,
        "sitemap_total_urls": 70,
        "crawl_blocked": false,
        "crawl_blocked_by": "",
        "crawl_blocked_reason": "",
        "notes": [],
        "created_at": "2026-03-20 16:46:32"
    },
    "keywords": [
        {
            "keyword": "Hazel Weakly",
            "position": 24,
            "search_engine": "Estimated",
            "checked_at": "2026-04-17 16:49:22",
            "is_estimated": true
        },
        {
            "keyword": "Hazel Weakly personal: portfolios & cvs",
            "position": 26,
            "search_engine": "Estimated",
            "checked_at": "2026-04-17 16:49:22",
            "is_estimated": true
        },
        {
            "keyword": "Hazel Weakly reviews",
            "position": 28,
            "search_engine": "Estimated",
            "checked_at": "2026-04-17 16:49:22",
            "is_estimated": true
        },
        {
            "keyword": "hazel",
            "position": 30,
            "search_engine": "Estimated",
            "checked_at": "2026-04-17 16:49:22",
            "is_estimated": true
        },
        {
            "keyword": "weakly",
            "position": 32,
            "search_engine": "Estimated",
            "checked_at": "2026-04-17 16:49:22",
            "is_estimated": true
        },
        {
            "keyword": "hazelweakly",
            "position": 34,
            "search_engine": "Estimated",
            "checked_at": "2026-04-17 16:49:22",
            "is_estimated": true
        }
    ],
    "rating": {
        "overall": 64,
        "label": "Healthy",
        "breakdown": [
            {
                "label": "Technical foundation",
                "score": 17,
                "max": 18
            },
            {
                "label": "Authority & trust",
                "score": 8,
                "max": 30
            },
            {
                "label": "Reach & market presence",
                "score": 3,
                "max": 18
            },
            {
                "label": "Search visibility",
                "score": 3,
                "max": 12
            },
            {
                "label": "Engagement & retention",
                "score": 8,
                "max": 10
            },
            {
                "label": "Channels & diversification",
                "score": 4,
                "max": 6
            },
            {
                "label": "Registry stability",
                "score": 3,
                "max": 6
            },
            {
                "label": "Quality system",
                "score": 94,
                "max": 100
            },
            {
                "label": "Reputation system",
                "score": 35,
                "max": 100
            },
            {
                "label": "Safety system",
                "score": 100,
                "max": 100
            },
            {
                "label": "Evidence confidence",
                "score": 100,
                "max": 100
            }
        ],
        "authority_score": 26,
        "quality_score": 94,
        "reputation_score": 35,
        "safety_score": 100,
        "confidence_score": 100,
        "fraud_score": 1,
        "authority_signals": {
            "backlinks": 1,
            "referring_domains": 1,
            "organic_keywords": 60,
            "indexed_pages": 70,
            "monthly_visitors": 74,
            "global_rank": 30312,
            "engagement_score": 79,
            "crawl_quality_score": 98,
            "brand_completeness_score": 59,
            "link_diversity_score": 92,
            "technical_reliability_score": 94,
            "whois_score": 45,
            "whois_age_years": 0,
            "whois_stability_score": 100,
            "spam_penalty": 0
        },
        "whois_signals": {
            "age_years": 0,
            "days_to_expiry": null,
            "days_since_last_registry_update": null,
            "stability_score": 100,
            "registrar_changes": 0,
            "ownership_changes": 0,
            "nameserver_changes": 0,
            "status_changes": 0,
            "history_entries": 1,
            "privacy_protected": false,
            "dnssec_enabled": false,
            "has_registrant_country": false,
            "registrant_country": "",
            "nameserver_count": 0,
            "status_count": 0
        }
    },
    "authority_score": 26,
    "trust_score": 65,
    "domain_tags": {
        "primary_tag": "T",
        "primary_tag_score": 76,
        "primary_candidate": "T",
        "primary_candidate_score": 76,
        "tag_codes": "T,Uncertain",
        "tags": [
            {
                "code": "T",
                "label": "Trusted",
                "tone": "good",
                "description": "Strong trust, stability, and low-risk signals were detected.",
                "reason": "Low spam indicators plus strong trust, quality, registry, and stability signals were detected.",
                "message": "The site shows a reasonably trustworthy and stable profile.",
                "priority": 76,
                "score": 76,
                "match_percent": 76,
                "threshold_band": "strong"
            },
            {
                "code": "Uncertain",
                "label": "Uncertain",
                "tone": "unknown",
                "description": "External checks stayed inconclusive, so the model avoided a harder verdict.",
                "reason": "The evidence is mixed or only partially corroborated, so the system avoided a harder automated verdict.",
                "message": "The evidence is materially mixed or partially corroborated, so the model is avoiding a harder verdict.",
                "priority": 68,
                "score": 68,
                "match_percent": 68,
                "threshold_band": "strong"
            }
        ],
        "tag_breakdown": [
            {
                "code": "T",
                "label": "Trusted",
                "tone": "good",
                "description": "Strong trust, stability, and low-risk signals were detected.",
                "reason": "Low spam indicators plus strong trust, quality, registry, and stability signals were detected.",
                "message": "The site shows a reasonably trustworthy and stable profile.",
                "priority": 76,
                "score": 76,
                "match_percent": 76,
                "threshold_band": "strong"
            },
            {
                "code": "Uncertain",
                "label": "Uncertain",
                "tone": "unknown",
                "description": "External checks stayed inconclusive, so the model avoided a harder verdict.",
                "reason": "The evidence is mixed or only partially corroborated, so the system avoided a harder automated verdict.",
                "message": "The evidence is materially mixed or partially corroborated, so the model is avoiding a harder verdict.",
                "priority": 68,
                "score": 68,
                "match_percent": 68,
                "threshold_band": "strong"
            },
            {
                "code": "Infra",
                "label": "Risky infrastructure",
                "tone": "caution",
                "description": "The hosting / registrar / nameserver neighbourhood looks unusually risky.",
                "reason": "The infrastructure neighbourhood looks riskier than normal.",
                "message": "Infrastructure risk does not currently stand out.",
                "priority": 3,
                "score": 3,
                "match_percent": 3,
                "threshold_band": "none"
            },
            {
                "code": "C",
                "label": "Caution",
                "tone": "caution",
                "description": "Signals are mixed or weak, so this domain should be treated carefully.",
                "reason": "Review carefully: mixed trust signals.",
                "message": "The current crawl does not show a meaningful caution match.",
                "priority": 0,
                "score": 0,
                "match_percent": 0,
                "threshold_band": "none"
            },
            {
                "code": "Crypto",
                "label": "Crypto drainer risk",
                "tone": "toxic",
                "description": "Wallet-connect or seed-phrase theft patterns were detected.",
                "reason": "Wallet-connect or seed-phrase theft patterns were detected.",
                "message": "No meaningful crypto-drainer signals were detected.",
                "priority": 0,
                "score": 0,
                "match_percent": 0,
                "threshold_band": "none"
            }
        ],
        "nsfw_score": 0,
        "trust_score": 66,
        "manual": {
            "has_changes": false,
            "verified_status": "",
            "tag_codes": "",
            "rating_delta": 0,
            "authority_delta": 0,
            "trust_delta": 0,
            "note": "",
            "adjusted_by": 0,
            "adjusted_at": "",
            "lock_scores": false,
            "lock_flags": false
        },
        "summary": "Trusted (76% match) because low spam indicators plus strong trust, quality, registry, and stability signals were detected.",
        "external_intel": [],
        "external_decision": [],
        "signal_scores": [
            {
                "label": "Strongest tag heuristic",
                "value": "T · 76%",
                "tone": "good",
                "detail": "The highest raw tag match from the heuristic engine before visibility thresholds and manual overrides."
            },
            {
                "label": "Trust score",
                "value": "66/100",
                "tone": "caution",
                "detail": "Confidence derived from authority, crawl quality, stability, and risk signals."
            },
            {
                "label": "Authority score",
                "value": "26/100",
                "tone": "spam",
                "detail": "A higher authority score usually means broader reputation and backlink confidence."
            },
            {
                "label": "Spam risk",
                "value": "0/100",
                "tone": "good",
                "detail": "Lower is better. This blends spam indicators with false-positive protections for legitimate sites."
            },
            {
                "label": "Quality score",
                "value": "80/100",
                "tone": "good",
                "detail": "Based on crawl quality, content completeness, and technical evidence."
            },
            {
                "label": "Safety score",
                "value": "100/100",
                "tone": "good",
                "detail": "Higher is safer. Direct fraud signals can heavily cap this even when SEO signals look strong."
            },
            {
                "label": "Fraud score",
                "value": "1/100",
                "tone": "good",
                "detail": "Lower is better. This reflects phishing, drainer, fake-support, fake-shop, and malware signals."
            },
            {
                "label": "Infrastructure risk",
                "value": "3/100",
                "tone": "good",
                "detail": "Lower is better. This reflects the IP, registrar, and nameserver neighbourhood seen by the crawler."
            },
            {
                "label": "Evidence confidence",
                "value": "100/100",
                "tone": "good",
                "detail": "Higher means the crawler had enough pages and registry evidence to make a stronger call."
            },
            {
                "label": "External evidence",
                "value": "Low",
                "tone": "unknown",
                "detail": "Quality of the structured search and review evidence cluster."
            },
            {
                "label": "External decision",
                "value": "Inconclusive",
                "tone": "unknown",
                "detail": "How third-party evidence compares with the current candidate tag."
            },
            {
                "label": "NSFW score",
                "value": "0/100",
                "tone": "good",
                "detail": "Context-aware adult-content detection with medical / educational false-positive reduction."
            },
            {
                "label": "Registry stability",
                "value": "100/100",
                "tone": "good",
                "detail": "Based on age, expiry runway, and the amount of ownership / registrar churn."
            }
        ],
        "signal_sections": [
            {
                "title": "Registry & ownership",
                "items": [
                    {
                        "label": "Domain age",
                        "value": "—",
                        "tone": "unknown",
                        "detail": "Older domains generally carry more historical trust than very new ones."
                    },
                    {
                        "label": "Stability score",
                        "value": "100/100",
                        "tone": "good",
                        "detail": "Penalised by registrar, ownership, and nameserver churn."
                    },
                    {
                        "label": "Days to expiry",
                        "value": "—",
                        "tone": "unknown",
                        "detail": "Very short renewal windows can be a weak trust signal."
                    },
                    {
                        "label": "Registrar / ownership changes",
                        "value": "0 / 0",
                        "tone": "good",
                        "detail": "Frequent ownership churn can weaken trust."
                    },
                    {
                        "label": "Nameserver changes",
                        "value": "0",
                        "tone": "good",
                        "detail": "Repeated infrastructure changes can indicate instability."
                    },
                    {
                        "label": "DNSSEC / privacy",
                        "value": "DNSSEC off · privacy off",
                        "tone": "caution",
                        "detail": "DNSSEC strengthens DNS trust; privacy is neutral on its own."
                    }
                ]
            },
            {
                "title": "Reputation & search evidence",
                "items": [
                    {
                        "label": "Backlinks",
                        "value": "1",
                        "tone": "unknown",
                        "detail": "Broader backlink evidence usually improves confidence."
                    },
                    {
                        "label": "Referring domains",
                        "value": "1",
                        "tone": "unknown",
                        "detail": "Unique linking domains are more useful than raw link volume."
                    },
                    {
                        "label": "Organic keywords",
                        "value": "60",
                        "tone": "caution",
                        "detail": "Search footprint helps distinguish real sites from thin shells."
                    },
                    {
                        "label": "Indexed pages",
                        "value": "70",
                        "tone": "caution",
                        "detail": "Larger index coverage usually means more evidence to classify from."
                    },
                    {
                        "label": "Brand strength",
                        "value": "59/100",
                        "tone": "good",
                        "detail": "Stronger brand signals reduce false positives for legitimate sites."
                    },
                    {
                        "label": "Risk label",
                        "value": "GOOD",
                        "tone": "unknown",
                        "detail": "This is the raw crawl / heuristic risk label feeding the tag model."
                    }
                ]
            },
            {
                "title": "Crawl, content & technicals",
                "items": [
                    {
                        "label": "HTTP status",
                        "value": "200",
                        "tone": "good",
                        "detail": "Healthy responses make classification more reliable."
                    },
                    {
                        "label": "HTTPS / speed",
                        "value": "HTTPS OK · 335 ms",
                        "tone": "good",
                        "detail": "Slow or broken technical signals weaken confidence."
                    },
                    {
                        "label": "Content words",
                        "value": "42",
                        "tone": "spam",
                        "detail": "Thin pages are harder to trust and easier to manipulate."
                    },
                    {
                        "label": "Schema / structure",
                        "value": "0 schema · meta · H1",
                        "tone": "caution",
                        "detail": "Structured markup and basic on-page hygiene improve quality confidence."
                    },
                    {
                        "label": "Links on page",
                        "value": "8 internal · 0 external",
                        "tone": "good",
                        "detail": "Link patterns help detect thin directories and promo pages."
                    },
                    {
                        "label": "Page speed / mobile",
                        "value": "98/100 · 85/100",
                        "tone": "good",
                        "detail": "Better technical quality generally reduces low-effort site patterns."
                    },
                    {
                        "label": "Crawl access",
                        "value": "Open",
                        "tone": "good",
                        "detail": "The crawler reached the site without an anti-bot challenge."
                    }
                ]
            },
            {
                "title": "External evidence & explainability",
                "items": [
                    {
                        "label": "Decision state",
                        "value": "Inconclusive",
                        "tone": "unknown",
                        "detail": "Structured third-party evidence is still too thin, mixed, or unqualified to force a harder verdict."
                    },
                    {
                        "label": "Evidence quality",
                        "value": "Low",
                        "tone": "unknown",
                        "detail": "Blends source trust, domain matching, evidence diversity, and freshness."
                    },
                    {
                        "label": "Support vs contradiction",
                        "value": "0 / 0",
                        "tone": "unknown",
                        "detail": "Compares how much structured external evidence supports the candidate tag against evidence that contradicts it."
                    },
                    {
                        "label": "Qualified risk sources",
                        "value": "No",
                        "tone": "good",
                        "detail": "Risk tags only promote from external evidence when source diversity or source trust thresholds are met."
                    },
                    {
                        "label": "Uncertainty buffer",
                        "value": "Clear",
                        "tone": "good",
                        "detail": "Prevents thin or mixed external evidence from forcing a stronger tag than the evidence can justify."
                    }
                ]
            }
        ],
        "positives": [
            "Low registrar / ownership churn with solid registry stability.",
            "Healthy crawl quality and on-page completeness."
        ],
        "risks": []
    },
    "traffic_confidence": 39,
    "whois": {
        "current": {
            "id": 49671,
            "domain": "hazelweakly.me",
            "source_type": "whois_text",
            "rdap_url": "",
            "registrar_name": "",
            "registrar_handle": "",
            "registrant_name": "",
            "registrant_org": "",
            "registrant_country": "",
            "registrant_email": "",
            "abuse_email": "",
            "created_date": null,
            "updated_date": null,
            "expires_date": null,
            "nameservers_json": "[]",
            "status_json": "[]",
            "dnssec": "unknown",
            "privacy_protected": 0,
            "content_hash": "f7e17c57c5fdd24df1793ece6bff99716369356b90b29c4725ac3ba12a76b72c",
            "history_count": 1,
            "last_checked_at": "2026-03-20 16:46:29",
            "last_changed_at": "2026-03-20 16:46:29",
            "created_at": "2026-03-20 16:46:30",
            "updated_at": "2026-03-20 16:46:30"
        },
        "history": [
            {
                "id": 50691,
                "domain": "hazelweakly.me",
                "source_type": "whois_text",
                "registrar_name": "",
                "registrar_handle": "",
                "registrant_name": "",
                "registrant_org": "",
                "registrant_country": "",
                "registrant_email": "",
                "abuse_email": "",
                "created_date": null,
                "updated_date": null,
                "expires_date": null,
                "nameservers_json": "[]",
                "status_json": "[]",
                "dnssec": "unknown",
                "privacy_protected": 0,
                "content_hash": "f7e17c57c5fdd24df1793ece6bff99716369356b90b29c4725ac3ba12a76b72c",
                "checked_at": "2026-03-20 16:46:29",
                "change_summary": "Initial WHOIS snapshot captured.",
                "created_at": "2026-03-20 16:46:29"
            }
        ],
        "signals": {
            "age_years": 0,
            "days_to_expiry": null,
            "days_since_last_registry_update": null,
            "stability_score": 100,
            "registrar_changes": 0,
            "ownership_changes": 0,
            "nameserver_changes": 0,
            "status_changes": 0,
            "history_entries": 1,
            "privacy_protected": false,
            "dnssec_enabled": false,
            "has_registrant_country": false,
            "registrant_country": "",
            "nameserver_count": 0,
            "status_count": 0
        }
    },
    "discovered_domain": {
        "id": 80594,
        "domain": "hazelweakly.me",
        "first_seen_at": "2026-03-15 20:24:38",
        "last_crawled_at": "2026-03-20 16:46:32",
        "last_title": "Hazel Weakly",
        "last_http_status": 200,
        "discovered_from_domain": "personalsit.es",
        "depth": 0,
        "backlinks_count": 1,
        "rating_cache": 54,
        "spam_score": 34,
        "risk_label": "good",
        "category_name": "Personal: Portfolios & CVs",
        "primary_country_code": "",
        "internal_links_count": 8,
        "external_links_count": 0,
        "social_profiles_count": 0,
        "content_word_count": 42,
        "title_quality_score": 79,
        "has_meta_description": 1,
        "has_h1": 1,
        "language_code": "en",
        "response_time_ms": 335,
        "robots_status": 200,
        "sitemap_status": 200,
        "sitemap_total_urls": 70,
        "quality_score": 80,
        "site_name": "",
        "canonical_domain": "",
        "favicon_present": 1,
        "schema_org_count": 0,
        "noindex_detected": 0,
        "feed_links_count": 2,
        "https_working": 1,
        "estimated_authority_score": 23,
        "trust_score": 85,
        "nsfw_score": 0,
        "overall_rank_estimate": 27097,
        "primary_tag": "T",
        "tag_codes": "T",
        "manual_verified_status": "",
        "manual_tag_codes": "",
        "manual_rating_delta": 0,
        "manual_authority_delta": 0,
        "manual_trust_delta": 0,
        "manual_note": null,
        "manual_adjusted_by": null,
        "manual_adjusted_at": null,
        "manual_lock_scores": 0,
        "manual_lock_flags": 0,
        "crawl_blocked": 0,
        "crawl_blocked_by": "",
        "crawl_blocked_reason": null,
        "safety_score": 100,
        "fraud_score": 1,
        "legitimacy_score": 53,
        "infrastructure_risk_score": 3,
        "score_confidence": 100,
        "tag_confidence": 72,
        "category_confidence": 88,
        "deep_crawl_pages": 50,
        "resolved_ip": "35.157.26.135",
        "category_candidates_json": "[{\"category\":\"Personal: Portfolios & CVs\",\"score\":88}]",
        "page_signals_json": "[{\"path\":\"/about\",\"status\":200,\"title\":\"About Me | Hazel Weakly\",\"word_count\":1448,\"summary_text\":\"About Me | Hazel Weakly About Me | Hazel Weakly `use strict`;var util={keyCodes:{UP:38,DOWN:40,LEFT:37,RIGHT:39,HOME:36,END:35,ENTER:13,SPACE:32,DELETE:46,TAB:9},generateID:(a=>a+ window.Math.floor(window.Math.random()*999)),getDirectChildren:((a,b)=>Array.prototype.filter.call(a.children,(a=>a.matches(b)))),getUrlHash:(()=>window.location.hash.replace(`#`,``)),setUrlHash:(a=>{if(history.replaceState){history.replaceState(null,``,`#`+ a)}else{location.hash=a}}),preventFocus:(a=>{let d=`function`;a.preventDefault();var b=a.currentTarget;var c=a.relatedTarget;if(b&&typeof b.blur===d){b.blur()};if(c&&typeof c.focus===d){a.relatedTarget.focus()}})};((a,b,c)=>{let f=0,j=1,q=`keydown`,r=`data-atabs-toc`,k=`role`,i=`vertical`,l=``,n=`aria-selected`,h=`]`,m=`_tab_`,g=`[`,p=`data-controls`,o=`aria-controls`;var d={baseID:\",\"classification_terms\":[\"about\",\"about me\"],\"external_refs\":[],\"password_input_count\":0,\"email_input_count\":0,\"tel_input_count\":0,\"otp_term_count\":0,\"login_form_count\":0,\"checkout_form_count\":0,\"wallet_prompt_count\":0,\"offdomain_form_actions\":0,\"suspicious_script_refs_count\":0,\"external_script_hosts\":[\"zgo.at\"],\"executable_download_count\":0,\"archive_download_count\":0,\"apk_download_count\":0,\"phone_number_count\":0,\"depth\":1},{\"path\":\"/contact\",\"status\":200,\"title\":\"Contact | Hazel Weakly\",\"word_count\":71,\"summary_text\":\"Contact | Hazel Weakly Contact | Hazel Weakly Skip to contentHome Blog Media Listing About Me ContactPlease send media or speaking inquiries to: media at hazelweakly.me Social Media GitHub Mastodon Bluesky LinkedIn Discord Messaging .d{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round} hazelweakly dot zero one hazelweakly on matrix.org hazel at hazelweakly.me Calendar Contact Résumé Speaker Rider © 2026 Hazel Weaklydocument.documentElement.classList.remove(`no-js`)document.addEventListener(`DOMContentLoaded`,()=>{let m=`date`,k=`dark`,p=60,l=`light`,j=`(prefers-color-scheme: dark)`,i=`theme`,o=Date,n=Date.now;const a=document.querySelector(`.user-toggle button`);const b=document.querySelector(`.user-toggle [role=\\\"status\\\"]`);const c=()=>(localStorage.getItem(i)??getComputedStyle(document.do\",\"classification_terms\":[\"contact\",\"about\",\"about me\",\"blog\"],\"external_refs\":[],\"password_input_count\":0,\"email_input_count\":0,\"tel_input_count\":0,\"otp_term_count\":0,\"login_form_count\":0,\"checkout_form_count\":0,\"wallet_prompt_count\":0,\"offdomain_form_actions\":0,\"suspicious_script_refs_count\":0,\"external_script_hosts\":[\"zgo.at\"],\"executable_download_count\":0,\"archive_download_count\":0,\"apk_download_count\":0,\"phone_number_count\":0,\"depth\":1},{\"path\":\"/blog/\",\"status\":200,\"title\":\"Blog | Hazel Weakly\",\"word_count\":218,\"summary_text\":\"Blog | Hazel Weakly Blog | Hazel Weakly [role=tab],[role=tab]:focus,[role=tab]:hover{border-style:double;border-width:0;border-color:hsl(var(--color-bg));border-bottom-width:var(--space-0-5);border-bottom-color:hsl(var(--color-bg));cursor:pointer}Skip to contentHome Blog Media Listing About Me BlogPostsNotesRantsExternalSubscribe via RSSObservations of Leadership (Part Two) Jan 5, 2026To Be a Leader of Systems Nov 18, 2025Scaling Innovation: Building Ecosystems Oct 21, 2025Stop Building AI Tools Backwards May 16, 2025The Future of Observability: Observability 3.0 Dec 9, 2024You Have One Voice Oct 21, 2024OpenTelemetry Challenges: Handling Long-Running Spans Oct 10, 2024The 4 Evolutions of Your Observability Journey Oct 3, 2024Cache Me Not, Cache Me, Cache Me Not Sep 19, 2024Home Baked Abstractions, Store Boug\",\"classification_terms\":[\"blog\",\"about\",\"about me\",\"store\"],\"external_refs\":[],\"password_input_count\":0,\"email_input_count\":0,\"tel_input_count\":0,\"otp_term_count\":0,\"login_form_count\":0,\"checkout_form_count\":0,\"wallet_prompt_count\":0,\"offdomain_form_actions\":0,\"suspicious_script_refs_count\":0,\"external_script_hosts\":[\"zgo.at\"],\"executable_download_count\":0,\"archive_download_count\":0,\"apk_download_count\":0,\"phone_number_count\":0,\"depth\":1},{\"path\":\"/media/\",\"status\":200,\"title\":\"Media Listing | Hazel Weakly\",\"word_count\":414,\"summary_text\":\"Media Listing | Hazel Weakly Media Listing | Hazel Weakly Skip to contentHome Blog Media Listing About Me Media Listing Talks Coherent Impact: The Art of Strategy StaffPlus NYOct 15, 2025 SlidesProgram PageSo you want to hire engineering force multipliers? LDX3Jun 16, 2025 SlidesVideoProgram PageSo You Want to Hire for Platform Engineering? DeveloperWeek LeadershipMay 29, 2025 SlidesProgram PageObservability in Platform Engineering: Balancing Visibility and Performance KubeCrashMay 8, 2025 SlidesProgram PageCarrying The Torch: Grief and Remembrance in Open Source LinuxFest NorthwestApr 27, 2025 SlidesProgram PageThe Geology of Open Source LinuxFest NorthwestApr 26, 2025 SlidesProgram PageSo You Want to Hire for Platform Engineering? Platform Engineering Day, KubeCon EUApr 1, 2025 SlidesVideoProgram PageOperationalizin\",\"classification_terms\":[\"media\",\"about\",\"about me\",\"blog\"],\"external_refs\":[],\"password_input_count\":0,\"email_input_count\":0,\"tel_input_count\":0,\"otp_term_count\":0,\"login_form_count\":0,\"checkout_form_count\":0,\"wallet_prompt_count\":0,\"offdomain_form_actions\":0,\"suspicious_script_refs_count\":0,\"external_script_hosts\":[\"zgo.at\"],\"executable_download_count\":0,\"archive_download_count\":0,\"apk_download_count\":0,\"phone_number_count\":0,\"depth\":1},{\"path\":\"/about/\",\"status\":200,\"title\":\"About Me | Hazel Weakly\",\"word_count\":1448,\"summary_text\":\"About Me | Hazel Weakly About Me | Hazel Weakly `use strict`;var util={keyCodes:{UP:38,DOWN:40,LEFT:37,RIGHT:39,HOME:36,END:35,ENTER:13,SPACE:32,DELETE:46,TAB:9},generateID:(a=>a+ window.Math.floor(window.Math.random()*999)),getDirectChildren:((a,b)=>Array.prototype.filter.call(a.children,(a=>a.matches(b)))),getUrlHash:(()=>window.location.hash.replace(`#`,``)),setUrlHash:(a=>{if(history.replaceState){history.replaceState(null,``,`#`+ a)}else{location.hash=a}}),preventFocus:(a=>{let d=`function`;a.preventDefault();var b=a.currentTarget;var c=a.relatedTarget;if(b&&typeof b.blur===d){b.blur()};if(c&&typeof c.focus===d){a.relatedTarget.focus()}})};((a,b,c)=>{let f=0,j=1,q=`keydown`,r=`data-atabs-toc`,k=`role`,i=`vertical`,l=``,n=`aria-selected`,h=`]`,m=`_tab_`,g=`[`,p=`data-controls`,o=`aria-controls`;var d={baseID:\",\"classification_terms\":[\"about\",\"about me\"],\"external_refs\":[],\"password_input_count\":0,\"email_input_count\":0,\"tel_input_count\":0,\"otp_term_count\":0,\"login_form_count\":0,\"checkout_form_count\":0,\"wallet_prompt_count\":0,\"offdomain_form_actions\":0,\"suspicious_script_refs_count\":0,\"external_script_hosts\":[\"zgo.at\"],\"executable_download_count\":0,\"archive_download_count\":0,\"apk_download_count\":0,\"phone_number_count\":0,\"depth\":1},{\"path\":\"/calendar/\",\"status\":200,\"title\":\"Calendar | Hazel Weakly\",\"word_count\":97,\"summary_text\":\"Calendar | Hazel Weakly Calendar | Hazel Weakly Skip to contentHome Blog Media Listing About Me CalendarIf you’re someone who wants to schedule 30 minutes with me to chat about life, the universe, tech, swing dancing, or anything else, feel free. I’ll make an effort to prioritize availability for marginalized voices.Sales calls, recruiters, and cold pitches are welcome to setup an outreach meeting after first reaching out to me via LinkedIn. Calendar Contact Résumé Speaker Rider © 2026 Hazel Weaklydocument.documentElement.classList.remove(`no-js`)document.addEventListener(`DOMContentLoaded`,()=>{let m=`date`,k=`dark`,p=60,l=`light`,j=`(prefers-color-scheme: dark)`,i=`theme`,o=Date,n=Date.now;const a=document.querySelector(`.user-toggle button`);const b=document.querySelector(`.user-toggle [role=\\\"status\\\"]`);const\",\"classification_terms\":[\"calendar\",\"about\",\"about me\",\"contact\",\"blog\"],\"external_refs\":[],\"password_input_count\":0,\"email_input_count\":0,\"tel_input_count\":0,\"otp_term_count\":0,\"login_form_count\":0,\"checkout_form_count\":0,\"wallet_prompt_count\":0,\"offdomain_form_actions\":0,\"suspicious_script_refs_count\":0,\"external_script_hosts\":[\"b-cdn.net\",\"zgo.at\"],\"executable_download_count\":0,\"archive_download_count\":0,\"apk_download_count\":0,\"phone_number_count\":0,\"depth\":1},{\"path\":\"/contact/\",\"status\":200,\"title\":\"Contact | Hazel Weakly\",\"word_count\":71,\"summary_text\":\"Contact | Hazel Weakly Contact | Hazel Weakly Skip to contentHome Blog Media Listing About Me ContactPlease send media or speaking inquiries to: media at hazelweakly.me Social Media GitHub Mastodon Bluesky LinkedIn Discord Messaging .d{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round} hazelweakly dot zero one hazelweakly on matrix.org hazel at hazelweakly.me Calendar Contact Résumé Speaker Rider © 2026 Hazel Weaklydocument.documentElement.classList.remove(`no-js`)document.addEventListener(`DOMContentLoaded`,()=>{let m=`date`,k=`dark`,p=60,l=`light`,j=`(prefers-color-scheme: dark)`,i=`theme`,o=Date,n=Date.now;const a=document.querySelector(`.user-toggle button`);const b=document.querySelector(`.user-toggle [role=\\\"status\\\"]`);const c=()=>(localStorage.getItem(i)??getComputedStyle(document.do\",\"classification_terms\":[\"contact\",\"about\",\"about me\",\"blog\"],\"external_refs\":[],\"password_input_count\":0,\"email_input_count\":0,\"tel_input_count\":0,\"otp_term_count\":0,\"login_form_count\":0,\"checkout_form_count\":0,\"wallet_prompt_count\":0,\"offdomain_form_actions\":0,\"suspicious_script_refs_count\":0,\"external_script_hosts\":[\"zgo.at\"],\"executable_download_count\":0,\"archive_download_count\":0,\"apk_download_count\":0,\"phone_number_count\":0,\"depth\":1},{\"path\":\"/resume/\",\"status\":200,\"title\":\"Résumé | Hazel Weakly\",\"word_count\":990,\"summary_text\":\"Résumé | Hazel Weakly Résumé | Hazel Weakly dl{grid-gap:var(--space-0-5)var(--space-3);grid-template-columns:max-content 1fr;align-items:center;display:grid}dd>*+*,article ul>*+*{margin-top:var(--flow-space,var(--space-2))}dt{font-size:calc(var(--size-3)*.8);font-variant:small-caps;place-self:start self-end}Skip to contentHome Blog Media Listing About Me Résumé[View as PDF]Influential engineering leader and sought-after international keynote speaker; experienced in developer experience, observability, resilience, and distributed systems; with a focus on organisational change, holistic efficiency, and driving cross-functional business results in a sustainable manner.ExperienceArchitect V - Lead of GuardrailsCompanyING BankDateNov. 2025–PresentLocationUtrecht, NLOverviewActing as Central Product Owner and Enterpr\",\"classification_terms\":[\"resume\",\"about\",\"about me\",\"company\",\"blog\"],\"external_refs\":[],\"password_input_count\":0,\"email_input_count\":0,\"tel_input_count\":0,\"otp_term_count\":0,\"login_form_count\":0,\"checkout_form_count\":0,\"wallet_prompt_count\":0,\"offdomain_form_actions\":0,\"suspicious_script_refs_count\":0,\"external_script_hosts\":[\"zgo.at\"],\"executable_download_count\":0,\"archive_download_count\":0,\"apk_download_count\":0,\"phone_number_count\":0,\"depth\":1},{\"path\":\"/speaker-rider/\",\"status\":200,\"title\":\"Speaker Rider | Hazel Weakly\",\"word_count\":1477,\"summary_text\":\"Speaker Rider | Hazel Weakly Speaker Rider | Hazel Weakly Skip to contentHome Blog Media Listing About Me Speaker RiderIntroHey there! I’m looking forward to speaking at your event, I really am. I have thoughts, lots of thoughts, they never stop thinking, and they never stop thunking. I love sharing information, I love growing communities, and I love inspiring others; nothing makes me happier than being able to see the smile on another person’s face as the magic clicks for the first time. That said: I have some requirements and standards for accepting an offered speaking slot, or engaging in any promotion for an event (including on social media, such as LinkedIn, Mastodon, or Bluesky).Note: I reserve the right to be a little flexible on some of the requirements if I’m particularly excited about a conference; I also un\",\"classification_terms\":[\"speaker-rider\",\"about\",\"about me\",\"blog\"],\"external_refs\":[],\"password_input_count\":0,\"email_input_count\":0,\"tel_input_count\":0,\"otp_term_count\":0,\"login_form_count\":0,\"checkout_form_count\":0,\"wallet_prompt_count\":0,\"offdomain_form_actions\":0,\"suspicious_script_refs_count\":0,\"external_script_hosts\":[\"zgo.at\"],\"executable_download_count\":0,\"archive_download_count\":0,\"apk_download_count\":0,\"phone_number_count\":0,\"depth\":1},{\"path\":\"/blog\",\"status\":200,\"title\":\"Blog | Hazel Weakly\",\"word_count\":218,\"summary_text\":\"Blog | Hazel Weakly Blog | Hazel Weakly [role=tab],[role=tab]:focus,[role=tab]:hover{border-style:double;border-width:0;border-color:hsl(var(--color-bg));border-bottom-width:var(--space-0-5);border-bottom-color:hsl(var(--color-bg));cursor:pointer}Skip to contentHome Blog Media Listing About Me BlogPostsNotesRantsExternalSubscribe via RSSObservations of Leadership (Part Two) Jan 5, 2026To Be a Leader of Systems Nov 18, 2025Scaling Innovation: Building Ecosystems Oct 21, 2025Stop Building AI Tools Backwards May 16, 2025The Future of Observability: Observability 3.0 Dec 9, 2024You Have One Voice Oct 21, 2024OpenTelemetry Challenges: Handling Long-Running Spans Oct 10, 2024The 4 Evolutions of Your Observability Journey Oct 3, 2024Cache Me Not, Cache Me, Cache Me Not Sep 19, 2024Home Baked Abstractions, Store Boug\",\"classification_terms\":[\"blog\",\"about\",\"about me\",\"store\"],\"external_refs\":[],\"password_input_count\":0,\"email_input_count\":0,\"tel_input_count\":0,\"otp_term_count\":0,\"login_form_count\":0,\"checkout_form_count\":0,\"wallet_prompt_count\":0,\"offdomain_form_actions\":0,\"suspicious_script_refs_count\":0,\"external_script_hosts\":[\"zgo.at\"],\"executable_download_count\":0,\"archive_download_count\":0,\"apk_download_count\":0,\"phone_number_count\":0,\"depth\":2},{\"path\":\"/tags/note\",\"status\":200,\"title\":\"`Note`s | Hazel Weakly\",\"word_count\":62,\"summary_text\":\"`Note`s | Hazel Weakly `Note`s | Hazel Weakly [role=tab],[role=tab]:focus,[role=tab]:hover{border-style:double;border-width:0;border-color:hsl(var(--color-bg));border-bottom-width:var(--space-0-5);border-bottom-color:hsl(var(--color-bg));cursor:pointer}Skip to contentHome Blog Media Listing About Me `Note`sPostsNotesRantsExternalWhy I Do What I Do Aug 13, 2024Overengineering Isn't Real Jan 20, 2024The Overloaded Output Cliff Dec 15, 2023 Calendar Contact Résumé Speaker Rider © 2026 Hazel Weaklydocument.documentElement.classList.remove(`no-js`)document.addEventListener(`DOMContentLoaded`,()=>{let m=`date`,k=`dark`,p=60,l=`light`,j=`(prefers-color-scheme: dark)`,i=`theme`,o=Date,n=Date.now;const a=document.querySelector(`.user-toggle button`);const b=document.querySelector(`.user-toggle [role=\\\"status\\\"]`);const c=(\",\"classification_terms\":[\"tags/note\",\"about\",\"about me\",\"contact\",\"blog\"],\"external_refs\":[],\"password_input_count\":0,\"email_input_count\":0,\"tel_input_count\":0,\"otp_term_count\":0,\"login_form_count\":0,\"checkout_form_count\":0,\"wallet_prompt_count\":0,\"offdomain_form_actions\":0,\"suspicious_script_refs_count\":0,\"external_script_hosts\":[\"zgo.at\"],\"executable_download_count\":0,\"archive_download_count\":0,\"apk_download_count\":0,\"phone_number_count\":0,\"depth\":2},{\"path\":\"/tags/rant\",\"status\":200,\"title\":\"`Rant`s | Hazel Weakly\",\"word_count\":65,\"summary_text\":\"`Rant`s | Hazel Weakly `Rant`s | Hazel Weakly [role=tab],[role=tab]:focus,[role=tab]:hover{border-style:double;border-width:0;border-color:hsl(var(--color-bg));border-bottom-width:var(--space-0-5);border-bottom-color:hsl(var(--color-bg));cursor:pointer}Skip to contentHome Blog Media Listing About Me `Rant`sPostsNotesRantsExternalI Just Want The Simple Thing Jun 10, 2024BPaC: Best Practices As Code Feb 25, 2024Scale Down to Scale Up Feb 19, 2024 Calendar Contact Résumé Speaker Rider © 2026 Hazel Weaklydocument.documentElement.classList.remove(`no-js`)document.addEventListener(`DOMContentLoaded`,()=>{let m=`date`,k=`dark`,p=60,l=`light`,j=`(prefers-color-scheme: dark)`,i=`theme`,o=Date,n=Date.now;const a=document.querySelector(`.user-toggle button`);const b=document.querySelector(`.user-toggle [role=\\\"status\\\"]`);co\",\"classification_terms\":[\"tags/rant\",\"about\",\"about me\",\"contact\",\"blog\"],\"external_refs\":[],\"password_input_count\":0,\"email_input_count\":0,\"tel_input_count\":0,\"otp_term_count\":0,\"login_form_count\":0,\"checkout_form_count\":0,\"wallet_prompt_count\":0,\"offdomain_form_actions\":0,\"suspicious_script_refs_count\":0,\"external_script_hosts\":[\"zgo.at\"],\"executable_download_count\":0,\"archive_download_count\":0,\"apk_download_count\":0,\"phone_number_count\":0,\"depth\":2},{\"path\":\"/tags/external\",\"status\":200,\"title\":\"`External`s | Hazel Weakly\",\"word_count\":59,\"summary_text\":\"`External`s | Hazel Weakly `External`s | Hazel Weakly [role=tab],[role=tab]:focus,[role=tab]:hover{border-style:double;border-width:0;border-color:hsl(var(--color-bg));border-bottom-width:var(--space-0-5);border-bottom-color:hsl(var(--color-bg));cursor:pointer}Skip to contentHome Blog Media Listing About Me `External`sPostsNotesRantsExternalOpenTelemetry Challenges: Handling Long-Running Spans Oct 10, 2024The 4 Evolutions of Your Observability Journey Oct 3, 2024 Calendar Contact Résumé Speaker Rider © 2026 Hazel Weaklydocument.documentElement.classList.remove(`no-js`)document.addEventListener(`DOMContentLoaded`,()=>{let m=`date`,k=`dark`,p=60,l=`light`,j=`(prefers-color-scheme: dark)`,i=`theme`,o=Date,n=Date.now;const a=document.querySelector(`.user-toggle button`);const b=document.querySelector(`.user-toggle [role\",\"classification_terms\":[\"tags/external\",\"about\",\"about me\",\"contact\",\"blog\"],\"external_refs\":[],\"password_input_count\":0,\"email_input_count\":0,\"tel_input_count\":0,\"otp_term_count\":0,\"login_form_count\":0,\"checkout_form_count\":0,\"wallet_prompt_count\":0,\"offdomain_form_actions\":0,\"suspicious_script_refs_count\":0,\"external_script_hosts\":[\"zgo.at\"],\"executable_download_count\":0,\"archive_download_count\":0,\"apk_download_count\":0,\"phone_number_count\":0,\"depth\":2},{\"path\":\"/blog/observations-of-leadership-part-two/\",\"status\":200,\"title\":\"Observations of Leadership (Part Two) | Hazel Weakly\",\"word_count\":6271,\"summary_text\":\"Observations of Leadership (Part Two) | Hazel Weakly Observations of Leadership (Part Two) | Hazel Weakly Skip to contentHome Blog Media Listing About Me Observations of Leadership (Part Two)Hey again! Welcome back to part two of me reflecting on the past few quarters and writing down my answers to John Cutler and Tom Kerwin’s questions on how leaders navigate uncertainty and ambiguity. If you’re lost, part one is here. I started writing my reflections to this a while ago (almost two years now!) and decided that I actually wanted to separate out every edition of this by a few years. That’s how long it takes for feedback cycles to truly hit at my level, anyway, and it’s a good excuse to practice self reflection. I’ve also grown to enjoy seeing how my thinking matures over the years, and this is a natural way to do that.My life has also change\",\"classification_terms\":[\"blog/observations-of-leadership-part-two\",\"about\",\"about me\",\"blog\"],\"external_refs\":[],\"password_input_count\":0,\"email_input_count\":0,\"tel_input_count\":0,\"otp_term_count\":0,\"login_form_count\":0,\"checkout_form_count\":0,\"wallet_prompt_count\":0,\"offdomain_form_actions\":0,\"suspicious_script_refs_count\":0,\"external_script_hosts\":[\"zgo.at\"],\"executable_download_count\":0,\"archive_download_count\":0,\"apk_download_count\":0,\"phone_number_count\":6,\"depth\":2},{\"path\":\"/blog/to-be-a-leader-of-systems/\",\"status\":200,\"title\":\"To Be a Leader of Systems | Hazel Weakly\",\"word_count\":789,\"summary_text\":\"To Be a Leader of Systems | Hazel Weakly To Be a Leader of Systems | Hazel Weakly Skip to contentHome Blog Media Listing About Me To Be a Leader of SystemsPicture with me, if you will, the absurdity of finding yourself swimming in the middle of the ocean. First think about the ocean and how deep and infinitely vast it is; then about how improbable it is to even fully grasp the notion of how large the ocean is, of how deep it is, of how wide it is; think about how there is so much of it we will never know, and so much we can never know.Let that sink in, deeply and fully.Now, as a person who sees systems, who intuits chaos, who can grasp these concepts of swirling infinities, you have to sit with the uncomfortable idea that if you were to find yourself stranded in the middle of the ocean, it is a death sentence of all but certainty\",\"classification_terms\":[\"blog/to-be-a-leader-of-systems\",\"about\",\"about me\",\"blog\"],\"external_refs\":[],\"password_input_count\":0,\"email_input_count\":0,\"tel_input_count\":0,\"otp_term_count\":0,\"login_form_count\":0,\"checkout_form_count\":0,\"wallet_prompt_count\":0,\"offdomain_form_actions\":0,\"suspicious_script_refs_count\":0,\"external_script_hosts\":[\"zgo.at\"],\"executable_download_count\":0,\"archive_download_count\":0,\"apk_download_count\":0,\"phone_number_count\":0,\"depth\":2},{\"path\":\"/blog/scaling-innovation-building-ecosystems/\",\"status\":200,\"title\":\"Scaling Innovation: Building Ecosystems | Hazel Weakly\",\"word_count\":4299,\"summary_text\":\"Scaling Innovation: Building Ecosystems | Hazel Weakly Scaling Innovation: Building Ecosystems | Hazel Weakly Skip to contentHome Blog Media Listing About Me Scaling Innovation: Building EcosystemsInnovation is a tricky subject. The precise details of how to do it are not well studied, at least not under the name “innovation”. In addition, multiple disciplines have advanced research that overlaps significantly, but the multidisciplinary integration lags behind by decades, making shared empirical research or identifying more global patterns difficult.Nevertheless, I consider it dearly important to share and study and discuss the topic of innovation, and so I will provide some research notes here, as well as my overall interpretation of them. Most of this is going to be a compilation of research and the synthesis of it; consequently, I will note\",\"classification_terms\":[\"blog/scaling-innovation-building-ecosystems\",\"about\",\"about me\",\"blog\"],\"external_refs\":[],\"password_input_count\":0,\"email_input_count\":0,\"tel_input_count\":0,\"otp_term_count\":0,\"login_form_count\":0,\"checkout_form_count\":0,\"wallet_prompt_count\":0,\"offdomain_form_actions\":0,\"suspicious_script_refs_count\":0,\"external_script_hosts\":[\"zgo.at\"],\"executable_download_count\":0,\"archive_download_count\":0,\"apk_download_count\":0,\"phone_number_count\":0,\"depth\":2},{\"path\":\"/blog/stop-building-ai-tools-backwards/\",\"status\":200,\"title\":\"Stop Building AI Tools Backwards | Hazel Weakly\",\"word_count\":3712,\"summary_text\":\"Stop Building AI Tools Backwards | Hazel Weakly Stop Building AI Tools Backwards | Hazel Weakly Skip to contentHome Blog Media Listing About Me Stop Building AI Tools BackwardsI’ve been reading this week about how humans learn, and effective ways of transferring knowledge. In addition, I’ve also had AI in the back of my mind, and recently I’ve come to the realization that not only is our industry building AI tools poorly, we’re building them backwards. Which, honestly, is really depressing to me because there is so much unrealised potential that we have available–is it not enough that we built the LLMs unethically, and that they waste far more energy than they return in value? On top of that, it doesn’t take that much extra effort to build the tooling in a way that facilitates how humans work together; the tooling could be built to impr\",\"classification_terms\":[\"blog/stop-building-ai-tools-backwards\",\"about\",\"about me\",\"blog\"],\"external_refs\":[],\"password_input_count\":0,\"email_input_count\":0,\"tel_input_count\":0,\"otp_term_count\":0,\"login_form_count\":0,\"checkout_form_count\":0,\"wallet_prompt_count\":0,\"offdomain_form_actions\":0,\"suspicious_script_refs_count\":0,\"external_script_hosts\":[\"zgo.at\"],\"executable_download_count\":0,\"archive_download_count\":0,\"apk_download_count\":0,\"phone_number_count\":0,\"depth\":2},{\"path\":\"/blog/the-future-of-observability-observability-3-0/\",\"status\":200,\"title\":\"The Future of Observability: Observability 3.0 | Hazel Weakly\",\"word_count\":1969,\"summary_text\":\"The Future of Observability: Observability 3.0 | Hazel Weakly The Future of Observability: Observability 3.0 | Hazel Weakly Skip to contentHome Blog Media Listing About Me The Future of Observability: Observability 3.0Observability, so hot right now. Over the years, we’ve seen observability go from an unknown concept to a ubiquitous phrase that everyone is desperate to stamp on their products. We’ve seen projects come, evolve, and die. We’ve seen technologies emerge out of the ashes, born from the tears of SREs long departed. Yet, amongst all of this growth, all of this innovation, one question remains: and then what?You see, it turns out observability is pretty useless because it doesn’t do anything. Not by itself, that is. Which makes sense! Computers don’t do anything until you turn them on; bikes don’t go forward unless you pedal them; raw materi\",\"classification_terms\":[\"blog/the-future-of-observability-observability-3-0\",\"about\",\"about me\",\"blog\"],\"external_refs\":[],\"password_input_count\":0,\"email_input_count\":0,\"tel_input_count\":0,\"otp_term_count\":0,\"login_form_count\":0,\"checkout_form_count\":0,\"wallet_prompt_count\":0,\"offdomain_form_actions\":0,\"suspicious_script_refs_count\":0,\"external_script_hosts\":[\"zgo.at\"],\"executable_download_count\":0,\"archive_download_count\":0,\"apk_download_count\":0,\"phone_number_count\":0,\"depth\":2},{\"path\":\"/blog/you-have-one-voice/\",\"status\":200,\"title\":\"You Have One Voice | Hazel Weakly\",\"word_count\":2296,\"summary_text\":\"You Have One Voice | Hazel Weakly You Have One Voice | Hazel Weakly Skip to contentHome Blog Media Listing About Me You Have One VoiceI was originally going to call this post “What makes a programming language real?” because I saw some people picking a fight on the internet about this type of topic, yet again, and it got me thinking as to why we even broach the topic in the first place. Surely, one might think, a programming language can just exist peacefully without being questioned as to its legitimacy, right? Well, clearly not. But, that brings to mind for me: why exactly do we care so much? What’s the point?However, I realised there’s actually a more important point here, lying underneath the surface. We’re human, which means that we all have one voice, one life, and one source of energy. So, why do we spend time teari\",\"classification_terms\":[\"blog/you-have-one-voice\",\"about\",\"about me\",\"blog\"],\"external_refs\":[],\"password_input_count\":0,\"email_input_count\":0,\"tel_input_count\":0,\"otp_term_count\":0,\"login_form_count\":0,\"checkout_form_count\":0,\"wallet_prompt_count\":0,\"offdomain_form_actions\":0,\"suspicious_script_refs_count\":0,\"external_script_hosts\":[\"zgo.at\"],\"executable_download_count\":0,\"archive_download_count\":0,\"apk_download_count\":0,\"phone_number_count\":0,\"depth\":2},{\"path\":\"/blog/opentelemetry-challenges-handling-long-running-spans/\",\"status\":200,\"title\":\"OpenTelemetry Challenges: Handling Long-Running Spans | Hazel Weakly\",\"word_count\":206,\"summary_text\":\"OpenTelemetry Challenges: Handling Long-Running Spans | Hazel Weakly OpenTelemetry Challenges: Handling Long-Running Spans | Hazel Weakly Skip to contentHome Blog Media Listing About Me OpenTelemetry Challenges: Handling Long-Running SpansLong running spans are one of my biggest “we don’t really actually have a good standard solution for this” issues in opentelemetry. They’re something I’ve run into before, weirdly frequently, and especially so when attempting to try and instrument front-end or mobile facing systems.It turns out, though, that the issues here with long running spans are actually pretty similar to the issues with interrupted, partial, or unclosed spans. In fact, they’re really mostly the same thing (with the added bonus that if you do tail sampling your sampling decision is going to happen before the span ends, which exacerbates the problem b\",\"classification_terms\":[\"blog/opentelemetry-challenges-handling-long-running-spans\",\"about\",\"about me\",\"blog\"],\"external_refs\":[],\"password_input_count\":0,\"email_input_count\":0,\"tel_input_count\":0,\"otp_term_count\":0,\"login_form_count\":0,\"checkout_form_count\":0,\"wallet_prompt_count\":0,\"offdomain_form_actions\":0,\"suspicious_script_refs_count\":0,\"external_script_hosts\":[\"zgo.at\"],\"executable_download_count\":0,\"archive_download_count\":0,\"apk_download_count\":0,\"phone_number_count\":0,\"depth\":2},{\"path\":\"/blog/the-four-evolutions-of-your-observability-journey/\",\"status\":200,\"title\":\"The 4 Evolutions of Your Observability Journey | Hazel Weakly\",\"word_count\":210,\"summary_text\":\"The 4 Evolutions of Your Observability Journey | Hazel Weakly The 4 Evolutions of Your Observability Journey | Hazel Weakly Skip to contentHome Blog Media Listing About Me The 4 Evolutions of Your Observability JourneyWhen going on an observability journey, there tends to be a few concrete phases that every company goes through. Understanding how those unfold and take shape as you mature your observability practices can help you identify when you’ll run into certain types of challenges, and when you’ll start really wanting certain tools and practices to help address those challenges.That said, when you’re communicating about this to others, you might often find that it’s difficult to explain how you know where you are in the journey, or articulate the issues you’re running into. Often, people express difficulty getting a shared understanding around t\",\"classification_terms\":[\"blog/the-four-evolutions-of-your-observability-journey\",\"about\",\"about me\",\"help\",\"company\",\"address\",\"blog\"],\"external_refs\":[],\"password_input_count\":0,\"email_input_count\":0,\"tel_input_count\":0,\"otp_term_count\":0,\"login_form_count\":0,\"checkout_form_count\":0,\"wallet_prompt_count\":0,\"offdomain_form_actions\":0,\"suspicious_script_refs_count\":0,\"external_script_hosts\":[\"zgo.at\"],\"executable_download_count\":0,\"archive_download_count\":0,\"apk_download_count\":0,\"phone_number_count\":0,\"depth\":2},{\"path\":\"/blog/cache-me-not-cache-me-cache-me-not/\",\"status\":200,\"title\":\"Cache Me Not, Cache Me, Cache Me Not | Hazel Weakly\",\"word_count\":1301,\"summary_text\":\"Cache Me Not, Cache Me, Cache Me Not | Hazel Weakly Cache Me Not, Cache Me, Cache Me Not | Hazel Weakly Skip to contentHome Blog Media Listing About Me Cache Me Not, Cache Me, Cache Me NotCaching is hard. So hard. But also, we are so fucking bad at it. Every time I have to use a public wifi setup I have a joker moment. Does absolutely nobody test shit on anything less than wired symmetric gigabit anymore?Web SPA apps are some of the worst for this. Motherfucker, you have the same fucking iconography for three years, why does it load correctly and then ALL OF THE ICONS FAIL ONCE I DROP TO A SHIT INTERNET CONNECTION?!I didn’t even reload the page?! The fuck are you doing?But seriously, caching is hard, it’s really hard, but you can make life WAY easier for yourselves when building an SPA if you do this super simple thing.Break down all your c\",\"classification_terms\":[\"blog/cache-me-not-cache-me-cache-me-not\",\"about\",\"about me\",\"blog\"],\"external_refs\":[],\"password_input_count\":0,\"email_input_count\":0,\"tel_input_count\":0,\"otp_term_count\":0,\"login_form_count\":0,\"checkout_form_count\":0,\"wallet_prompt_count\":0,\"offdomain_form_actions\":0,\"suspicious_script_refs_count\":0,\"external_script_hosts\":[\"zgo.at\"],\"executable_download_count\":0,\"archive_download_count\":0,\"apk_download_count\":0,\"phone_number_count\":0,\"depth\":2},{\"path\":\"/blog/home-baked-abstractions-store-bought-implementations/\",\"status\":200,\"title\":\"Home Baked Abstractions, Store Bought Implementations | Hazel Weakly\",\"word_count\":14525,\"summary_text\":\"Home Baked Abstractions, Store Bought Implementations | Hazel Weakly Home Baked Abstractions, Store Bought Implementations | Hazel Weakly Skip to contentHome Blog Media Listing About Me Home Baked Abstractions, Store Bought ImplementationsI like to home roll abstractions, but commoditize implementations.What I mean by that is a fairly simple rule that has a very powerful effect, but can be tricky to find the right balance.Home rolling the abstraction, to me, means deeply exploring and fleshing out out an abstraction from whole cloth, whether it be an interface, or a mental model, or a collaborative workflow, or a template, or… Anything. But to do that effectively requires context from the team, the company, the industry, and what makes you you. You can’t “off the shelf” ship a meaningful abstraction around semantic metadata, for example, but it’s invaluable\",\"classification_terms\":[\"blog/home-baked-abstractions-store-bought-implementations\",\"about\",\"about me\",\"company\",\"blog\",\"store\"],\"external_refs\":[],\"password_input_count\":0,\"email_input_count\":0,\"tel_input_count\":0,\"otp_term_count\":0,\"login_form_count\":0,\"checkout_form_count\":0,\"wallet_prompt_count\":0,\"offdomain_form_actions\":0,\"suspicious_script_refs_count\":0,\"external_script_hosts\":[\"zgo.at\"],\"executable_download_count\":0,\"archive_download_count\":0,\"apk_download_count\":0,\"phone_number_count\":0,\"depth\":2},{\"path\":\"/blog/pick-your-distributed-poison/\",\"status\":200,\"title\":\"Pick Your Distributed Poison | Hazel Weakly\",\"word_count\":515,\"summary_text\":\"Pick Your Distributed Poison | Hazel Weakly Pick Your Distributed Poison | Hazel Weakly Skip to contentHome Blog Media Listing About Me Pick Your Distributed PoisonOne of the hardest things for people to understand with distributed systems is that eventual consistency is the same thing as eventual inconsistency. The very same pattern that lets you non atomically deal with things also ensures that eventually you’ll have a system that doesn’t match your understanding. Resources will go stale, things will go missing, stuff will exist without ever having been created, and data will be destroyed that never got manifested.“How do you prevent this?”You don’t. You figure out what flavor of wrong you want and what type of inconsistency is tolerable to you and you embrace the suffering and learn to mitigate the particularly painful outliers t\",\"classification_terms\":[\"blog/pick-your-distributed-poison\",\"about\",\"about me\",\"blog\"],\"external_refs\":[],\"password_input_count\":0,\"email_input_count\":0,\"tel_input_count\":0,\"otp_term_count\":0,\"login_form_count\":0,\"checkout_form_count\":0,\"wallet_prompt_count\":0,\"offdomain_form_actions\":0,\"suspicious_script_refs_count\":0,\"external_script_hosts\":[\"zgo.at\"],\"executable_download_count\":0,\"archive_download_count\":0,\"apk_download_count\":0,\"phone_number_count\":0,\"depth\":2},{\"path\":\"/blog/i-miss-the-days-of-humanity/\",\"status\":200,\"title\":\"I Miss the Days of Humanity | Hazel Weakly\",\"word_count\":577,\"summary_text\":\"I Miss the Days of Humanity | Hazel Weakly I Miss the Days of Humanity | Hazel Weakly Skip to contentHome Blog Media Listing About Me I Miss the Days of HumanityI miss the forums. I miss the forums so much it hurts. I miss when research was about discovery and learning and sharing.I miss when humanity felt like it had hope, when human interaction was plentiful, when genuine connection wasn’t rarer than gold.I miss the days before our souls were destroyed for the sake of the market, before our knowledge was plundered, before our humanity exploited.I miss when the song of humanity was sung in the streets. I miss it, even though I born after the war was lost.Now we whisper the truth and shout the lies, but this was not the fault of AI. We whisper the truth and drown in the noise, but this was not the fault of academia. We whisper the\",\"classification_terms\":[\"blog/i-miss-the-days-of-humanity\",\"about\",\"about me\",\"forum\",\"blog\"],\"external_refs\":[],\"password_input_count\":0,\"email_input_count\":0,\"tel_input_count\":0,\"otp_term_count\":0,\"login_form_count\":0,\"checkout_form_count\":0,\"wallet_prompt_count\":0,\"offdomain_form_actions\":0,\"suspicious_script_refs_count\":0,\"external_script_hosts\":[\"zgo.at\"],\"executable_download_count\":0,\"archive_download_count\":0,\"apk_download_count\":0,\"phone_number_count\":0,\"depth\":2},{\"path\":\"/blog/soulless-productivity/\",\"status\":200,\"title\":\"The Trap of Soulless Productivity | Hazel Weakly\",\"word_count\":1063,\"summary_text\":\"The Trap of Soulless Productivity | Hazel Weakly The Trap of Soulless Productivity | Hazel Weakly Skip to contentHome Blog Media Listing About Me The Trap of Soulless ProductivityIf there’s one thing I wish I could burn entirely to the ground and wipe away all traces and remnants of, its the misplaced notion that the productivity of Knowledge Work can be managed, measured, analysed, and optimized as if all one needed to do was drip feed heroin up the arse of their hapless workers.What is Knowledge Work™, you ask? There’s two concepts of Knowledge Work that I’m thinking about right now. The first is Knowledge Work as Imagined, and the second is Knowledge Work as Done. (I’m temporarily ignoring the actual literature definitions of Knowledge Work for the sake of ranting out some frustration. Forgive me pls)Knowledge Work as Imagined is when\",\"classification_terms\":[\"blog/soulless-productivity\",\"about\",\"about me\",\"blog\"],\"external_refs\":[],\"password_input_count\":0,\"email_input_count\":0,\"tel_input_count\":0,\"otp_term_count\":0,\"login_form_count\":0,\"checkout_form_count\":0,\"wallet_prompt_count\":0,\"offdomain_form_actions\":0,\"suspicious_script_refs_count\":0,\"external_script_hosts\":[\"zgo.at\"],\"executable_download_count\":0,\"archive_download_count\":0,\"apk_download_count\":0,\"phone_number_count\":0,\"depth\":2},{\"path\":\"/blog/redefining-observability/\",\"status\":200,\"title\":\"Redefining Observability | Hazel Weakly\",\"word_count\":3401,\"summary_text\":\"Redefining Observability | Hazel Weakly Redefining Observability | Hazel Weakly Skip to contentHome Blog Media Listing About Me Redefining ObservabilityObservability is a bit of a hot topic, and while it’s increasingly been playing a larger role in engineering strategy, I think the way it’s presented can often cause a lot of leaders to miss the value or to over-index on the wrong things. I’m going to present the current definitions of observability that are widely used in engineering and other disciplines, and then introduce my definition; I’ll also be going over what motivated me to develop my definition, and the deficiencies I encounter in the other definitions, especially when it comes to the failure modes of understanding.For leaders who are pressed for time, I’m going to try something new with this blog post: I’m going to h\",\"classification_terms\":[\"blog/redefining-observability\",\"about\",\"about me\",\"blog\"],\"external_refs\":[],\"password_input_count\":0,\"email_input_count\":0,\"tel_input_count\":0,\"otp_term_count\":0,\"login_form_count\":0,\"checkout_form_count\":0,\"wallet_prompt_count\":0,\"offdomain_form_actions\":0,\"suspicious_script_refs_count\":0,\"external_script_hosts\":[\"zgo.at\"],\"executable_download_count\":0,\"archive_download_count\":0,\"apk_download_count\":0,\"phone_number_count\":0,\"depth\":2},{\"path\":\"/blog/engineering-language/\",\"status\":200,\"title\":\"Engineering Language as a Vehicle of Innovation | Hazel Weakly\",\"word_count\":2645,\"summary_text\":\"Engineering Language as a Vehicle of Innovation | Hazel Weakly Engineering Language as a Vehicle of Innovation | Hazel Weakly Skip to contentHome Blog Media Listing About Me Engineering Language as a Vehicle of InnovationSomething that I find missing in almost every software company is this thing that I’m not sure I’ve seen explicitly called out anywhere, but I’m going to call it an Engineering Language. This Engineering Language is something that I’m going to attempt to describe, motivate, outline, and then illustrate with an example.Engineering LanguageThe Engineering Language is something that I would consider to be a living embodiment of how engineers speak, think about, describe, and express what they think in that problem domain. It’s not a programming language, or a DSL; it’s similar to a Design Language, but for software engineering and archit\",\"classification_terms\":[\"blog/engineering-language\",\"about\",\"about me\",\"company\",\"blog\"],\"external_refs\":[],\"password_input_count\":0,\"email_input_count\":0,\"tel_input_count\":0,\"otp_term_count\":0,\"login_form_count\":0,\"checkout_form_count\":0,\"wallet_prompt_count\":0,\"offdomain_form_actions\":0,\"suspicious_script_refs_count\":0,\"external_script_hosts\":[\"zgo.at\"],\"executable_download_count\":0,\"archive_download_count\":0,\"apk_download_count\":0,\"phone_number_count\":0,\"depth\":2},{\"path\":\"/blog/observations-of-leadership-part-one/\",\"status\":200,\"title\":\"Observations of Leadership (Part One) | Hazel Weakly\",\"word_count\":7917,\"summary_text\":\"Observations of Leadership (Part One) | Hazel Weakly Observations of Leadership (Part One) | Hazel Weakly Skip to contentHome Blog Media Listing About Me Observations of Leadership (Part One)I read this post from John Cutler and Tom Kerwin recently on how leaders navigate uncertainty and ambiguity and it intrigued me. I decided to give my shot at answering these as a writing exercise and as an opportunity for self reflection. The past few quarters have seen a lot of change for me, and haven’t taken the time I need to reflect as much as I would otherwise wish; this seems like as good of an opportunity as any. For each of these, I’m going to copy in the interview question and then answer it very similarly to how I would answer it during an interview (but without any of the time or brevity constraints). I’m actually quite curious to see what ot\",\"classification_terms\":[\"blog/observations-of-leadership-part-one\",\"about\",\"about me\",\"blog\"],\"external_refs\":[],\"password_input_count\":0,\"email_input_count\":0,\"tel_input_count\":0,\"otp_term_count\":0,\"login_form_count\":0,\"checkout_form_count\":0,\"wallet_prompt_count\":0,\"offdomain_form_actions\":0,\"suspicious_script_refs_count\":0,\"external_script_hosts\":[\"zgo.at\"],\"executable_download_count\":0,\"archive_download_count\":0,\"apk_download_count\":0,\"phone_number_count\":5,\"depth\":2},{\"path\":\"/blog/the-power-of-being-new--a-proven-recipe-for-high-impact/\",\"status\":200,\"title\":\"The Power of Being New: A Proven Recipe for High Impact | Hazel Weakly\",\"word_count\":1907,\"summary_text\":\"The Power of Being New: A Proven Recipe for High Impact | Hazel Weakly The Power of Being New: A Proven Recipe for High Impact | Hazel Weakly Skip to contentHome Blog Media Listing About Me The Power of Being New: A Proven Recipe for High ImpactWhen starting a new job as a software engineer, it’s natural to feel the pressure of delivering immediate value and meeting the expectations of your role. However, there’s a unique opportunity during this initial period that often goes unnoticed: nobody expects you to actually do useful work right away. So not only can you can feel free to identify and solve problems that others might have grown accustomed to or overlooked, you’ll have a fresh set of eyes that have not yet grown accustomed to the pains of the job.While you’ll lack in-depth knowledge of the existing systems or workflows, this is actually a good thing he\",\"classification_terms\":[\"blog/the-power-of-being-new--a-proven-recipe-for-high-impact\",\"about\",\"about me\",\"blog\"],\"external_refs\":[],\"password_input_count\":0,\"email_input_count\":0,\"tel_input_count\":0,\"otp_term_count\":0,\"login_form_count\":0,\"checkout_form_count\":0,\"wallet_prompt_count\":0,\"offdomain_form_actions\":0,\"suspicious_script_refs_count\":0,\"external_script_hosts\":[\"zgo.at\"],\"executable_download_count\":0,\"archive_download_count\":0,\"apk_download_count\":0,\"phone_number_count\":0,\"depth\":2},{\"path\":\"/blog/so-you-want-to-hire-for-developer-tooling/\",\"status\":200,\"title\":\"So You Want to Hire for Developer Tooling | Hazel Weakly\",\"word_count\":2737,\"summary_text\":\"So You Want to Hire for Developer Tooling | Hazel Weakly So You Want to Hire for Developer Tooling | Hazel Weakly Skip to contentHome Blog Media Listing About Me So You Want to Hire for Developer ToolingI see you want to hire a developer to work on internal developer tooling, developer experience, and the generally intangible but admirable goal of “making life better for devs”. That’s awesome; you’ve got one hell of a challenge ahead of you. This role is extremely difficult to hire for. In my opinion, and in my experience, it’s been the most difficult role in the company outside of senior leadership, and the most likely to fail; if there ever was a role that burns people out, it’s this one. Tread carefully, and good luck. You’ll need it.You probably have some questions, such as:What do they even do? (If you’re really confident you can already an\",\"classification_terms\":[\"blog/so-you-want-to-hire-for-developer-tooling\",\"about\",\"about me\",\"company\",\"blog\"],\"external_refs\":[],\"password_input_count\":0,\"email_input_count\":0,\"tel_input_count\":0,\"otp_term_count\":0,\"login_form_count\":0,\"checkout_form_count\":0,\"wallet_prompt_count\":0,\"offdomain_form_actions\":0,\"suspicious_script_refs_count\":0,\"external_script_hosts\":[\"zgo.at\"],\"executable_download_count\":0,\"archive_download_count\":0,\"apk_download_count\":0,\"phone_number_count\":0,\"depth\":2},{\"path\":\"/blog/why-is-browser-observability-hard/\",\"status\":200,\"title\":\"Why is Browser Observability Hard | Hazel Weakly\",\"word_count\":794,\"summary_text\":\"Why is Browser Observability Hard | Hazel Weakly Why is Browser Observability Hard | Hazel Weakly Skip to contentHome Blog Media Listing About Me Why is Browser Observability HardSo the big thing that makes everything so difficult for browsers is that opentelemetry has a concept of a lifecycle for telemetry that doesn’t map very well to how you ergonomically propagate context and correlate traces together. Opentelemetry works super super well in cases where you have a very linear callstack that’s fully synchronous in design. Something like request -> function A(a1, a2, a3...) -> function B(b1, b2, b3...) -> ... -> function N(n1,n2,n3...) -> response where the total lifetime of that is “reasonably short.” That is, to put it mildly, not the case in front-end systems. Front-End systems are event based inherently and work based off asynchron\",\"classification_terms\":[\"blog/why-is-browser-observability-hard\",\"about\",\"about me\",\"blog\"],\"external_refs\":[],\"password_input_count\":0,\"email_input_count\":0,\"tel_input_count\":0,\"otp_term_count\":0,\"login_form_count\":0,\"checkout_form_count\":0,\"wallet_prompt_count\":0,\"offdomain_form_actions\":0,\"suspicious_script_refs_count\":0,\"external_script_hosts\":[\"zgo.at\"],\"executable_download_count\":0,\"archive_download_count\":0,\"apk_download_count\":0,\"phone_number_count\":0,\"depth\":2},{\"path\":\"/blog/values-of-convenience/\",\"status\":200,\"title\":\"Values of Convenience: Why Do We Not Make Life Better For Others? | Hazel Weakly\",\"word_count\":1286,\"summary_text\":\"Values of Convenience: Why Do We Not Make Life Better For Others? | Hazel Weakly Values of Convenience: Why Do We Not Make Life Better For Others? | Hazel Weakly Skip to contentHome Blog Media Listing About Me Values of Convenience: Why Do We Not Make Life Better For Others?I was asked recently for my thoughts on a wonderful article about software correctness, human convenience, and flossing, and I ended up dumping out an entire blog post worth of thoughts. So, this blog post serves as both a reminder to myself to write more, and also a sincere apology to my wonderfully patient friend, Kelly, who graciously puts up with me dumping absolutely unholy amounts of text into their phone at all hours of the day.I really liked the blog post, by the way. Hillel is an excellent writer, and I find myself agreeing with just about everything he’s ever written. He’s got some fascina\",\"classification_terms\":[\"blog/values-of-convenience\",\"about\",\"about me\",\"blog\"],\"external_refs\":[],\"password_input_count\":0,\"email_input_count\":0,\"tel_input_count\":0,\"otp_term_count\":0,\"login_form_count\":0,\"checkout_form_count\":0,\"wallet_prompt_count\":0,\"offdomain_form_actions\":0,\"suspicious_script_refs_count\":0,\"external_script_hosts\":[\"zgo.at\"],\"executable_download_count\":0,\"archive_download_count\":0,\"apk_download_count\":0,\"phone_number_count\":0,\"depth\":2},{\"path\":\"/blog/mother-of-all-outages/\",\"status\":200,\"title\":\"Mother of All Outages | Hazel Weakly\",\"word_count\":1662,\"summary_text\":\"Mother of All Outages | Hazel Weakly Mother of All Outages | Hazel Weakly Skip to contentHome Blog Media Listing About Me Mother of All OutagesY’all ready for a story about one of the wildest fuckups production outages I ever took part in? Buckle up; we’re going for a ride far, far away from any security cameras.Setting the SceneAt a previous job we had some fairly intense mismanagement. No tech debt was ever allowed to be handled. No good deed was ever unpunished. No non-white-male person was paid a market salary.Y’know, the usual.We had all of our infrastructure set up by one lonely SRE person for years. Then I came on, and two engineers from other teams joined the SRE team.Our tech stack for the backend servers? VMs with Nomad, AWS, and sparkles. Amazingly cost effective, quite honestly.Because business, the company had re\",\"classification_terms\":[\"blog/mother-of-all-outages\",\"about\",\"about me\",\"company\",\"blog\"],\"external_refs\":[],\"password_input_count\":0,\"email_input_count\":0,\"tel_input_count\":0,\"otp_term_count\":0,\"login_form_count\":0,\"checkout_form_count\":0,\"wallet_prompt_count\":0,\"offdomain_form_actions\":0,\"suspicious_script_refs_count\":0,\"external_script_hosts\":[\"zgo.at\"],\"executable_download_count\":0,\"archive_download_count\":0,\"apk_download_count\":0,\"phone_number_count\":0,\"depth\":2},{\"path\":\"/blog/scaling-mastodon/\",\"status\":200,\"title\":\"Scaling Mastodon: The Compendium | Hazel Weakly\",\"word_count\":4442,\"summary_text\":\"Scaling Mastodon: The Compendium | Hazel Weakly Scaling Mastodon: The Compendium | Hazel Weakly Skip to contentHome Blog Media Listing About Me Scaling Mastodon: The CompendiumThis blog post will be kept up to date as I find out more information and publish my findings. It’s currently organized in no particular order, as a collection of several fragmented thoughts.NginxNginx config for object storageThe nginx config used to proxy to an object storage with a cacheyou will have to tune nginx by increasing its worker_rlimit_nofile and worker_connections values.– scaling a mastodon serverok kewl, good to remember I suppose.You may also need to remediate https://github.com/mastodon/mastodon/pull/21840 via setting your response timeout to 300s in nginx instead of 30 or even 60s.Edit: That should hopefully no longer be the case, sweet.Postgres\",\"classification_terms\":[\"blog/scaling-mastodon\",\"about\",\"about me\",\"blog\"],\"external_refs\":[],\"password_input_count\":0,\"email_input_count\":0,\"tel_input_count\":0,\"otp_term_count\":0,\"login_form_count\":0,\"checkout_form_count\":0,\"wallet_prompt_count\":0,\"offdomain_form_actions\":0,\"suspicious_script_refs_count\":0,\"external_script_hosts\":[\"zgo.at\"],\"executable_download_count\":0,\"archive_download_count\":0,\"apk_download_count\":0,\"phone_number_count\":0,\"depth\":2},{\"path\":\"/talks/staffplus-ny-2025--coherent-impact-the-art-of-strategy/\",\"status\":200,\"title\":\"Coherent Impact: The Art of Strategy | Hazel Weakly\",\"word_count\":258,\"summary_text\":\"Coherent Impact: The Art of Strategy | Hazel Weakly Coherent Impact: The Art of Strategy | Hazel Weakly Skip to contentHome Blog Media Listing About Me Coherent Impact: The Art of StrategyStaffPlus NY New York City, New York, USA Oct 15, 2025A story of building long-term outcomes out of the chaos of daily reality.Have you ever tried to build a house on quicksand? I can’t imagine it would work very well! The ground is so chaotic and the landscape itself isn’t reliable enough to be the foundation you need. It feels like you can’t even get started, let alone build something sturdy enough to last.Honestly, trying to build an engineering strategy and an engineering organisation in today’s environment feels just as chaotic. Things are churning faster and faster, and the days of clear strategy are long gone (if they ever existed in the first place\",\"classification_terms\":[\"talks/staffplus-ny-2025--coherent-impact-the-art-of-strategy\",\"about\",\"about me\",\"blog\"],\"external_refs\":[],\"password_input_count\":0,\"email_input_count\":0,\"tel_input_count\":0,\"otp_term_count\":0,\"login_form_count\":0,\"checkout_form_count\":0,\"wallet_prompt_count\":0,\"offdomain_form_actions\":0,\"suspicious_script_refs_count\":0,\"external_script_hosts\":[\"zgo.at\"],\"executable_download_count\":0,\"archive_download_count\":0,\"apk_download_count\":0,\"phone_number_count\":0,\"depth\":2},{\"path\":\"/talks/staffplus-ny-2025--coherent-impact-the-art-of-strategy/slides\",\"status\":200,\"title\":\"Coherent Impact: The Art of Strategy - Slidev\",\"word_count\":8,\"summary_text\":\"Coherent Impact: The Art of Strategy - Slidev Coherent Impact: The Art of Strategy - Slidev\",\"classification_terms\":[\"talks/staffplus-ny-2025--coherent-impact-the-art-of-strategy/slides\"],\"external_refs\":[],\"password_input_count\":0,\"email_input_count\":0,\"tel_input_count\":0,\"otp_term_count\":0,\"login_form_count\":0,\"checkout_form_count\":0,\"wallet_prompt_count\":0,\"offdomain_form_actions\":0,\"suspicious_script_refs_count\":0,\"external_script_hosts\":[],\"executable_download_count\":0,\"archive_download_count\":0,\"apk_download_count\":0,\"phone_number_count\":0,\"depth\":2},{\"path\":\"/talks/ldx3-2025--so-you-want-to-hire-engineering-force-multipliers/\",\"status\":200,\"title\":\"So you want to hire engineering force multipliers? | Hazel Weakly\",\"word_count\":221,\"summary_text\":\"So you want to hire engineering force multipliers? | Hazel Weakly So you want to hire engineering force multipliers? | Hazel Weakly Skip to contentHome Blog Media Listing About Me So you want to hire engineering force multipliers?LDX3 London, UK Jun 16, 2025I see you want to hire talent to work on platform engineering, or maybe internal developer tooling, or perhaps developer experience. Maybe you just need more kickass force multipliers on your team. Whatever it is, you’re solving for the overall generally intangible but admirable goal of “making life better for devs” and “creating exponential leverage”. That’s awesome; you’ve got one hell of a challenge ahead of you.This role is extremely difficult to hire for. In my opinion, and in my experience, these roles have been the most difficult role in the company to hire for outside of senior leadership, and\",\"classification_terms\":[\"talks/ldx3-2025--so-you-want-to-hire-engineering-force-multipliers\",\"about\",\"about me\",\"company\",\"blog\"],\"external_refs\":[],\"password_input_count\":0,\"email_input_count\":0,\"tel_input_count\":0,\"otp_term_count\":0,\"login_form_count\":0,\"checkout_form_count\":0,\"wallet_prompt_count\":0,\"offdomain_form_actions\":0,\"suspicious_script_refs_count\":0,\"external_script_hosts\":[\"jsdelivr.net\",\"zgo.at\"],\"executable_download_count\":0,\"archive_download_count\":0,\"apk_download_count\":0,\"phone_number_count\":0,\"depth\":2},{\"path\":\"/talks/ldx3-2025--so-you-want-to-hire-engineering-force-multipliers/slides\",\"status\":200,\"title\":\"So you want to hire engineering force multipliers? - Slidev\",\"word_count\":10,\"summary_text\":\"So you want to hire engineering force multipliers? - Slidev So you want to hire engineering force multipliers? - Slidev\",\"classification_terms\":[\"talks/ldx3-2025--so-you-want-to-hire-engineering-force-multipliers/slides\"],\"external_refs\":[],\"password_input_count\":0,\"email_input_count\":0,\"tel_input_count\":0,\"otp_term_count\":0,\"login_form_count\":0,\"checkout_form_count\":0,\"wallet_prompt_count\":0,\"offdomain_form_actions\":0,\"suspicious_script_refs_count\":0,\"external_script_hosts\":[],\"executable_download_count\":0,\"archive_download_count\":0,\"apk_download_count\":0,\"phone_number_count\":0,\"depth\":2},{\"path\":\"/talks/developerweek-leadership-2025--so-you-want-to-hire-for-platform-engineering/\",\"status\":200,\"title\":\"So You Want to Hire for Platform Engineering? | Hazel Weakly\",\"word_count\":209,\"summary_text\":\"So You Want to Hire for Platform Engineering? | Hazel Weakly So You Want to Hire for Platform Engineering? | Hazel Weakly Skip to contentHome Blog Media Listing About Me So You Want to Hire for Platform Engineering?DeveloperWeek Leadership San Francisco, CA May 29, 2025I see you want to hire a developer to work on platform engineering, internal developer tooling, developer experience, and the overall generally intangible but admirable goal of “making life better for devs”. That’s awesome; you’ve got one hell of a challenge ahead of you. This role is extremely difficult to hire for. In my opinion, and in my experience, it’s been the most difficult role in the company outside of senior leadership, and the most likely to fail; if there ever was a role that burns people out, it’s this one.Come with Hazel as we draw on her experiences building platform t\",\"classification_terms\":[\"talks/developerweek-leadership-2025--so-you-want-to-hire-for-platform-engineering\",\"about\",\"about me\",\"company\",\"blog\"],\"external_refs\":[],\"password_input_count\":0,\"email_input_count\":0,\"tel_input_count\":0,\"otp_term_count\":0,\"login_form_count\":0,\"checkout_form_count\":0,\"wallet_prompt_count\":0,\"offdomain_form_actions\":0,\"suspicious_script_refs_count\":0,\"external_script_hosts\":[\"zgo.at\"],\"executable_download_count\":0,\"archive_download_count\":0,\"apk_download_count\":0,\"phone_number_count\":0,\"depth\":2},{\"path\":\"/talks/kubecrash-2025--observability-in-platform-engineering-balancing-visibility-and-performance/\",\"status\":200,\"title\":\"Observability in Platform Engineering: Balancing Visibility and Performance | Hazel Weakly\",\"word_count\":191,\"summary_text\":\"Observability in Platform Engineering: Balancing Visibility and Performance | Hazel Weakly Observability in Platform Engineering: Balancing Visibility and Performance | Hazel Weakly Skip to contentHome Blog Media Listing About Me Observability in Platform Engineering: Balancing Visibility and PerformanceKubeCrash Virtual May 8, 2025As platform engineering evolves to support scalable, self-service infrastructure, observability remains a critical yet complex challenge. How do teams ensure deep visibility without overwhelming developers with noise? How can organisations balance real-time insights with cost efficiency? This panel brings together observability and platform engineering experts to explore best practices for instrumenting platforms, correlating telemetry data, and driving actionable insights. Panelists will discuss real-world strategies for improving resilience, leverag\",\"classification_terms\":[\"talks/kubecrash-2025--observability-in-platform-engineering-balancing-visibility-and-performance\",\"about\",\"about me\",\"support\",\"blog\"],\"external_refs\":[],\"password_input_count\":0,\"email_input_count\":0,\"tel_input_count\":0,\"otp_term_count\":0,\"login_form_count\":0,\"checkout_form_count\":0,\"wallet_prompt_count\":0,\"offdomain_form_actions\":0,\"suspicious_script_refs_count\":0,\"external_script_hosts\":[\"zgo.at\"],\"executable_download_count\":0,\"archive_download_count\":0,\"apk_download_count\":0,\"phone_number_count\":0,\"depth\":2},{\"path\":\"/talks/linuxfest-northwest-2025--carrying-the-torch-grief-and-remembrance-in-open-source/\",\"status\":200,\"title\":\"Carrying The Torch: Grief and Remembrance in Open Source | Hazel Weakly\",\"word_count\":196,\"summary_text\":\"Carrying The Torch: Grief and Remembrance in Open Source | Hazel Weakly Carrying The Torch: Grief and Remembrance in Open Source | Hazel Weakly Skip to contentHome Blog Media Listing About Me Carrying The Torch: Grief and Remembrance in Open SourceLinuxFest Northwest Bellingham, WA Apr 27, 2025When we contribute to open source, we build projects that can withstand the tests of time. But, even more than that, when we contribute to open source, we become part of a community larger than us.So, when people leave, when they’re taken, when they’re lost, what do we do? How do our projects, and theirs, survive? More importantly, what does it mean to honor the memories and the people, the legacies, that have brought us to where we are today?How, on Earth, do we carry that torch? In this session, Hazel is going to reflect on her experiences of loss and grief. Together,\",\"classification_terms\":[\"talks/linuxfest-northwest-2025--carrying-the-torch-grief-and-remembrance-in-open-source\",\"about\",\"about me\",\"blog\"],\"external_refs\":[],\"password_input_count\":0,\"email_input_count\":0,\"tel_input_count\":0,\"otp_term_count\":0,\"login_form_count\":0,\"checkout_form_count\":0,\"wallet_prompt_count\":0,\"offdomain_form_actions\":0,\"suspicious_script_refs_count\":0,\"external_script_hosts\":[\"zgo.at\"],\"executable_download_count\":0,\"archive_download_count\":0,\"apk_download_count\":0,\"phone_number_count\":0,\"depth\":2},{\"path\":\"/talks/linuxfest-northwest-2025--carrying-the-torch-grief-and-remembrance-in-open-source/slides\",\"status\":200,\"title\":\"Carrying The Torch: Grief and Remembrance in Open Source - Slidev\",\"word_count\":11,\"summary_text\":\"Carrying The Torch: Grief and Remembrance in Open Source - Slidev Carrying The Torch: Grief and Remembrance in Open Source - Slidev\",\"classification_terms\":[\"talks/linuxfest-northwest-2025--carrying-the-torch-grief-and-remembrance-in-open-source/slides\"],\"external_refs\":[],\"password_input_count\":0,\"email_input_count\":0,\"tel_input_count\":0,\"otp_term_count\":0,\"login_form_count\":0,\"checkout_form_count\":0,\"wallet_prompt_count\":0,\"offdomain_form_actions\":0,\"suspicious_script_refs_count\":0,\"external_script_hosts\":[],\"executable_download_count\":0,\"archive_download_count\":0,\"apk_download_count\":0,\"phone_number_count\":0,\"depth\":2},{\"path\":\"/talks/linuxfest-northwest-2025--the-geology-of-open-source/\",\"status\":200,\"title\":\"The Geology of Open Source | Hazel Weakly\",\"word_count\":249,\"summary_text\":\"The Geology of Open Source | Hazel Weakly The Geology of Open Source | Hazel Weakly Skip to contentHome Blog Media Listing About Me The Geology of Open SourceLinuxFest Northwest Bellingham, WA Apr 26, 2025Time changes all, even what we might consider the unchangeable. This is particularly evident when we look at geology; from the mountains to the oceans, from the caverns to the prairies, and even the very heavens themselves. Everything changes.So, why fight it? Why not embrace the change? The cycle of life? Why not learn to love this evolution inherent in the nature of our universe itself? Why do we resist this so deeply in software?Is it our human nature, or something else?What would happen if we learned to lean in and appreciate the movements of the universe? What would happen if we stopped fighting time and entropy? What would\",\"classification_terms\":[\"talks/linuxfest-northwest-2025--the-geology-of-open-source\",\"about\",\"about me\",\"blog\"],\"external_refs\":[],\"password_input_count\":0,\"email_input_count\":0,\"tel_input_count\":0,\"otp_term_count\":0,\"login_form_count\":0,\"checkout_form_count\":0,\"wallet_prompt_count\":0,\"offdomain_form_actions\":0,\"suspicious_script_refs_count\":0,\"external_script_hosts\":[\"zgo.at\"],\"executable_download_count\":0,\"archive_download_count\":0,\"apk_download_count\":0,\"phone_number_count\":0,\"depth\":2},{\"path\":\"/talks/linuxfest-northwest-2025--the-geology-of-open-source/slides\",\"status\":200,\"title\":\"The Geology of Open Source - Slidev\",\"word_count\":7,\"summary_text\":\"The Geology of Open Source - Slidev The Geology of Open Source - Slidev\",\"classification_terms\":[\"talks/linuxfest-northwest-2025--the-geology-of-open-source/slides\"],\"external_refs\":[],\"password_input_count\":0,\"email_input_count\":0,\"tel_input_count\":0,\"otp_term_count\":0,\"login_form_count\":0,\"checkout_form_count\":0,\"wallet_prompt_count\":0,\"offdomain_form_actions\":0,\"suspicious_script_refs_count\":0,\"external_script_hosts\":[],\"executable_download_count\":0,\"archive_download_count\":0,\"apk_download_count\":0,\"phone_number_count\":0,\"depth\":2},{\"path\":\"/talks/platform-engineering-day-kubecon-eu-2025--so-you-want-to-hire-for-platform-engineering/\",\"status\":200,\"title\":\"So You Want to Hire for Platform Engineering? | Hazel Weakly\",\"word_count\":212,\"summary_text\":\"So You Want to Hire for Platform Engineering? | Hazel Weakly So You Want to Hire for Platform Engineering? | Hazel Weakly Skip to contentHome Blog Media Listing About Me So You Want to Hire for Platform Engineering?Platform Engineering Day, KubeCon EU London, UK Apr 1, 2025I see you want to hire a developer to work on platform engineering, internal developer tooling, developer experience, and the overall generally intangible but admirable goal of “making life better for devs”. That’s awesome; you’ve got one hell of a challenge ahead of you. This role is extremely difficult to hire for. In my opinion, and in my experience, it’s been the most difficult role in the company outside of senior leadership, and the most likely to fail; if there ever was a role that burns people out, it’s this one.Come with Hazel as we draw on her experiences building platfo\",\"classification_terms\":[\"talks/platform-engineering-day-kubecon-eu-2025--so-you-want-to-hire-for-platform-engineering\",\"about\",\"about me\",\"company\",\"blog\"],\"external_refs\":[],\"password_input_count\":0,\"email_input_count\":0,\"tel_input_count\":0,\"otp_term_count\":0,\"login_form_count\":0,\"checkout_form_count\":0,\"wallet_prompt_count\":0,\"offdomain_form_actions\":0,\"suspicious_script_refs_count\":0,\"external_script_hosts\":[\"jsdelivr.net\",\"zgo.at\"],\"executable_download_count\":0,\"archive_download_count\":0,\"apk_download_count\":0,\"phone_number_count\":0,\"depth\":2},{\"path\":\"/talks/platform-engineering-day-kubecon-eu-2025--so-you-want-to-hire-for-platform-engineering/slides\",\"status\":200,\"title\":\"So You Want to Hire for Platform Engineering? - Slidev\",\"word_count\":10,\"summary_tex",
        "score_reasons_json": "[]",
        "route_domain": "hazelweakly.me",
        "display_domain": "hazelweakly.me"
    },
    "explainability": {
        "summary": "hazelweakly.me currently scores 64/100. The score is being shaped by a mixed signal profile rather than one dominant factor. Evidence confidence is strong enough for a relatively stable read. This is an estimated profile rather than a manually tracked one. Crawler access looks clean.",
        "badges": [
            {
                "label": "Profile",
                "value": "Estimated profile",
                "tone": "unknown",
                "detail": null
            },
            {
                "label": "Evidence confidence",
                "value": "High confidence",
                "tone": "good",
                "detail": "100/100"
            },
            {
                "label": "Traffic confidence",
                "value": "Low confidence",
                "tone": "risk",
                "detail": "39/100"
            },
            {
                "label": "Crawler access",
                "value": "Clean visibility",
                "tone": "good",
                "detail": null
            }
        ],
        "weighted_contributions": [
            {
                "label": "Quality system",
                "points": "+32.0",
                "tone": "good",
                "detail": "Technical quality, crawl depth, page structure, and implementation hygiene. Current subsystem score: 94/100."
            },
            {
                "label": "Reputation system",
                "points": "+11.9",
                "tone": "risk",
                "detail": "Authority, search visibility, reach, engagement, and registry stability. Current subsystem score: 35/100."
            },
            {
                "label": "Safety system",
                "points": "+32.0",
                "tone": "good",
                "detail": "Fraud, spam, and trust signals from infrastructure, crawl, and registry evidence. Current subsystem score: 100/100."
            },
            {
                "label": "Risk clamp",
                "points": "-12.0",
                "tone": "risk",
                "detail": "Safety thresholds capped the final score until the risk profile improves."
            }
        ],
        "evidence_cards": [
            {
                "label": "Authority and trust",
                "value": "26/100 · trust 65/100",
                "tone": "caution",
                "detail": "74 monthly visitors, 60 organic keywords, brand completeness 59/100, engagement 79/100."
            },
            {
                "label": "Backlink and search evidence",
                "value": "1 referring domains",
                "tone": "good",
                "detail": "1 backlinks across 1 referring domains. Diversity 92/100; spam penalty 0."
            },
            {
                "label": "Registry and domain stability",
                "value": "0.0 years old",
                "tone": "good",
                "detail": "Stability 100/100 · age 0.0 years."
            },
            {
                "label": "Safety and fraud posture",
                "value": "Safety 100/100 · fraud 1/100",
                "tone": "good",
                "detail": "Primary tag T · safety 100/100 · fraud 1/100."
            }
        ],
        "positives": [
            "Low registrar / ownership churn with solid registry stability.",
            "Healthy crawl quality and on-page completeness.",
            "Registry history looks stable, which supports legitimacy and trust.",
            "HTTPS is working, so the site clears a basic transport-security check.",
            "Backlink diversity looks broad enough to strengthen authority confidence."
        ],
        "risks": [
            "Traffic and reach estimates are still low confidence, so commercial scale signals may move after more evidence is collected."
        ],
        "freshness": [
            {
                "label": "Crawl evidence",
                "value": "2026-03-20 16:46:32",
                "tone": "risk",
                "detail": "Crawl and page content sample. Age: 28d ago."
            },
            {
                "label": "WHOIS snapshot",
                "value": "2026-03-20 16:46:29",
                "tone": "risk",
                "detail": "Registry profile and stability signals. Age: 28d ago."
            },
            {
                "label": "Keyword view",
                "value": "2026-04-17 16:49:22",
                "tone": "good",
                "detail": "Estimated visibility until tracked keyword snapshots exist. Age: 0s ago."
            },
            {
                "label": "Rank history",
                "value": "2026-04-17 16:49:22",
                "tone": "good",
                "detail": "Estimated trend derived from current profile and crawl signals. Age: 0s ago."
            },
            {
                "label": "Audience geography",
                "value": "Not captured yet",
                "tone": "unknown",
                "detail": "Audience mix is estimated from available signals rather than first-party audience logs."
            }
        ],
        "section_notes": {
            "audience": "Audience geography is estimated from category, country, traffic mix, and brand signals until first-party audience data is collected.",
            "keywords": "Top keywords are estimated from crawl language, brand, category, and visibility signals until tracked keyword snapshots are stored.",
            "history": "Rank history is estimated from the current profile because no stored history exists for this domain yet."
        },
        "base_weighted_score": 76,
        "fraud_clamp_penalty": 12,
        "final_score": 64
    },
    "insight_snapshot": {
        "version": 1,
        "generated_at": "2026-04-17T16:49:22+00:00",
        "domain": "hazelweakly.me",
        "display_name": "Hazel Weakly",
        "is_tracked": false,
        "is_estimated": true,
        "overall_score": 64,
        "authority_score": 26,
        "trust_score": 65,
        "safety_score": 100,
        "fraud_score": 1,
        "confidence_score": 100,
        "traffic_confidence": 39,
        "last_crawled_at": "2026-03-20 16:46:32",
        "crawl_blocked": false,
        "summary": "hazelweakly.me currently scores 64/100. The score is being shaped by a mixed signal profile rather than one dominant factor. Evidence confidence is strong enough for a relatively stable read. This is an estimated profile rather than a manually tracked one. Crawler access looks clean.",
        "badges": [
            {
                "label": "Profile",
                "value": "Estimated profile",
                "tone": "unknown",
                "detail": null
            },
            {
                "label": "Evidence confidence",
                "value": "High confidence",
                "tone": "good",
                "detail": "100/100"
            },
            {
                "label": "Traffic confidence",
                "value": "Low confidence",
                "tone": "risk",
                "detail": "39/100"
            },
            {
                "label": "Crawler access",
                "value": "Clean visibility",
                "tone": "good",
                "detail": null
            }
        ],
        "top_positive_signals": [
            "Low registrar / ownership churn with solid registry stability.",
            "Healthy crawl quality and on-page completeness.",
            "Registry history looks stable, which supports legitimacy and trust.",
            "HTTPS is working, so the site clears a basic transport-security check.",
            "Backlink diversity looks broad enough to strengthen authority confidence."
        ],
        "top_risk_signals": [
            "Traffic and reach estimates are still low confidence, so commercial scale signals may move after more evidence is collected."
        ],
        "freshness": [
            {
                "label": "Crawl evidence",
                "value": "2026-03-20 16:46:32",
                "tone": "risk",
                "detail": "Crawl and page content sample. Age: 28d ago."
            },
            {
                "label": "WHOIS snapshot",
                "value": "2026-03-20 16:46:29",
                "tone": "risk",
                "detail": "Registry profile and stability signals. Age: 28d ago."
            },
            {
                "label": "Keyword view",
                "value": "2026-04-17 16:49:22",
                "tone": "good",
                "detail": "Estimated visibility until tracked keyword snapshots exist. Age: 0s ago."
            },
            {
                "label": "Rank history",
                "value": "2026-04-17 16:49:22",
                "tone": "good",
                "detail": "Estimated trend derived from current profile and crawl signals. Age: 0s ago."
            },
            {
                "label": "Audience geography",
                "value": "Not captured yet",
                "tone": "unknown",
                "detail": "Audience mix is estimated from available signals rather than first-party audience logs."
            }
        ],
        "top_tags": [
            {
                "code": "T",
                "label": "Trusted",
                "tone": "good"
            },
            {
                "code": "Uncertain",
                "label": "Uncertain",
                "tone": "unknown"
            }
        ]
    },
    "is_tracked": false,
    "is_estimated": true,
    "live_state": {
        "status": "processing",
        "status_label": "Cache build running",
        "message": "The refreshed page cache is still being built for this domain.",
        "updated_at": "2026-04-17T20:54:48+00:00"
    },
    "refresh_state": {
        "canRequest": false,
        "queued": true,
        "processing": true,
        "stageKey": "cache-queued",
        "stageLabel": "Cache build running",
        "cooldownUntil": null,
        "message": "The refreshed page cache is still being built for this domain.",
        "action": "/domain/hazelweakly.me/refresh",
        "isGuestCooldown": false,
        "cooldownSeconds": 0
    },
    "urlscan_report": {
        "domain": "hazelweakly.me",
        "status": "idle",
        "submitted_at": null,
        "completed_at": null,
        "last_checked_at": null,
        "last_error": "",
        "submitted_url": "https://hazelweakly.me/",
        "uuid": "",
        "result_url": "",
        "api_result_url": "",
        "visibility": "public",
        "summary": "No urlscan.io report has been requested for this domain yet.",
        "report": [],
        "report_summary": [],
        "is_fresh": false,
        "can_retry": true,
        "poll_after_seconds": 20
    }
}