{"id":"4883acd4-0037-4128-9389-ed782acb04e1","timestamp":1789619859837,"matcher":{"static":{},"wildcard":{},"dynamic":{}},"prerendered":["/","/cperez/2026-08-20/ai-code-review-verifying-generated-software","/cperez/2026-09-01/what-happens-if-you-keep-running-xamarin-app","/cperez/2026-09-03/xamarin-to-dotnet-maui-migration-what-changes","/cperez/2026-09-10/legacy-desktop-application-modernization-partner","/ewahl/2026-08/ai-coding-agents-software-methodology","/cperez/2026-09-17/legacy-software-risk-assessment","/cperez/2026-09-15/legacy-software-modernization-costs","/cperez/2026-08-27/ai-software-requirements-grounded-in-context","/cperez/2026-09-08/original-developers-gone-custom-software-takeover","/authors/cperez","/tags/legacy risk assessment","/authors/ewahl","/tags/legacy modernization","/tags/tech debt","/tags/legacy migration","/tags/ai-assisted migration","/tags/legacy desktop migration","/tags/mid-market","/tags/ai discovery","/tags/discovery","/tags/legacy software","/tags/xamarin","/tags/ai","/tags/.net maui","/cperez/2026-08-18/legacy-software-holding-business-back","/tags/technical debt","/tags/ai requirements gathering","/tags/ai hallucinations","/tags/legacy software discovery","/tags/legacy software modernization","/tags/agentic ai","/tags/ai coding agents","/tags/spec-driven development","/tags/humans in the loop","/tags/agile software development","/tags/ai code review","/tags/ai software development","/tags/vibe coding","/cperez/2026-08-06/turnover-reveals-weak-software-architecture","/cperez/2026-08-11/ai-prototype-to-production-business-results","/cperez/2026-08-04/technical-debt-enterprise-value","/cperez/2026-07-28/ai-assisted-legacy-modernization-business-logic","/cperez/2026-07-23/why-ai-agents-need-software-developers","/tags/ai-assisted modernization","/cperez/2026-07-21/building-digital-health-platforms-beyond-samd","/cperez/2026-07-09/5-rs-application-modernization-legacy-software","/cperez/2026-07-16/rebuild-vs-modernize-software-cfo-guide","/cperez/2026-07-07/why-ai-projects-fail","/cperez/2026-07-02/hidden-costs-of-legacy-software","/cperez/2026-06-30/how-ceos-should-evaluate-ai-investments","/cperez/2026-06-17/xamarin-to-maui","/cperez/2026-06-25/ai_makes_modernization_feasible","/tags/software rescue","/tags/vibe-coded application rescue","/tags/ai application modernization","/tags/custom ai software development","/tags/ai prototype development","/tags/software architecture","/tags/engineering turnover","/tags/application modernization","/tags/code migration","/tags/chatbots","/tags/ai agents","/tags/ai investment","/tags/ai development","/tags/samd","/tags/security","/tags/legacy","/ewahl/2025-06/argued_with_ai","/ewahl/2026-07/goodharts-law-ai-coding-agents","/ewahl/2025-05/escape_deployment_hell","/tags/modernization","/tags/biomedical","/tags/healthcare","/tags/5-rs","/tags/ethics","/tags/software development","/tags/.net","/tags/maui","/tags/app migration","/tags/mobile","/tags/human in the loop","/tags/devops","/tags/aws","/tags/python","/phendry/2023-01-19/badcode","/phendry/2021-10-30/spotthevulnloopsandtermconditions","/phendry/2021-07-30/spotthevulndataranges","/nharrison/2012-07/core-data","/avogan/2012-07/salt-2","/avogan/2012-07/salt","/jbagley/2021-07/softwaresenescence","/jbagley/2025-08/a_developers_primer_on_apple_tracking_transparency","/authors/nharrison","/authors/phendry","/authors/avogan","/tags/series","/tags/core-data","/tags/encryption","/tags/ios","/ckeefer/2024-7/vpubsub","/tags/objective-c","/tags/cryptography","/authors/jbagley","/tags/project-management","/tags/app tracking transparency","/tags/att","/tags/macos","/ckeefer/2017-3/morepwatoya-part2","/ckeefer/2017-2/morepwatoya-part1","/tags/vue","/tags/js","/authors/ckeefer","/tags/pub/sub","/jestep/2023-3/fastapi","/dpopowich/2021-07-30/data-collector","/dpopowich/2023-8/postgres-pubsub","/ckeefer/2016-8/herokupdf","/ckeefer/2016-4/djangochannels2","/ckeefer/2016-3/djangochannels1","/ckeefer/2016-2/paymentprocessing","/ckeefer/2015-3/emailvalidation","/tags/pwa","/phendry/2022-07-28/migratingfromexpresstofastifypart2","/phendry/2023-01-31/forgetaboutcodestyle","/authors/jestep","/authors/dpopowich","/tags/fastapi","/tags/flask","/tags/django","/tags/pyramid","/tags/postgresql","/tags/async","/tags/how-to","/tags/heroku","/phendry/2023-05-16/doyouneedacsspreprocessor","/phendry/2021-08-15/exploringdependenttypesinidris","/tags/pdf","/jbagley/2021-08-01/accuratetiming","/ckeefer/2013-3/ajax-upload","/rbrubaker/2012-07/whither-pm","/rbrubaker/2012-07/prototypal-js","/tags/websockets","/shuey/2012-07/reset-button","/tags/jquery","/phendry/2021-06/smoothupgradestovue3","/bporter/2020-10/reanimated","/phendry/2023-11-06/frontendframeworksin2024","/phendry/2023-04-02/semantichtml","/phendry/2022-07-21/migratingfromexpresstofastifypart1","/phendry/2023-07-28/dependencymanagement","/phendry/2019-3/restfromthebottomup","/tags/programming","/tags/c++","/tags/timing","/tags/html5","/authors/rbrubaker","/authors/shuey","/tags/coffeescript","/tags/android","/tags/apple","/authors/bporter","/tags/juce","/tags/ui","/ckeefer/2016-7/gofetch2","/alalande/2023-2/heuristics","/alalande/2023-1/escaping_text","/ckeefer/2016-6/gofetch1","/rbrubaker/2012-06/coffee-backbone-2","/rbrubaker/2012-06/coffee-backbone-3","/rbrubaker/2012-06/coffe-backbone-1","/shuey/2012-07/mixer","/tags/react","/asherbrooke/2020-4/watchwah","/tags/svelte","/tags/rest","/shuey/2012-06/thoughts-ios6","/shuey/2012-05/rubymotion","/tags/api","/tags/web","/tags/architecture","/ckeefer/2024-3/e2e_testing","/authors/alalande","/tags/educational","/tags/backbone-js","/jbagley/2023-06-01/universal_ffmpeg_custom_builds","/jbagley/2019-4/makingspectrogramsinjuce","/authors/asherbrooke","/tags/watch","/tags/ruby","/tags/cocoa","/tags/qa","/tags/software-testing","/tags/e2e","/tags/playwright","/ckeefer/2017-1/downloadingclientsidecontent","/ckeefer/2019-1/unlockingwebaudio","/ckeefer/2020-1/why-vue","/ckeefer/2015-5/file-reader-chunking","/ckeefer/2016-1/ajaxbinarycaching","/tags/c","/ckeefer/2015-2/js-frameworks","/tags/bash","/ckeefer/2015-1/writeonce","/tags/ffmpeg","/ckeefer/2014-8/behold-views","/ckeefer/2014-7/promises","/tags/audio","/ckeefer/2014-5/cgwin2","/ckeefer/2014-6/backbonesocketsync","/ckeefer/2014-4/hidden-options","/ckeefer/2014-3/customgmapsinfowindow","/ckeefer/2013-5/ajax-uploader","/ckeefer/2013-1/misc","/ckeefer/2013-11/jquery-ajax-blobs","/ckeefer/2013-07/anchors-hash","/ckeefer/2014-2/ajax-upload-2","/ckeefer/2014-1/still-using-php","/ckeefer/2013-12/deploying-with-git","/ckeefer/2013-4/teaching-programming","/ckeefer/2013-2/xslt","/ckeefer/2013-08/fullproof-fulltext-search","/ckeefer/2013-07/static-vmware-host","/tags/backbone","/tags/google-maps","/tags/xmlhttprequest","/tags/xhr2","/tags/php","/tags/git","/tags/data-formats","/tags/xml","/tags/xsl","/tags/xslt","/tags/search","/tfarrel/2012-07","/areichert/2023-10/rapid-testing-techniques-for-web-and-mobile","/scharette/2019-4/discover_machine_learning","/bporter/2019-3/animator","/authors/tfarrel","/rbrubaker/2012-06/arduino-thermometer","/tags/steganography","/shuey/2012-05/cloud","/shuey/2012-05/economics-android","/shuey/2012-05/baas","/shuey/2012-05/iot","/authors/areichert","/authors/scharette","/tags/machine-learning","/tags/neural-networks","/tags/arduino","/bporter/2019-4/aesannounce","/bporter/2012-5/learntocode","/bporter/2012-6/dsl","/bporter/2012-5/improtech","/bporter/2012-5/cd_player","/tags/java","/tags/icloud","/tags/baas","/tags/big-data","/tags/iot","/tags/a+l","/tags/event","/tags/dsl","/tags/erlang","/tags/go","/tags/improvisation","/tags/music","/tags/learn-to-code","/cmacksey/2012-5/php-musings","/bstevens/2019-3","/authors/cmacksey","/authors/bstevens"]}