[{"data":1,"prerenderedAt":798},["ShallowReactive",2],{"home-projects":3,"home-case-studies":301},[4,150],{"_path":5,"_dir":6,"_draft":7,"_partial":7,"_locale":8,"title":9,"description":8,"summary":10,"stack":11,"repo":19,"demo":20,"year":21,"role":22,"featured":23,"order":24,"body":25,"_type":144,"_id":145,"_source":146,"_file":147,"_stem":148,"_extension":149},"\u002Fprojects\u002Fmnemo","projects",false,"","Mnemo","Spaced-repetition flashcards for my own studying — content lives in git-versioned Markdown, scheduling state (Anki SM-2) in Postgres. Live on its own subdomain, fully serverless on the free tier.",[12,13,14,15,16,17,18],"TypeScript","Next.js 15","Cloudflare Workers","Prisma","PostgreSQL (Neon)","Vitest","pnpm monorepo","https:\u002F\u002Fgithub.com\u002FFabrizio-Alvarez\u002Fmnemo","https:\u002F\u002Fmnemo.falvarez.dev",2026,"Author",true,1,{"type":26,"children":27,"toc":137},"root",[28,37,43,61,67,115,121,126,132],{"type":29,"tag":30,"props":31,"children":33},"element","h2",{"id":32},"overview",[34],{"type":35,"value":36},"text","Overview",{"type":29,"tag":38,"props":39,"children":40},"p",{},[41],{"type":35,"value":42},"A personal study app with flashcards, Anki-style. The content — 8 decks, 256 cards —\nlives in Markdown files versioned with git; the spaced-repetition state (Anki's SM-2\nalgorithm) lives in Postgres. It's in real daily use, which keeps every design\ndecision honest.",{"type":29,"tag":38,"props":44,"children":45},{},[46,52,54],{"type":29,"tag":47,"props":48,"children":49},"strong",{},[50],{"type":35,"value":51},"Live:",{"type":35,"value":53}," ",{"type":29,"tag":55,"props":56,"children":59},"a",{"href":20,"rel":57},[58],"nofollow",[60],{"type":35,"value":20},{"type":29,"tag":30,"props":62,"children":64},{"id":63},"architecture-hexagonal-monorepo",[65],{"type":35,"value":66},"Architecture: hexagonal monorepo",{"type":29,"tag":68,"props":69,"children":70},"ul",{},[71,87,105],{"type":29,"tag":72,"props":73,"children":74},"li",{},[75,85],{"type":29,"tag":47,"props":76,"children":77},{},[78],{"type":29,"tag":79,"props":80,"children":82},"code",{"className":81},[],[83],{"type":35,"value":84},"@mnemo\u002Fdomain",{"type":35,"value":86}," — the Markdown parser and the SM-2 scheduler as pure\nTypeScript: 67 tests, no database, no framework. The package travels intact to\nany runtime.",{"type":29,"tag":72,"props":88,"children":89},{},[90,95,97,103],{"type":29,"tag":47,"props":91,"children":92},{},[93],{"type":35,"value":94},"Content ≠ state",{"type":35,"value":96}," as the central decision: the ",{"type":29,"tag":79,"props":98,"children":100},{"className":99},[],[101],{"type":35,"value":102},".md",{"type":35,"value":104}," files are the source of\ntruth; the database is derived and idempotent — the seed can be re-run at any\ntime without losing scheduling state.",{"type":29,"tag":72,"props":106,"children":107},{},[108,113],{"type":29,"tag":47,"props":109,"children":110},{},[111],{"type":35,"value":112},"Full-serverless on the free tier",{"type":35,"value":114},": Cloudflare Workers (via OpenNext) + Neon\nPostgres, custom domain, CI\u002FCD on every push (GitHub Actions).",{"type":29,"tag":30,"props":116,"children":118},{"id":117},"beyond-flashcards-quiz-mode",[119],{"type":35,"value":120},"Beyond flashcards: quiz mode",{"type":29,"tag":38,"props":122,"children":123},{},[124],{"type":35,"value":125},"A didactic quiz mode where each question carries plausible, hand-written\ndistractors and a conceptual \"why\" explanation — wrong answers teach instead of\njust failing. Modes are extensions of the same domain, not separate apps: this is\nextensibility made flesh.",{"type":29,"tag":30,"props":127,"children":129},{"id":128},"why-this-project",[130],{"type":35,"value":131},"Why this project",{"type":29,"tag":38,"props":133,"children":134},{},[135],{"type":35,"value":136},"It's the project I use the most and the one that shows the full arc: domain\nmodeling (SM-2, content parsing), a real monorepo with strict boundaries, and\nproduction ops on my own domain — deployed, monitored, and paid for at US$0\u002Fmonth.",{"title":8,"searchDepth":138,"depth":138,"links":139},2,[140,141,142,143],{"id":32,"depth":138,"text":36},{"id":63,"depth":138,"text":66},{"id":117,"depth":138,"text":120},{"id":128,"depth":138,"text":131},"markdown","content:projects:mnemo.md","content","projects\u002Fmnemo.md","projects\u002Fmnemo","md",{"_path":151,"_dir":6,"_draft":7,"_partial":7,"_locale":8,"title":152,"description":8,"summary":153,"stack":154,"repo":161,"demo":8,"year":162,"role":22,"featured":23,"order":138,"body":163,"_type":144,"_id":298,"_source":146,"_file":299,"_stem":300,"_extension":149},"\u002Fprojects\u002Fsupermarket-stock","Supermarket Stock System","Inventory management backend for a supermarket chain, built in Laravel with a framework-agnostic, domain-driven core. The domain is fully tested without Laravel — pure PHP.",[155,156,157,158,159,160],"Laravel 11","PHP 8.3","PostgreSQL","Pest","Docker","GitHub Actions","https:\u002F\u002Fgithub.com\u002FFabrizio-Alvarez\u002FEjercicio-Arquitectura",2025,{"type":26,"children":164,"toc":292},[165,169,174,180,185,194,237,249,255,283,287],{"type":29,"tag":30,"props":166,"children":167},{"id":32},[168],{"type":35,"value":36},{"type":29,"tag":38,"props":170,"children":171},{},[172],{"type":35,"value":173},"A backend service for managing supermarket stock: products, stock levels, movements\n(receipts, sales, adjustments), and the rules around them. It's an architecture\nstudy first and a working service second — built to prove a clean, framework-agnostic\nPHP core that can survive a framework swap.",{"type":29,"tag":30,"props":175,"children":177},{"id":176},"architecture-ddd-in-layers",[178],{"type":35,"value":179},"Architecture: DDD in layers",{"type":29,"tag":38,"props":181,"children":182},{},[183],{"type":35,"value":184},"The code is split so the business logic never learns about Laravel:",{"type":29,"tag":38,"props":186,"children":187},{},[188],{"type":29,"tag":189,"props":190,"children":193},"img",{"alt":191,"src":192},"DDD in layers","\u002Fdiagrams\u002Fsupermarket-stock-ddd.svg",[],{"type":29,"tag":68,"props":195,"children":196},{},[197,207,217,227],{"type":29,"tag":72,"props":198,"children":199},{},[200,205],{"type":29,"tag":47,"props":201,"children":202},{},[203],{"type":35,"value":204},"Domain",{"type":35,"value":206}," — pure PHP. Entities, value objects, and domain services. No framework\nimports, no Eloquent, no HTTP. This is the part tested in isolation.",{"type":29,"tag":72,"props":208,"children":209},{},[210,215],{"type":29,"tag":47,"props":211,"children":212},{},[213],{"type":35,"value":214},"Application",{"type":35,"value":216}," — use cases (handlers) that orchestrate the domain and declare\ntransactions and side effects as interfaces.",{"type":29,"tag":72,"props":218,"children":219},{},[220,225],{"type":29,"tag":47,"props":221,"children":222},{},[223],{"type":35,"value":224},"Infrastructure",{"type":35,"value":226}," — Eloquent repositories, framework adapters, and third-party\nclients implementing the Application-layer interfaces.",{"type":29,"tag":72,"props":228,"children":229},{},[230,235],{"type":29,"tag":47,"props":231,"children":232},{},[233],{"type":35,"value":234},"Presentation",{"type":35,"value":236}," — a REST API exposing the use cases.",{"type":29,"tag":38,"props":238,"children":239},{},[240,242,247],{"type":35,"value":241},"The headline is the ",{"type":29,"tag":47,"props":243,"children":244},{},[245],{"type":35,"value":246},"domain tested without the framework",{"type":35,"value":248},": if Laravel disappeared\ntomorrow, the business rules and their tests would compile green.",{"type":29,"tag":30,"props":250,"children":252},{"id":251},"whats-inside",[253],{"type":35,"value":254},"What's inside",{"type":29,"tag":68,"props":256,"children":257},{},[258,263,268,273,278],{"type":29,"tag":72,"props":259,"children":260},{},[261],{"type":35,"value":262},"Product catalogue and stock-level projections.",{"type":29,"tag":72,"props":264,"children":265},{},[266],{"type":35,"value":267},"Stock movements as an append-only ledger with domain invariants (no negative stock,\nconsistent totals).",{"type":29,"tag":72,"props":269,"children":270},{},[271],{"type":35,"value":272},"REST endpoints for the common operations, validated at the boundary.",{"type":29,"tag":72,"props":274,"children":275},{},[276],{"type":35,"value":277},"A Pest test suite covering domain rules and API behaviour.",{"type":29,"tag":72,"props":279,"children":280},{},[281],{"type":35,"value":282},"Dockerized local environment and a GitHub Actions pipeline running tests on every push.",{"type":29,"tag":30,"props":284,"children":285},{"id":128},[286],{"type":35,"value":131},{"type":29,"tag":38,"props":288,"children":289},{},[290],{"type":35,"value":291},"I spend my day job in PHP, so I wanted a public piece of work that shows how I think\nabout backend design in that language: clear boundaries, invariants enforced in the\ndomain, and infrastructure as a detail. DDD on a real (if small) domain is more\nhonest than yet another CRUD demo.",{"title":8,"searchDepth":138,"depth":138,"links":293},[294,295,296,297],{"id":32,"depth":138,"text":36},{"id":176,"depth":138,"text":179},{"id":251,"depth":138,"text":254},{"id":128,"depth":138,"text":131},"content:projects:supermarket-stock.md","projects\u002Fsupermarket-stock.md","projects\u002Fsupermarket-stock",[302,474,630],{"_path":303,"_dir":304,"_draft":7,"_partial":7,"_locale":8,"title":305,"description":8,"area":306,"summary":307,"order":24,"body":308,"_type":144,"_id":471,"_source":146,"_file":472,"_stem":473,"_extension":149},"\u002Fcase-studies\u002Fqa-transformation","case-studies","QA transformation: Pest migration + AI-assisted E2E","Testing & quality","Modernized a mature PHP codebase",{"type":26,"children":309,"toc":464},[310,326,334,340,345,351,392,398,421,427,432,438],{"type":29,"tag":311,"props":312,"children":313},"blockquote",{},[314],{"type":29,"tag":38,"props":315,"children":316},{},[317,319,324],{"type":35,"value":318},"Sanitized excerpt of commercial work on ",{"type":29,"tag":47,"props":320,"children":321},{},[322],{"type":35,"value":323},"Salutte2 (Alephoo HDE)",{"type":35,"value":325}," — an EMR SaaS\nused across 5 countries. No proprietary code is disclosed.",{"type":29,"tag":38,"props":327,"children":328},{},[329],{"type":29,"tag":189,"props":330,"children":333},{"alt":331,"src":332},"AI-assisted E2E flow","\u002Fdiagrams\u002Fqa-flow.svg",[],{"type":29,"tag":30,"props":335,"children":337},{"id":336},"context",[338],{"type":35,"value":339},"Context",{"type":29,"tag":38,"props":341,"children":342},{},[343],{"type":35,"value":344},"A large, mature PHP codebase (CodeIgniter 3, jQuery) with a thin, inconsistent\ntest suite. Regressions were caught late, and manual QA was the bottleneck before\nevery release.",{"type":29,"tag":30,"props":346,"children":348},{"id":347},"what-i-did",[349],{"type":35,"value":350},"What I did",{"type":29,"tag":68,"props":352,"children":353},{},[354,364,374],{"type":29,"tag":72,"props":355,"children":356},{},[357,362],{"type":29,"tag":47,"props":358,"children":359},{},[360],{"type":35,"value":361},"Migrated the backend test suite to Pest",{"type":35,"value":363}," — ~64,000 lines of tests across 600+\nfiles — establishing the team's modern testing practice.",{"type":29,"tag":72,"props":365,"children":366},{},[367,372],{"type":29,"tag":47,"props":368,"children":369},{},[370],{"type":35,"value":371},"Designed and built an E2E methodology on Playwright, assisted by an AI agent",{"type":35,"value":373},"\n— a reusable harness (shared helpers, config, pilot-module validation) that\ngenerates and maintains end-to-end coverage. ~+48,000 lines, 1,414 files.",{"type":29,"tag":72,"props":375,"children":376},{},[377,382,384,390],{"type":29,"tag":47,"props":378,"children":379},{},[380],{"type":35,"value":381},"Stood up CI on GitHub Actions",{"type":35,"value":383}," (with ",{"type":29,"tag":79,"props":385,"children":387},{"className":386},[],[388],{"type":35,"value":389},"actionlint",{"type":35,"value":391},") and consolidated error\nmonitoring on Sentry.",{"type":29,"tag":30,"props":393,"children":395},{"id":394},"decisions-worth-defending",[396],{"type":35,"value":397},"Decisions worth defending",{"type":29,"tag":68,"props":399,"children":400},{},[401,411],{"type":29,"tag":72,"props":402,"children":403},{},[404,409],{"type":29,"tag":47,"props":405,"children":406},{},[407],{"type":35,"value":408},"Pest over PHPUnit",{"type":35,"value":410}," — faster feedback and a fluent API that lowered the friction\nof writing tests, which mattered more for adoption than raw parity.",{"type":29,"tag":72,"props":412,"children":413},{},[414,419],{"type":29,"tag":47,"props":415,"children":416},{},[417],{"type":35,"value":418},"AI-assisted E2E as a methodology, not a one-off",{"type":35,"value":420}," — the agents generate and\nmaintain specs; the team owns the harness. The win is sustained coverage, not a\nsingle generated test.",{"type":29,"tag":30,"props":422,"children":424},{"id":423},"outcome",[425],{"type":35,"value":426},"Outcome",{"type":29,"tag":38,"props":428,"children":429},{},[430],{"type":35,"value":431},"Modernized the testing practice of the team and cut manual QA effort per release\ncycle, accelerating release cadence for a product serving tens of thousands of users.",{"type":29,"tag":30,"props":433,"children":435},{"id":434},"evidence-public-pr-metadata",[436],{"type":35,"value":437},"Evidence (public PR metadata)",{"type":29,"tag":68,"props":439,"children":440},{},[441,446,459],{"type":29,"tag":72,"props":442,"children":443},{},[444],{"type":35,"value":445},"PR #13594 — migration to Pest (~64k lines).",{"type":29,"tag":72,"props":447,"children":448},{},[449,451,457],{"type":35,"value":450},"PR #13782 — ",{"type":29,"tag":79,"props":452,"children":454},{"className":453},[],[455],{"type":35,"value":456},"feat(e2e): AI agent E2E testing methodology",{"type":35,"value":458}," (+48k lines).",{"type":29,"tag":72,"props":460,"children":461},{},[462],{"type":35,"value":463},"PR #13645 — full E2E + unit migration to Pest.",{"title":8,"searchDepth":138,"depth":138,"links":465},[466,467,468,469,470],{"id":336,"depth":138,"text":339},{"id":347,"depth":138,"text":350},{"id":394,"depth":138,"text":397},{"id":423,"depth":138,"text":426},{"id":434,"depth":138,"text":437},"content:case-studies:qa-transformation.md","case-studies\u002Fqa-transformation.md","case-studies\u002Fqa-transformation",{"_path":475,"_dir":304,"_draft":7,"_partial":7,"_locale":8,"title":476,"description":8,"area":477,"summary":478,"order":138,"body":479,"_type":144,"_id":627,"_source":146,"_file":628,"_stem":629,"_extension":149},"\u002Fcase-studies\u002Fpayments-integrations","Payments & third-party integrations","Integrations","MercadoPago QR payments, multi-country electronic invoicing, and RIS\u002FLIS bridges — idempotency and signature verification treated as defaults.",{"type":26,"children":480,"toc":620},[481,494,502,506,511,517,562,566,589,593,598,602],{"type":29,"tag":311,"props":482,"children":483},{},[484],{"type":29,"tag":38,"props":485,"children":486},{},[487,488,492],{"type":35,"value":318},{"type":29,"tag":47,"props":489,"children":490},{},[491],{"type":35,"value":323},{"type":35,"value":493},". No proprietary\ncode is disclosed.",{"type":29,"tag":38,"props":495,"children":496},{},[497],{"type":29,"tag":189,"props":498,"children":501},{"alt":499,"src":500},"Webhook idempotency flow","\u002Fdiagrams\u002Fpayments-webhook.svg",[],{"type":29,"tag":30,"props":503,"children":504},{"id":336},[505],{"type":35,"value":339},{"type":29,"tag":38,"props":507,"children":508},{},[509],{"type":35,"value":510},"An EMR product expanding into new payment flows and external systems. Each\nintegration needed to be reliable under real-world conditions: retries, duplicate\nevents, signature verification, and partial failures.",{"type":29,"tag":30,"props":512,"children":514},{"id":513},"what-i-built",[515],{"type":35,"value":516},"What I built",{"type":29,"tag":68,"props":518,"children":519},{},[520,530,540,550],{"type":29,"tag":72,"props":521,"children":522},{},[523,528],{"type":29,"tag":47,"props":524,"children":525},{},[526],{"type":35,"value":527},"MercadoPago QR + webhook",{"type":35,"value":529}," — a payment flow with blocking UX, webhook ingestion,\nidempotency, and signature verification (+16,000 lines, 94 files).",{"type":29,"tag":72,"props":531,"children":532},{},[533,538],{"type":29,"tag":47,"props":534,"children":535},{},[536],{"type":35,"value":537},"HC → RIS integration",{"type":35,"value":539}," — bridged the EMR to an external radiology system\n(RIS Eden) via a client + factory + controllers + tests (+7.7k\u002F-3k lines).",{"type":29,"tag":72,"props":541,"children":542},{},[543,548],{"type":29,"tag":47,"props":544,"children":545},{},[546],{"type":35,"value":547},"Electronic invoicing with Facturacion.Cl",{"type":35,"value":549}," — enabled platform operations in Chile\n(a new country market).",{"type":29,"tag":72,"props":551,"children":552},{},[553,555,560],{"type":35,"value":554},"A reusable ",{"type":29,"tag":47,"props":556,"children":557},{},[558],{"type":35,"value":559},"integration pattern",{"type":35,"value":561}," (client, signature\u002Fidempotency, retry) applied\nacross webhooks and external APIs, plus social-work\u002Finsurance coverage-validation\nintegrations (obra-social brokers).",{"type":29,"tag":30,"props":563,"children":564},{"id":394},[565],{"type":35,"value":397},{"type":29,"tag":68,"props":567,"children":568},{},[569,579],{"type":29,"tag":72,"props":570,"children":571},{},[572,577],{"type":29,"tag":47,"props":573,"children":574},{},[575],{"type":35,"value":576},"Idempotency + signature verification first.",{"type":35,"value":578}," Webhooks redeliver; a missing\nidempotency key means double-charging or double-processing. I treat \"the\nintegration will receive duplicate\u002Fmalformed events\" as the default.",{"type":29,"tag":72,"props":580,"children":581},{},[582,587],{"type":29,"tag":47,"props":583,"children":584},{},[585],{"type":35,"value":586},"Client + factory for the RIS bridge",{"type":35,"value":588}," — swappable adapter so the EMR isn't\nhard-coupled to one radiology vendor.",{"type":29,"tag":30,"props":590,"children":591},{"id":423},[592],{"type":35,"value":426},{"type":29,"tag":38,"props":594,"children":595},{},[596],{"type":35,"value":597},"New payment capability and market expansion (Chile), plus a hardened integration\nlayer reused by subsequent third-party connections — for a product operating across\nArgentina, Chile, Colombia, México, and the Dominican Republic.",{"type":29,"tag":30,"props":599,"children":600},{"id":434},[601],{"type":35,"value":437},{"type":29,"tag":68,"props":603,"children":604},{},[605,610,615],{"type":29,"tag":72,"props":606,"children":607},{},[608],{"type":35,"value":609},"PR #13461 — MercadoPago QR + webhook (+16k\u002F-5k lines).",{"type":29,"tag":72,"props":611,"children":612},{},[613],{"type":35,"value":614},"PR #13424 — HC → RIS Eden integration (+7.7k\u002F-3k).",{"type":29,"tag":72,"props":616,"children":617},{},[618],{"type":35,"value":619},"PR #13105 — Facturacion.Cl electronic invoicing.",{"title":8,"searchDepth":138,"depth":138,"links":621},[622,623,624,625,626],{"id":336,"depth":138,"text":339},{"id":513,"depth":138,"text":516},{"id":394,"depth":138,"text":397},{"id":423,"depth":138,"text":426},{"id":434,"depth":138,"text":437},"content:case-studies:payments-integrations.md","case-studies\u002Fpayments-integrations.md","case-studies\u002Fpayments-integrations",{"_path":631,"_dir":304,"_draft":7,"_partial":7,"_locale":8,"title":632,"description":8,"area":633,"summary":634,"order":635,"body":636,"_type":144,"_id":795,"_source":146,"_file":796,"_stem":797,"_extension":149},"\u002Fcase-studies\u002Fperformance-reliability","Performance & reliability under load","Performance","Cut a critical database query from 30s to ~2s, hardened a corrupted-cache path, and ran 100+ production hotfixes with disciplined, reversible changes.",3,{"type":26,"children":637,"toc":788},[638,651,659,663,668,672,715,719,742,746,751,755],{"type":29,"tag":311,"props":639,"children":640},{},[641],{"type":29,"tag":38,"props":642,"children":643},{},[644,645,649],{"type":35,"value":318},{"type":29,"tag":47,"props":646,"children":647},{},[648],{"type":35,"value":323},{"type":35,"value":650}," — an EMR SaaS\nwhere some clinics process up to 30,000 appointments\u002Fday. No proprietary code is\ndisclosed.",{"type":29,"tag":38,"props":652,"children":653},{},[654],{"type":29,"tag":189,"props":655,"children":658},{"alt":656,"src":657},"Slow query optimization: 30s to ~2s","\u002Fdiagrams\u002Fperf-query.svg",[],{"type":29,"tag":30,"props":660,"children":661},{"id":336},[662],{"type":35,"value":339},{"type":29,"tag":38,"props":664,"children":665},{},[666],{"type":35,"value":667},"At scale, a few slow queries and a couple of corrupt-cache incidents degraded the\nexperience in the highest-volume clinics. Reliability is critical in healthcare\nsoftware — a degraded appointment flow blocks patients.",{"type":29,"tag":30,"props":669,"children":670},{"id":347},[671],{"type":35,"value":350},{"type":29,"tag":68,"props":673,"children":674},{},[675,685,695,705],{"type":29,"tag":72,"props":676,"children":677},{},[678,683],{"type":29,"tag":47,"props":679,"children":680},{},[681],{"type":35,"value":682},"Cut critical database queries from >30s to ~2s (~15×)",{"type":35,"value":684}," by rewriting them and\nadding the right indexes — the single most-quoted metric from this work.",{"type":29,"tag":72,"props":686,"children":687},{},[688,693],{"type":29,"tag":47,"props":689,"children":690},{},[691],{"type":35,"value":692},"Diagnosed and fixed corrupted-cache incidents",{"type":35,"value":694}," and hardened the cache path.",{"type":29,"tag":72,"props":696,"children":697},{},[698,703],{"type":29,"tag":47,"props":699,"children":700},{},[701],{"type":35,"value":702},"100+ production deploys and hotfixes",{"type":35,"value":704},", including urgent incident response.",{"type":29,"tag":72,"props":706,"children":707},{},[708,713],{"type":29,"tag":47,"props":709,"children":710},{},[711],{"type":35,"value":712},"Consolidated error monitoring on Sentry",{"type":35,"value":714}," so regressions surface immediately\nrather than via user reports.",{"type":29,"tag":30,"props":716,"children":717},{"id":394},[718],{"type":35,"value":397},{"type":29,"tag":68,"props":720,"children":721},{},[722,732],{"type":29,"tag":72,"props":723,"children":724},{},[725,730],{"type":29,"tag":47,"props":726,"children":727},{},[728],{"type":35,"value":729},"Measure, then optimize.",{"type":35,"value":731}," The 30s→2s win came from identifying the actual\noffending queries (via slow-query analysis), not speculative indexing.",{"type":29,"tag":72,"props":733,"children":734},{},[735,740],{"type":29,"tag":47,"props":736,"children":737},{},[738],{"type":35,"value":739},"Treat production access as a first-class skill",{"type":35,"value":741}," — disciplined, small, reversible\nhotfixes under pressure, not heroics.",{"type":29,"tag":30,"props":743,"children":744},{"id":423},[745],{"type":35,"value":426},{"type":29,"tag":38,"props":747,"children":748},{},[749],{"type":35,"value":750},"Materially better UX in high-volume clinics and faster incident detection and\nresolution across the platform.",{"type":29,"tag":30,"props":752,"children":753},{"id":434},[754],{"type":35,"value":437},{"type":29,"tag":68,"props":756,"children":757},{},[758,771,776],{"type":29,"tag":72,"props":759,"children":760},{},[761,763,769],{"type":35,"value":762},"PR #13795 — ",{"type":29,"tag":79,"props":764,"children":766},{"className":765},[],[767],{"type":35,"value":768},"Production mejoras slow queries",{"type":35,"value":770},".",{"type":29,"tag":72,"props":772,"children":773},{},[774],{"type":35,"value":775},"PR #13468 — corrupted-cache fix.",{"type":29,"tag":72,"props":777,"children":778},{},[779,781,787],{"type":35,"value":780},"100+ PRs tagged ",{"type":29,"tag":79,"props":782,"children":784},{"className":783},[],[785],{"type":35,"value":786},"Production",{"type":35,"value":770},{"title":8,"searchDepth":138,"depth":138,"links":789},[790,791,792,793,794],{"id":336,"depth":138,"text":339},{"id":347,"depth":138,"text":350},{"id":394,"depth":138,"text":397},{"id":423,"depth":138,"text":426},{"id":434,"depth":138,"text":437},"content:case-studies:performance-reliability.md","case-studies\u002Fperformance-reliability.md","case-studies\u002Fperformance-reliability",1788204977818]