<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>Dmytro Zahorodnii</title><description>Personal site of Dmytro Zahorodnii, Full-stack Java Developer at EnBW. Articles on mathematics, programming and more.</description><link>https://dmytrozah.dev/</link><item><title>BULP: exploring Ukrainian etymology through NLP</title><link>https://dmytrozah.dev/articles/bulp-etymology-through-nlp/</link><guid isPermaLink="true">https://dmytrozah.dev/articles/bulp-etymology-through-nlp/</guid><description>A personal project about tracing Ukrainian words through dated sources, mining language data, and building an evidence-first tool that can grow with its communities.</description><pubDate>Tue, 13 Oct 2026 00:00:00 GMT</pubDate><category>articles</category><category>ukrainian</category><category>etymology</category><category>nlp</category><category>ai</category><category>corpora</category></item><item><title>Proofs nobody understands: Terence Tao, AI and the purpose of mathematics</title><link>https://dmytrozah.dev/articles/terence-tao-ai-and-understanding/</link><guid isPermaLink="true">https://dmytrozah.dev/articles/terence-tao-ai-and-understanding/</guid><description>What Terence Tao has actually said and done about AI in mathematics, and why I think the real test for AI companies is whether humans can still understand the mathematics their models produce.</description><pubDate>Sun, 11 Oct 2026 00:00:00 GMT</pubDate><category>articles</category><category>ai</category><category>mathematics</category><category>proof</category><category>lean</category><category>formalization</category></item><item><title>Principia Mathematica: hundreds of pages to reach 1 + 1 = 2</title><link>https://dmytrozah.dev/articles/principia-mathematica/</link><guid isPermaLink="true">https://dmytrozah.dev/articles/principia-mathematica/</guid><description>How Russell and Whitehead tried to build all of mathematics from pure logic, and what their attempt taught us about sets, numbers, types and the limits of proof.</description><pubDate>Sun, 11 Oct 2026 00:00:00 GMT</pubDate><category>articles</category><category>logic</category><category>foundations</category><category>set theory</category><category>type theory</category><category>history</category></item><item><title>Writing the intent, not the code: AI and specification-driven development</title><link>https://dmytrozah.dev/articles/ai-and-specification-driven-development/</link><guid isPermaLink="true">https://dmytrozah.dev/articles/ai-and-specification-driven-development/</guid><description>AI assistants are changing what a developer’s day consists of. Why adapting early matters, where the tools fail, and why the specification is becoming the most important artifact we write.</description><pubDate>Sun, 11 Oct 2026 00:00:00 GMT</pubDate><category>articles</category><category>ai</category><category>software engineering</category><category>specification</category><category>career</category></item><item><title>Share consumers in Kafka: queues without giving up the log</title><link>https://dmytrozah.dev/articles/kafka-share-consumers/</link><guid isPermaLink="true">https://dmytrozah.dev/articles/kafka-share-consumers/</guid><description>Share groups (KIP-932) let many consumers read the same partition and acknowledge records one by one. How they work, how they differ from consumer groups, and how to use KafkaShareConsumer from Java.</description><pubDate>Sun, 11 Oct 2026 00:00:00 GMT</pubDate><category>articles</category><category>kafka</category><category>java</category><category>messaging</category><category>distributed systems</category></item><item><title>Microbenchmarking Java with JMH in the age of new JEPs</title><link>https://dmytrozah.dev/articles/java-microbenchmarking-jmh-and-new-jeps/</link><guid isPermaLink="true">https://dmytrozah.dev/articles/java-microbenchmarking-jmh-and-new-jeps/</guid><description>How to measure Java code correctly with JMH, and how virtual threads, compact object headers, AOT caches, the Vector API and lazy constants change what a benchmark actually tells you.</description><pubDate>Sun, 11 Oct 2026 00:00:00 GMT</pubDate><category>articles</category><category>java</category><category>jvm</category><category>performance</category><category>jmh</category><category>benchmarking</category></item><item><title>My JVM reading list</title><link>https://dmytrozah.dev/blog/jvm-reading-list/</link><guid isPermaLink="true">https://dmytrozah.dev/blog/jvm-reading-list/</guid><description>Books and resources that helped me understand what actually happens when Java code runs.</description><pubDate>Thu, 08 Oct 2026 00:00:00 GMT</pubDate><category>blog</category><category>java</category><category>jvm</category><category>books</category></item><item><title>Virtual threads in practice: what changes for backend code</title><link>https://dmytrozah.dev/articles/virtual-threads-in-practice/</link><guid isPermaLink="true">https://dmytrozah.dev/articles/virtual-threads-in-practice/</guid><description>Java virtual threads make thread-per-request cheap again. Here is how to adopt them, what pinning is, and the habits you should drop.</description><pubDate>Mon, 05 Oct 2026 00:00:00 GMT</pubDate><category>articles</category><category>java</category><category>concurrency</category><category>jvm</category></item><item><title>Fibonacci in O(log n): from matrices to fast doubling in Java</title><link>https://dmytrozah.dev/articles/fast-fibonacci/</link><guid isPermaLink="true">https://dmytrozah.dev/articles/fast-fibonacci/</guid><description>Why the naive Fibonacci is exponential, how a 2×2 matrix turns it logarithmic, and a fast-doubling BigInteger implementation that computes F(1 000 000) in a fraction of a second.</description><pubDate>Fri, 02 Oct 2026 00:00:00 GMT</pubDate><category>articles</category><category>algorithms</category><category>linear algebra</category><category>java</category></item><item><title>Backpressure in Project Reactor, explained with code</title><link>https://dmytrozah.dev/articles/backpressure-in-project-reactor/</link><guid isPermaLink="true">https://dmytrozah.dev/articles/backpressure-in-project-reactor/</guid><description>What request(n) really means, how prefetch and limitRate shape demand, and how to choose an overflow strategy when a producer is faster than its consumer.</description><pubDate>Mon, 28 Sep 2026 00:00:00 GMT</pubDate><category>articles</category><category>java</category><category>reactive</category><category>reactor</category></item><item><title>JVM bytecode instrumentation with ASM: timing every method without touching the source</title><link>https://dmytrozah.dev/articles/jvm-bytecode-instrumentation-with-asm/</link><guid isPermaLink="true">https://dmytrozah.dev/articles/jvm-bytecode-instrumentation-with-asm/</guid><description>Build a tiny Java agent that rewrites classes at load time with ASM and records how long each method takes, and learn the pitfalls on the way.</description><pubDate>Mon, 14 Sep 2026 00:00:00 GMT</pubDate><category>articles</category><category>java</category><category>jvm</category><category>bytecode</category><category>asm</category></item></channel></rss>