Dmitry Kandalov
banner
dmitrykandalov.bsky.social
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
Reposted by Dmitry Kandalov
15 years ago, this happened:

github.com/JetBrains/ko...

#kotlin
Initial · JetBrains/kotlin@369b197
github.com
November 7, 2025 at 11:11 PM
If you happen to be in Amsterdam at the end of November, come say "hi" at the Kotlin Dev Day, where Duncan McGregor and I will be doing 47 refactorings in 45 minutes (see kotlindevday.com/program). I will also be just hanging out with Kodee on the 28th, so happy to chat or do a code kata 🧐
Program Kotlin Dev Day 2025 - Kotlin Dev Day
We proudly announce our 2025 schedule! With 5 stages and 32 sessions there will be a lot of Kotlin on the 27th of November.
kotlindevday.com
November 7, 2025 at 1:47 PM
Reposted by Dmitry Kandalov
Confused as to why my 🇫🇷 and 🇳🇱 Youtube channels all started speaking 🇬🇧 all of a sudden, until I realized Youtube started automatically dubbing all videos.
Thanks, but I can speak several languages, I WANT to listen to other languages. How much compute power is getting wasted with this WTAF?
November 4, 2025 at 4:46 PM
Thanks to everyone who came to the "47 Refactorings in 45 minutes" talk Kodee and I did at Droidcon London today. You can find all the code here github.com/dmcg/gilded-.... Since someone asked, these are some of the heuristics I use for Kotlin code dmitrykandalov.com/tidy-kotlin.
October 30, 2025 at 1:48 PM
Reposted by Dmitry Kandalov
IntelliJ IDEA includes an open-source Java decompiler called Fernflower.
But did you know that you can use it as a standalone CLI program?
And what's even better – it's now available on Homebrew!
To install it, run the `brew install fernflower` command in the terminal.

Learn more in the thread!
October 10, 2025 at 7:01 AM
Reposted by Dmitry Kandalov
JetBrains × Zed: Open Interoperability for AI Coding Agents in Your IDE

blog.jetbrains.com/ai/2025/10/j...
JetBrains × Zed: Open Interoperability for AI Coding Agents in Your IDE | The JetBrains Blog
JetBrains is collaborating with Zed on the Agent Client Protocol (ACP) – an open protocol that lets AI coding agents work inside editors.
blog.jetbrains.com
October 6, 2025 at 6:39 PM
In spite of the horrid LLM (aka "AI") bubble hype, it can actually be useful. My favourite use case is asking Junie questions about large code bases. For example, clone the IntelliJ source code, open it as a project (so that Junie can search actual code) and ask questions.
September 27, 2025 at 3:45 PM
Reposted by Dmitry Kandalov
Why I Choose Email Over Messaging

My colleagues and friends know that I prefer to communicate with them via email rather than chat messaging. There are many benefits in such a choice. You may want to consider them and adopt the same stance.

www.spinellis.gr/blog/2025092...
September 26, 2025 at 5:21 PM
Reposted by Dmitry Kandalov
Couldn’t be happier with yesterday’s 1st edition of KTConf.be.

Some quick stats:
We had a total of 59 Kotlin fans attend, including 8 speakers, of which 5 international ones.

Big shout out to Kunlabora, Triple D, DPG Media, PTV Logistics and of course @jetbrains.com for their amazing support.
KTConf 2025
Belgium's Premier Kotlin Conference
KTConf.be
September 20, 2025 at 8:02 AM
In my experience, I learn more and have better conversations at smaller conferences. KtConf ktconf.be was a good example of that. Nice venue, single track, and great talks. BTW, everything I showed in my talk (including IDE mini-plugins) is here github.com/dkandalov/er....
September 20, 2025 at 9:37 PM
Reposted by Dmitry Kandalov
With all the GenAI buzz we tend to forget the value of 100% correct deterministic tools. Thank you Rust clippy!
September 19, 2025 at 5:35 PM
Reposted by Dmitry Kandalov
KotlinConf 2026 CFP is open! 🔥

Looking forward to all your awesome submissions, and hearing about all the cool things everyone has been up to😁

