Field guide

Articles

Mathematics, programming & beyond

Long-form writing in three categories: mathematics, programming, and essays beyond code. Every article is a Markdown file on GitHub, so you can suggest edits.

Beyond Code · 12 min read

BULP: exploring Ukrainian etymology through NLP

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.

  • ukrainian
  • etymology
  • nlp
  • ai

Mathematics · 10 min read

Proofs nobody understands: Terence Tao, AI and the purpose of mathematics

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.

  • ai
  • mathematics
  • proof
  • lean

Mathematics · 8 min read

Principia Mathematica: hundreds of pages to reach 1 + 1 = 2

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.

  • logic
  • foundations
  • set theory
  • type theory

Beyond Code · 7 min read

Writing the intent, not the code: AI and specification-driven development

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.

  • ai
  • software engineering
  • specification
  • career

Programming · 7 min read

Share consumers in Kafka: queues without giving up the log

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.

  • kafka
  • java
  • messaging
  • distributed systems

Programming · 16 min read

Microbenchmarking Java with JMH in the age of new JEPs

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.

  • java
  • jvm
  • performance
  • jmh

Programming · 2 min read

Virtual threads in practice: what changes for backend code

Java virtual threads make thread-per-request cheap again. Here is how to adopt them, what pinning is, and the habits you should drop.

  • java
  • concurrency
  • jvm

Mathematics · 3 min read

Fibonacci in O(log n): from matrices to fast doubling in Java

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.

  • algorithms
  • linear algebra
  • java

Programming · 3 min read

Backpressure in Project Reactor, explained with code

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.

  • java
  • reactive
  • reactor

Programming · 4 min read

JVM bytecode instrumentation with ASM: timing every method without touching the source

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.

  • java
  • jvm
  • bytecode
  • asm