[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"global":3,"recent-posts":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,33,39,45],{"id":28,"title":29,"slug":30,"excerpt":31,"date_created":32},"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",{"id":34,"title":35,"slug":36,"excerpt":37,"date_created":38},"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":40,"title":41,"slug":42,"excerpt":43,"date_created":44},"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":46,"title":47,"slug":48,"excerpt":49,"date_created":50},"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"]