The biggest "AI" lucky win was the chat format that shifted metaphor from text completion and pattern matching towards "talking" and "thinking". I prefer the query/search metaphor, where LLM is a lossy snapshot of the Internet (like a JPEG).
Dmitry Kandalov
@dmitrykandalov.bsky.social
I have witnessed programming for DOS and spent the last 20 years in the Java lands, most recently working with server-side Kotlin. Everything I post here (and more) is also on https://dmitrykandalov.com/micro-blog
My current faviourite resource for augmented coding is lexler.github.io/augmented-co.... So you don't just shout at Copilot to make you a sandwich (well, probably don't use Copilot in the first place).
Augmented Coding Patterns
A collection of emerging patterns, anti-patterns, and obstacles for effective AI-augmented software development
lexler.github.io
Last week I was at the socratesuk.org conference for the first time in a few years. Classic immersive and expect the unexpected experience. An interesting dichotomy between "how to use AI" and "AI will kill us" discussions ("AI" meaning LLMs).
SoCraTes UK - Home
socratesuk.org
As always, a great talk by Ross Tate at #KotlinConf26 about local lifetimes in Kotlin. You can watch it on the livestream www.youtube.com/live/MmwBJbz... (while it's still there).
KotlinConf ’26 Day 1 Livestream: Keynote Included
YouTube video by Kotlin by JetBrains
youtube.com
New code smell: "AI" tool is consistently good at predicting/writing the next piece of code.
Here is a gist with a plugin for OpenCode to commit modified files after each edit tool execution gist.github.com/dkandalov/84.... Because it's easier to review (or undo) changes in Git history.
Plugin for OpenCode to commit modified files after executing edit tools (see https://opencode.ai/docs/plugins)
Plugin for OpenCode to commit modified files after executing edit tools (see https://opencode.ai/docs/plugins) - auto-commit-hook.ts
gist.github.com
Is that a thing to have a "script" that self-bootstraps via LLMs? For example, start with a minimal script that calls LLM to "write" itself, always leaving some gaps to fall back to LLM.
How come code coverage tools for LLM agents is not a thing? I understand LLM providers might want to just burn more tokens, but everyone else should be interested right? 🤔 (Even if they never run code coverage manually.)
Given that LLMs running in a loop (aka agents) are not too bad at searching/analysing code, why not let them access the source code of your project dependencies by default? More often than not, the code is already downloaded by the build tooling.
I find it ironic that the same companies that use glorified O(n) complexity in their interviews can be so into the "AI" will replace people theme without specifying the complexity of the problems they want to solve 🧐
Another thing that surprises me about LLM agents is the lack of version control integration. Committing on a successful edit would be one of the first features I'd go for (with an option to squash commits later). And obviously include chat history in some form.
Considering the "AI" agents era we're in, I'm surprised how compile-and-run-tests in the project before/after making a change is not easily pluggable into agents or even encouraged during setup. Maybe I miss something, and begging LLM to do it in a Markdown file is fine.
Come say "hi" if you're in Paris next week, because Duncan McGregor and I will be doing "43 Refactorings in 40 minutes" talk at androidmakers.droidcon.com. Is this going to be the last time humans use an IDE to edit code before generative "AI" learns it all? 🤷
Android Makers by droidcon | Android Developer Conference
Be part of Android Makers by droidcon, a community-driven Android Developer Conference on 9–10 April 2026 in Paris. Meet fellow Android developers, share knowledge, and learn from the global Android c...
androidmakers.droidcon.com
I like the new "group changes" with "AI" feature in IntelliJ version control. If only it was local, then you could run it continuously and get a warning as soon as you start working on more than one thing. This could be a good addition for the Limited WIP plugin 🤨
Pressure building on govt to come clean about Mandelson's role in bringing US spy-tech firm Palantir into the heart of our NHS. The fingerprints of Mandelson and his lobbying firm are all over these deals. The rot goes to the heart of this Labour govt www.theguardian.com/politics/202...
Calls to halt UK Palantir contracts grow amid ‘lack of transparency’ over deals
Opposition MPs urge Labour to pause public contracts with the US tech firm after attempts to examine deals blocked
theguardian.com
Anna Kozlova, Technical Lead for the IntelliJ IDEA Kotlin Plugin at JetBrains, joins KotlinConf’26! She’ll discuss how your Kotlin code can have a surprising impact on IDE performance, and how small changes in your code style can lead to noticeable improvements. https://kotlinconf.com/#speakers
I wonder why most "AI" tools have such a bad UX and questionable quality? From a sociotechnical system point of view, could this be a reflection of some underlying issues in this space 🤔
I don't know if anyone from JetBrains who works on automated refactorings follows my feed, but I just wanted to mention that a few rounds of Refactoring Golf will reveal gaps.
It's worth reminding a lot of AI folks that: Time saved by optimizing a non-constraint is not time saved for the whole system. It's not only time not saved, it's actually reducing the throughput of the whole system.
Kotlin 2.3.0 is out! My faves (no order) 😅 - Unused value checker - Improved Context Sensitive Resolution - Java 25 Bytecode - JS suspend function export - Better Swift Interop - Explicit backing fields - New Kotlin Uuid APIs and there is much more! Check it out: blog.jetbrains.com/kotlin/2025/...
Kotlin 2.3.0 Released | The Kotlin Blog
The Kotlin 2.3.0 release is out! This version includes new language features, stable ones, and other features now enabled by default. This release also brings tooling updates, performance improvements
blog.jetbrains.com
New @kotlinlang.org language proposal: companion blocks and extensions github.com/Kotlin/KEEP/... Feedback is more than welcome!
Companion blocks and extensions · Kotlin KEEP · Discussion #467
This is an issue to discuss companion blocks and extensions. The current full text of the proposal can be found here. TL;DR (from the text of the proposal) data class Vector(val x: Double, val y: D...
github.com
The fastest way to really understand code is to write it.
I’m pleased to say that Kodee has recovered from the punch and even got a new friend. #KotlinDevDay25 had the most backend Kotlin developers I’ve seen since Kotlin became a thing on Android 🙈 It was also really nice chatting to people from Xebia, JetBrains and Flock. Thank you for having us!
Apologies for Duncan punching Kodee off the stage at #KotlinDevDay25. I disapprove of this! 😿 You can find the source code from the talk here github.com/dmcg/gilded-.... We were only seconds away from the `::invoke::invoke::invoke` part 🙈
When your blog post starts with an obviously AI-generated cover that adds no value to it, I'm quite likely to just close the page immediately instead of scrolling past it.
After about a month of experimentation, I'm happy to present a minimalistic test progress bar plugin for IntelliJ IDEs plugins.jetbrains.com/plugin/28859.... Admittedly niche, it's there for 💰 to fund Dark Arts coffee beans, but I'll happily share forever free version(s) with anyone I know or met 😅
Test Progress Bar - IntelliJ IDEs Plugin | Marketplace
Minimal progress bar popup for tests: Displayed at the bottom of the editor Hides Run/Debug tool windows when tests are started Configurable size, position...
plugins.jetbrains.com