sessionize.com/kotlinconf-2...
KotlinConf 2026: Call for Speakers
KotlinConf is an official conference by JetBrains. It is devoted to the Kotlin programming language and is the place for the community to gather and d...
sessionize.com
September 15, 2025 at 8:08 AM
Why there are no quick fixes for inspections in IntelliJ MCP? And no tool for intentions (with quick fixes)? These would be the first two things I'd implement after basics. Or do I miss something and there is a good reason? 🤔
September 6, 2025 at 9:56 PM
I wish I knew about XP×AI unconference xpunconf.org before making holiday plans. It would be such a good excuse to visit Berlin 🤩 (No excuse not to come if you live there.)
XP Unconference - XP × AI | September 20-21, 2025 | Berlin
Join us for a free, participant-driven unconference exploring Extreme Programming in the age of AI. September 20-21, 2025 at Humboldt-Universität zu Berlin.
xpunconf.org
August 30, 2025 at 11:19 PM
There is now KEEP for rich errors in Kotlin github.com/Kotlin/KEEP/... 🧐
github.com
August 22, 2025 at 4:56 PM
Typical IntelliJ plugin maintenance routine: need to recompile a plugin with the latest IDE version, this requires updating Kotlin, IntelliJ platform Gradle plugin (potentially rewriting build.gradle), and of course, updating Gradle, maybe JDK. Could this be less of a big bang? 🤔
August 15, 2025 at 4:04 PM
Reposted by Dmitry Kandalov
It's so strange when people post things like "the LLM finally admitted it hallucinated and was lying to me!".

Why would that admission be any more meaningful than any of the previous output?
August 15, 2025 at 1:25 PM
Reposted by Dmitry Kandalov
"It is time to stop pretending that we are just one more model away from magic. We are not. The magic trick is over. The rabbit is not coming out of the hat."

codemanship.wordpress.com/2025/08/08/t...
The LLM In The Room: ChatGPT Speaks
With the long-awaited and much anticipated launch yesterday of the mythical GPT-5, and observing the widespread disappointment that it isn’t just not the superintelligence we were promised, b…
codemanship.wordpress.com
August 8, 2025 at 6:37 AM
Here is the new "The Ultimate Guide to IntelliJ IDEs" workshop I'm working on dmitrykandalov.com/intellij-wor.... It summarises what I have learned over 20+ years of using IntelliJ IDEs. Let me know if you would like to run it at your company!
The Ultimate Guide to IntelliJ IDEs
Dmitry's blog about programming
dmitrykandalov.com
August 1, 2025 at 2:05 PM
I wish IntelliJ "Select in Project" action would say why it couldn't select the current file in the project view, so that I don't need to guess. For example, the file is in an excluded directory that is currently hidden. Details matter!
July 25, 2025 at 1:48 PM
Reposted by Dmitry Kandalov
KotlinConf 2026 → MUNICH 🇩🇪
Super Early Bird tickets just dropped!

The world’s biggest Kotlin event. A new city. The best price.
🎟️ Get your Super Early Bird ticket: kotl.in/conf26-tickets
Registration | KotlinConf 2026, May 20–22, Munich
KotlinConf is the official Kotlin conference by JetBrains. It is a place for the community to gather and discuss all things Kotlin.
kotl.in
July 22, 2025 at 10:51 AM
Reposted by Dmitry Kandalov
one of these days Gradle will implement parallel downloads and I won't have to wait 20 minutes after opening an empty Compose project
July 2, 2025 at 5:05 PM
Reposted by Dmitry Kandalov
🧑‍💻ACCU is a global community of developers who care about code quality, learning, and professional growth.

Whether you're into C++, C, or coding in general — you belong here.

Become a member today: accu.org/menu-overvie...
June 28, 2025 at 12:18 PM
I find the hallucination metaphor in the context of LLMs very misleading (perhaps deliberately so). For humans, hallucination is an illusion in the absence of an external stimulus, i.e. malfunction. For LLMs, hallucination is all they can do. It just happens to be correct or wrong 🤷
June 28, 2025 at 10:39 PM
One of the most annoyingly unnecessary things I've seen too many times recently (including projects using http4k) is passing around base URL and credentials for each function that makes an HTTP call 🙄 In http4k world you can just do `SetBaseUriFrom(...).then(MyAuth()).then(client)`.
June 27, 2025 at 3:46 PM