[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"sanity-Ybj-WVnuG3fMqwsMGtHtTJC4eCiiFP57TfeVRRtoB5w":3},{"data":4,"sourceMap":-1},{"info":5,"latest":13,"pinned":205},{"_createdAt":6,"_id":7,"_rev":8,"_type":9,"_updatedAt":6,"descriptionText":10,"slug":11,"title":12},"2023-05-23T16:43:21Z","wp-tagcat-refactoring","9HpbCsT2tq0xwozQfkc4ih","blogTag",null,{"current":12},"refactoring",[14,131,177],{"_id":15,"author":16,"commentCount":28,"comments":29,"excerpt":30,"featureTag":10,"image":31,"publishedAt":35,"slug":36,"sponsored":10,"tags":39,"title":130},"410c39a1-9126-4af8-a92e-19131b9c5a0d",[17],{"_id":18,"avatar":19,"name":24,"role":25,"slug":26},"wp-author-295",{"_type":20,"asset":21},"image",{"_ref":22,"_type":23},"image-d670f8093b43e483a52ba692d929578633f70eb5-1024x1024-jpg","reference","Eira May","B2B Editor",{"current":27},"emay",0,true,"How Diffblue leverages machine learning techniques to write effective unit tests.",{"_type":20,"asset":32,"attribution":34},{"_ref":33,"_type":23},"image-56c6dab9c7d1b66bc662c5f43ea9573418d94d17-2400x1260-webp","Alexandra Francis","2025-02-24T08:40:00.000Z",{"_type":37,"current":38},"slug","writing-tests-with-ai-but-not-llms",[40,44,48,53,58,63,70,75,81,85,90,94,98,100,107,111,115,120,125],{"_createdAt":6,"_id":41,"_rev":8,"_type":9,"_updatedAt":6,"slug":42,"title":43},"wp-tagcat-se-tech",{"current":43},"se-tech",{"_createdAt":6,"_id":45,"_rev":8,"_type":9,"_updatedAt":6,"slug":46,"title":47},"wp-tagcat-se-stackoverflow",{"current":47},"se-stackoverflow",{"_createdAt":6,"_id":49,"_rev":8,"_type":9,"_updatedAt":6,"slug":50,"title":52},"wp-tagcat-podcast",{"current":51},"podcast","The Stack Overflow Podcast",{"_createdAt":6,"_id":54,"_rev":8,"_type":9,"_updatedAt":6,"slug":55,"title":57},"wp-tagcat-software-development",{"current":56},"software-development","software development",{"_createdAt":6,"_id":59,"_rev":8,"_type":9,"_updatedAt":6,"slug":60,"title":62},"wp-tagcat-software-engineering",{"current":61},"software-engineering","software engineering",{"_createdAt":6,"_id":64,"_rev":65,"_type":9,"_updatedAt":66,"slug":67,"title":69},"wp-tagcat-ai","fpDTFQqIDjNJIbHDKPBGpV","2025-01-30T16:19:01Z",{"current":68},"ai","AI",{"_createdAt":6,"_id":71,"_rev":8,"_type":9,"_updatedAt":6,"slug":72,"title":74},"wp-tagcat-generative-ai",{"current":73},"generative-ai","generative AI",{"_createdAt":76,"_id":77,"_rev":8,"_type":9,"_updatedAt":76,"slug":78,"title":80},"2023-06-20T15:05:33Z","wp-tagcat-autonomous-agents",{"current":79},"autonomous-agents","autonomous agents",{"_createdAt":6,"_id":82,"_rev":8,"_type":9,"_updatedAt":6,"slug":83,"title":84},"wp-tagcat-automation",{"current":84},"automation",{"_createdAt":6,"_id":86,"_rev":8,"_type":9,"_updatedAt":6,"slug":87,"title":89},"wp-tagcat-unit-tests",{"current":88},"unit-tests","unit tests",{"_createdAt":6,"_id":91,"_rev":8,"_type":9,"_updatedAt":6,"slug":92,"title":93},"wp-tagcat-testing",{"current":93},"testing",{"_createdAt":6,"_id":95,"_rev":8,"_type":9,"_updatedAt":6,"slug":96,"title":97},"wp-tagcat-java",{"current":97},"java",{"_createdAt":6,"_id":7,"_rev":8,"_type":9,"_updatedAt":6,"slug":99,"title":12},{"current":12},{"_createdAt":6,"_id":101,"_rev":102,"_type":9,"_updatedAt":103,"slug":104,"title":106},"wp-tagcat-productivity","ZP7627ZkmfDRGke9Ig9IwB","2024-01-23T15:01:58Z",{"current":105},"productivity","Productivity",{"_createdAt":6,"_id":108,"_rev":8,"_type":9,"_updatedAt":6,"slug":109,"title":110},"wp-tagcat-llm",{"current":110},"llm",{"_createdAt":6,"_id":112,"_rev":8,"_type":9,"_updatedAt":6,"slug":113,"title":114},"wp-tagcat-copilot",{"current":114},"copilot",{"_createdAt":6,"_id":116,"_rev":8,"_type":9,"_updatedAt":6,"slug":117,"title":119},"wp-tagcat-ai-coding",{"current":118},"ai-coding","ai coding",{"_createdAt":6,"_id":121,"_rev":8,"_type":9,"_updatedAt":6,"slug":122,"title":124},"wp-tagcat-dev-tools",{"current":123},"dev-tools","dev tools",{"_createdAt":6,"_id":126,"_rev":8,"_type":9,"_updatedAt":6,"slug":127,"title":129},"wp-tagcat-developer-tools",{"current":128},"developer-tools","developer tools","Writing tests with AI, but not LLMs",{"_id":132,"author":133,"commentCount":28,"comments":29,"excerpt":138,"featureTag":10,"image":139,"publishedAt":141,"slug":142,"sponsored":10,"tags":144,"title":176},"b6515095-fe13-420e-b70c-6581bf8cfb04",[134],{"_id":18,"avatar":135,"name":24,"role":25,"slug":137},{"_type":20,"asset":136},{"_ref":22,"_type":23},{"current":27},"Today’s guest is Jonathan Schneider, co-founder and CEO of Moderne and creator of OpenRewrite, an open-source automated refactoring ecosystem for source code built to help developers eliminate tech debt. He tells Ben and Ryan about the challenges of automatic refactoring, how Java continues to evolve, and what kind of impact tech debt has on software development. Jonathan also describes the transition from open-source project to startup, why clean code is so important, and the role AI plays for developers right now.",{"_type":20,"asset":140,"attribution":34},{"_ref":33,"_type":23},"2024-11-19T08:40:00.000Z",{"_type":37,"current":143},"the-open-source-ecosystem-built-to-reduce-tech-debt",[145,147,149,151,153,155,157,164,169,171],{"_createdAt":6,"_id":41,"_rev":8,"_type":9,"_updatedAt":6,"slug":146,"title":43},{"current":43},{"_createdAt":6,"_id":45,"_rev":8,"_type":9,"_updatedAt":6,"slug":148,"title":47},{"current":47},{"_createdAt":6,"_id":49,"_rev":8,"_type":9,"_updatedAt":6,"slug":150,"title":52},{"current":51},{"_createdAt":6,"_id":64,"_rev":65,"_type":9,"_updatedAt":66,"slug":152,"title":69},{"current":68},{"_createdAt":6,"_id":7,"_rev":8,"_type":9,"_updatedAt":6,"slug":154,"title":12},{"current":12},{"_createdAt":6,"_id":95,"_rev":8,"_type":9,"_updatedAt":6,"slug":156,"title":97},{"current":97},{"_createdAt":6,"_id":158,"_rev":159,"_type":9,"_updatedAt":160,"slug":161,"title":163},"wp-tagcat-open-source","usBIUY8SfRoXafnkrDdaLh","2025-02-28T11:18:45Z",{"current":162},"open-source","Open Source",{"_createdAt":6,"_id":165,"_rev":8,"_type":9,"_updatedAt":6,"slug":166,"title":168},"wp-tagcat-tech-debt",{"current":167},"tech-debt","tech debt",{"_createdAt":6,"_id":54,"_rev":8,"_type":9,"_updatedAt":6,"slug":170,"title":57},{"current":56},{"_createdAt":6,"_id":172,"_rev":8,"_type":9,"_updatedAt":6,"slug":173,"title":175},"wp-tagcat-code-quality",{"current":174},"code-quality","code quality","The open-source ecosystem built to reduce tech debt",{"_id":178,"author":179,"commentCount":28,"comments":29,"excerpt":188,"featureTag":10,"image":189,"publishedAt":192,"slug":193,"sponsored":10,"tags":195,"title":204},"wp-post-18710",[180],{"_id":181,"avatar":182,"name":185,"role":10,"slug":186},"wp-author-213",{"_type":20,"asset":183},{"_ref":184,"_type":23},"image-e81c84dcaeb58be1002795a6544b595bd6fc8071-1024x1024-jpg","Ben Popper",{"current":187},"benpopper","Who needs a pair programmer? ",{"_type":20,"asset":190},{"_ref":191,"_type":23},"image-6f6591e18674cee2e570564767f3f8ca14c19158-3000x1575-png","2021-08-31T04:40:00.000Z",{"current":194},"podcast-371-exploring-the-magic-of-instant-python-refactoring-with-sourcery",[196,200,202],{"_createdAt":6,"_id":197,"_rev":8,"_type":9,"_updatedAt":6,"slug":198,"title":199},"wp-tagcat-python",{"current":199},"python",{"_createdAt":6,"_id":7,"_rev":8,"_type":9,"_updatedAt":6,"slug":201,"title":12},{"current":12},{"_createdAt":6,"_id":49,"_rev":8,"_type":9,"_updatedAt":6,"slug":203,"title":52},{"current":51},"Podcast 371: Exploring the magic of instant Python refactoring with Sourcery",[]]