[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"blog-category-meta-engineering":3,"blog-category-page-engineering-2":9,"blog-categories":50,"blog-tags":72},{"category":4,"error":8},{"name":5,"slug":6,"description":7,"seo":8},"Engineering","engineering","Software architecture, code quality and the engineering practice behind the systems we build.",null,{"posts":10,"pagination":46,"error":8},[11,31],{"id":12,"title":13,"slug":14,"excerpt":15,"cover":16,"coverAlt":20,"datePublished":21,"dateModified":21,"category":22,"author":23,"tags":26},"hr6slx7pj1jhpsdjitsiftj6","What a Technical Discovery Phase Should Produce Before Anyone Writes a Spec","what-technical-discovery-should-produce","Discovery is not a meeting series, it is a deliverable. Here is exactly what a discovery phase should hand you before a single sprint starts.",{"url":17,"width":18,"height":19,"alt":20},"https:\u002F\u002Fmedia.drieverse.com\u002Fdrieverse-media\u002Fcms\u002Fwhat_technical_discovery_should_produce_cover_53a60a88be.png",1200,630,"What a Technical Discovery Phase Should Produce Before Anyone Writes a Spec - cover image (seed-blog-content-cover)","2026-09-05",{"name":5,"slug":6},{"name":24,"slug":25},"DrieVerse Tech","drieverse-tech",[27,29],{"name":28,"slug":28},"discovery",{"name":30,"slug":30},"risk-management",{"id":32,"title":33,"slug":34,"excerpt":35,"cover":36,"coverAlt":38,"datePublished":21,"dateModified":21,"category":39,"author":40,"tags":41},"b8s65pxknri4f5h8czuzeuqs","Reading a Legacy Codebase Before You Touch It: A Practical Audit","auditing-a-legacy-codebase-before-you-touch-it","Before the first commit against an inherited codebase, run an audit that answers what it actually does, what depends on it, and what breaks first if you get it wrong.",{"url":37,"width":18,"height":19,"alt":38},"https:\u002F\u002Fmedia.drieverse.com\u002Fdrieverse-media\u002Fcms\u002Fauditing_a_legacy_codebase_before_you_touch_it_cover_7e7f7d9c69.png","Reading a Legacy Codebase Before You Touch It: A Practical Audit - cover image (seed-blog-content-cover)",{"name":5,"slug":6},{"name":24,"slug":25},[42,43,45],{"name":28,"slug":28},{"name":44,"slug":44},"technical-debt",{"name":30,"slug":30},{"page":47,"pageSize":48,"pageCount":47,"total":49},2,12,14,[51,55,59,63,64,68],{"name":52,"slug":53,"description":54,"seo":8},"AI and Automation","ai-and-automation","Applied AI and automation: what it actually does inside a working system, and where a human stays in the loop.",{"name":56,"slug":57,"description":58,"seo":8},"Brand and Design","brand-and-design","Visual identity and interface design, and how a consistent design system holds together across a product.",{"name":60,"slug":61,"description":62,"seo":8},"Company","company","Updates from DrieVerse Tech: what we are building, shipping and learning.",{"name":5,"slug":6,"description":7,"seo":8},{"name":65,"slug":66,"description":67,"seo":8},"Growth","growth","Search visibility, content and acquisition: the growth work that sits alongside a build rather than bolted onto it.",{"name":69,"slug":70,"description":71,"seo":8},"Infrastructure and Operations","infrastructure-and-operations","DevOps, hosting, reliability and the operational work that keeps a system running once it is live.",[73,75,77,78,80,82,84,86,88,89],{"name":74,"slug":74},"architecture",{"name":76,"slug":76},"decision-frameworks",{"name":28,"slug":28},{"name":79,"slug":79},"evidence-based-claims",{"name":81,"slug":81},"human-in-the-loop",{"name":83,"slug":83},"observability",{"name":85,"slug":85},"positioning",{"name":87,"slug":87},"process-design",{"name":30,"slug":30},{"name":44,"slug":44}]