[{"data":1,"prerenderedAt":802},["ShallowReactive",2],{"navigation":3,"\u002Fmarcus-the-platform-engineer":28,"\u002Fmarcus-the-platform-engineer-surround":799},[4,8,12,16,20,24],{"title":5,"path":6,"stem":7},"Overview","\u002Foverview","1.overview",{"title":9,"path":10,"stem":11},"The ICP","\u002Ficp","2.icp",{"title":13,"path":14,"stem":15},"Pete","\u002Fpete-the-indie-hacker","3.pete-the-indie-hacker",{"title":17,"path":18,"stem":19},"Max","\u002Fmax-the-product-engineer","4.max-the-product-engineer",{"title":21,"path":22,"stem":23},"Laura","\u002Flaura-the-founding-cto","5.laura-the-founding-cto",{"title":25,"path":26,"stem":27},"Marcus","\u002Fmarcus-the-platform-engineer","6.marcus-the-platform-engineer",{"id":29,"title":30,"body":31,"cover":767,"description":768,"extension":769,"meta":770,"navigation":771,"path":26,"persona":772,"seo":797,"stem":27,"__hash__":798},"personas\u002F6.marcus-the-platform-engineer.md","Marcus, the platform engineer",{"type":32,"value":33,"toc":748},"minimark",[34,41,46,122,126,129,136,140,356,359,363,382,386,533,536,540,594,597,601,618,621,625,639,643,646,652,655,659,676,682,686,700,704,715,719,730,734],[35,36,37],"callout",{},[38,39,40],"p",{},"Status: secondary, emerging persona. The product deliberately has no enterprise motion yet, and several tools Marcus considers table stakes (PagerDuty, Grafana, Splunk, GitLab, Terraform-aware infrastructure linking) are still on the roadmap. Marcus is where the product expands next, not where it wins today. He matters now because he is the veto vote when Laura's company grows into his.",[42,43,45],"h2",{"id":44},"snapshot","Snapshot",[47,48,49,62],"table",{},[50,51,52],"thead",{},[53,54,55,59],"tr",{},[56,57,58],"th",{},"Fact",[56,60,61],{},"Detail",[63,64,65,74,82,90,98,106,114],"tbody",{},[53,66,67,71],{},[68,69,70],"td",{},"Age",[68,72,73],{},"30-45",[53,75,76,79],{},[68,77,78],{},"Role",[68,80,81],{},"SRE, DevOps, or platform engineer",[53,83,84,87],{},[68,85,86],{},"Company",[68,88,89],{},"Scale-up of 30-200 engineers",[53,91,92,95],{},[68,93,94],{},"Team size",[68,96,97],{},"Platform team of 1-3, serving everyone else",[53,99,100,103],{},[68,101,102],{},"Experience",[68,104,105],{},"Ten-plus years: one datacenter, one failed Kubernetes migration, three observability vendors",[53,107,108,111],{},[68,109,110],{},"Owns",[68,112,113],{},"The on-call rotation's quality: alert precision, runbooks, postmortems",[53,115,116,119],{},[68,117,118],{},"Tell",[68,120,121],{},"Reads the IAM policy before clicking connect; enters as the person vetting a tool someone else brought in",[42,123,125],{"id":124},"a-day-in-his-life","A day in his life",[38,127,128],{},"Starts with the overnight alert review: what fired, what should not have, what stayed silent that should not have. The morning is tickets from product teams (a new service to onboard, a quota to raise, \"why is my pod pending\"); the afternoon is the actual project work: Terraform refactors, cost optimization, the migration that has been 80% done for a quarter. Interruptions are the job, which is why he automates with the persistence of someone who has been paged for the same thing twice. He maintains the internal wiki nobody else updates and the dashboards everybody else screenshots.",[38,130,131],{},[132,133],"img",{"alt":134,"src":135},"Marcus's homelab rack, teal LEDs in the dark","\u002Fart\u002Fmarcus-scene.jpg",[42,137,139],{"id":138},"stack-and-tools","Stack and tools",[47,141,142,152],{},[50,143,144],{},[53,145,146,149],{},[56,147,148],{},"Tool",[56,150,151],{},"The job it does",[63,153,154,175,186,197,208,225,236,247,258,269,285,296,307,318,329,345],{},[53,155,156,172],{},[68,157,158,162,163,167,168,170],{},[132,159],{"alt":160,"src":161},"Go","\u002Flogos\u002Fgo.svg","Go \u002F ",[132,164],{"alt":165,"src":166},"Python","\u002Flogos\u002Fpython.svg","Python \u002F ",[132,169],{"alt":170,"src":171},"Bash","\u002Flogos\u002Fbash.svg",[68,173,174],{},"Go for tooling, Python for glue, Bash for everything he swears is temporary",[53,176,177,183],{},[68,178,179,181],{},[132,180],{"alt":181,"src":182},"AWS","\u002Flogos\u002Faws.svg",[68,184,185],{},"In depth: Lambda, ECS, EKS, RDS, SQS, the works",[53,187,188,194],{},[68,189,190,192],{},[132,191],{"alt":192,"src":193},"Terraform","\u002Flogos\u002Fterraform.svg",[68,195,196],{},"Everything as code, with opinions about state management",[53,198,199,205],{},[68,200,201,203],{},[132,202],{"alt":203,"src":204},"Kubernetes","\u002Flogos\u002Fkubernetes.svg",[68,206,207],{},"EKS clusters, a service mesh he regrets",[53,209,210,222],{},[68,211,212,216,217,221],{},[132,213],{"alt":214,"src":215},"Helm","\u002Flogos\u002Fhelm.svg","Helm \u002F ",[132,218],{"alt":219,"src":220},"Argo","\u002Flogos\u002Fargo.svg","Argo CD",[68,223,224],{},"The deploy machinery",[53,226,227,233],{},[68,228,229,231],{},[132,230],{"alt":231,"src":232},"Docker","\u002Flogos\u002Fdocker.svg",[68,234,235],{},"Still the unit of everything",[53,237,238,244],{},[68,239,240,242],{},[132,241],{"alt":242,"src":243},"Prometheus","\u002Flogos\u002Fprometheus.svg",[68,245,246],{},"Metrics he trusts because he runs them",[53,248,249,255],{},[68,250,251,253],{},[132,252],{"alt":253,"src":254},"Grafana","\u002Flogos\u002Fgrafana.svg",[68,256,257],{},"The dashboards everybody else screenshots",[53,259,260,266],{},[68,261,262,264],{},[132,263],{"alt":264,"src":265},"CloudWatch","\u002Flogos\u002Faws-cloudwatch.svg",[68,267,268],{},"The floor of observability",[53,270,271,282],{},[68,272,273,277,278,280],{},[132,274],{"alt":275,"src":276},"Datadog","\u002Flogos\u002Fdatadog.svg","Datadog \u002F ",[132,279],{"alt":280,"src":281},"Honeycomb","\u002Flogos\u002Fhoneycomb.svg",[68,283,284],{},"The paid tier of visibility",[53,286,287,293],{},[68,288,289,291],{},[132,290],{"alt":291,"src":292},"OpenTelemetry","\u002Flogos\u002Fopentelemetry.svg",[68,294,295],{},"The instrumentation standard he is slowly migrating everything to",[53,297,298,304],{},[68,299,300,302],{},[132,301],{"alt":302,"src":303},"Splunk","\u002Flogos\u002Fsplunk.svg",[68,305,306],{},"Inherited, resented, still running",[53,308,309,315],{},[68,310,311,313],{},[132,312],{"alt":313,"src":314},"PagerDuty","\u002Flogos\u002Fpagerduty.svg",[68,316,317],{},"The pager, escalation policies tuned by hand",[53,319,320,326],{},[68,321,322,324],{},[132,323],{"alt":324,"src":325},"Vault","\u002Flogos\u002Fvault.svg",[68,327,328],{},"Secrets, properly",[53,330,331,342],{},[68,332,333,337,338,340],{},[132,334],{"alt":335,"src":336},"GitHub","\u002Flogos\u002Fgithub.svg","GitHub \u002F ",[132,339],{"alt":340,"src":341},"GitLab","\u002Flogos\u002Fgitlab.svg",[68,343,344],{},"Heavy CI, runbooks in Markdown next to the code where they belong",[53,346,347,353],{},[68,348,349,351],{},[132,350],{"alt":351,"src":352},"Slack","\u002Flogos\u002Fslack.svg",[68,354,355],{},"The incident channel and the paging bot",[38,357,358],{},"The homelab mirrors production more than he admits: k3s on mini PCs, Proxmox, self-hosted everything, monitored better than some companies' production.",[42,360,362],{"id":361},"goals-and-motivations","Goals and motivations",[364,365,366,370,373,376,379],"ul",{},[367,368,369],"li",{},"Make pages rare, actionable, and evenly distributed. The rotation's health is his professional pride.",[367,371,372],{},"One live topology across AWS, Kubernetes, and the edge platforms, with change history attached to every node.",[367,374,375],{},"Detection that learns per-resource baselines instead of static thresholds, with cadence and cost he can control.",[367,377,378],{},"Keep his existing stack: alarms and saved queries that feed the new system rather than being replaced by it.",[367,380,381],{},"Strict, auditable autonomy boundaries. He does not object to automation; he objects to automation he cannot explain in a postmortem.",[42,383,385],{"id":384},"where-he-hangs-out","Where he hangs out",[47,387,388,398],{},[50,389,390],{},[53,391,392,395],{},[56,393,394],{},"Where",[56,396,397],{},"What it is to them",[63,399,400,437,449,467,475,487,510],{},[53,401,402,405],{},[68,403,404],{},"Reddit",[68,406,407,414,415,414,420,414,425,430,431,436],{},[408,409,413],"a",{"href":410,"rel":411},"https:\u002F\u002Fwww.reddit.com\u002Fr\u002Fdevops\u002F",[412],"nofollow","r\u002Fdevops",", ",[408,416,419],{"href":417,"rel":418},"https:\u002F\u002Fwww.reddit.com\u002Fr\u002Fsre\u002F",[412],"r\u002Fsre",[408,421,424],{"href":422,"rel":423},"https:\u002F\u002Fwww.reddit.com\u002Fr\u002Fkubernetes\u002F",[412],"r\u002Fkubernetes",[408,426,429],{"href":427,"rel":428},"https:\u002F\u002Fwww.reddit.com\u002Fr\u002Faws\u002F",[412],"r\u002Faws",", and ",[408,432,435],{"href":433,"rel":434},"https:\u002F\u002Fwww.reddit.com\u002Fr\u002Fhomelab\u002F",[412],"r\u002Fhomelab"," for love, not work",[53,438,439,446],{},[68,440,441],{},[408,442,445],{"href":443,"rel":444},"https:\u002F\u002Fnews.ycombinator.com",[412],"Hacker News",[68,447,448],{},"A weakness for outage postmortems and \"how we run infrastructure\" posts; he comments there more than anywhere else",[53,450,451,454],{},[68,452,453],{},"Community Slacks",[68,455,456,414,461,466],{},[408,457,460],{"href":458,"rel":459},"https:\u002F\u002Fslack.k8s.io",[412],"Kubernetes Slack",[408,462,465],{"href":463,"rel":464},"https:\u002F\u002Fslack.cncf.io",[412],"CNCF channels",", HangOps, a platform-engineering community, two vendor Slacks joined for support, stayed for the gossip",[53,468,469,472],{},[68,470,471],{},"Mastodon or Bluesky",[68,473,474],{},"More than X these days; the sysadmin diaspora moved and he moved with it",[53,476,477,484],{},[68,478,479],{},[408,480,483],{"href":481,"rel":482},"https:\u002F\u002Fgithub.com",[412],"GitHub issues",[68,485,486],{},"Files reproductions polite enough to get fixed",[53,488,489,492],{},[68,490,491],{},"Newsletters",[68,493,494,414,499,414,504,509],{},[408,495,498],{"href":496,"rel":497},"https:\u002F\u002Fsreweekly.com",[412],"SRE Weekly",[408,500,503],{"href":501,"rel":502},"https:\u002F\u002Fwww.devopsweekly.com",[412],"DevOps Weekly",[408,505,508],{"href":506,"rel":507},"https:\u002F\u002Fwww.lastweekinaws.com",[412],"Last Week in AWS",": Corey Quinn for the jokes, stays for the judgment",[53,511,512,515],{},[68,513,514],{},"Podcasts",[68,516,517,522,523,414,528],{},[408,518,521],{"href":519,"rel":520},"https:\u002F\u002Fwww.lastweekinaws.com\u002Fpodcast\u002Fscreaming-in-the-cloud\u002F",[412],"Screaming in the Cloud",", the ",[408,524,527],{"href":525,"rel":526},"https:\u002F\u002Fkubernetespodcast.com",[412],"Kubernetes Podcast",[408,529,532],{"href":530,"rel":531},"https:\u002F\u002Fchangelog.com\u002Fshipit",[412],"Ship It",[38,534,535],{},"He reads incident postmortems recreationally, plus the engineering blogs of Cloudflare, fly.io, and Honeycomb, and Google's SRE books, which he quotes selectively and distrusts institutionally. In person: KubeCon or re:Invent when the company pays, SREcon or Monitorama when he pays attention, local meetups where he occasionally speaks about something that broke.",[42,537,539],{"id":538},"how-to-reach-him","How to reach him",[47,541,542,552],{},[50,543,544],{},[53,545,546,549],{},[56,547,548],{},"What works",[56,550,551],{},"Why it lands",[63,553,554,562,570,578,586],{},[53,555,556,559],{},[68,557,558],{},"Deep technical content",[68,560,561],{},"How detection actually works, what the agent queries, a worked incident with the evidence trail shown; he will read 3,000 words if they are honest",[53,563,564,567],{},[68,565,566],{},"Transparency artifacts",[68,568,569],{},"The exact IAM policy and CloudFormation template, ServiceAccount permissions (get\u002Flist\u002Fwatch and nothing else), retention answers, published limitations",[53,571,572,575],{},[68,573,574],{},"Trusted voices",[68,576,577],{},"War stories and postmortem culture; a Corey Quinn read or an SRE Weekly link, never a display ad",[53,579,580,583],{},[68,581,582],{},"A free evaluation path",[68,584,585],{},"Two weeks on a low-stakes account without talking to anyone",[53,587,588,591],{},[68,589,590],{},"Conference hallways",[68,592,593],{},"KubeCon, SREcon, Monitorama, staffed by engineers who can answer the third follow-up question",[38,595,596],{},"What fails: \"AI-powered\" as the headline (he has a bingo card), hiding the security model behind a sales call (if he cannot find the permissions before signup, he is gone), claiming to replace his stack (a tool that ingests his ten years of tuned alarms beats a tool that dismisses them), and any pressure tactic.",[42,598,600],{"id":599},"what-he-resonates-with","What he resonates with",[364,602,603,606,609,612,615],{},[367,604,605],{},"Least privilege as a worldview: read-only by default, every write gated and on the record, rollback only where explicitly enabled. \"The line is reversible versus not\" is a sentence he would write himself.",[367,607,608],{},"Blameless postmortem culture, runbooks as code, boring technology, Terraform plans reviewed like PRs.",[367,610,611],{},"Evidence over vibes: he trusts a system that shows the hypotheses it tested and what it ruled out, and distrusts any system that only shows conclusions.",[367,613,614],{},"Tools that respect prior investment: CloudWatch alarms picked up and investigated on arrival, Datadog and Honeycomb saved queries becoming scheduled checks.",[367,616,617],{},"Honest engineering marketing: published limitations, real numbers, changelogs that admit regressions.",[38,619,620],{},"What turns him off: magic, mandatory dashboards, vendors that call him a \"DevOps\" as a noun, per-host pricing, AI features that cannot cite their sources.",[42,622,624],{"id":623},"hobbies-and-personality","Hobbies and personality",[364,626,627,630,633,636],{},[367,628,629],{},"The homelab is the signature hobby: self-hosted services, a rack in the garage, DNS ad-blocking for the household, monitoring dashboards for the aquarium. He automates his home with the same rigor as production and twice the joy.",[367,631,632],{},"3D printing, hiking or long-distance cycling, homebrewing or serious coffee, board games with a rules-lawyer streak he keeps mostly in check.",[367,634,635],{},"Mentors juniors patiently and maintains one small open-source tool with three hundred stars and his exacting standards.",[367,637,638],{},"Personality: skeptical, thorough, dryly funny, allergic to hype but not to change. Slow to trust, permanent once converted, and the loudest internal advocate a vendor can have when the product earns it.",[42,640,642],{"id":641},"journey-through-the-product","Journey through the product",[38,644,645],{},"He enters as the evaluator, not the discoverer, and the make-or-break moment happens on the docs site before he even creates an account: reading the connect model and the IAM policy.",[38,647,648],{},[132,649],{"alt":650,"src":651},"Marcus's journey through the product","\u002Fdiagrams\u002Fmarcus-journey.svg",[38,653,654],{},"The evaluation itself is a shadow run: the feed diffed against his own alarms, false positives counted, quiet resources checked for staying quiet. He ends up at home in the power surfaces most users never open: OTel ingest with his own telemetry tokens, scoped API keys, kubectl through the agent, investigation-depth tuning per tier.",[42,656,658],{"id":657},"feature-affinities","Feature affinities",[364,660,661,664,667,670,673],{},[367,662,663],{},"The topology graph with cross-provider stitching: a DNS record in one provider linking to a service in another is the map he has been maintaining by hand in a wiki.",[367,665,666],{},"Change intelligence on every sync: change records with impact levels, and a thread that watches the migrations he currently babysits personally.",[367,668,669],{},"Per-resource baselines with the tier cadence dial (critical resources checked every 10 minutes, low-tier daily): detection cost he can reason about.",[367,671,672],{},"Advisories as a free audit: configuration gaps, missing observability, reliability risks per resource.",[367,674,675],{},"Enterprise controls: bring-your-own LLM key and gateway, volume credits, data-plane options.",[38,677,678],{},[132,679],{"alt":680,"src":681},"Marcus inspects the robot before it touches anything","\u002Fcartoons\u002Fmarcus-cartoon.jpg",[42,683,685],{"id":684},"objections-and-friction","Objections and friction",[364,687,688,691,694,697],{},[367,689,690],{},"Missing table stakes for his world: PagerDuty, Grafana, Splunk, GitLab, and Terraform-state-aware linking are not live yet. The repo-to-infrastructure linking reads platform config files, not Terraform, and he will notice within the first hour.",[367,692,693],{},"Verdict trust: he will run the product in shadow mode against his own alarms and believe the comparison, not the marketing.",[367,695,696],{},"Data governance: where telemetry lands, how long it is retained, who can query it, and what leaves his boundary. He asks these before the security team does.",[367,698,699],{},"Unattended writes: not for a long time, and never globally. Per-account and per-action opt-ins are the only acceptable shape.",[42,701,703],{"id":702},"money-and-plan-behavior","Money and plan behavior",[364,705,706,709,712],{},[367,707,708],{},"Does not hold the budget but holds the veto. His written evaluation is what turns a Team plan into an Enterprise conversation.",[367,710,711],{},"Cares about cost mechanics more than cost level: predictable flat pricing with visible usage and a capped overage passes; anything that scales with hosts or ingested GB triggers the Datadog reflex.",[367,713,714],{},"The Enterprise levers that move him: volume credits, bring-your-own gateway, deployment and data-residency options, and a support channel with engineers in it.",[42,716,718],{"id":717},"what-success-looks-like","What success looks like",[364,720,721,724,727],{},[367,722,723],{},"The two-week shadow evaluation ends with a false-positive count that rounds to zero and at least one real regression caught with a correct diagnosis before his own alarms fired.",[367,725,726],{},"The rotation's mean time to understanding drops because incidents arrive with the first hour of archaeology already done and shown.",[367,728,729],{},"He retires a page of hand-tuned alert rules without losing coverage, writes it up for the internal wiki, and becomes the product's most credible advocate in the company.",[42,731,733],{"id":732},"in-their-own-words","In their own words",[364,735,736,739,742,745],{},[367,737,738],{},"\"Read-only role, scoped token, or no deal.\"",[367,740,741],{},"\"I don't need it to be smart. I need it to be right, and to show its work.\"",[367,743,744],{},"\"Ingest my alarms before you tell me to delete them.\"",[367,746,747],{},"\"If it pages my team wrongly at 3am once, we're done. If it saves them once, I'll defend it in the budget meeting myself.\"",{"title":749,"searchDepth":750,"depth":751,"links":752},"",1,2,[753,754,755,756,757,758,759,760,761,762,763,764,765,766],{"id":44,"depth":751,"text":45},{"id":124,"depth":751,"text":125},{"id":138,"depth":751,"text":139},{"id":361,"depth":751,"text":362},{"id":384,"depth":751,"text":385},{"id":538,"depth":751,"text":539},{"id":599,"depth":751,"text":600},{"id":623,"depth":751,"text":624},{"id":641,"depth":751,"text":642},{"id":657,"depth":751,"text":658},{"id":684,"depth":751,"text":685},{"id":702,"depth":751,"text":703},{"id":717,"depth":751,"text":718},{"id":732,"depth":751,"text":733},null,"Pragmatic SRE\u002Fplatform engineer at an AWS\u002FKubernetes scale-up, evaluates cautiously, secondary persona today.","md",{},{"title":25},{"name":25,"photo":773,"archetype":774,"pronouns":775,"plan":776,"role":777,"quote":778,"accent":779,"order":780,"pains":781,"aha":791},"\u002Fportraits\u002Fmarcus.jpg","SRE \u002F DevOps \u002F platform engineer","he\u002Fhim","Team → Enterprise","Emerging","Every vendor says 'AI finds anomalies'. Fine. Show me the false-positive rate and the IAM policy, in that order.","teal",4,[782,785,788],{"title":783,"detail":784},"Threshold tuning is a permanent tax","Every new service means new alarms, and static thresholds are wrong the moment traffic shifts.",{"title":786,"detail":787},"Silos with AI sprinkled on top","Every vendor's AI sees only its own data. None of them read the code or the runbooks.",{"title":789,"detail":790},"45 minutes of archaeology per incident","What changed, which deploy, which config, every single time, with a platform team of two.",{"moment":792,"anticipation":793},"Reading an investigation and catching himself nodding: it checked what changed first, distrusted the easy answer, and wrote it up like a postmortem he would sign.",[794,795,796],"Speak his discipline back to him: silence is a feature, evidence over vibes, every action on the record.","Publish real investigations verbatim, wrong turns included; he converts on how it thinks, not what it claims.","Invite the audit: read-only connect, diff it against your own alarms, mark the homework yourself.",{"title":30,"description":768},"W0hwHejYB-uERrgBTDaEfwQfxEqAluNojoBgHr6h3Mc",[800,767],{"title":21,"path":22,"stem":23,"description":801,"children":-1},"Player-coach CTO of a 10-40 person startup buying leverage instead of an SRE hire.",1790523225097]