[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"global":3,"blogposts-list":26},{"title":4,"description":5,"home_welcome_badge":6,"home_feature_cards":7,"home_newsletter":20},"Result Crafter Blog","In the era of AI, anyone can generate code overnight. But code that lasts years — you can debug, extend, and maintain — still requires discipline and care.","Welcome to the craft",[8,12,16],{"icon":9,"title":10,"description":11},"code","AI Tools & Workflows","Navigating the new landscape of AI assistance without losing your engineering fundamentals.",{"icon":13,"title":14,"description":15},"bug","Code Smells","Identifying subtle anti-patterns before they become untamable technical debt in your codebase.",{"icon":17,"title":18,"description":19},"cpu","Software Craftsmanship","Techniques for writing clean, testable, and maintainable systems that outlast the current hype cycle.",[21],{"headline":22,"description":23,"placeholder":24,"buttonLabel":25},"Don't miss an essay","Get occasional thoughts on software design, code quality, and building resilient systems delivered straight to your inbox. No spam, ever.","hello@example.com","Subscribe",[27,34,40,46],{"id":28,"title":29,"slug":30,"excerpt":31,"date_created":32,"category":33},"5f7a94dd-2da2-4bd5-8860-6004adfa963d","Java to Kotlin: what to expect","java-to-kotlin-what-to-expect","Practical lessons from learning Kotlin after years of Java — the good, the annoying, and the surprising.","2026-04-30T10:22:51.649Z","Kotlin",{"id":35,"title":36,"slug":37,"excerpt":38,"date_created":39,"category":33},"12dc0d59-1843-45e9-9024-22825706658e","Extension functions with care","extension-functions-with-care","Extension functions are powerful, but overusing them hurts readability. Here's when to use them and when to avoid.","2026-04-30T10:22:51.485Z",{"id":41,"title":42,"slug":43,"excerpt":44,"date_created":45,"category":14},"79124845-2e96-4b06-89fa-21911ab77507","5 signs of bad code you can fix today","5-signs-of-bad-code","Five concrete code smells that signal trouble in production code, and how to fix each one.","2026-04-29T09:44:06.838Z",{"id":47,"title":48,"slug":49,"excerpt":50,"date_created":51,"category":33},"6aec18b2-559c-4113-9a3b-645e9ea3fc6d","Why val is better than var","why-val-is-better-than-var","Why immutability matters in Kotlin and how using val over var leads to safer, more predictable code.","2026-04-29T09:44:06.800Z"]