Software engineer focused on distributed systems. Exploring LLM inference.

Remote
I haven't read many papers, mostly because I wasn't sure how to approach them. Turns out there's a paper about that by Keshav: read it in three passes, and after each one decide whether to go deeper. My notes with a decision tree: rdiachenko.com/til/learning/…
2
65
Writing code used to teach us the system. Not the typing, but the time we spent inside it. Agents compress that time. I wrote about what that costs us in understanding and judgement, and the cycle it can start. rdiachenko.com/posts/essays/…
3
1
3
137
Validation checks a value and often throws away what it learned. Parsing returns a type that keeps those guarantees. I wrote about what "Parse, Don't Validate" looks like in Rust: newtypes, parsing at the boundary, the shotgun parsing antipattern, a serde constructor trap, and why it matters even more with coding agents. rdiachenko.com/posts/rust/pa…
1
165
Docker's sbx allows to run AI coding agents inside a microVM with its own kernel, an outbound proxy, and credentials held on the host. That makes --dangerously-skip-permissions safer to use.
1
155
Discovered VHS, which records terminal sessions from a script. Instead of screen recording and trimming, you write a .tape file that describes what to type, and VHS renders it into a GIF, MP4, or WebM with consistent timing and clean output. rdiachenko.com/til/terminal/…
144
After upgrading from Postgres 16 to 18, every time I recreated my Docker container, the database started fresh. No errors, no warnings. Just `initdb` running on every startup, as if the named volume didn’t exist. The same setup worked fine with Postgres 16. rdiachenko.com/posts/databas…
80
Claude Code supports a customizable status line at the bottom of the terminal. It's empty by default, but you can point it to a shell script. rdiachenko.com/til/claude-co…
1
94
Claude Code adds a Co-Authored-By trailer to every commit and attribution text to PR descriptions by default. If you want clean commits without the co-author line, add this to your ~/.claude/settings.json:
81
If your Mac is randomly low on disk space and you use Claude Code, check /private/tmp/claude-*. Mine had a 324 GB surprise. rdiachenko.com/posts/trouble…
73
24 books in 2025. 12 worth talking about. From logic and Rust to Dostoevsky and nutrition. rdiachenko.com/posts/books/y…
94
50 days ago I tried to understand LLMs by reading papers and blog posts. I could follow the code, but the math made no sense. So I went back to the basics: logic and linear algebra. Now, 50 days later, I finally feel like I've started in the right place. I wrote about the journey so far: rdiachenko.com/posts/math/50…
2
125
Learning of the day: When you add data validation to code, run it against existing data and fix discovered data issues right away. Otherwise, you may end up with tons of issues during data migrations.
1
168
Nice read on web typography webkit.org/blog/16547/better…. Especially relevant if you have a blog or write online. I had never really thought about these typography issues, but fixing them can noticeably improve readability: 1. Short last lines. Sometimes the last line of a paragraph ends up with just one word. This creates extra space between paragraphs, making it look inconsistent with the rest of the spacing. 2. Too many hyphens in a row. When several lines in a paragraph end with a hyphen, it adds some cognitive load. The paragraph becomes harder to read smoothly. 3. Bad rag. When the ends of lines vary too much in length, they create a zig-zag pattern or a ragged edge. It makes the text less visually balanced and harder to follow. 4. Typographic rivers. Uneven spacing between words can accidentally form vertical paths of whitespace across a paragraph. These “rivers” pull your eyes in the wrong direction and break reading flow.
192
A story of how I brought my Synology NAS back to life after a strange network issue. rdiachenko.com/posts/trouble…
3
208
Customization is a drug that makes you stick to the platform.
1
3
200
Nice, I hadn't thought about increasing vector dimension by using a smaller data type for each feature. The process is called quantization. Great read!
New blog post 🌶️ In which I try to debunk pgvector myths and highlight not-known-enough features. Must read if you think that: - You have to use vector indexes - Vector indexes are pretty much like other indexes in RDBMS - Pgvector is limited to 2000 dimension vectors - Pgvector misses data for queries with WHERE conditions. - You only use vector embeddings for RAG - Pgvector can't work with BM25 (or other sparse text-search vectors) And also a good read if you are curious about pg_vector in general. thenile.dev/blog/pgvector_my…
1
6
1,410
Great post that describes Contextual Retrieval as an attempt to overcome the main limitation of traditional RAG. The key idea is to prepend explanatory context to each chunk before creating embeddings. anthropic.com/news/contextua…
1
149
An interesting limitation of traditional RAG systems is that they often miss context when individual chunks lack enough details. For example, imagine you've got a bunch of restaurant reviews in your knowledge base, and someone asks, "What are people saying about the pizza at Ruslan's Corner?" A relevant chunk might contain: "The crust was perfectly crispy and the toppings were fresh. It was one of the best pizzas I've ever had." However, this chunk doesn't actually mention which restaurant it's talking about. The system might not connect this positive review to Ruslan's Corner, potentially leading to an incomplete or inaccurate response.
1
124
RAG is about semantic search. BM25 is about exact matching. Combining both gives you a better retrieval system.
1
101