[{"title":"Qwen and Gemma With Thinking On: Thinking Pays Qwen on Tool Calls, Gemma Still Leads","path":"/gde/qwen-and-gemma-with-thinking-on-thinking-pays-qwen-on-tool-calls-gemma-still-leads-4dd2","id":4879282,"user_id":3490099,"comments_count":1,"public_reactions_count":6,"organization_id":11939,"reading_time":9,"video_thumbnail_url":null,"video":null,"edited_at":null,"experience_level_rating":5.0,"experience_level_rating_distribution":5.0,"main_image_height":420,"type_of":"full_post","subforem_id":1,"favorited_by_user_id":null,"ai_disclosure_level":"not_disclosed","user":{"name":"xbill","username":"xbill","slug":"xbill","profile_image_90":"https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3490099%2Fc6a975d0-cd94-485d-82b1-14ed5b344fcf.jpg","profile_image_url":"https://dev-to-uploads.s3.us-east-2.amazonaws.com/uploads/user/profile_image/3490099/c6a975d0-cd94-485d-82b1-14ed5b344fcf.jpg","cached_base_subscriber?":true,"cached_community_leader?":false,"cached_base_subscriber":true,"cached_community_leader":false},"organization":{"name":"Google Developer Experts","username":"gde","slug":"gde","profile_image_90":"https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Forganization%2Fprofile_image%2F11939%2Fe3080d5b-ecde-42a8-b089-bafecc31fa97.png","profile_image_url":"https://dev-to-uploads.s3.us-east-2.amazonaws.com/uploads/organization/profile_image/11939/e3080d5b-ecde-42a8-b089-bafecc31fa97.png","cached_base_subscriber?":false,"cached_community_leader?":false},"pinned":false,"main_image":"https://media2.dev.to/dynamic/image/width=1000,height=420,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fraw.githubusercontent.com%2Fxbill9%2Fqwen-dev%2Fmain%2Flocal-llamacpp-1650ti-qwen352b-q4_0%2Fdocs%2Fqwen-vs-gemma-thinking%2Fdevto-cover.8dab7794.jpg","tag_list":["gemma","qwen","llamacpp","cuda"],"flare_tag":null,"class_name":"Article","cloudinary_video_url":null,"published_at_int":1792601748,"published_timestamp":"2026-10-21T16:55:48Z","main_image_background_hex_color":"#dddddd","public_reaction_categories":[{"slug":"like","name":"Like","icon":"sparkle-heart","position":1},{"slug":"unicorn","name":"Unicorn","icon":"multi-unicorn","position":2},{"slug":"exploding_head","name":"Exploding Head","icon":"exploding-head","position":3}],"readable_publish_date":"Oct 21","video_duration_in_minutes":"00:00","ai_disclosure_label":"Not Disclosed","top_comments":[],"subforem_logo":"https://dev-to-uploads.s3.amazonaws.com/uploads/articles/8j7kvp660rqzt99zui8e.png","context_note":null,"url":"https://dev.to/gde/qwen-and-gemma-with-thinking-on-thinking-pays-qwen-on-tool-calls-gemma-still-leads-4dd2","current_user_signed_in":false,"feed_config":null},{"title":"I spent a year on dev, and I'm not happy about it...","path":"/heytechomaima/i-spent-a-year-on-dev-and-im-not-happy-about-it-5hk8","id":4938850,"user_id":3585602,"comments_count":40,"public_reactions_count":55,"organization_id":null,"reading_time":2,"video_thumbnail_url":null,"video":null,"edited_at":null,"experience_level_rating":5.0,"experience_level_rating_distribution":0.0,"main_image_height":420,"type_of":"full_post","subforem_id":1,"favorited_by_user_id":870724,"ai_disclosure_level":"not_disclosed","user":{"name":"Omaima Ameen","username":"heytechomaima","slug":"heytechomaima","profile_image_90":"https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3585602%2Fdf95ddca-70c3-4e30-96ba-2c690e870751.png","profile_image_url":"https://dev-to-uploads.s3.us-east-2.amazonaws.com/uploads/user/profile_image/3585602/df95ddca-70c3-4e30-96ba-2c690e870751.png","cached_base_subscriber?":false,"cached_community_leader?":false,"cached_base_subscriber":false,"cached_community_leader":false},"pinned":false,"main_image":"https://media2.dev.to/dynamic/image/width=1000,height=420,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F7inugkaa2xx222d40nip.png","tag_list":["beginners","developers","community","writing"],"flare_tag":null,"class_name":"Article","cloudinary_video_url":null,"published_at_int":1793255026,"published_timestamp":"2026-10-29T06:23:46Z","main_image_background_hex_color":"#dddddd","public_reaction_categories":[{"slug":"like","name":"Like","icon":"sparkle-heart","position":1},{"slug":"unicorn","name":"Unicorn","icon":"multi-unicorn","position":2},{"slug":"exploding_head","name":"Exploding Head","icon":"exploding-head","position":3}],"readable_publish_date":"Oct 29","video_duration_in_minutes":"00:00","ai_disclosure_label":"Not Disclosed","top_comments":[{"comment_id":1713023,"user_id":870724,"published_timestamp":"2026-10-29T11:00:31Z","published_at_int":1793271631,"safe_processed_html":"\u003cp\u003eDon't be too hard on yourself! Doing open source, participating in hackathons, and building real projects in a single year is no small feat. It’s natural to feel frustrated when you have big goals, but you clearly have the drive to make them happen. You've made amazing progress. You are definitely not where you started, and I can't wait to see what you focus on and write about in Year 2! 🚀\u003c/p\u003e\n\n","path":"/maame-codes/comment/3jc1d","username":"maame-codes","name":"Maame Afua A. P. Fordjour ","profile_image_90":"https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F870724%2Fe7722a3a-8b1f-47b6-a26d-777bfaf22abc.jpg"},{"comment_id":1712600,"user_id":1436158,"published_timestamp":"2026-10-29T06:48:07Z","published_at_int":1793256487,"safe_processed_html":"\u003cp\u003eWow, this made me really happy 😸\u003c/p\u003e\n\n\u003cp\u003eThank you so much for mentioning me! I’m really glad that something I wrote could be useful or inspiring to you.\u003c/p\u003e\n\n\u003cp\u003eAnd congrats on year 1 too! 🍻\u003cbr\u003e\nI’m looking forward to seeing what year 2 brings for you. 🙌\u003c/p\u003e\n\n","path":"/nyaomaru/comment/3jbb6","username":"nyaomaru","name":"nyaomaru","profile_image_90":"https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1436158%2Fa78bc4ed-7796-4760-baa5-06283c2404d6.png"},{"comment_id":1712557,"user_id":3977056,"published_timestamp":"2026-10-29T06:30:33Z","published_at_int":1793255433,"safe_processed_html":"\u003cp\u003ewait whatt!!!\u003cbr\u003e\nthanks, you consider me good writer so much thanks 🥰\u003cbr\u003e\nme too learning from the OGs\u003cbr\u003e\nlike \u003ca class=\"mentioned-user\" href=\"https://dev.to/xulingfeng\"\u003e@xulingfeng\u003c/a\u003e \u003ca class=\"mentioned-user\" href=\"https://dev.to/merbayerp\"\u003e@merbayerp\u003c/a\u003e \u003ca class=\"mentioned-user\" href=\"https://dev.to/technogamerz\"\u003e@technogamerz\u003c/a\u003e \u003ca class=\"mentioned-user\" href=\"https://dev.to/nyaomaru\"\u003e@nyaomaru\u003c/a\u003e and \u003ca class=\"mentioned-user\" href=\"https://dev.to/effessdev\"\u003e@effessdev\u003c/a\u003e \u003cbr\u003e\nbut again thanks to consider me in OGs\u003cbr\u003e\nI will maintain that title for sure 💪\u003c/p\u003e\n\n","path":"/akhourianmolkumar/comment/3jb9f","username":"akhourianmolkumar","name":"Akhouri Anmol Kumar","profile_image_90":"https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3977056%2Fa5394b5b-b434-4187-becb-fde55f0357d2.gif"}],"subforem_logo":"https://dev-to-uploads.s3.amazonaws.com/uploads/articles/8j7kvp660rqzt99zui8e.png","context_note":"\u003cp\u003eCommunity OGs chime in with supportive replies\u003c/p\u003e\n\n","url":"https://dev.to/heytechomaima/i-spent-a-year-on-dev-and-im-not-happy-about-it-5hk8","current_user_signed_in":false,"feed_config":null},{"title":"Two ways to build with Claude models on Google Cloud!","path":"/googleai/two-ways-to-build-with-claude-models-on-google-cloud-1mfe","id":4900725,"user_id":3529802,"comments_count":0,"public_reactions_count":11,"organization_id":11026,"reading_time":1,"video_thumbnail_url":null,"video":null,"edited_at":null,"experience_level_rating":5.0,"experience_level_rating_distribution":5.0,"main_image_height":420,"type_of":"full_post","subforem_id":1,"favorited_by_user_id":null,"ai_disclosure_level":"not_disclosed","user":{"name":"Jen Harvey","username":"pugsandprincesses","slug":"pugsandprincesses","profile_image_90":"https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3529802%2F96c01065-2ced-4b31-99a4-36ff42abdc41.jpg","profile_image_url":"https://dev-to-uploads.s3.us-east-2.amazonaws.com/uploads/user/profile_image/3529802/96c01065-2ced-4b31-99a4-36ff42abdc41.jpg","cached_base_subscriber?":false,"cached_community_leader?":false,"cached_base_subscriber":false,"cached_community_leader":false},"organization":{"name":"Google AI","username":"googleai","slug":"googleai","profile_image_90":"https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Forganization%2Fprofile_image%2F11026%2F386b14d3-cc9a-4270-aba0-3e41cdfb9d85.jpg","profile_image_url":"https://dev-to-uploads.s3.us-east-2.amazonaws.com/uploads/organization/profile_image/11026/386b14d3-cc9a-4270-aba0-3e41cdfb9d85.jpg","cached_base_subscriber?":false,"cached_community_leader?":false},"pinned":false,"main_image":null,"tag_list":["claude","google","cloud","googlecloud"],"flare_tag":null,"class_name":"Article","cloudinary_video_url":null,"published_at_int":1792706632,"published_timestamp":"2026-10-22T22:03:52Z","main_image_background_hex_color":"#dddddd","public_reaction_categories":[{"slug":"like","name":"Like","icon":"sparkle-heart","position":1},{"slug":"unicorn","name":"Unicorn","icon":"multi-unicorn","position":2},{"slug":"exploding_head","name":"Exploding Head","icon":"exploding-head","position":3}],"readable_publish_date":"Oct 22","video_duration_in_minutes":"00:00","ai_disclosure_label":"Not Disclosed","top_comments":[],"subforem_logo":"https://dev-to-uploads.s3.amazonaws.com/uploads/articles/8j7kvp660rqzt99zui8e.png","context_note":null,"url":"https://dev.to/googleai/two-ways-to-build-with-claude-models-on-google-cloud-1mfe","current_user_signed_in":false,"feed_config":null},{"title":"Should You Build an MVP Before Your First Customer?","path":"/startupcafe/should-you-build-an-mvp-before-your-first-customer-4242","id":4915339,"user_id":3615540,"comments_count":22,"public_reactions_count":55,"organization_id":15427,"reading_time":9,"video_thumbnail_url":null,"video":null,"edited_at":null,"experience_level_rating":10.0,"experience_level_rating_distribution":0.0,"main_image_height":420,"type_of":"full_post","subforem_id":1,"favorited_by_user_id":null,"ai_disclosure_level":"some_ai","user":{"name":"Hanzla Baig","username":"hanzla","slug":"hanzla","profile_image_90":"https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3615540%2Fe3e2334c-afc4-44a7-a3f5-a3b66f0658e0.png","profile_image_url":"https://dev-to-uploads.s3.us-east-2.amazonaws.com/uploads/user/profile_image/3615540/e3e2334c-afc4-44a7-a3f5-a3b66f0658e0.png","cached_base_subscriber?":false,"cached_community_leader?":false,"cached_base_subscriber":false,"cached_community_leader":false},"organization":{"name":"The Startup Café","username":"startupcafe","slug":"startupcafe","profile_image_90":"https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Forganization%2Fprofile_image%2F15427%2F3acf9cd5-6b15-46e1-91e5-bda4b2625e0b.jpg","profile_image_url":"https://dev-to-uploads.s3.us-east-2.amazonaws.com/uploads/organization/profile_image/15427/3acf9cd5-6b15-46e1-91e5-bda4b2625e0b.jpg","cached_base_subscriber?":false,"cached_community_leader?":false},"pinned":false,"main_image":"https://media2.dev.to/dynamic/image/width=1000,height=420,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fhlo4zt91nvca40zel82d.png","tag_list":["webdev","programming","startup","discuss"],"flare_tag":{"name":"discuss","bg_color_hex":"#71EA8B","text_color_hex":"#FFFFFF"},"class_name":"Article","cloudinary_video_url":null,"published_at_int":1792932723,"published_timestamp":"2026-10-25T12:52:03Z","main_image_background_hex_color":"#dddddd","public_reaction_categories":[{"slug":"like","name":"Like","icon":"sparkle-heart","position":1},{"slug":"raised_hands","name":"Raised Hands","icon":"raised-hands","position":4},{"slug":"unicorn","name":"Unicorn","icon":"multi-unicorn","position":2}],"readable_publish_date":"Oct 25","video_duration_in_minutes":"00:00","ai_disclosure_label":"AI-assisted","top_comments":[{"comment_id":1705233,"user_id":4205560,"published_timestamp":"2026-10-25T16:09:00Z","published_at_int":1792944540,"safe_processed_html":"\u003cp\u003eThe Buffer example, where a pricing page sat between the two pages so a visitor had to click a plan before leaving an email, is a good model for the cheap test. Before building, I'd check three things: market proof (are similar products selling, with review counts as a rough proxy), language proof (collect 10 posts where people describe the problem in their own words and reuse those words on your page), and one behavior test such as a fake-door pricing page or an honest pre-sale. If two of the three are weak, change the buyer or the problem before you build. If the risk is mostly in whether it can be built, the Figma route makes more sense, but for most solo makers it's customer risk.\u003c/p\u003e\n\n","path":"/revenue_operator/comment/3j0dn","username":"revenue_operator","name":"Revenue Operator","profile_image_90":"https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4205560%2F0c0cafa6-ac2a-4319-8e9c-6ed2aa324c1a.png"},{"comment_id":1704940,"user_id":2167197,"published_timestamp":"2026-10-25T13:06:28Z","published_at_int":1792933588,"safe_processed_html":"\u003cp\u003echeapest test that could come back negative. most validation plans skip the part where no is an allowed answer.\u003c/p\u003e\n\n","path":"/robertpaschal/comment/3j02g","username":"robertpaschal","name":"Odinaka Robert Nnamani","profile_image_90":"https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F2167197%2Fecea0dc6-e64a-4d17-86da-0ec53a674663.jpeg"}],"subforem_logo":"https://dev-to-uploads.s3.amazonaws.com/uploads/articles/8j7kvp660rqzt99zui8e.png","context_note":"\u003cp\u003eBuffer and Figma case studies compared\u003c/p\u003e\n\n","url":"https://dev.to/startupcafe/should-you-build-an-mvp-before-your-first-customer-4242","current_user_signed_in":false,"feed_config":null},{"title":"Trick or Type Guard? Surviving `unknown` with is-kit 🎃","path":"/nyaomaru/trick-or-type-guard-surviving-unknown-with-is-kit-4oc2","id":4916522,"user_id":1436158,"comments_count":22,"public_reactions_count":92,"organization_id":null,"reading_time":5,"video_thumbnail_url":null,"video":null,"edited_at":null,"experience_level_rating":10.0,"experience_level_rating_distribution":0.0,"main_image_height":420,"type_of":"full_post","subforem_id":1,"favorited_by_user_id":null,"ai_disclosure_level":"not_disclosed","user":{"name":"nyaomaru","username":"nyaomaru","slug":"nyaomaru","profile_image_90":"https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1436158%2Fa78bc4ed-7796-4760-baa5-06283c2404d6.png","profile_image_url":"https://dev-to-uploads.s3.us-east-2.amazonaws.com/uploads/user/profile_image/1436158/a78bc4ed-7796-4760-baa5-06283c2404d6.png","cached_base_subscriber?":false,"cached_community_leader?":false,"cached_base_subscriber":false,"cached_community_leader":false},"pinned":false,"main_image":"https://media2.dev.to/dynamic/image/width=1000,height=420,fit=cover,gravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fedxqob3qk61zkrn9sudb.gif","tag_list":["typescript","opensource","beginners","webdev"],"flare_tag":null,"class_name":"Article","cloudinary_video_url":null,"published_at_int":1793459812,"published_timestamp":"2026-10-31T15:16:52Z","main_image_background_hex_color":"#dddddd","public_reaction_categories":[{"slug":"like","name":"Like","icon":"sparkle-heart","position":1},{"slug":"unicorn","name":"Unicorn","icon":"multi-unicorn","position":2},{"slug":"fire","name":"Fire","icon":"fire","position":5}],"readable_publish_date":"Oct 31","video_duration_in_minutes":"00:00","ai_disclosure_label":"Not Disclosed","top_comments":[{"comment_id":1723049,"user_id":3986100,"published_timestamp":"2026-11-03T23:35:21Z","published_at_int":1793748921,"safe_processed_html":"\u003cp\u003eThe spookyLevel field is a useful place to show a second boundary: isNumber proves a finite number, but not that the value is an integer in your allowed range. I'd add a small domain guard for that and test -1, 1.5 and a value above the maximum alongside the happy path. A payload can have exactly the right shape and still be invalid for the operation receiving it.\u003c/p\u003e\n\n","path":"/marcusykim/comment/3k0n3","username":"marcusykim","name":"Marcus Kim","profile_image_90":"https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3986100%2Fc1575634-3404-470c-8a8c-07bbc047ff7c.jpg"},{"comment_id":1720361,"user_id":4135392,"published_timestamp":"2026-11-02T11:01:04Z","published_at_int":1793617264,"safe_processed_html":"\u003cp\u003eLoved the Halloween twist on TypeScript! 🎃 Such a fun way to explain why \u003ccode\u003eunknown\u003c/code\u003e is safer than \u003ccode\u003eany\u003c/code\u003e.\u003c/p\u003e\n\n\u003cp\u003eCurious, have you ever run into a real bug because API data wasn't properly validated? 😄\u003c/p\u003e\n\n","path":"/nullandvoid_/comment/3jmnj","username":"nullandvoid_","name":"Jyanthi","profile_image_90":"https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4135392%2F6b36726c-62d8-4ce1-b732-8c8acd834dba.png"},{"comment_id":1720129,"user_id":3912599,"published_timestamp":"2026-11-02T08:23:28Z","published_at_int":1793607808,"safe_processed_html":"\u003cp\u003eThe optional secret field is where I'd add one more example: missing, explicitly undefined, null, and an empty string. Those are easy to blur together when moving from a type definition to a runtime guard. I'd use that little matrix alongside some questions on prachub too, asking which cases the contract actually permits before writing the check. Does optional Key intentionally distinguish a missing key from a present key whose value is undefined?\u003c/p\u003e\n\n","path":"/emilywoodsnyc/comment/3jmel","username":"emilywoodsnyc","name":"Emily Woods","profile_image_90":"https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3912599%2Fc95a7ee1-41d2-4e1e-994d-e1aedab86d39.png"}],"subforem_logo":"https://dev-to-uploads.s3.amazonaws.com/uploads/articles/8j7kvp660rqzt99zui8e.png","context_note":"\u003cp\u003eUses a fun Halloween theme to explain type safety\u003c/p\u003e\n\n","url":"https://dev.to/nyaomaru/trick-or-type-guard-surviving-unknown-with-is-kit-4oc2","current_user_signed_in":false,"feed_config":null},{"title":"[Agent Platform in Action (3)] Solving Stateless Container HITL Amnesia: Cross-Instance Business Card Recognition and Pause/Resu","path":"/gde/agent-platform-in-action-3-solving-stateless-container-hitl-amnesia-cross-instance-business-3c4h","id":4884109,"user_id":409957,"comments_count":1,"public_reactions_count":8,"organization_id":11939,"reading_time":12,"video_thumbnail_url":null,"video":null,"edited_at":"2026-10-23T08:38:56.229Z","experience_level_rating":5.0,"experience_level_rating_distribution":5.0,"main_image_height":420,"type_of":"full_post","subforem_id":1,"favorited_by_user_id":null,"ai_disclosure_level":"not_disclosed","user":{"name":"Evan Lin","username":"evanlin","slug":"evanlin","profile_image_90":"https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F409957%2Fc150d4a7-cb20-469d-a230-bac27232c577.jpeg","profile_image_url":"https://dev-to-uploads.s3.us-east-2.amazonaws.com/uploads/user/profile_image/409957/c150d4a7-cb20-469d-a230-bac27232c577.jpeg","cached_base_subscriber?":false,"cached_community_leader?":false,"cached_base_subscriber":false,"cached_community_leader":false},"organization":{"name":"Google Developer Experts","username":"gde","slug":"gde","profile_image_90":"https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Forganization%2Fprofile_image%2F11939%2Fe3080d5b-ecde-42a8-b089-bafecc31fa97.png","profile_image_url":"https://dev-to-uploads.s3.us-east-2.amazonaws.com/uploads/organization/profile_image/11939/e3080d5b-ecde-42a8-b089-bafecc31fa97.png","cached_base_subscriber?":false,"cached_community_leader?":false},"pinned":false,"main_image":null,"tag_list":["agents","ai","architecture","go"],"flare_tag":null,"class_name":"Article","cloudinary_video_url":null,"published_at_int":1792744404,"published_timestamp":"2026-10-23T08:33:24Z","main_image_background_hex_color":"#dddddd","public_reaction_categories":[{"slug":"like","name":"Like","icon":"sparkle-heart","position":1},{"slug":"unicorn","name":"Unicorn","icon":"multi-unicorn","position":2},{"slug":"exploding_head","name":"Exploding Head","icon":"exploding-head","position":3}],"readable_publish_date":"Oct 23","video_duration_in_minutes":"00:00","ai_disclosure_label":"Not Disclosed","top_comments":[],"subforem_logo":"https://dev-to-uploads.s3.amazonaws.com/uploads/articles/8j7kvp660rqzt99zui8e.png","context_note":null,"url":"https://dev.to/gde/agent-platform-in-action-3-solving-stateless-container-hitl-amnesia-cross-instance-business-3c4h","current_user_signed_in":false,"feed_config":null},{"title":"Performance vs Quality: Gemma 4 E2B Quantization on an NVIDIA L4 and a Tesla T4","path":"/gde/performance-vs-quality-gemma-4-e2b-quantization-on-an-nvidia-l4-and-a-tesla-t4-4b90","id":4941529,"user_id":3490099,"comments_count":1,"public_reactions_count":7,"organization_id":11939,"reading_time":11,"video_thumbnail_url":null,"video":null,"edited_at":null,"experience_level_rating":5.0,"experience_level_rating_distribution":5.0,"main_image_height":420,"type_of":"full_post","subforem_id":1,"favorited_by_user_id":null,"ai_disclosure_level":"not_disclosed","user":{"name":"xbill","username":"xbill","slug":"xbill","profile_image_90":"https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3490099%2Fc6a975d0-cd94-485d-82b1-14ed5b344fcf.jpg","profile_image_url":"https://dev-to-uploads.s3.us-east-2.amazonaws.com/uploads/user/profile_image/3490099/c6a975d0-cd94-485d-82b1-14ed5b344fcf.jpg","cached_base_subscriber?":true,"cached_community_leader?":false,"cached_base_subscriber":true,"cached_community_leader":false},"organization":{"name":"Google Developer Experts","username":"gde","slug":"gde","profile_image_90":"https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Forganization%2Fprofile_image%2F11939%2Fe3080d5b-ecde-42a8-b089-bafecc31fa97.png","profile_image_url":"https://dev-to-uploads.s3.us-east-2.amazonaws.com/uploads/organization/profile_image/11939/e3080d5b-ecde-42a8-b089-bafecc31fa97.png","cached_base_subscriber?":false,"cached_community_leader?":false},"pinned":false,"main_image":"https://media2.dev.to/dynamic/image/width=1000,height=420,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fraw.githubusercontent.com%2Fxbill9%2Fgemma-graveyard%2Fmain%2Fdocs%2Fdevto-cover-l4.82c50f0e.jpg","tag_list":["gemma","llamacpp","aws","quantization"],"flare_tag":null,"class_name":"Article","cloudinary_video_url":null,"published_at_int":1793284749,"published_timestamp":"2026-10-29T14:39:09Z","main_image_background_hex_color":"#dddddd","public_reaction_categories":[{"slug":"like","name":"Like","icon":"sparkle-heart","position":1},{"slug":"unicorn","name":"Unicorn","icon":"multi-unicorn","position":2},{"slug":"exploding_head","name":"Exploding Head","icon":"exploding-head","position":3}],"readable_publish_date":"Oct 29","video_duration_in_minutes":"00:00","ai_disclosure_label":"Not Disclosed","top_comments":[],"subforem_logo":"https://dev-to-uploads.s3.amazonaws.com/uploads/articles/8j7kvp660rqzt99zui8e.png","context_note":null,"url":"https://dev.to/gde/performance-vs-quality-gemma-4-e2b-quantization-on-an-nvidia-l4-and-a-tesla-t4-4b90","current_user_signed_in":false,"feed_config":null},{"title":"Inference on Google Cloud: Precision, Memory and Capacity on TPU, from v5e to Ironwood","path":"/gde/inference-on-google-cloud-precision-memory-and-capacity-on-tpu-from-v5e-to-ironwood-5dlf","id":4917438,"user_id":3490099,"comments_count":1,"public_reactions_count":8,"organization_id":11939,"reading_time":14,"video_thumbnail_url":null,"video":null,"edited_at":null,"experience_level_rating":5.0,"experience_level_rating_distribution":5.0,"main_image_height":420,"type_of":"full_post","subforem_id":1,"favorited_by_user_id":null,"ai_disclosure_level":"not_disclosed","user":{"name":"xbill","username":"xbill","slug":"xbill","profile_image_90":"https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3490099%2Fc6a975d0-cd94-485d-82b1-14ed5b344fcf.jpg","profile_image_url":"https://dev-to-uploads.s3.us-east-2.amazonaws.com/uploads/user/profile_image/3490099/c6a975d0-cd94-485d-82b1-14ed5b344fcf.jpg","cached_base_subscriber?":true,"cached_community_leader?":false,"cached_base_subscriber":true,"cached_community_leader":false},"organization":{"name":"Google Developer Experts","username":"gde","slug":"gde","profile_image_90":"https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Forganization%2Fprofile_image%2F11939%2Fe3080d5b-ecde-42a8-b089-bafecc31fa97.png","profile_image_url":"https://dev-to-uploads.s3.us-east-2.amazonaws.com/uploads/organization/profile_image/11939/e3080d5b-ecde-42a8-b089-bafecc31fa97.png","cached_base_subscriber?":false,"cached_community_leader?":false},"pinned":false,"main_image":"https://media2.dev.to/dynamic/image/width=1000,height=420,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fraw.githubusercontent.com%2Fxbill9%2Ftpu-survey%2Fmain%2Fdevto-cover.eef6abe3.jpg","tag_list":["googlecloud","tpu","machinelearning","gemma"],"flare_tag":null,"class_name":"Article","cloudinary_video_url":null,"published_at_int":1792969358,"published_timestamp":"2026-10-25T23:02:38Z","main_image_background_hex_color":"#dddddd","public_reaction_categories":[{"slug":"like","name":"Like","icon":"sparkle-heart","position":1},{"slug":"unicorn","name":"Unicorn","icon":"multi-unicorn","position":2},{"slug":"exploding_head","name":"Exploding Head","icon":"exploding-head","position":3}],"readable_publish_date":"Oct 25","video_duration_in_minutes":"00:00","ai_disclosure_label":"Not Disclosed","top_comments":[],"subforem_logo":"https://dev-to-uploads.s3.amazonaws.com/uploads/articles/8j7kvp660rqzt99zui8e.png","context_note":null,"url":"https://dev.to/gde/inference-on-google-cloud-precision-memory-and-capacity-on-tpu-from-v5e-to-ironwood-5dlf","current_user_signed_in":false,"feed_config":null},{"title":"Join the Presage SmartSpectra SDK Challenge: $3,000 in Prizes Across 10 Winners!","path":"/devteam/join-the-presage-smartspectra-sdk-challenge-3000-in-prizes-across-10-winners-1370","id":4975387,"user_id":1875101,"comments_count":0,"public_reactions_count":5,"organization_id":1,"reading_time":6,"video_thumbnail_url":null,"video":null,"edited_at":null,"experience_level_rating":5.0,"experience_level_rating_distribution":5.0,"main_image_height":420,"type_of":"full_post","subforem_id":1,"favorited_by_user_id":null,"ai_disclosure_level":"some_ai","user":{"name":"Jem","username":"heyitsjem","slug":"heyitsjem","profile_image_90":"https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1875101%2Ffed41ffa-3228-4a95-8381-2562d87d01ba.jpg","profile_image_url":"https://dev-to-uploads.s3.us-east-2.amazonaws.com/uploads/user/profile_image/1875101/fed41ffa-3228-4a95-8381-2562d87d01ba.jpg","cached_base_subscriber?":false,"cached_community_leader?":true,"cached_base_subscriber":false,"cached_community_leader":true},"organization":{"name":"The DEV Team","username":"devteam","slug":"devteam","profile_image_90":"https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Forganization%2Fprofile_image%2F1%2Fd908a186-5651-4a5a-9f76-15200bc6801f.jpg","profile_image_url":"https://dev-to-uploads.s3.us-east-2.amazonaws.com/uploads/organization/profile_image/1/d908a186-5651-4a5a-9f76-15200bc6801f.jpg","cached_base_subscriber?":false,"cached_community_leader?":false},"pinned":false,"main_image":"https://media2.dev.to/dynamic/image/width=1000,height=420,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fkx3vgfze743kv0yqvhud.png","tag_list":["devchallenge","presagechallenge","presage","ai"],"flare_tag":null,"class_name":"Article","cloudinary_video_url":null,"published_at_int":1793829615,"published_timestamp":"2026-11-04T22:00:15Z","main_image_background_hex_color":"#dddddd","public_reaction_categories":[{"slug":"like","name":"Like","icon":"sparkle-heart","position":1},{"slug":"unicorn","name":"Unicorn","icon":"multi-unicorn","position":2},{"slug":"exploding_head","name":"Exploding Head","icon":"exploding-head","position":3}],"readable_publish_date":"Nov 4","video_duration_in_minutes":"00:00","ai_disclosure_label":"AI-assisted","top_comments":[],"subforem_logo":"https://dev-to-uploads.s3.amazonaws.com/uploads/articles/8j7kvp660rqzt99zui8e.png","context_note":null,"url":"https://dev.to/devteam/join-the-presage-smartspectra-sdk-challenge-3000-in-prizes-across-10-winners-1370","current_user_signed_in":false,"feed_config":null},{"title":"Size Your Model to Where You Run It: Gemma 4 E2B and E4B on an AWS L4 and Two Small GPUs","path":"/gde/size-your-model-to-where-you-run-it-gemma-4-e2b-and-e4b-on-an-aws-l4-and-two-small-gpus-1d47","id":4924519,"user_id":3490099,"comments_count":0,"public_reactions_count":8,"organization_id":11939,"reading_time":10,"video_thumbnail_url":null,"video":null,"edited_at":null,"experience_level_rating":5.0,"experience_level_rating_distribution":5.0,"main_image_height":420,"type_of":"full_post","subforem_id":1,"favorited_by_user_id":null,"ai_disclosure_level":"not_disclosed","user":{"name":"xbill","username":"xbill","slug":"xbill","profile_image_90":"https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3490099%2Fc6a975d0-cd94-485d-82b1-14ed5b344fcf.jpg","profile_image_url":"https://dev-to-uploads.s3.us-east-2.amazonaws.com/uploads/user/profile_image/3490099/c6a975d0-cd94-485d-82b1-14ed5b344fcf.jpg","cached_base_subscriber?":true,"cached_community_leader?":false,"cached_base_subscriber":true,"cached_community_leader":false},"organization":{"name":"Google Developer Experts","username":"gde","slug":"gde","profile_image_90":"https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Forganization%2Fprofile_image%2F11939%2Fe3080d5b-ecde-42a8-b089-bafecc31fa97.png","profile_image_url":"https://dev-to-uploads.s3.us-east-2.amazonaws.com/uploads/organization/profile_image/11939/e3080d5b-ecde-42a8-b089-bafecc31fa97.png","cached_base_subscriber?":false,"cached_community_leader?":false},"pinned":false,"main_image":"https://media2.dev.to/dynamic/image/width=1000,height=420,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fraw.githubusercontent.com%2Fxbill9%2Fgemma4-dev%2Fmain%2Fdocs%2Fsize-your-model%2Fdevto-cover.3f5286be.jpg","tag_list":["gemma","llamacpp","aws","cuda"],"flare_tag":null,"class_name":"Article","cloudinary_video_url":null,"published_at_int":1793107852,"published_timestamp":"2026-10-27T13:30:52Z","main_image_background_hex_color":"#dddddd","public_reaction_categories":[{"slug":"like","name":"Like","icon":"sparkle-heart","position":1},{"slug":"unicorn","name":"Unicorn","icon":"multi-unicorn","position":2},{"slug":"exploding_head","name":"Exploding Head","icon":"exploding-head","position":3}],"readable_publish_date":"Oct 27","video_duration_in_minutes":"00:00","ai_disclosure_label":"Not Disclosed","top_comments":[],"subforem_logo":"https://dev-to-uploads.s3.amazonaws.com/uploads/articles/8j7kvp660rqzt99zui8e.png","context_note":null,"url":"https://dev.to/gde/size-your-model-to-where-you-run-it-gemma-4-e2b-and-e4b-on-an-aws-l4-and-two-small-gpus-1d47","current_user_signed_in":false,"feed_config":null},{"title":"Trick, Treat, and Code: Highlighting GDGC VTU's Best Halloween Hacks 🕸️💻","path":"/gdg/trick-treat-and-code-highlighting-gdgc-vtus-best-halloween-hacks-4hpf","id":4915063,"user_id":3910314,"comments_count":1,"public_reactions_count":17,"organization_id":12748,"reading_time":4,"video_thumbnail_url":null,"video":null,"edited_at":null,"experience_level_rating":5.0,"experience_level_rating_distribution":5.0,"main_image_height":420,"type_of":"full_post","subforem_id":1,"favorited_by_user_id":264,"ai_disclosure_level":"not_disclosed","user":{"name":"Piyush Annigeri","username":"pixelcrisscross","slug":"pixelcrisscross","profile_image_90":"https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3910314%2F6340f073-a007-4e5b-a8d3-bc94d9bb6295.jpg","profile_image_url":"https://dev-to-uploads.s3.us-east-2.amazonaws.com/uploads/user/profile_image/3910314/6340f073-a007-4e5b-a8d3-bc94d9bb6295.jpg","cached_base_subscriber?":false,"cached_community_leader?":false,"cached_base_subscriber":false,"cached_community_leader":false},"organization":{"name":"Google Developer Group","username":"gdg","slug":"gdg","profile_image_90":"https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Forganization%2Fprofile_image%2F12748%2Fe3cbcad3-4749-4461-ad88-4b9b8cde89ec.png","profile_image_url":"https://dev-to-uploads.s3.us-east-2.amazonaws.com/uploads/organization/profile_image/12748/e3cbcad3-4749-4461-ad88-4b9b8cde89ec.png","cached_base_subscriber?":false,"cached_community_leader?":false},"pinned":false,"main_image":"https://media2.dev.to/dynamic/image/width=1000,height=420,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fyrcl27rqbhvg0y07j34t.png","tag_list":["ai","opensource","showdev","github"],"flare_tag":{"name":"showdev","bg_color_hex":"#091b47","text_color_hex":"#b2ffe1"},"class_name":"Article","cloudinary_video_url":null,"published_at_int":1792927589,"published_timestamp":"2026-10-25T11:26:29Z","main_image_background_hex_color":"#dddddd","public_reaction_categories":[{"slug":"like","name":"Like","icon":"sparkle-heart","position":1},{"slug":"unicorn","name":"Unicorn","icon":"multi-unicorn","position":2},{"slug":"exploding_head","name":"Exploding Head","icon":"exploding-head","position":3}],"readable_publish_date":"Oct 25","video_duration_in_minutes":"00:00","ai_disclosure_label":"Not Disclosed","top_comments":[],"subforem_logo":"https://dev-to-uploads.s3.amazonaws.com/uploads/articles/8j7kvp660rqzt99zui8e.png","context_note":null,"url":"https://dev.to/gdg/trick-treat-and-code-highlighting-gdgc-vtus-best-halloween-hacks-4hpf","current_user_signed_in":false,"feed_config":null},{"title":"Humanizer has about 60,000 stars. On 12 public tasks my linter plugin scored 2.67 higher","path":"/efe_genc/humanizer-has-about-60000-stars-on-12-public-tasks-my-linter-plugin-scored-267-higher-2cdg","id":4909647,"user_id":4110228,"comments_count":22,"public_reactions_count":13,"organization_id":null,"reading_time":6,"video_thumbnail_url":null,"video":null,"edited_at":"2026-10-24T13:36:38.878Z","experience_level_rating":5.0,"experience_level_rating_distribution":5.0,"main_image_height":420,"type_of":"full_post","subforem_id":1,"favorited_by_user_id":null,"ai_disclosure_level":"not_disclosed","user":{"name":"Efe Genc","username":"efe_genc","slug":"efe_genc","profile_image_90":"https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4110228%2F338f35c9-5ee2-4a88-9cc7-e393cb651dfa.jpg","profile_image_url":"https://dev-to-uploads.s3.us-east-2.amazonaws.com/uploads/user/profile_image/4110228/338f35c9-5ee2-4a88-9cc7-e393cb651dfa.jpg","cached_base_subscriber?":false,"cached_community_leader?":false,"cached_base_subscriber":false,"cached_community_leader":false},"pinned":false,"main_image":"https://media2.dev.to/dynamic/image/width=1000,height=420,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fraw.githubusercontent.com%2FBubblegunn%2Fai-slop-linter%2Flaunch-assets%2Fbenchmark-round8%2Fcover-safe.png","tag_list":["ai","opensource","claude","writing"],"flare_tag":null,"class_name":"Article","cloudinary_video_url":null,"published_at_int":1792834374,"published_timestamp":"2026-10-24T09:32:54Z","main_image_background_hex_color":"#dddddd","public_reaction_categories":[{"slug":"like","name":"Like","icon":"sparkle-heart","position":1},{"slug":"unicorn","name":"Unicorn","icon":"multi-unicorn","position":2},{"slug":"exploding_head","name":"Exploding Head","icon":"exploding-head","position":3}],"readable_publish_date":"Oct 24","video_duration_in_minutes":"00:00","ai_disclosure_label":"Not Disclosed","top_comments":[{"comment_id":1703322,"user_id":2183047,"published_timestamp":"2026-10-24T13:40:32Z","published_at_int":1792849232,"safe_processed_html":"\u003cp\u003eTwelve tasks is a small sample for a gap of 2.67. The number I would add is the tokens each run spent next to the score: a rewrite pass adds turns, so a better file bought with extra turns is a different result.\u003c/p\u003e\n\n","path":"/paul_irolla_6b5ae261d0224/comment/3inia","username":"paul_irolla_6b5ae261d0224","name":"Paul Irolla","profile_image_90":"https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F2183047%2Fc0c55e95-e0dd-4375-8123-478cede020d8.png"},{"comment_id":1703080,"user_id":2167197,"published_timestamp":"2026-10-24T10:40:01Z","published_at_int":1792838401,"safe_processed_html":"\u003cp\u003eThe held-out result is the honest part of this post, and it is why I trust the method more than the headline — on the public set your linter wins by 2.67, but on the held-out set four arms sit within a point of each other, which tells me the tasks stopped separating the tools rather than the tools getting worse. I have seen the same shape in my own writing: a piece that scores well on the examples I trained it against and falls apart on a fresh topic, because the test was measuring familiarity, not quality. What would a held-out set need to look like to actually separate these tools — harder files, or files from writers the tools have never seen?\u003c/p\u003e\n\n","path":"/robertpaschal/comment/3in92","username":"robertpaschal","name":"Odinaka Robert Nnamani","profile_image_90":"https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F2167197%2Fecea0dc6-e64a-4d17-86da-0ec53a674663.jpeg"}],"subforem_logo":"https://dev-to-uploads.s3.amazonaws.com/uploads/articles/8j7kvp660rqzt99zui8e.png","context_note":"\u003cp\u003eHeld-out tests reveal tools tie on unseen data\u003c/p\u003e\n\n","url":"https://dev.to/efe_genc/humanizer-has-about-60000-stars-on-12-public-tasks-my-linter-plugin-scored-267-higher-2cdg","current_user_signed_in":false,"feed_config":null},{"title":"Comic Studio AI: Turning Voice \u0026 Text Prompts into 4-Panel Comics with Google AI Studio, Gemini \u0026 Imagen","path":"/gde/comic-studio-ai-turning-voice-text-prompts-into-4-panel-comics-with-google-ai-studio-gemini--2npc","id":4888591,"user_id":698191,"comments_count":0,"public_reactions_count":13,"organization_id":11939,"reading_time":5,"video_thumbnail_url":null,"video":null,"edited_at":"2026-10-27T03:40:50.610Z","experience_level_rating":5.0,"experience_level_rating_distribution":5.0,"main_image_height":420,"type_of":"full_post","subforem_id":1,"favorited_by_user_id":null,"ai_disclosure_level":"not_disclosed","user":{"name":"Robina Mirbahar","username":"robinamirbahar","slug":"robinamirbahar","profile_image_90":"https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F698191%2Fe5045ba7-748d-40fc-a918-03ac63516ea9.png","profile_image_url":"https://dev-to-uploads.s3.us-east-2.amazonaws.com/uploads/user/profile_image/698191/e5045ba7-748d-40fc-a918-03ac63516ea9.png","cached_base_subscriber?":false,"cached_community_leader?":false,"cached_base_subscriber":false,"cached_community_leader":false},"organization":{"name":"Google Developer Experts","username":"gde","slug":"gde","profile_image_90":"https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Forganization%2Fprofile_image%2F11939%2Fe3080d5b-ecde-42a8-b089-bafecc31fa97.png","profile_image_url":"https://dev-to-uploads.s3.us-east-2.amazonaws.com/uploads/organization/profile_image/11939/e3080d5b-ecde-42a8-b089-bafecc31fa97.png","cached_base_subscriber?":false,"cached_community_leader?":false},"pinned":false,"main_image":"https://media2.dev.to/dynamic/image/width=1000,height=420,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fraw.githubusercontent.com%2FRobinaMirbahar%2FRobinaMirbahar%2Fmain%2Fcomic_studio_ai_cover.jpg","tag_list":["deved","learngoogleaistudio","googleai","gemini"],"flare_tag":null,"class_name":"Article","cloudinary_video_url":null,"published_at_int":1792768961,"published_timestamp":"2026-10-23T15:22:41Z","main_image_background_hex_color":"#dddddd","public_reaction_categories":[{"slug":"like","name":"Like","icon":"sparkle-heart","position":1},{"slug":"unicorn","name":"Unicorn","icon":"multi-unicorn","position":2},{"slug":"exploding_head","name":"Exploding Head","icon":"exploding-head","position":3}],"readable_publish_date":"Oct 23","video_duration_in_minutes":"00:00","ai_disclosure_label":"Not Disclosed","top_comments":[],"subforem_logo":"https://dev-to-uploads.s3.amazonaws.com/uploads/articles/8j7kvp660rqzt99zui8e.png","context_note":"\u003cp\u003eEducation Track: Build Apps with Google AI Studio\u003c/p\u003e\n\n","url":"https://dev.to/gde/comic-studio-ai-turning-voice-text-prompts-into-4-panel-comics-with-google-ai-studio-gemini--2npc","current_user_signed_in":false,"feed_config":null},{"title":"Don't mock BigQuery, test on BigQuery: the rewrite of BigTesty","path":"/gde/dont-mock-bigquery-test-on-bigquery-the-rewrite-of-bigtesty-62g","id":4891694,"user_id":4099159,"comments_count":1,"public_reactions_count":7,"organization_id":11939,"reading_time":7,"video_thumbnail_url":null,"video":null,"edited_at":null,"experience_level_rating":5.0,"experience_level_rating_distribution":5.0,"main_image_height":420,"type_of":"full_post","subforem_id":1,"favorited_by_user_id":null,"ai_disclosure_level":"not_disclosed","user":{"name":"Mazlum Tosun","username":"mazlum_tosun","slug":"mazlum_tosun","profile_image_90":"https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4099159%2F75d1f3c8-a06c-4574-99df-58dc217957fc.png","profile_image_url":"https://dev-to-uploads.s3.us-east-2.amazonaws.com/uploads/user/profile_image/4099159/75d1f3c8-a06c-4574-99df-58dc217957fc.png","cached_base_subscriber?":false,"cached_community_leader?":false,"cached_base_subscriber":false,"cached_community_leader":false},"organization":{"name":"Google Developer Experts","username":"gde","slug":"gde","profile_image_90":"https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Forganization%2Fprofile_image%2F11939%2Fe3080d5b-ecde-42a8-b089-bafecc31fa97.png","profile_image_url":"https://dev-to-uploads.s3.us-east-2.amazonaws.com/uploads/organization/profile_image/11939/e3080d5b-ecde-42a8-b089-bafecc31fa97.png","cached_base_subscriber?":false,"cached_community_leader?":false},"pinned":false,"main_image":"https://media2.dev.to/dynamic/image/width=1000,height=420,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fraw.githubusercontent.com%2Ftosun-si%2Fbigtesty%2Fmain%2Fdiagram%2Fbigtesty_architecture.png","tag_list":["bigquery","googlecloud","dataengineering","testing"],"flare_tag":null,"class_name":"Article","cloudinary_video_url":null,"published_at_int":1792614049,"published_timestamp":"2026-10-21T20:20:49Z","main_image_background_hex_color":"#dddddd","public_reaction_categories":[{"slug":"like","name":"Like","icon":"sparkle-heart","position":1},{"slug":"unicorn","name":"Unicorn","icon":"multi-unicorn","position":2},{"slug":"exploding_head","name":"Exploding Head","icon":"exploding-head","position":3}],"readable_publish_date":"Oct 21","video_duration_in_minutes":"00:00","ai_disclosure_label":"Not Disclosed","top_comments":[{"comment_id":1702510,"user_id":4172137,"published_timestamp":"2026-10-24T05:00:58Z","published_at_int":1792818058,"safe_processed_html":"\u003cp\u003eThe per-test dataset lifecycle is what makes this land where the other three answers fail: emulators drift from real SQL semantics, shared datasets flake under parallel CI, and doing nothing means the Monday dashboard is the test. Dropping the Pulumi state bucket for just the BigQuery client also makes it much easier to slot into an existing pipeline.\u003c/p\u003e\n\n","path":"/abhinavs1920/comment/3imd4","username":"abhinavs1920","name":"Abhinav Sharma","profile_image_90":"https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4172137%2Fcb4823c7-005a-4e2f-a5c6-63eab5e6510a.png"}],"subforem_logo":"https://dev-to-uploads.s3.amazonaws.com/uploads/articles/8j7kvp660rqzt99zui8e.png","context_note":null,"url":"https://dev.to/gde/dont-mock-bigquery-test-on-bigquery-the-rewrite-of-bigtesty-62g","current_user_signed_in":false,"feed_config":null},{"title":"Your AI code reviewer isn't a second opinion. It may be the first opinion again.","path":"/cyclopt_dimitrisk/your-ai-code-reviewer-isnt-a-second-opinion-it-may-be-the-first-opinion-again-nbm","id":4961380,"user_id":3723233,"comments_count":18,"public_reactions_count":15,"organization_id":null,"reading_time":4,"video_thumbnail_url":null,"video":null,"edited_at":null,"experience_level_rating":5.0,"experience_level_rating_distribution":0.0,"main_image_height":420,"type_of":"full_post","subforem_id":1,"favorited_by_user_id":null,"ai_disclosure_level":"not_disclosed","user":{"name":"Dimitris Kyrkos ","username":"cyclopt_dimitrisk","slug":"cyclopt_dimitrisk","profile_image_90":"https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3723233%2F0d42e922-0dff-4ae9-b8b8-f9fcc40130b6.png","profile_image_url":"https://dev-to-uploads.s3.us-east-2.amazonaws.com/uploads/user/profile_image/3723233/0d42e922-0dff-4ae9-b8b8-f9fcc40130b6.png","cached_base_subscriber?":false,"cached_community_leader?":false,"cached_base_subscriber":false,"cached_community_leader":false},"pinned":false,"main_image":null,"tag_list":["codereview","security","ai","discuss"],"flare_tag":{"name":"discuss","bg_color_hex":"#71EA8B","text_color_hex":"#FFFFFF"},"class_name":"Article","cloudinary_video_url":null,"published_at_int":1793605704,"published_timestamp":"2026-11-02T07:48:24Z","main_image_background_hex_color":"#dddddd","public_reaction_categories":[{"slug":"like","name":"Like","icon":"sparkle-heart","position":1}],"readable_publish_date":"Nov 2","video_duration_in_minutes":"00:00","ai_disclosure_label":"Not Disclosed","top_comments":[{"comment_id":1723234,"user_id":4143195,"published_timestamp":"2026-11-04T02:37:31Z","published_at_int":1793759851,"safe_processed_html":"\u003cp\u003eThe invoice endpoint is a perfect example because every statement the reviewer made was true. Login was enforced and the ORM was safe, and any logged in user could still read anyone's invoice. A reviewer that starts from the same ticket inherits the same shortcut.\u003c/p\u003e\n\n\u003cp\u003eI agree with your point that the useful check starts at the requirement: who is allowed to read this? That question has to be written down somewhere before review can test against it.\u003c/p\u003e\n\n\u003cp\u003eJackson's seeded helper walkthrough on staging is the kind of check that is independent by construction, since it exercises the running app rather than reading the diff. Alex's idea of measuring disagreement by defect class is a good way to test whether a second model adds anything at all.\u003c/p\u003e\n\n\u003cp\u003eOn builds at Ascendra Ventures we write the access rules into the acceptance criteria for exactly this reason, so a reviewer, human or not, has something outside the diff to check. Where would you draw the line on letting an AI approval count toward a required review?\u003c/p\u003e\n\n","path":"/ascendra_ventures_92c21f2/comment/3k146","username":"ascendra_ventures_92c21f2","name":"Ascendra Ventures","profile_image_90":"https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4143195%2Fc5cb4b94-fb97-4b02-ad73-436d79811c75.png"},{"comment_id":1723010,"user_id":4120781,"published_timestamp":"2026-11-03T23:09:31Z","published_at_int":1793747371,"safe_processed_html":"\u003cp\u003eA reviewer built from the same model and the same context as the author is not a second opinion, it is the same blind spot measured twice. Real independence comes from differing prompts, differing context windows or a different model. Without that, the review stage only adds latency and a false sense of coverage to the merge.\u003c/p\u003e\n\n","path":"/analista_83/comment/3k0lg","username":"analista_83","name":"Sammi De Blas ","profile_image_90":"https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4120781%2Fdd2c76ae-692c-4f18-b62f-4ecade622e2f.jpg"},{"comment_id":1721815,"user_id":4203648,"published_timestamp":"2026-11-03T06:54:41Z","published_at_int":1793688881,"safe_processed_html":"\u003cp\u003eYour rule that AI review should never count as an approval stood out to me. GitHub’s new Copilot approval option goes the other way: it can now count toward required reviews. It’s off by default and admins choose the file paths, but if AI wrote the code and AI also approves it, aren’t we essentially counting the same opinion twice? Would you consider enabling it for low-risk changes like documentation, or keep it disabled entirely?\u003c/p\u003e\n\n","path":"/nirali_toolbit/comment/3jp1h","username":"nirali_toolbit","name":"Nirali","profile_image_90":"https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4203648%2F65c48142-2f37-4c51-b179-a57c1965e20b.png"}],"subforem_logo":"https://dev-to-uploads.s3.amazonaws.com/uploads/articles/8j7kvp660rqzt99zui8e.png","context_note":"\u003cp\u003eShared blind spots hide simple logic flaws\u003c/p\u003e\n\n","url":"https://dev.to/cyclopt_dimitrisk/your-ai-code-reviewer-isnt-a-second-opinion-it-may-be-the-first-opinion-again-nbm","current_user_signed_in":false,"feed_config":null},{"title":"I Tried To Own My Agent's Brain","path":"/kenielzep97/i-tried-to-own-my-agents-brain-3ngp","id":4924427,"user_id":3948231,"comments_count":45,"public_reactions_count":25,"organization_id":null,"reading_time":4,"video_thumbnail_url":null,"video":null,"edited_at":null,"experience_level_rating":5.0,"experience_level_rating_distribution":5.0,"main_image_height":420,"type_of":"full_post","subforem_id":1,"favorited_by_user_id":null,"ai_disclosure_level":"some_ai","user":{"name":"Self-Correcting Systems","username":"kenielzep97","slug":"kenielzep97","profile_image_90":"https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3948231%2F09b103a6-4a7f-4016-a261-debf92d5b015.jpeg","profile_image_url":"https://dev-to-uploads.s3.us-east-2.amazonaws.com/uploads/user/profile_image/3948231/09b103a6-4a7f-4016-a261-debf92d5b015.jpeg","cached_base_subscriber?":false,"cached_community_leader?":false,"cached_base_subscriber":false,"cached_community_leader":false},"pinned":false,"main_image":"https://media2.dev.to/dynamic/image/width=1000,height=420,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fr92ipmkdy1vjlw1ub0b0.png","tag_list":["ai","security","agents","llm"],"flare_tag":null,"class_name":"Article","cloudinary_video_url":null,"published_at_int":1793053539,"published_timestamp":"2026-10-26T22:25:39Z","main_image_background_hex_color":"#dddddd","public_reaction_categories":[{"slug":"like","name":"Like","icon":"sparkle-heart","position":1},{"slug":"raised_hands","name":"Raised Hands","icon":"raised-hands","position":4},{"slug":"fire","name":"Fire","icon":"fire","position":5}],"readable_publish_date":"Oct 26","video_duration_in_minutes":"00:00","ai_disclosure_label":"AI-assisted","top_comments":[{"comment_id":1712366,"user_id":4177997,"published_timestamp":"2026-10-29T04:43:41Z","published_at_int":1793249021,"safe_processed_html":"\u003cp\u003eOne axis your harness doesn't test yet: custody of the verdict.\u003c/p\u003e\n\n\u003cp\u003eMoving the authority check into host code fixes who can authorize. It says nothing about where the verdict lives after the check runs. In a setup like yours the agent writes its own transcript. If the same principal that proposed the send also writes the log line saying the host approved it, then the authoring grade is 1 and the retention grade is 3: a record the accused can rewrite. You bought one axis.\u003c/p\u003e\n\n\u003cp\u003eThe test is small. After a BLOCK, try to mutate that log from inside the agent's own credential path. If you can rewrite the line, the decision grades at your worst axis, not your best. rudratosh put it as min(authoring, retention, retrieval) on another thread this month, and the min() is the part that bites. Retrieval is the third: if the only way to read the decision back is a summarizer the agent drives, a clean record still fails the read.\u003c/p\u003e\n\n\u003cp\u003eSame shape from the paperwork side, if it helps: I read vendor terms for a desk of one, and the clause that actually costs people is never \"who approves.\" It's \"how long we keep it\" and \"we may amend.\"\u003c/p\u003e\n\n\u003cp\u003eDoes your harness let the agent write its own transcript?\u003c/p\u003e\n\n","path":"/fluffydesk/comment/3jb26","username":"fluffydesk","name":"Fluffy","profile_image_90":"https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4177997%2Fc4b1e3d1-e66e-4440-83c1-fac8e9973987.png"},{"comment_id":1707833,"user_id":4194144,"published_timestamp":"2026-10-27T00:24:10Z","published_at_int":1793060650,"safe_processed_html":"\u003cp\u003eExtending Alex's token suggestion: I would put grant verification in host code immediately before the action, rather than ask the model whether a token looks valid.\u003c/p\u003e\n\n\u003cp\u003eA useful next smoke test could compare forged approval prose, a valid grant for a different recipient, and a valid grant for the exact proposed action. The second case is important: authenticity alone doesn't establish authority for this send. With a fake recipient and a no-delivery stub, that would test the authorization boundary separately from the model's willingness to repeat “approved.” Your explicit distinction between text output and an actual send is worth preserving.\u003c/p\u003e\n\n","path":"/suirindo/comment/3j49n","username":"suirindo","name":"asagiman","profile_image_90":"https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4194144%2Faf20c549-b1cf-431d-bd71-d950bc601519.jpg"},{"comment_id":1707791,"user_id":3812101,"published_timestamp":"2026-10-26T23:38:21Z","published_at_int":1793057901,"safe_processed_html":"\u003cp\u003eThe distinction between authority as authenticated data and authority as prose is the important design boundary. A practical harness could pass the model a signed action token separately from retrieved content, then include adversarial pages that claim approval; the test should fail closed whenever the token is absent or does not match the proposed action.\u003c/p\u003e\n\n","path":"/alexshev/comment/3j487","username":"alexshev","name":"Alex Shev","profile_image_90":"https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3812101%2F0946c1f5-f8a5-464c-bf18-10850a434ef9.png"}],"subforem_logo":"https://dev-to-uploads.s3.amazonaws.com/uploads/articles/8j7kvp660rqzt99zui8e.png","context_note":"\u003cp\u003eIndirect prompt injection failures\u003c/p\u003e\n\n","url":"https://dev.to/kenielzep97/i-tried-to-own-my-agents-brain-3ngp","current_user_signed_in":false,"feed_config":null},{"title":"Should our LLM wiki use vector search? We benchmarked it before deciding","path":"/peter-white-1492/should-our-llm-wiki-use-vector-search-we-benchmarked-it-before-deciding-fkf","id":4930999,"user_id":3900603,"comments_count":22,"public_reactions_count":15,"organization_id":null,"reading_time":18,"video_thumbnail_url":null,"video":null,"edited_at":null,"experience_level_rating":5.0,"experience_level_rating_distribution":5.0,"main_image_height":420,"type_of":"full_post","subforem_id":1,"favorited_by_user_id":null,"ai_disclosure_level":"not_disclosed","user":{"name":"Peter W.","username":"peter-white-1492","slug":"peter-white-1492","profile_image_90":"https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3900603%2F0cfceee7-8b24-4f9e-8d9c-136a7e08ee72.jpeg","profile_image_url":"https://dev-to-uploads.s3.us-east-2.amazonaws.com/uploads/user/profile_image/3900603/0cfceee7-8b24-4f9e-8d9c-136a7e08ee72.jpeg","cached_base_subscriber?":false,"cached_community_leader?":false,"cached_base_subscriber":false,"cached_community_leader":false},"pinned":false,"main_image":"https://media2.dev.to/dynamic/image/width=1000,height=420,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fg6xc14pcgqutnou80y76.png","tag_list":["llm","agents","architecture","rag"],"flare_tag":null,"class_name":"Article","cloudinary_video_url":null,"published_at_int":1793148204,"published_timestamp":"2026-10-28T00:43:24Z","main_image_background_hex_color":"#dddddd","public_reaction_categories":[{"slug":"like","name":"Like","icon":"sparkle-heart","position":1},{"slug":"unicorn","name":"Unicorn","icon":"multi-unicorn","position":2},{"slug":"exploding_head","name":"Exploding Head","icon":"exploding-head","position":3}],"readable_publish_date":"Oct 28","video_duration_in_minutes":"00:00","ai_disclosure_label":"Not Disclosed","top_comments":[{"comment_id":1715978,"user_id":3928612,"published_timestamp":"2026-10-30T19:12:50Z","published_at_int":1793387570,"safe_processed_html":"\u003cp\u003eThe HotpotQA result being flipped from the other two is a good example of why you need diverse test data. One dataset's assumptions can poison the whole picture.\u003c/p\u003e\n\n","path":"/richard_smith_154156d471ef/comment/3jgb4","username":"richard_smith_154156d471ef","name":"Richard Smith","profile_image_90":"https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3928612%2Fe227ef3e-2ea4-417c-8f23-cfb294eebcb6.png"},{"comment_id":1712548,"user_id":3483324,"published_timestamp":"2026-10-29T06:26:17Z","published_at_int":1793255177,"safe_processed_html":"\u003cp\u003eexact name lookups dropping from 99% to 63% under naive vector reranking is the number that should stop most add vector search proposals. we saw the same shape on a docs search, and keeping the keyword winner on top when its lead was clear fixed identifiers without losing the paraphrase gains. our mistake was tuning fusion weights on our own test queries, so offline numbers beat real traffic. how did you pick the 5% lead threshold, tuned on the benchmark or checked on held out queries?\u003c/p\u003e\n\n","path":"/mudassirworks/comment/3jb96","username":"mudassirworks","name":"Mudassir Khan","profile_image_90":"https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3483324%2F3ea1f28d-d1c3-4507-8b66-96771aa3d5c7.webp"},{"comment_id":1712217,"user_id":4143195,"published_timestamp":"2026-10-29T02:31:58Z","published_at_int":1793241118,"safe_processed_html":"\u003cp\u003eBenchmarking before turning embeddings on by default is the part I would point other teams to. The re-rank result is the warning: paraphrase hits went up while exact name lookups fell from 99% to 63%, which would have made search worse for most people while the feature request looked like an obvious win.\u003c/p\u003e\n\n\u003cp\u003eThe clear winner rule is a sensible way to let BM25 stay in charge when it is confident. Edward Izgorodin's catch on the threshold mismatch shows why the measurement and the shipped rule need to use the same setting, or the numbers describe a system nobody runs.\u003c/p\u003e\n\n\u003cp\u003ePaul Irolla's question about pages sent per answer is the one a budget owner would ask. If semantic results let the agent read fewer pages for the same recall, that saving is worth measuring next to answer quality.\u003c/p\u003e\n\n\u003cp\u003eThe 18x speedup from caching the index is a good reminder that a careful benchmark often pays for itself through the problems it finds along the way.\u003c/p\u003e\n\n","path":"/ascendra_ventures_92c21f2/comment/3jamd","username":"ascendra_ventures_92c21f2","name":"Ascendra Ventures","profile_image_90":"https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4143195%2Fc5cb4b94-fb97-4b02-ad73-436d79811c75.png"}],"subforem_logo":"https://dev-to-uploads.s3.amazonaws.com/uploads/articles/8j7kvp660rqzt99zui8e.png","context_note":"\u003cp\u003eSurprising benchmark data on 2k pages\u003c/p\u003e\n\n","url":"https://dev.to/peter-white-1492/should-our-llm-wiki-use-vector-search-we-benchmarked-it-before-deciding-fkf","current_user_signed_in":false,"feed_config":null},{"title":"Your SaaS Has 10,000 Users. Who Removes Their Access When They Leave?","path":"/hadil/your-saas-has-10000-users-who-removes-their-access-when-they-leave-2676","id":4921809,"user_id":1209000,"comments_count":12,"public_reactions_count":73,"organization_id":null,"reading_time":14,"video_thumbnail_url":null,"video":null,"edited_at":null,"experience_level_rating":9.6,"experience_level_rating_distribution":2.0,"main_image_height":420,"type_of":"full_post","subforem_id":1,"favorited_by_user_id":null,"ai_disclosure_level":"not_disclosed","user":{"name":"Hadil Ben Abdallah","username":"hadil","slug":"hadil","profile_image_90":"https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1209000%2Fb29d37d8-2efe-4391-9796-a6f8a483f1bd.png","profile_image_url":"https://dev-to-uploads.s3.us-east-2.amazonaws.com/uploads/user/profile_image/1209000/b29d37d8-2efe-4391-9796-a6f8a483f1bd.png","cached_base_subscriber?":false,"cached_community_leader?":false,"cached_base_subscriber":false,"cached_community_leader":false},"pinned":false,"main_image":"https://media2.dev.to/dynamic/image/width=1000,height=420,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F0glbaf4q2t65zf0qixd2.png","tag_list":["authentication","keycloak","scim","saas"],"flare_tag":null,"class_name":"Article","cloudinary_video_url":null,"published_at_int":1793181159,"published_timestamp":"2026-10-28T09:52:39Z","main_image_background_hex_color":"#dddddd","public_reaction_categories":[{"slug":"like","name":"Like","icon":"sparkle-heart","position":1},{"slug":"unicorn","name":"Unicorn","icon":"multi-unicorn","position":2},{"slug":"exploding_head","name":"Exploding Head","icon":"exploding-head","position":3}],"readable_publish_date":"Oct 28","video_duration_in_minutes":"00:00","ai_disclosure_label":"Not Disclosed","top_comments":[{"comment_id":1712291,"user_id":3912599,"published_timestamp":"2026-10-29T03:28:31Z","published_at_int":1793244511,"safe_processed_html":"\u003cp\u003eThe organization check in the offboarding checklist deserves its own test case. I’d use one person who belongs to two customer organizations, remove only one membership, and verify that the other organization still works. Then I’d replay the old removal after a deliberate re-invite to check how ordering is handled. How would you distinguish a stale deactivation from a fresh one when the identity provider retries an earlier request?\u003c/p\u003e\n\n","path":"/emilywoodsnyc/comment/3jap9","username":"emilywoodsnyc","name":"Emily Woods","profile_image_90":"https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3912599%2Fc95a7ee1-41d2-4e1e-994d-e1aedab86d39.png"},{"comment_id":1712219,"user_id":4143195,"published_timestamp":"2026-10-29T02:32:28Z","published_at_int":1793241148,"safe_processed_html":"\u003cp\u003eThe key line for me is that blocking sign-in does not revoke what was already issued. Most teams test offboarding by trying to log in again, and that is the one path that was never the problem.\u003c/p\u003e\n\n\u003cp\u003eAlex Shev's fixture is a good way to make it testable: disable a user, then check every access path against the same cutoff, including existing sessions, refresh tokens, API keys and background jobs that run as that user. Aida's point holds too. SCIM can tell the application that someone left, but only the application can enforce it.\u003c/p\u003e\n\n\u003cp\u003eI would add one item for B2B products. Write down, per customer, how fast removal has to take effect and who confirms it, because an enterprise security review will ask for that number. Once it is written, it becomes part of the definition of done for the auth work instead of something found in the first audit.\u003c/p\u003e\n\n\u003cp\u003eHow do you handle scheduled reports or long exports started by a user who has since been removed?\u003c/p\u003e\n\n","path":"/ascendra_ventures_92c21f2/comment/3jamf","username":"ascendra_ventures_92c21f2","name":"Ascendra Ventures","profile_image_90":"https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4143195%2Fc5cb4b94-fb97-4b02-ad73-436d79811c75.png"},{"comment_id":1711739,"user_id":3812101,"published_timestamp":"2026-10-28T19:32:33Z","published_at_int":1793215953,"safe_processed_html":"\u003cp\u003eRevocation is also worth testing across already-issued sessions and background jobs, not only the next login. A useful fixture disables a user and checks each access path against the same expected cutoff.\u003c/p\u003e\n\n","path":"/alexshev/comment/3ja43","username":"alexshev","name":"Alex Shev","profile_image_90":"https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3812101%2F0946c1f5-f8a5-464c-bf18-10850a434ef9.png"}],"subforem_logo":"https://dev-to-uploads.s3.amazonaws.com/uploads/articles/8j7kvp660rqzt99zui8e.png","context_note":"\u003cp\u003eActive sessions often linger without SCIM\u003c/p\u003e\n\n","url":"https://dev.to/hadil/your-saas-has-10000-users-who-removes-their-access-when-they-leave-2676","current_user_signed_in":false,"feed_config":null},{"title":"[Agent Platform in Practice (4)] Towards Cloud Two-layer Decoupling and Full Persistence: Completing the LINE AI Business Card M","path":"/gde/agent-platform-in-practice-4-towards-cloud-two-layer-decoupling-and-full-persistence-60g","id":4891699,"user_id":409957,"comments_count":0,"public_reactions_count":6,"organization_id":11939,"reading_time":15,"video_thumbnail_url":null,"video":null,"edited_at":"2026-10-23T08:39:10.657Z","experience_level_rating":5.0,"experience_level_rating_distribution":5.0,"main_image_height":420,"type_of":"full_post","subforem_id":1,"favorited_by_user_id":null,"ai_disclosure_level":"not_disclosed","user":{"name":"Evan Lin","username":"evanlin","slug":"evanlin","profile_image_90":"https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F409957%2Fc150d4a7-cb20-469d-a230-bac27232c577.jpeg","profile_image_url":"https://dev-to-uploads.s3.us-east-2.amazonaws.com/uploads/user/profile_image/409957/c150d4a7-cb20-469d-a230-bac27232c577.jpeg","cached_base_subscriber?":false,"cached_community_leader?":false,"cached_base_subscriber":false,"cached_community_leader":false},"organization":{"name":"Google Developer Experts","username":"gde","slug":"gde","profile_image_90":"https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Forganization%2Fprofile_image%2F11939%2Fe3080d5b-ecde-42a8-b089-bafecc31fa97.png","profile_image_url":"https://dev-to-uploads.s3.us-east-2.amazonaws.com/uploads/organization/profile_image/11939/e3080d5b-ecde-42a8-b089-bafecc31fa97.png","cached_base_subscriber?":false,"cached_community_leader?":false},"pinned":false,"main_image":null,"tag_list":["agents","architecture","cloud","go"],"flare_tag":null,"class_name":"Article","cloudinary_video_url":null,"published_at_int":1792744347,"published_timestamp":"2026-10-23T08:32:27Z","main_image_background_hex_color":"#dddddd","public_reaction_categories":[{"slug":"like","name":"Like","icon":"sparkle-heart","position":1},{"slug":"unicorn","name":"Unicorn","icon":"multi-unicorn","position":2},{"slug":"exploding_head","name":"Exploding Head","icon":"exploding-head","position":3}],"readable_publish_date":"Oct 23","video_duration_in_minutes":"00:00","ai_disclosure_label":"Not Disclosed","top_comments":[],"subforem_logo":"https://dev-to-uploads.s3.amazonaws.com/uploads/articles/8j7kvp660rqzt99zui8e.png","context_note":null,"url":"https://dev.to/gde/agent-platform-in-practice-4-towards-cloud-two-layer-decoupling-and-full-persistence-60g","current_user_signed_in":false,"feed_config":null},{"title":"Never Put a Pet on an AWS Spot Instance","path":"/maame-codes/never-put-a-pet-on-an-aws-spot-instance-em3","id":4924826,"user_id":870724,"comments_count":18,"public_reactions_count":62,"organization_id":null,"reading_time":3,"video_thumbnail_url":null,"video":null,"edited_at":null,"experience_level_rating":9.0,"experience_level_rating_distribution":2.0,"main_image_height":420,"type_of":"full_post","subforem_id":1,"favorited_by_user_id":null,"ai_disclosure_level":"not_disclosed","user":{"name":"Maame Afua A. P. Fordjour ","username":"maame-codes","slug":"maame-codes","profile_image_90":"https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F870724%2Fe7722a3a-8b1f-47b6-a26d-777bfaf22abc.jpg","profile_image_url":"https://dev-to-uploads.s3.us-east-2.amazonaws.com/uploads/user/profile_image/870724/e7722a3a-8b1f-47b6-a26d-777bfaf22abc.jpg","cached_base_subscriber?":false,"cached_community_leader?":true,"cached_base_subscriber":false,"cached_community_leader":true},"pinned":false,"main_image":"https://media2.dev.to/dynamic/image/width=1000,height=420,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fpkpfmf767a9cih7s0vh2.jpg","tag_list":["devops","aws","cloud"],"flare_tag":null,"class_name":"Article","cloudinary_video_url":null,"published_at_int":1793061521,"published_timestamp":"2026-10-27T00:38:41Z","main_image_background_hex_color":"#dddddd","public_reaction_categories":[{"slug":"like","name":"Like","icon":"sparkle-heart","position":1},{"slug":"unicorn","name":"Unicorn","icon":"multi-unicorn","position":2},{"slug":"raised_hands","name":"Raised Hands","icon":"raised-hands","position":4}],"readable_publish_date":"Oct 27","video_duration_in_minutes":"00:00","ai_disclosure_label":"Not Disclosed","top_comments":[{"comment_id":1716302,"user_id":4210291,"published_timestamp":"2026-10-31T01:48:02Z","published_at_int":1793411282,"safe_processed_html":"\u003cp\u003eGreat pet-vs-cattle framing. The two-minute warning is enough to run a graceful shutdown (detach an EBS snapshot, flush buffers, deregister from the load balancer) but not much else, so I'd add one rule to your checklist: if a machine's state can't be rebuilt from a source of truth in under two minutes, it's a pet. The on/off schedule is a nice middle ground too — stopping keeps the disk and you only pay EBS storage while you migrate state somewhere safer.\u003c/p\u003e\n\n","path":"/mp3sss31/comment/3jgng","username":"mp3sss31","name":"mp3sss","profile_image_90":"https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4210291%2F153a6ca0-d417-4b3d-a9b0-c9d066b9941c.png"},{"comment_id":1714006,"user_id":3812101,"published_timestamp":"2026-10-29T20:32:26Z","published_at_int":1793305946,"safe_processed_html":"\u003cp\u003eGreat framing. The operational question is not whether Spot is cheap, but whether the workload has a restart contract. Stateless jobs, checkpoints, idempotency, and an observable handoff turn interruption into a normal event; a pet server turns it into an incident.\u003c/p\u003e\n\n","path":"/alexshev/comment/3jdd8","username":"alexshev","name":"Alex Shev","profile_image_90":"https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3812101%2F0946c1f5-f8a5-464c-bf18-10850a434ef9.png"},{"comment_id":1713424,"user_id":3949275,"published_timestamp":"2026-10-29T13:58:51Z","published_at_int":1793282331,"safe_processed_html":"\u003cp\u003eYeah, way I see spots, is basically 'ephemeral', they'll die in an instant and arent guaranteed to even run to completion, so for short-lived processes, they're fine (eg. generating an invoice).\u003c/p\u003e\n\n\u003cp\u003eWell, I got slapped with a 96 dollar Azure bill... For what you might ask? For a 26 dollar a month VM... How you might ask? Good question, I'm still trying to figure that 1 out myself, because it was a dead server I had started on trial credits, that I forgot to dispose of. So apparently an idle, unused VM can cost 3-4x what they advertise it at, for no apparent reason? Last time I'm trusting the price lists and last time I'm leaving any server running when not in active use or development. Dispose of your resources people, you might get a nasty bill.\u003c/p\u003e\n\n","path":"/unitbuilds/comment/3jcgo","username":"unitbuilds","name":"UnitBuilds","profile_image_90":"https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3949275%2F0d884b0e-b445-4e47-a064-505d61283071.png"}],"subforem_logo":"https://dev-to-uploads.s3.amazonaws.com/uploads/articles/8j7kvp660rqzt99zui8e.png","context_note":"\u003cp\u003eThe 2-minute AWS warning catches interns off guard\u003c/p\u003e\n\n","url":"https://dev.to/maame-codes/never-put-a-pet-on-an-aws-spot-instance-em3","current_user_signed_in":false,"feed_config":null},{"title":"GPT-6 Is Coming to Google Cloud. Is Your AI Bill Ready?","path":"/gde/gpt-6-is-coming-to-google-cloud-is-your-ai-bill-ready-j7l","id":4911352,"user_id":3519305,"comments_count":1,"public_reactions_count":10,"organization_id":11939,"reading_time":5,"video_thumbnail_url":null,"video":null,"edited_at":null,"experience_level_rating":5.0,"experience_level_rating_distribution":5.0,"main_image_height":420,"type_of":"full_post","subforem_id":1,"favorited_by_user_id":null,"ai_disclosure_level":"not_disclosed","user":{"name":"Karthigayan Devan","username":"karthidec","slug":"karthidec","profile_image_90":"https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2F99mvlsfu5tfj9m7ku25d.png","profile_image_url":null,"cached_base_subscriber?":false,"cached_community_leader?":false,"cached_base_subscriber":false,"cached_community_leader":false},"organization":{"name":"Google Developer Experts","username":"gde","slug":"gde","profile_image_90":"https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Forganization%2Fprofile_image%2F11939%2Fe3080d5b-ecde-42a8-b089-bafecc31fa97.png","profile_image_url":"https://dev-to-uploads.s3.us-east-2.amazonaws.com/uploads/organization/profile_image/11939/e3080d5b-ecde-42a8-b089-bafecc31fa97.png","cached_base_subscriber?":false,"cached_community_leader?":false},"pinned":false,"main_image":"https://media2.dev.to/dynamic/image/width=1000,height=420,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Flk8saxwe44um1cwcr17v.png","tag_list":["googlecloud","ai","finops","openai"],"flare_tag":null,"class_name":"Article","cloudinary_video_url":null,"published_at_int":1792859239,"published_timestamp":"2026-10-24T16:27:19Z","main_image_background_hex_color":"#dddddd","public_reaction_categories":[{"slug":"like","name":"Like","icon":"sparkle-heart","position":1},{"slug":"fire","name":"Fire","icon":"fire","position":5},{"slug":"unicorn","name":"Unicorn","icon":"multi-unicorn","position":2}],"readable_publish_date":"Oct 24","video_duration_in_minutes":"00:00","ai_disclosure_label":"Not Disclosed","top_comments":[{"comment_id":1703724,"user_id":3763577,"published_timestamp":"2026-10-24T19:13:02Z","published_at_int":1792869182,"safe_processed_html":"\u003cp\u003eI'd run them side by side on a small set of real tasks and compare the total cost of getting an acceptable result, including retries and review time. A cheaper call isn't much of a saving if someone spends ten minutes fixing the answer. That's the number I'd want next to each team's spend.\u003c/p\u003e\n\n","path":"/stefan_07d23f966225156b50/comment/3io7m","username":"stefan_07d23f966225156b50","name":"Stefan","profile_image_90":"https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3763577%2Fa2be0050-66be-44a6-b9ba-f84a0cba6f9d.jpg"}],"subforem_logo":"https://dev-to-uploads.s3.amazonaws.com/uploads/articles/8j7kvp660rqzt99zui8e.png","context_note":null,"url":"https://dev.to/gde/gpt-6-is-coming-to-google-cloud-is-your-ai-bill-ready-j7l","current_user_signed_in":false,"feed_config":null},{"title":"MoE Offloading Isn’t Always Faster: I Tested 5 Models on a 16GB GPU","path":"/sizzlebop/moe-offloading-isnt-always-faster-i-tested-5-models-on-a-16gb-gpu-498a","id":4947837,"user_id":2676985,"comments_count":18,"public_reactions_count":26,"organization_id":null,"reading_time":8,"video_thumbnail_url":null,"video":null,"edited_at":"2026-11-04T21:54:12.472Z","experience_level_rating":5.0,"experience_level_rating_distribution":5.0,"main_image_height":420,"type_of":"full_post","subforem_id":1,"favorited_by_user_id":null,"ai_disclosure_level":"not_disclosed","user":{"name":"Jessica Doering","username":"sizzlebop","slug":"sizzlebop","profile_image_90":"https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F2676985%2Fa7882ab0-e15a-497b-9151-aeb4899fcc0f.png","profile_image_url":"https://dev-to-uploads.s3.us-east-2.amazonaws.com/uploads/user/profile_image/2676985/a7882ab0-e15a-497b-9151-aeb4899fcc0f.png","cached_base_subscriber?":true,"cached_community_leader?":false,"cached_base_subscriber":true,"cached_community_leader":false},"pinned":false,"main_image":"https://media2.dev.to/dynamic/image/width=1000,height=420,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Flrdhi0vy10p8jfw0w76i.png","tag_list":["ai","machinelearning","llm"],"flare_tag":null,"class_name":"Article","cloudinary_video_url":null,"published_at_int":1793369095,"published_timestamp":"2026-10-30T14:04:55Z","main_image_background_hex_color":"#dddddd","public_reaction_categories":[{"slug":"like","name":"Like","icon":"sparkle-heart","position":1},{"slug":"unicorn","name":"Unicorn","icon":"multi-unicorn","position":2},{"slug":"raised_hands","name":"Raised Hands","icon":"raised-hands","position":4}],"readable_publish_date":"Oct 30","video_duration_in_minutes":"00:00","ai_disclosure_label":"Not Disclosed","top_comments":[],"subforem_logo":"https://dev-to-uploads.s3.amazonaws.com/uploads/articles/8j7kvp660rqzt99zui8e.png","context_note":"\u003cp\u003eBus bottlenecks explain the massive speed drops\u003c/p\u003e\n\n","url":"https://dev.to/sizzlebop/moe-offloading-isnt-always-faster-i-tested-5-models-on-a-16gb-gpu-498a","current_user_signed_in":false,"feed_config":null},{"title":"Your payment webhook has a 24-hour cliff. Here's the reconciliation job that catches it.","path":"/mickyarun/your-payment-webhook-has-a-24-hour-cliff-heres-the-reconciliation-job-that-catches-it-46cm","id":4932748,"user_id":3835684,"comments_count":35,"public_reactions_count":6,"organization_id":null,"reading_time":4,"video_thumbnail_url":null,"video":null,"edited_at":null,"experience_level_rating":5.0,"experience_level_rating_distribution":5.0,"main_image_height":420,"type_of":"full_post","subforem_id":1,"favorited_by_user_id":null,"ai_disclosure_level":"not_disclosed","user":{"name":"arun rajkumar","username":"mickyarun","slug":"mickyarun","profile_image_90":"https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3835684%2F4771b603-8faa-42b1-9e0e-0687faea63a3.jpg","profile_image_url":"https://dev-to-uploads.s3.us-east-2.amazonaws.com/uploads/user/profile_image/3835684/4771b603-8faa-42b1-9e0e-0687faea63a3.jpg","cached_base_subscriber?":false,"cached_community_leader?":false,"cached_base_subscriber":false,"cached_community_leader":false},"pinned":false,"main_image":null,"tag_list":["openbanking","webhooks","api","fintech"],"flare_tag":null,"class_name":"Article","cloudinary_video_url":null,"published_at_int":1793171412,"published_timestamp":"2026-10-28T07:10:12Z","main_image_background_hex_color":"#dddddd","public_reaction_categories":[{"slug":"like","name":"Like","icon":"sparkle-heart","position":1}],"readable_publish_date":"Oct 28","video_duration_in_minutes":"00:00","ai_disclosure_label":"Not Disclosed","top_comments":[{"comment_id":1718970,"user_id":4168429,"published_timestamp":"2026-11-01T14:53:42Z","published_at_int":1793544822,"safe_processed_html":"\u003cp\u003ethe doorbell framing is the part most teams skip: the webhook is a hint, the pull is the truth, and the sweep is what makes the pull schedulable. one thing the reconciliation job should carry is a verified_at on every row it touches, not just the event id, because after the endpoint comes back the replays arrive out of order and the sweep is the only thing that can tell which state is current. the bad friday deploy is survivable; trusting arrival time instead of verification time is what turns it into a monday fire.\u003c/p\u003e\n\n","path":"/fintechrailsdigest/comment/3jkm6","username":"fintechrailsdigest","name":"Fintech Rails Digest","profile_image_90":"https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4168429%2F36ae3db6-d94e-4579-8abf-de153af6607a.png"},{"comment_id":1711857,"user_id":4162441,"published_timestamp":"2026-10-28T20:58:37Z","published_at_int":1793221117,"safe_processed_html":"\u003cp\u003eGood to see the sweep framed as the part that makes the cliff irrelevant. One thing I'd add to the alerting: besides \u003ccode\u003elastDeliveredAt\u003c/code\u003e, watch the age of the oldest payment that is still non-final. \u003ccode\u003elastDeliveredAt\u003c/code\u003e tells you the webhook path stopped; it doesn't tell you the sweep is running but getting nothing useful back, for example when the same incident takes out the status endpoint, or a payment keeps coming back PENDING. The oldest-pending age catches both paths failing at once, and it gives you a clean rule for when a payment stops being the sweep's problem and becomes a person's: past a deadline, it goes to a review queue instead of being polled forever.\u003c/p\u003e\n\n","path":"/crtdrops/comment/3ja8h","username":"crtdrops","name":"Israel Negrete Lepe","profile_image_90":"https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4162441%2Ff4c723f5-463d-408e-ac0a-953461375528.jpg"},{"comment_id":1711046,"user_id":84901,"published_timestamp":"2026-10-28T13:44:55Z","published_at_int":1793195095,"safe_processed_html":"\u003cp\u003eThe read-then-upsert in apply() lets the sweep and the webhook worker fulfil the same order twice. Picture a two-hour outage ending: Atoa's retried COMPLETED events land in the queue while the first cron run picks up the same rows. Both paths read PENDING, both pass the rank check, and both call fulfilOrder. A second COMPLETED is only a no-op when the two arrive one after the other.\u003c/p\u003e\n\n\u003cp\u003eI'd let the database decide. Do the transition as one conditional update, UPDATE payments SET status = 'COMPLETED' WHERE id = $1 AND status = 'PENDING' RETURNING id, and fulfil only when it returns a row. Whichever path loses the race gets zero rows and stops. If fulfilOrder lives in another service, a unique constraint on orderId in its table covers the same gap from the other side.\u003c/p\u003e\n\n","path":"/_firelinks/comment/3j93c","username":"_firelinks","name":"Mike Dabydeen","profile_image_90":"https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F84901%2F5b27ca0a-5429-4a17-bb8e-33860dc7678e.jpeg"}],"subforem_logo":"https://dev-to-uploads.s3.amazonaws.com/uploads/articles/8j7kvp660rqzt99zui8e.png","context_note":"\u003cp\u003eCatches race conditions in webhook sweeps\u003c/p\u003e\n\n","url":"https://dev.to/mickyarun/your-payment-webhook-has-a-24-hour-cliff-heres-the-reconciliation-job-that-catches-it-46cm","current_user_signed_in":false,"feed_config":null},{"title":"AI Engineering Is Easy. Do We Really Have to Change How We Work?","path":"/ujja/ai-engineering-is-easy-do-we-really-have-to-change-how-we-work-31n7","id":4868221,"user_id":439943,"comments_count":18,"public_reactions_count":20,"organization_id":null,"reading_time":7,"video_thumbnail_url":null,"video":null,"edited_at":null,"experience_level_rating":5.0,"experience_level_rating_distribution":0.0,"main_image_height":420,"type_of":"full_post","subforem_id":1,"favorited_by_user_id":null,"ai_disclosure_level":"not_disclosed","user":{"name":"ujja","username":"ujja","slug":"ujja","profile_image_90":"https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F439943%2F774d42c6-75e1-4247-8688-30020ce8f40a.png","profile_image_url":"https://dev-to-uploads.s3.us-east-2.amazonaws.com/uploads/user/profile_image/439943/774d42c6-75e1-4247-8688-30020ce8f40a.png","cached_base_subscriber?":true,"cached_community_leader?":false,"cached_base_subscriber":true,"cached_community_leader":false},"pinned":false,"main_image":"https://media2.dev.to/dynamic/image/width=1000,height=420,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fxy7nt462x28k7x55s5ku.png","tag_list":["ai","agents","softwaredevelopment","discuss"],"flare_tag":{"name":"discuss","bg_color_hex":"#71EA8B","text_color_hex":"#FFFFFF"},"class_name":"Article","cloudinary_video_url":null,"published_at_int":1793253967,"published_timestamp":"2026-10-29T06:06:07Z","main_image_background_hex_color":"#dddddd","public_reaction_categories":[{"slug":"like","name":"Like","icon":"sparkle-heart","position":1},{"slug":"unicorn","name":"Unicorn","icon":"multi-unicorn","position":2},{"slug":"exploding_head","name":"Exploding Head","icon":"exploding-head","position":3}],"readable_publish_date":"Oct 29","video_duration_in_minutes":"00:00","ai_disclosure_label":"Not Disclosed","top_comments":[{"comment_id":1713005,"user_id":870724,"published_timestamp":"2026-10-29T10:52:50Z","published_at_int":1793271170,"safe_processed_html":"\u003cp\u003eThe part about not needing to justify doing things the old way sounds nice, but in a lot of places it’s not really the engineer’s choice. Some companies are now tracking how much people use AI tools, or pushing them in from the top because it looks good to leadership. Then you’re not changing because you found a reason, you’re changing because someone above you decided you should. I think that’s where a lot of the pressure actually comes from.\u003c/p\u003e\n\n","path":"/maame-codes/comment/3jc0l","username":"maame-codes","name":"Maame Afua A. P. Fordjour ","profile_image_90":"https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F870724%2Fe7722a3a-8b1f-47b6-a26d-777bfaf22abc.jpg"},{"comment_id":1712581,"user_id":439972,"published_timestamp":"2026-10-29T06:40:44Z","published_at_int":1793256044,"safe_processed_html":"\u003cp\u003eI think the bigest change is the size of developer teams which is decreasing. Because right now not need so many programmers and time to solve a problem this is lead to our focus moving from a tiny ticket solving day by day to bigger problem solving action.  For example standard workflow not allow to us to make a \u003ca href=\"https://dev.to/pengeszikra/hexaw-a-lazy-wasm-text-format-5g5n\" rel=\"nofollow\"\u003enew programming language\u003c/a\u003e if we would like to use a new one. Or change so large open source programming language like a \u003ca href=\"https://dev.to/pengeszikra/ts-to-hack-js-48pl\" rel=\"nofollow\"\u003eTypeScript\u003c/a\u003e\u003c/p\u003e\n\n\u003cp\u003eOther one is the \u003ca href=\"https://dev.to/pengeszikra/liberation-from-tech-depbto-241d\" rel=\"nofollow\"\u003etechnology freedom\u003c/a\u003e. My experience with agents is so flowfull and creative which is allow to me a completly different highly free workflow. Right now I really don't need using a laptop instead a phone is enough for a development. \u003c/p\u003e\n\n\u003cp\u003eMy final is: we have more time to think. But also the whole stuff is \u003ca href=\"https://dev.to/pengeszikra/singularity-news-0011-1ai0\" rel=\"nofollow\"\u003escary\u003c/a\u003e\u003c/p\u003e\n\n","path":"/pengeszikra/comment/3jbad","username":"pengeszikra","name":"Peter Vivo","profile_image_90":"https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F439972%2F8830d2e7-92bf-4d2b-9f73-855a4d0a40a7.jpeg"}],"subforem_logo":"https://dev-to-uploads.s3.amazonaws.com/uploads/articles/8j7kvp660rqzt99zui8e.png","context_note":"\u003cp\u003eWe confuse better tools with required overhauls\u003c/p\u003e\n\n","url":"https://dev.to/ujja/ai-engineering-is-easy-do-we-really-have-to-change-how-we-work-31n7","current_user_signed_in":false,"feed_config":null},{"title":"Undead Agent - My AI Agent Dies, Comes Back, and Tells Me What It Saw","path":"/khushighosh/undead-agent-my-ai-agent-dies-comes-back-and-tells-me-what-it-saw-33c9","id":4943171,"user_id":4152360,"comments_count":12,"public_reactions_count":17,"organization_id":null,"reading_time":6,"video_thumbnail_url":null,"video":null,"edited_at":"2026-10-31T13:23:52.398Z","experience_level_rating":5.0,"experience_level_rating_distribution":0.0,"main_image_height":420,"type_of":"full_post","subforem_id":1,"favorited_by_user_id":null,"ai_disclosure_level":"not_disclosed","user":{"name":"Khushighosh","username":"khushighosh","slug":"khushighosh","profile_image_90":"https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4152360%2F6ac43df7-8b20-4acc-913f-03da2c9dd0ef.jpg","profile_image_url":"https://dev-to-uploads.s3.us-east-2.amazonaws.com/uploads/user/profile_image/4152360/6ac43df7-8b20-4acc-913f-03da2c9dd0ef.jpg","cached_base_subscriber?":false,"cached_community_leader?":false,"cached_base_subscriber":false,"cached_community_leader":false},"pinned":false,"main_image":"https://media2.dev.to/dynamic/image/width=1000,height=420,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fmslb023x8tma51y6mins.png","tag_list":["devchallenge","hf26challenge","ai","opensource"],"flare_tag":null,"class_name":"Article","cloudinary_video_url":null,"published_at_int":1793339349,"published_timestamp":"2026-10-30T05:49:09Z","main_image_background_hex_color":"#dddddd","public_reaction_categories":[{"slug":"like","name":"Like","icon":"sparkle-heart","position":1},{"slug":"unicorn","name":"Unicorn","icon":"multi-unicorn","position":2},{"slug":"exploding_head","name":"Exploding Head","icon":"exploding-head","position":3}],"readable_publish_date":"Oct 30","video_duration_in_minutes":"00:00","ai_disclosure_label":"Not Disclosed","top_comments":[{"comment_id":1717995,"user_id":3912599,"published_timestamp":"2026-11-01T03:07:24Z","published_at_int":1793502444,"safe_processed_html":"\u003cp\u003eThe next kill test I’d try is changing file7.txt before the retry starts. I’d want the run to either keep its original input snapshot or report that the input changed, rather than quietly combine two revisions. That’s a useful twist on \u003ca href=\"https://prachub.com/interview-questions/implement-a-fault-tolerant-work-queue-that-never-loses-tasks-when-workers-fail?utm_source=devto\u0026amp;utm_campaign=v1012\" rel=\"nofollow noopener noreferrer\" target=\"_blank\"\u003ea recoverable work-queue exercise\u003c/a\u003e, recovering the task also means deciding which version of its input belongs to it.\u003c/p\u003e\n\n","path":"/emilywoodsnyc/comment/3jjaj","username":"emilywoodsnyc","name":"Emily Woods","profile_image_90":"https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3912599%2Fc95a7ee1-41d2-4e1e-994d-e1aedab86d39.png"},{"comment_id":1715998,"user_id":4181105,"published_timestamp":"2026-10-30T19:30:10Z","published_at_int":1793388610,"safe_processed_html":"\u003cp\u003eKilling it mid-sentence with SIGKILL instead of a polite Ctrl+C is the detail that makes the demo honest — graceful shutdowns never actually test the resurrection. The read-only Gemma calls making at-least-once retries safe is a neat split too. Does the ghost know it's died before, or is each resurrection a fresh ghost until that memory-across-lives piece lands?\u003c/p\u003e\n\n","path":"/paullovelace/comment/3jgbo","username":"paullovelace","name":"Paul Lovelace","profile_image_90":"https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4181105%2F96643f58-3566-45e0-b9b8-d0edf4e47aa2.webp"},{"comment_id":1715229,"user_id":3812101,"published_timestamp":"2026-10-30T12:28:34Z","published_at_int":1793363314,"safe_processed_html":"\u003cp\u003eThe recovery report is a great operational boundary: it turns a restart into evidence instead of an invisible retry. I’d include the run ID, last durable checkpoint, outstanding side effects, and the exact reason the process was considered dead. That makes the resurrection safe to audit and gives humans enough context to decide whether to resume or compensate.\u003c/p\u003e\n\n","path":"/alexshev/comment/3jf89","username":"alexshev","name":"Alex Shev","profile_image_90":"https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3812101%2F0946c1f5-f8a5-464c-bf18-10850a434ef9.png"}],"subforem_logo":"https://dev-to-uploads.s3.amazonaws.com/uploads/articles/8j7kvp660rqzt99zui8e.png","context_note":"\u003cp\u003eHacktoberfest Open-Source AI Challenge: Ghost in the Machine Submission 👻🌼\u003c/p\u003e\n\n","url":"https://dev.to/khushighosh/undead-agent-my-ai-agent-dies-comes-back-and-tells-me-what-it-saw-33c9","current_user_signed_in":false,"feed_config":null}]