[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"sanity-IgmqMSV2-6ceGGYuwEpcsjshmjE__NQmIq8f1h-uNgE":3},{"data":4,"sourceMap":-1},{"info":5,"latest":19,"pinned":386},{"_createdAt":6,"_id":7,"_rev":8,"_system":9,"_type":12,"_updatedAt":13,"descriptionText":14,"slug":15,"title":18},"2026-06-12T16:16:20Z","51c761d7-73f7-42f4-aa49-8484e3849e7c","P0qLqkXH0zpkT6RRZ9Iwel",{"base":10},{"id":7,"rev":11},"MwgZb85ftkde1TTvQsHYa6","blogTag","2026-09-28T16:40:45Z",null,{"_type":16,"current":17},"slug","building-software","Building software",[20,107,146,177,223,274,313,344],{"_id":21,"author":22,"commentCount":34,"comments":35,"excerpt":14,"featureTag":14,"image":14,"publishedAt":36,"slug":37,"sponsored":14,"tags":39,"title":106},"c16e91de-8a75-41b6-9b56-e6317efdf272",[23],{"_id":24,"avatar":25,"name":31,"role":14,"slug":32},"93f1062c-f3c0-4f0a-913d-9f478612ba5d",{"_type":26,"alt":27,"asset":28},"image","A man with dark hair and a beard wearing a blue suit and white shirt, smiling at the camera.",{"_ref":29,"_type":30},"image-ee3c9ef940bc8bfbad148cb12ce8994a02e6b345-872x644-jpg","reference","Kavin Xavier ",{"_type":16,"current":33},"kavin-xavier",0,true,"2026-09-28T16:41:00.986Z",{"_type":16,"current":38},"is-your-human-in-the-loop-actually-slowing-you-down-here-s-what-we-learned",[40,74,94,102],{"_createdAt":41,"_id":42,"_rev":43,"_system":44,"_type":12,"_updatedAt":47,"description":48,"slug":71,"title":73},"2025-08-08T15:49:22Z","39391cf4-6f9a-4238-8670-c1e44b66db9e","09X6HDzCi2VfMov6gSLf7H",{"base":45},{"id":42,"rev":46},"TdCcmC7LyfLVwjB8GEXoh6","2025-12-10T19:34:33Z",[49,60],{"_key":50,"_type":51,"children":52,"markDefs":58,"style":59},"a4b1a37cbbcc","block",[53],{"_key":54,"_type":55,"marks":56,"text":57},"d8e8f3e0fd9c","span",[],"These articles are licensed under a Creative Commons Attribution-ShareAlike 4.0 International license. ",[],"normal",{"_key":61,"_type":51,"children":62,"markDefs":68,"style":59},"7effd489c71f",[63],{"_key":64,"_type":55,"marks":65,"text":67},"538808bb5325",[66],"fd643b288690","creativecommons.org\u002Flicenses\u002Fby-sa\u002F4.0\u002Fdeed.en",[69],{"_key":66,"_type":70},"link",{"_type":16,"current":72},"cc-by-sa","CC BY-SA 4.0",{"_createdAt":75,"_id":76,"_rev":77,"_system":78,"_type":12,"_updatedAt":81,"description":82,"slug":91,"title":93},"2025-04-24T16:28:57Z","797b8797-6e65-4723-b53f-8bc005305384","IpfPEqg1c3Byvj9RrB3Xaj",{"base":79},{"id":76,"rev":80},"oc42Nphz1oZNOg9ttSv7Tn","2026-05-07T14:43:30Z",[83],{"_key":84,"_type":51,"children":85,"markDefs":90,"style":59},"bb32f75814b4",[86],{"_key":87,"_type":55,"marks":88,"text":89},"dbcf27ef29b3",[],"Community-generated articles submitted for your reading pleasure. If you’re interested in seeing your work here, log in with your Stack Overflow account and click the link below. Articles will be licensed under a CC BY-SA 4.0 grant. ",[],{"_type":16,"current":92},"contributed","The Heap",{"_createdAt":95,"_id":96,"_rev":97,"_type":12,"_updatedAt":98,"slug":99,"title":101},"2023-05-23T16:43:21Z","wp-tagcat-ai","fpDTFQqIDjNJIbHDKPBGpV","2025-01-30T16:19:01Z",{"current":100},"ai","AI",{"_createdAt":6,"_id":7,"_rev":8,"_system":103,"_type":12,"_updatedAt":13,"slug":105,"title":18},{"base":104},{"id":7,"rev":11},{"_type":16,"current":17},"Is Your “Human-in-the-Loop” Actually Slowing You Down? Here’s What We Learned",{"_id":108,"author":109,"commentCount":34,"comments":35,"excerpt":118,"featureTag":14,"image":119,"publishedAt":123,"slug":124,"sponsored":35,"tags":126,"title":145},"d1dcc7aa-a336-44c6-bc74-5579f00d71a1",[110],{"_id":111,"avatar":112,"name":115,"role":14,"slug":116},"wp-author-226",{"_type":26,"asset":113},{"_ref":114,"_type":30},"image-56688f6337dd0a96034dfc998cdecc7810597d81-1024x1024-png","Ryan Donovan",{"current":117},"rdonovan","Ryan chats with the GM of Slack, Rob Seaman, about how their new Code Channels feature is bringing multiplayer AI to your team chats. ",{"_type":26,"alt":120,"asset":121},"The Stack Overflow Podcast cover art",{"_ref":122,"_type":30},"image-e35a0c5eb319e7928c9ac0a2c2c782d29e644876-3120x1640-png","2026-09-23T04:40:00.000Z",{"_type":16,"current":125},"multiplayer-ai-why-your-team-and-its-agents-need-a-group-chat",[127,133,137,141],{"_createdAt":95,"_id":128,"_rev":129,"_type":12,"_updatedAt":95,"slug":130,"title":132},"wp-tagcat-podcast","9HpbCsT2tq0xwozQfkc4ih",{"current":131},"podcast","The Stack Overflow Podcast",{"_createdAt":95,"_id":134,"_rev":129,"_type":12,"_updatedAt":95,"slug":135,"title":136},"wp-tagcat-se-tech",{"current":136},"se-tech",{"_createdAt":95,"_id":138,"_rev":129,"_type":12,"_updatedAt":95,"slug":139,"title":140},"wp-tagcat-se-stackoverflow",{"current":140},"se-stackoverflow",{"_createdAt":6,"_id":7,"_rev":8,"_system":142,"_type":12,"_updatedAt":13,"slug":144,"title":18},{"base":143},{"id":7,"rev":11},{"_type":16,"current":17},"Multiplayer AI: Why your team (and its agents) need a group chat",{"_id":147,"author":148,"commentCount":34,"comments":35,"excerpt":153,"featureTag":14,"image":154,"publishedAt":156,"slug":157,"sponsored":35,"tags":159,"title":176},"476c86b2-8996-40d1-a74e-08bfeb84c426",[149],{"_id":111,"avatar":150,"name":115,"role":14,"slug":152},{"_type":26,"asset":151},{"_ref":114,"_type":30},{"current":117},"Ryan welcomes Markus Eisele to the program to talk about why your coding agent should be writing Java. ",{"_type":26,"alt":120,"asset":155},{"_ref":122,"_type":30},"2026-09-09T04:45:00.000Z",{"_type":16,"current":158},"java-s-age-is-its-ai-superpower",[160,162,164,166,168,172],{"_createdAt":95,"_id":128,"_rev":129,"_type":12,"_updatedAt":95,"slug":161,"title":132},{"current":131},{"_createdAt":95,"_id":134,"_rev":129,"_type":12,"_updatedAt":95,"slug":163,"title":136},{"current":136},{"_createdAt":95,"_id":138,"_rev":129,"_type":12,"_updatedAt":95,"slug":165,"title":140},{"current":140},{"_createdAt":95,"_id":96,"_rev":97,"_type":12,"_updatedAt":98,"slug":167,"title":101},{"current":100},{"_createdAt":95,"_id":169,"_rev":129,"_type":12,"_updatedAt":95,"slug":170,"title":171},"wp-tagcat-java",{"current":171},"java",{"_createdAt":6,"_id":7,"_rev":8,"_system":173,"_type":12,"_updatedAt":13,"slug":175,"title":18},{"base":174},{"id":7,"rev":11},{"_type":16,"current":17},"Java’s age is its AI superpower",{"_id":178,"author":179,"commentCount":190,"comments":35,"excerpt":191,"featureTag":14,"image":192,"publishedAt":196,"slug":197,"sponsored":14,"tags":199,"title":222},"d6558158-95fa-4a20-bd6d-53dd86eb876e",[180],{"_id":181,"avatar":182,"name":186,"role":187,"slug":188},"c7b5948b-be9d-4968-ac90-f152666912c2",{"_type":26,"alt":183,"asset":184},"A man wearing an IBM Developer shirt and glasses smiles in front of an abstract blue and white background.",{"_ref":185,"_type":30},"image-259138daae34c1b49eee8994bcb4aaddd11e16ae-1280x854-jpg","Markus Eisele","Developer advocate at IBM Research",{"_type":16,"current":189},"markus-eisele",1,"When code gets cheap, the hard part is deciding what “correct” means and building a reliable way to check it.",{"_type":26,"alt":193,"asset":194},"A colorful, stylized digital interface resembling a radar screen with a central scanner, geometric shapes, and bar graphs.",{"_ref":195,"_type":30},"image-f67d094b96bec257c2011a99f351211c369ba0b2-12000x6300-jpg","2026-08-21T14:00:00.000Z",{"_type":16,"current":198},"dispatches-from-o-reilly-the-right-amount-of-spec-for-agentic-development",[200,216,218],{"_createdAt":201,"_id":202,"_rev":203,"_type":12,"_updatedAt":204,"description":205,"slug":214,"title":215},"2026-04-30T15:52:12Z","1ab51e82-d622-4028-83f7-8ce7b274fca9","emZKQHDZAHJQnZeDjvOucy","2026-04-30T15:52:35Z",[206],{"_key":207,"_type":51,"children":208,"markDefs":213,"style":59},"d4413570e304",[209],{"_key":210,"_type":55,"marks":211,"text":212},"95d83aa6b3ee",[],"Articles in the “Dispatches from O’Reilly” series. ",[],{"_type":16,"current":215},"oreilly",{"_createdAt":95,"_id":96,"_rev":97,"_type":12,"_updatedAt":98,"slug":217,"title":101},{"current":100},{"_createdAt":6,"_id":7,"_rev":8,"_system":219,"_type":12,"_updatedAt":13,"slug":221,"title":18},{"base":220},{"id":7,"rev":11},{"_type":16,"current":17},"Dispatches from O'Reilly: The right amount of spec for agentic development",{"_id":224,"author":225,"commentCount":34,"comments":35,"excerpt":14,"featureTag":14,"image":14,"publishedAt":234,"slug":235,"sponsored":14,"tags":237,"title":273},"ed3e57af-3814-4e23-a270-d234eb2b4d82",[226],{"_id":227,"avatar":228,"name":231,"role":14,"slug":232},"d4de22a0-5dc6-4266-956f-144265644fd1",{"_type":26,"asset":229},{"_ref":230,"_type":30},"image-4a7590d84f15edc7498b09b3deb0bf1c7ef1da4c-567x811-png","Dr. Ahmad Mateen Ishanzai",{"_type":16,"current":233},"ahmad-ishanzai","2026-08-20T18:43:39.700Z",{"_type":16,"current":236},"quantum-augmented-applications-integrating-quantum-subroutines-into-classical-software-stacks",[238,248,252,257],{"_createdAt":75,"_id":76,"_rev":77,"_system":239,"_type":12,"_updatedAt":81,"description":241,"slug":247,"title":93},{"base":240},{"id":76,"rev":80},[242],{"_key":84,"_type":51,"children":243,"markDefs":246,"style":59},[244],{"_key":87,"_type":55,"marks":245,"text":89},[],[],{"_type":16,"current":92},{"_createdAt":6,"_id":7,"_rev":8,"_system":249,"_type":12,"_updatedAt":13,"slug":251,"title":18},{"base":250},{"id":7,"rev":11},{"_type":16,"current":17},{"_createdAt":95,"_id":253,"_rev":129,"_type":12,"_updatedAt":95,"slug":254,"title":256},"wp-tagcat-quantum-computing",{"current":255},"quantum-computing","quantum computing",{"_createdAt":41,"_id":42,"_rev":43,"_system":258,"_type":12,"_updatedAt":47,"description":260,"slug":272,"title":73},{"base":259},{"id":42,"rev":46},[261,266],{"_key":50,"_type":51,"children":262,"markDefs":265,"style":59},[263],{"_key":54,"_type":55,"marks":264,"text":57},[],[],{"_key":61,"_type":51,"children":267,"markDefs":270,"style":59},[268],{"_key":64,"_type":55,"marks":269,"text":67},[66],[271],{"_key":66,"_type":70},{"_type":16,"current":72},"Quantum-Augmented Applications: Integrating Quantum Subroutines into Classical Software Stacks",{"_id":275,"author":276,"commentCount":286,"comments":35,"excerpt":287,"featureTag":14,"image":288,"publishedAt":292,"slug":293,"sponsored":14,"tags":295,"title":312},"8e30b6eb-54d0-479e-bab3-7139a9b37dc6",[277],{"_id":278,"avatar":279,"name":283,"role":14,"slug":284},"06592c58-4600-47c3-a5f8-374ad373796b",{"_type":26,"alt":280,"asset":281},"A smiling man with dark hair wears glasses with purple reflections and a gray polo shirt against a wooden background.",{"_ref":282,"_type":30},"image-fb37310b3d5e6d29c7fd2a03a887544b5d4b5dd8-494x512-png","Jeremy Arendt",{"_type":16,"current":285},"jeremy-arendt",3,"Your semantic layer is a risk mitigation strategy. Not risk in the abstract, compliance-framework sense, but the practical, operational risk that quietly drains organizations every day.",{"_type":26,"alt":289,"asset":290,"attribution":291},"Abstract, colorful control panel with a central radar screen showing a hand icon, surrounded by geometric shapes.",{"_ref":195,"_type":30},"Alexandra Francis","2026-07-31T14:08:31.737Z",{"_type":16,"current":294},"dispatches-from-o-reilly-the-best-risk-mitigation-strategy-in-data-a-single-source-of-truth",[296,304,308],{"_createdAt":201,"_id":202,"_rev":203,"_type":12,"_updatedAt":204,"description":297,"slug":303,"title":215},[298],{"_key":207,"_type":51,"children":299,"markDefs":302,"style":59},[300],{"_key":210,"_type":55,"marks":301,"text":212},[],[],{"_type":16,"current":215},{"_createdAt":95,"_id":305,"_rev":129,"_type":12,"_updatedAt":95,"slug":306,"title":307},"wp-tagcat-data",{"current":307},"data",{"_createdAt":6,"_id":7,"_rev":8,"_system":309,"_type":12,"_updatedAt":13,"slug":311,"title":18},{"base":310},{"id":7,"rev":11},{"_type":16,"current":17},"Dispatches from O'Reilly: The best risk mitigation strategy in data? A single source of truth",{"_id":314,"author":315,"commentCount":190,"comments":35,"excerpt":320,"featureTag":321,"image":322,"publishedAt":326,"slug":327,"sponsored":14,"tags":329,"title":343},"c370e594-60a9-423c-841b-4ea07acbc3ce",[316],{"_id":111,"avatar":317,"name":115,"role":14,"slug":319},{"_type":26,"asset":318},{"_ref":114,"_type":30},{"current":117},"The tools themselves are new and their capabilities are in constant flux. If your kitchen knife kept changing shape, weight, and edge, you’d have to relearn it every time; that’s a hard tool to build trust in. But it also points to a flaw in how you use that tool, the process around it, and the way the tool reinforces the process.",false,{"_type":26,"alt":323,"asset":324},"A repeating pattern of interlocking red, blue, and yellow hammer-like shapes.",{"_ref":325,"_type":30},"image-29bbae9c01de534b803084e4f0b9a77f9cd90e5c-12000x6300-jpg","2026-07-29T14:06:38.811Z",{"_type":16,"current":328},"developers-are-attached-to-tools-because-tools-encode-trust",[330,334,338],{"_createdAt":6,"_id":7,"_rev":8,"_system":331,"_type":12,"_updatedAt":13,"slug":333,"title":18},{"base":332},{"id":7,"rev":11},{"_type":16,"current":17},{"_createdAt":95,"_id":335,"_rev":129,"_type":12,"_updatedAt":95,"slug":336,"title":337},"wp-tagcat-ide",{"current":337},"ide",{"_createdAt":95,"_id":339,"_rev":129,"_type":12,"_updatedAt":95,"slug":340,"title":342},"wp-tagcat-dev-tools",{"current":341},"dev-tools","dev tools","Developers are attached to tools because tools encode trust",{"_id":345,"author":346,"commentCount":34,"comments":35,"excerpt":14,"featureTag":14,"image":14,"publishedAt":351,"slug":352,"sponsored":14,"tags":354,"title":385},"5af28603-2494-4e14-b49b-86db6b3507aa",[347],{"_id":227,"avatar":348,"name":231,"role":14,"slug":350},{"_type":26,"asset":349},{"_ref":230,"_type":30},{"_type":16,"current":233},"2026-06-12T16:17:10.988Z",{"_type":16,"current":353},"designing-cherryscript-optimizing-data-driven-workflows-via-custom-python-based-interpreters",[355,365,369],{"_createdAt":75,"_id":76,"_rev":77,"_system":356,"_type":12,"_updatedAt":81,"description":358,"slug":364,"title":93},{"base":357},{"id":76,"rev":80},[359],{"_key":84,"_type":51,"children":360,"markDefs":363,"style":59},[361],{"_key":87,"_type":55,"marks":362,"text":89},[],[],{"_type":16,"current":92},{"_createdAt":6,"_id":7,"_rev":8,"_system":366,"_type":12,"_updatedAt":13,"slug":368,"title":18},{"base":367},{"id":7,"rev":11},{"_type":16,"current":17},{"_createdAt":41,"_id":42,"_rev":43,"_system":370,"_type":12,"_updatedAt":47,"description":372,"slug":384,"title":73},{"base":371},{"id":42,"rev":46},[373,378],{"_key":50,"_type":51,"children":374,"markDefs":377,"style":59},[375],{"_key":54,"_type":55,"marks":376,"text":57},[],[],{"_key":61,"_type":51,"children":379,"markDefs":382,"style":59},[380],{"_key":64,"_type":55,"marks":381,"text":67},[66],[383],{"_key":66,"_type":70},{"_type":16,"current":72},"Designing CherryScript: Optimizing Data-Driven Workflows via Custom Python-Based Interpreters",[]]