[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"sanity-kljQZTBXx-FANkNCbmb87s3RBcN0u3Kl3I0nIkMA4-o":3},{"data":4,"sourceMap":-1},{"info":5,"latest":14,"pinned":443},{"_createdAt":6,"_id":7,"_rev":8,"_type":9,"_updatedAt":6,"descriptionText":10,"slug":11,"title":13},"2023-05-23T16:43:21Z","wp-tagcat-code-quality","9HpbCsT2tq0xwozQfkc4ih","blogTag",null,{"current":12},"code-quality","code quality",[15,58,89,146,192,245,285,332,365,408],{"_id":16,"author":17,"commentCount":28,"comments":29,"excerpt":30,"featureTag":10,"image":31,"publishedAt":35,"slug":36,"sponsored":10,"tags":39,"title":57},"d4245515-5e30-4965-9ec5-b81a5cc0d339",[18],{"_id":19,"avatar":20,"name":25,"role":10,"slug":26},"wp-author-226",{"_type":21,"asset":22},"image",{"_ref":23,"_type":24},"image-56688f6337dd0a96034dfc998cdecc7810597d81-1024x1024-png","reference","Ryan Donovan",{"current":27},"rdonovan",1,true,"Quality software still needs high-quality code, AI agents or not. ",{"_type":21,"asset":32,"attribution":34},{"_ref":33,"_type":24},"image-751dae65e9dfa3fa920e2e69dd68f6a3b9970f5b-12000x6293-jpg","Alexandra Francis","2026-02-04T15:00:00.000Z",{"_type":37,"current":38},"slug","code-smells-for-ai-agents-q-and-a-with-eno-reyes-of-factory",[40,44,51,53],{"_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":46,"_type":9,"_updatedAt":47,"slug":48,"title":50},"wp-tagcat-ai","fpDTFQqIDjNJIbHDKPBGpV","2025-01-30T16:19:01Z",{"current":49},"ai","AI",{"_createdAt":6,"_id":7,"_rev":8,"_type":9,"_updatedAt":6,"slug":52,"title":13},{"current":12},{"_createdAt":6,"_id":54,"_rev":8,"_type":9,"_updatedAt":6,"slug":55,"title":56},"wp-tagcat-se-stackoverflow",{"current":56},"se-stackoverflow","Code smells for AI agents: Q&A with Eno Reyes of Factory",{"_id":59,"author":60,"commentCount":69,"comments":29,"excerpt":70,"featureTag":10,"image":71,"publishedAt":74,"slug":75,"sponsored":10,"tags":77,"title":88},"aa01241f-46db-4873-adaa-fd56e1119c32",[61],{"_id":62,"avatar":63,"name":66,"role":10,"slug":67},"wp-author-cap-20700",{"_type":21,"asset":64},{"_ref":65,"_type":24},"image-ee9d1c3b05019c9f39bcc8020c4d9e95d0bc9d26-163x163-png","Jared Toporek",{"current":68},"jared-toporek",11,"Maintaining a minimum of 80% code coverage affects code decisions and not always for the better.",{"_type":21,"asset":72,"attribution":34},{"_ref":73,"_type":24},"image-63b109f66c88e119171dd064655e57c7fa926026-12000x6300-jpg","2025-12-22T10:00:07.120-05:00",{"_type":37,"current":76},"making-your-code-base-better-will-make-your-code-coverage-worse",[78,80,82,86],{"_createdAt":6,"_id":41,"_rev":8,"_type":9,"_updatedAt":6,"slug":79,"title":43},{"current":43},{"_createdAt":6,"_id":54,"_rev":8,"_type":9,"_updatedAt":6,"slug":81,"title":56},{"current":56},{"_createdAt":6,"_id":83,"_rev":8,"_type":9,"_updatedAt":6,"slug":84,"title":85},"wp-tagcat-testing",{"current":85},"testing",{"_createdAt":6,"_id":7,"_rev":8,"_type":9,"_updatedAt":6,"slug":87,"title":13},{"current":12},"Making your code base better will make your code coverage worse",{"_id":90,"author":91,"commentCount":101,"comments":29,"excerpt":102,"featureTag":10,"image":103,"publishedAt":106,"slug":107,"sponsored":10,"tags":109,"title":145},"ecc6ef03-d59d-4063-84c0-3255a84a868a",[92],{"_id":93,"avatar":94,"name":97,"role":98,"slug":99},"dbdef9f7-acce-4431-8f4f-c2025df1c8c8",{"_type":21,"asset":95},{"_ref":96,"_type":24},"image-5f1073fdcf2ebde7fee8570769d9d82d21573870-2316x3088-jpg","Phoebe Sajor","Content Associate",{"_type":37,"current":100},"phoebe-sajor",3,"Jon Skeet, the first Stack Overflow user with a million reputation, sits down with Ryan to share his wealth of knowledge on all things development: the deceptively simple but actually complicated problem of timezones, the importance of clear documentation for programmers, handling breaking changes and upgrading legacy systems, and the need for improved communication skills among developers.",{"_type":21,"asset":104},{"_ref":105,"_type":24},"image-d2cb4c948681d5ccbb8ff46ed2d69c6f6b6a8990-800x420-jpg","2025-07-01T07:40:00.000Z",{"_type":37,"current":108},"programming-problems-that-seem-easy-but-aren-t-featuring-jon-skeet",[110,115,120,126,131,133,138,143],{"_createdAt":6,"_id":111,"_rev":8,"_type":9,"_updatedAt":6,"slug":112,"title":114},"wp-tagcat-community",{"current":113},"community","Community",{"_createdAt":6,"_id":116,"_rev":8,"_type":9,"_updatedAt":6,"slug":117,"title":119},"wp-tagcat-dev-life",{"current":118},"dev-life","dev life",{"_createdAt":121,"_id":122,"_rev":8,"_type":9,"_updatedAt":121,"slug":123,"title":125},"2023-08-29T08:42:00Z","wp-tagcat-developer-relations",{"current":124},"developer-relations","developer relations",{"_createdAt":6,"_id":127,"_rev":8,"_type":9,"_updatedAt":6,"slug":128,"title":130},"wp-tagcat-developer-experience",{"current":129},"developer-experience","developer experience",{"_createdAt":6,"_id":7,"_rev":8,"_type":9,"_updatedAt":6,"slug":132,"title":13},{"current":12},{"_createdAt":6,"_id":134,"_rev":8,"_type":9,"_updatedAt":6,"slug":135,"title":137},"wp-tagcat-soft-skills",{"current":136},"soft-skills","soft skills",{"_createdAt":6,"_id":139,"_rev":8,"_type":9,"_updatedAt":6,"slug":140,"title":142},"wp-tagcat-podcast",{"current":141},"podcast","The Stack Overflow Podcast",{"_createdAt":6,"_id":54,"_rev":8,"_type":9,"_updatedAt":6,"slug":144,"title":56},{"current":56},"Programming problems that seem easy, but aren't, featuring Jon Skeet",{"_id":147,"author":148,"commentCount":28,"comments":29,"excerpt":158,"featureTag":10,"image":159,"publishedAt":162,"slug":163,"sponsored":10,"tags":165,"title":191},"f3946ba0-f162-47a4-87d9-2d23bb4c8513",[149],{"_id":150,"avatar":151,"name":154,"role":155,"slug":156},"wp-author-295",{"_type":21,"asset":152},{"_ref":153,"_type":24},"image-d670f8093b43e483a52ba692d929578633f70eb5-1024x1024-jpg","Eira May","B2B Editor",{"current":157},"emay","During the holidays, we’re releasing some highlights from a year full of conversations with developers and technologists. Enjoy! We’ll see you in 2025.",{"_type":21,"asset":160,"attribution":34},{"_ref":161,"_type":24},"image-56c6dab9c7d1b66bc662c5f43ea9573418d94d17-2400x1260-webp","2024-12-31T08:40:00.000Z",{"_type":37,"current":164},"how-developers-really-used-ai-coding-tools-in-2024",[166,168,170,172,174,179,181,186],{"_createdAt":6,"_id":41,"_rev":8,"_type":9,"_updatedAt":6,"slug":167,"title":43},{"current":43},{"_createdAt":6,"_id":54,"_rev":8,"_type":9,"_updatedAt":6,"slug":169,"title":56},{"current":56},{"_createdAt":6,"_id":139,"_rev":8,"_type":9,"_updatedAt":6,"slug":171,"title":142},{"current":141},{"_createdAt":6,"_id":45,"_rev":46,"_type":9,"_updatedAt":47,"slug":173,"title":50},{"current":49},{"_createdAt":6,"_id":175,"_rev":8,"_type":9,"_updatedAt":6,"slug":176,"title":178},"wp-tagcat-ai-coding",{"current":177},"ai-coding","ai coding",{"_createdAt":6,"_id":7,"_rev":8,"_type":9,"_updatedAt":6,"slug":180,"title":13},{"current":12},{"_createdAt":6,"_id":182,"_rev":8,"_type":9,"_updatedAt":6,"slug":183,"title":185},"wp-tagcat-pull-requests",{"current":184},"pull-requests","pull requests",{"_createdAt":6,"_id":187,"_rev":8,"_type":9,"_updatedAt":6,"slug":188,"title":190},"wp-tagcat-developer-tools",{"current":189},"developer-tools","developer tools","How developers (really) used AI coding tools in 2024",{"_id":193,"author":194,"commentCount":203,"comments":29,"excerpt":204,"featureTag":10,"image":205,"publishedAt":208,"slug":209,"sponsored":10,"tags":211,"title":244},"09dcb5c5-65fe-4490-aa72-960b68d35d74",[195],{"_id":196,"avatar":197,"name":200,"role":10,"slug":201},"wp-author-213",{"_type":21,"asset":198},{"_ref":199,"_type":24},"image-e81c84dcaeb58be1002795a6544b595bd6fc8071-1024x1024-jpg","Ben Popper",{"current":202},"benpopper",33,"It's time to delegate to the robots.",{"_type":21,"asset":206},{"_ref":207,"_type":24},"image-6f6914fba57b8399af2ec34561c10f87704c9a60-1200x630-png","2024-12-19T15:00:00.000Z",{"_type":37,"current":210},"developers-hate-documentation-ai-generated-toil-work",[212,216,218,220,222,224],{"_createdAt":6,"_id":213,"_rev":8,"_type":9,"_updatedAt":6,"slug":214,"title":215},"wp-tagcat-documentation",{"current":215},"documentation",{"_createdAt":6,"_id":7,"_rev":8,"_type":9,"_updatedAt":6,"slug":217,"title":13},{"current":12},{"_createdAt":6,"_id":175,"_rev":8,"_type":9,"_updatedAt":6,"slug":219,"title":178},{"current":177},{"_createdAt":6,"_id":41,"_rev":8,"_type":9,"_updatedAt":6,"slug":221,"title":43},{"current":43},{"_createdAt":6,"_id":54,"_rev":8,"_type":9,"_updatedAt":6,"slug":223,"title":56},{"current":56},{"_createdAt":225,"_id":226,"_rev":227,"_type":9,"_updatedAt":228,"description":229,"slug":241,"title":243},"2024-09-12T10:47:51Z","1dc92c86-0099-46d4-ba5b-41e5697d43c0","6PK1Gm0YEnAcvtXN32g6bL","2024-09-17T14:27:36Z",[230],{"_key":231,"_type":232,"children":233,"markDefs":239,"style":240},"1ddad854068f","block",[234],{"_key":235,"_type":236,"marks":237,"text":238},"312bffce4f510","span",[],"Articles on business, SaaS, and the software that powers organizations.",[],"normal",{"_type":37,"current":242},"business","Business Hub","Why do developers love clean code but hate writing documentation? ",{"_id":246,"author":247,"commentCount":252,"comments":29,"excerpt":253,"featureTag":10,"image":254,"publishedAt":256,"slug":257,"sponsored":10,"tags":259,"title":284},"da357015-5d85-4ea2-aacd-960a227d77fb",[248],{"_id":150,"avatar":249,"name":154,"role":155,"slug":251},{"_type":21,"asset":250},{"_ref":153,"_type":24},{"current":157},0,"Ben and Ryan talk all things mobile app development with Kenny Johnston, Chief Product Officer at Instabug. They explore what’s unique about mobile observability, how AI tools can reduce developer toil, and why user experience matters so much for app quality.",{"_type":21,"asset":255,"attribution":34},{"_ref":161,"_type":24},"2024-12-06T08:40:00.000Z",{"_type":37,"current":258},"from-bugs-to-performance-to-perfection-pushing-code-quality-in-mobile-apps",[260,262,264,266,271,273,275,277,279],{"_createdAt":6,"_id":41,"_rev":8,"_type":9,"_updatedAt":6,"slug":261,"title":43},{"current":43},{"_createdAt":6,"_id":54,"_rev":8,"_type":9,"_updatedAt":6,"slug":263,"title":56},{"current":56},{"_createdAt":6,"_id":139,"_rev":8,"_type":9,"_updatedAt":6,"slug":265,"title":142},{"current":141},{"_createdAt":6,"_id":267,"_rev":8,"_type":9,"_updatedAt":6,"slug":268,"title":270},"wp-tagcat-software-development",{"current":269},"software-development","software development",{"_createdAt":6,"_id":175,"_rev":8,"_type":9,"_updatedAt":6,"slug":272,"title":178},{"current":177},{"_createdAt":6,"_id":45,"_rev":46,"_type":9,"_updatedAt":47,"slug":274,"title":50},{"current":49},{"_createdAt":6,"_id":187,"_rev":8,"_type":9,"_updatedAt":6,"slug":276,"title":190},{"current":189},{"_createdAt":6,"_id":7,"_rev":8,"_type":9,"_updatedAt":6,"slug":278,"title":13},{"current":12},{"_createdAt":6,"_id":280,"_rev":8,"_type":9,"_updatedAt":6,"slug":281,"title":283},"wp-tagcat-mobile-development",{"current":282},"mobile-development","mobile development","From bugs to performance to perfection: pushing code quality in mobile apps",{"_id":286,"author":287,"commentCount":252,"comments":29,"excerpt":292,"featureTag":10,"image":293,"publishedAt":295,"slug":296,"sponsored":10,"tags":298,"title":331},"b6515095-fe13-420e-b70c-6581bf8cfb04",[288],{"_id":150,"avatar":289,"name":154,"role":155,"slug":291},{"_type":21,"asset":290},{"_ref":153,"_type":24},{"current":157},"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":21,"asset":294,"attribution":34},{"_ref":161,"_type":24},"2024-11-19T08:40:00.000Z",{"_type":37,"current":297},"the-open-source-ecosystem-built-to-reduce-tech-debt",[299,301,303,305,307,311,315,322,327,329],{"_createdAt":6,"_id":41,"_rev":8,"_type":9,"_updatedAt":6,"slug":300,"title":43},{"current":43},{"_createdAt":6,"_id":54,"_rev":8,"_type":9,"_updatedAt":6,"slug":302,"title":56},{"current":56},{"_createdAt":6,"_id":139,"_rev":8,"_type":9,"_updatedAt":6,"slug":304,"title":142},{"current":141},{"_createdAt":6,"_id":45,"_rev":46,"_type":9,"_updatedAt":47,"slug":306,"title":50},{"current":49},{"_createdAt":6,"_id":308,"_rev":8,"_type":9,"_updatedAt":6,"slug":309,"title":310},"wp-tagcat-refactoring",{"current":310},"refactoring",{"_createdAt":6,"_id":312,"_rev":8,"_type":9,"_updatedAt":6,"slug":313,"title":314},"wp-tagcat-java",{"current":314},"java",{"_createdAt":6,"_id":316,"_rev":317,"_type":9,"_updatedAt":318,"slug":319,"title":321},"wp-tagcat-open-source","usBIUY8SfRoXafnkrDdaLh","2025-02-28T11:18:45Z",{"current":320},"open-source","Open Source",{"_createdAt":6,"_id":323,"_rev":8,"_type":9,"_updatedAt":6,"slug":324,"title":326},"wp-tagcat-tech-debt",{"current":325},"tech-debt","tech debt",{"_createdAt":6,"_id":267,"_rev":8,"_type":9,"_updatedAt":6,"slug":328,"title":270},{"current":269},{"_createdAt":6,"_id":7,"_rev":8,"_type":9,"_updatedAt":6,"slug":330,"title":13},{"current":12},"The open-source ecosystem built to reduce tech debt",{"_id":333,"author":334,"commentCount":339,"comments":29,"excerpt":340,"featureTag":10,"image":341,"publishedAt":343,"slug":344,"sponsored":10,"tags":346,"title":364},"eb15cb97-c872-4b31-8208-098a09706d41",[335],{"_id":150,"avatar":336,"name":154,"role":155,"slug":338},{"_type":21,"asset":337},{"_ref":153,"_type":24},{"current":157},2,"Ben welcomes Sonar CEO Tariq Shaukat for a conversation about AI coding tools’ potential to boost developer productivity—and how to balance those potential gains against code quality and security concerns. They talk about Sonar’s origins as an open-source code quality tool, the excellent reasons to embrace a “clean as you code” philosophy, and how to determine where AI coding tools can be helpful and where they can’t (yet).",{"_type":21,"asset":342,"attribution":34},{"_ref":161,"_type":24},"2024-10-22T07:40:00.000Z",{"_type":37,"current":345},"the-new-pair-programming-an-ai-agent-that-cleans-your-code-as-you-write",[347,349,351,353,355,360,362],{"_createdAt":6,"_id":41,"_rev":8,"_type":9,"_updatedAt":6,"slug":348,"title":43},{"current":43},{"_createdAt":6,"_id":54,"_rev":8,"_type":9,"_updatedAt":6,"slug":350,"title":56},{"current":56},{"_createdAt":6,"_id":139,"_rev":8,"_type":9,"_updatedAt":6,"slug":352,"title":142},{"current":141},{"_createdAt":6,"_id":45,"_rev":46,"_type":9,"_updatedAt":47,"slug":354,"title":50},{"current":49},{"_createdAt":6,"_id":356,"_rev":8,"_type":9,"_updatedAt":6,"slug":357,"title":359},"wp-tagcat-ai-assistant",{"current":358},"ai-assistant","ai assistant",{"_createdAt":6,"_id":175,"_rev":8,"_type":9,"_updatedAt":6,"slug":361,"title":178},{"current":177},{"_createdAt":6,"_id":7,"_rev":8,"_type":9,"_updatedAt":6,"slug":363,"title":13},{"current":12},"The new pair programming: an AI agent that cleans your code as you write",{"_id":366,"author":367,"commentCount":372,"comments":29,"excerpt":373,"featureTag":10,"image":374,"publishedAt":376,"slug":377,"sponsored":10,"tags":379,"title":407},"04744119-a25e-4ad4-a3ea-1e5037462496",[368],{"_id":150,"avatar":369,"name":154,"role":155,"slug":371},{"_type":21,"asset":370},{"_ref":153,"_type":24},{"current":157},7,"Ben and Ryan are joined by Bill Harding, CEO of GitClear, for a discussion of AI-generated code quality and its impact on productivity. GitClear’s research has highlighted the fact that while AI can suggest valid code, it can’t necessarily reuse and modify existing code—a recipe for long-term challenges in maintainability and test coverage if devs are too dependent on AI code-gen tools.",{"_type":21,"asset":375,"attribution":34},{"_ref":161,"_type":24},"2024-03-22T21:35:00.000Z",{"_type":37,"current":378},"is-ai-making-your-code-worse",[380,382,384,386,391,393,395,397,399],{"_createdAt":6,"_id":45,"_rev":46,"_type":9,"_updatedAt":47,"slug":381,"title":50},{"current":49},{"_createdAt":6,"_id":356,"_rev":8,"_type":9,"_updatedAt":6,"slug":383,"title":359},{"current":358},{"_createdAt":6,"_id":175,"_rev":8,"_type":9,"_updatedAt":6,"slug":385,"title":178},{"current":177},{"_createdAt":6,"_id":387,"_rev":8,"_type":9,"_updatedAt":6,"slug":388,"title":390},"wp-tagcat-generative-ai",{"current":389},"generative-ai","generative AI",{"_createdAt":6,"_id":7,"_rev":8,"_type":9,"_updatedAt":6,"slug":392,"title":13},{"current":12},{"_createdAt":6,"_id":41,"_rev":8,"_type":9,"_updatedAt":6,"slug":394,"title":43},{"current":43},{"_createdAt":6,"_id":54,"_rev":8,"_type":9,"_updatedAt":6,"slug":396,"title":56},{"current":56},{"_createdAt":6,"_id":139,"_rev":8,"_type":9,"_updatedAt":6,"slug":398,"title":142},{"current":141},{"_createdAt":225,"_id":226,"_rev":227,"_type":9,"_updatedAt":228,"description":400,"slug":406,"title":243},[401],{"_key":231,"_type":232,"children":402,"markDefs":405,"style":240},[403],{"_key":235,"_type":236,"marks":404,"text":238},[],[],{"_type":37,"current":242},"Is AI making your code worse?",{"_id":409,"author":410,"commentCount":419,"comments":29,"excerpt":420,"featureTag":10,"image":421,"publishedAt":424,"slug":425,"sponsored":10,"tags":427,"title":442},"wp-post-18941",[411],{"_id":412,"avatar":413,"name":416,"role":10,"slug":417},"wp-author-cap-17067",{"_type":21,"asset":414},{"_ref":415,"_type":24},"image-015bff0f4bd16f5ba1974cf3119766c6fd6d9fd4-2211x1969-jpg","Isaac Lyman",{"current":418},"isaac-lyman",25,"Code quality affects the mental state of a programmer, communication within their team, and the incentives attached to their work. Improve your code and you can improve your organizational health and competence as a whole. ",{"_type":21,"asset":422},{"_ref":423,"_type":24},"image-e19802ebecc08b799c5286de9d5ca5f8e995b3d6-2400x1260-jpg","2021-10-18T14:00:00.000Z",{"current":426},"code-quality-a-concern-for-businesses-bottom-lines-and-empathetic-programmers",[428,433,435,440],{"_createdAt":6,"_id":429,"_rev":8,"_type":9,"_updatedAt":6,"slug":430,"title":432},"wp-tagcat-code-for-a-living",{"current":431},"code-for-a-living","Code for a Living",{"_createdAt":6,"_id":7,"_rev":8,"_type":9,"_updatedAt":6,"slug":434,"title":13},{"current":12},{"_createdAt":6,"_id":436,"_rev":8,"_type":9,"_updatedAt":6,"slug":437,"title":439},"wp-tagcat-software-engineering",{"current":438},"software-engineering","software engineering",{"_createdAt":6,"_id":323,"_rev":8,"_type":9,"_updatedAt":6,"slug":441,"title":326},{"current":325},"Code quality: a concern for businesses, bottom lines, and empathetic programmers",[]]