Artem Krylysov

@artem.krylysov.com

Databases and distributed systems. Working at Datadog on Metrics. https://artem.krylysov.com/

Software infrastructure at a glance (July 23, 2026) NYC Apache Iceberg Community Meetup in New York next month. @artem.krylysov.com shares how MVCC and transactions work in RocksDB. Atoms raises a $1.7B round. And Databento is hiring a C++/Rust developer.

Bild

Solved the permission fatigue from Claude by running it with dangerously-skip-permissions inside a VM that only has access to the host code directory. claudevm() { limactl shell --workdir "$PWD" default -- claude --dangerously-skip-permissions "$@" }

Turns out my local wiki setup, which is just a pile of markdown files tracked in Git that I've been using for a decade was so ahead of its time. With AI it's a Second Brain™ now.

After a decade of wanting to remove a CSS framework from my personal website, it's finally done thanks to Claude! The first attempt, where I just asked Claude to get rid of the framework, didn't go well, the website looked very janky.

I've posted my latest recap of the world of databases: www.cs.cmu.edu/~pavlo/blog/... All the hot topics from the last year: • More Postgres action! • MCP for everyone! • MongoDB gets litigious with FerretDB! • File formats! • Market movements! • The richest person in the history of the world!

Databases in 2025: A Year in Review

The world tried to kill Andy off but he had to stay alive to to talk about what happened with databases in 2025.

cs.cmu.edu

Rust database developer starter pack: - Arc<Mutex>, RwLock, Ouroboros, ArcSwap - "Is atomic::Ordering::Relaxed enough here?" - Iterator borrowing from itself - "Polonius is not really ready for widespread use" - Tokio async disk IO is just blocking IO in a thread pool - tokio-uring: "Dead or dying?"

JetBrains IDEs have gone downhill in recent years. IntelliJ went from working almost flawlessly for Rust and Go to often having issues to the point where the IDE becomes unusable. I'm not sure how they are going to survive with free alternatives getting pretty good.

Out of curiosity I attempted a "100% AI generated PR" with Claude Code. It was very tedious. You either have to do a lot of handholding, which makes the whole process net negative, or you have to lower the quality bar, which can be fine in some cases.

This piece of code in RocksDB caught my eye. The exact same snippet exists in Snappy and many other projects if you search GitHub for the magic constant. I was curious what "problematic" means exactly. After some digging TIL CRC(A + CRC(A)) is always the same constant, regardless of A.

static const uint32_t kMaskDelta = 0xa282ead8ul;

// Return a masked representation of crc.
//
// Motivation: it is problematic to compute the CRC of a string that
// contains embedded CRCs.  Therefore we recommend that CRCs stored
// somewhere (e.g., in files) should be masked before being stored.
inline uint32_t Mask(uint32_t crc) {
  // Rotate right by 15 bits and add a constant.
  return ((crc >> 15) | (crc << 17)) + kMaskDelta;
}

What a shame, BBC Radio 1 Essential Mixes are no longer available outside the UK. I've been listening it since around 2010. The show had a huge impact on me. Discovered so much great music thanks to it and met great people as a result.

Building software compatible with popular system's APIs and formats is a blessing and a curse. You can easily bootstrap integration tests - run side by side correctness checks and reuse benchmarks. But it also means reimplementing decades of legacy code, carrying choices that no longer make sense.