- WebAssembly on Kubernetes
-
Like a couple of innovative technologies, different people have different viewpoints on where WebAssembly fits the technology landscape.
In this post, I’ll stay away from these debates and focus solely on how to use WebAssembly on Kubernetes.
- Keeping Secrets Out of Logs
-
Very detailed analysis on an important problem, which is boring to many.
I especially like the encapsulation of anything "secret"-like in a dedicated type.
- Elements of Rust – Core Types and Traits
-
The core type and traits presented in a Mendeleev table of elements way.
- JEP 401: Value Classes and Objects (Preview)
-
Java NN introduces value objects to model immutable domain values. A value object is an instance of a value class, declared with the value modifier. Classes without the value modifier are called identity classes, and their instances are identity objects.
Java programs manipulate objects through references. A reference to an object is stored in a variable and lets us find the object’s fields. Traditionally, a reference also encodes the unique identity of an object: each execution of new allocates a fresh object and returns a unique reference, which can then be stored in multiple variables (aliasing). And, traditionally, the == operator compares objects by comparing references, so references to two objects are not == even if the objects have identical field values.
In Java NN, value objects are different. A reference to a value object is stored in a variable and lets us find the object’s fields, but it does not serve as the unique identity of the object. For a value class, executing new might not allocate a fresh object and might instead return a reference to an existing object, or even a "reference" that embodies the object directly. The == operator compares value objects by comparing their field values, so references to two objects are == if the objects have identical field values.
- I Built a Bloom Filter Data Structure Simulator
-
I heard about Bloom Filters before, and what they were used for, but this post explains how.
- What Is a Modular Monolith And Why You Should Care?
-
Ever since big companies advertised microservices, everybody and their neighbours from smaller organizations wanted to add it to their CVs. It led to a bunch of abysmal failures, where you get the cons of microservices with absolutely none of the benefits. In recent years, cooler heads finally prevailed. Even Google had to set the record straight:
Goggle identifies five main challenges with microservices:
- Performance - Sending data between services over the network slows everything down, especially when you split your app into too many pieces.
- Correctness - Most big failures happen when different versions of services try to talk to each other and mess up.
- Management - Have to manage multiple different applications, each with its release schedule.
- Frozen APIs - Once you create an API between services, it’s really hard to change it without breaking everything else.
- Development Velocity - When you need to make changes across multiple services, you can’t just deploy them all at once - you have to coordinate carefully.
The now agreed-upon solution is Modular Monoliths: a monolith that sets modules and boundaries inside a single deployment unit.
The post does a good job of explaining the issues of microservices and the benefits of starting with modular monoliths, even if you never reach the point microservices become necessary.
- How Palantir Is Mapping Everyone’s Data For The Government
-
The current state of the world looks bleak, but nothing could be more frightening than a government mapping its citizens' data.
It strikes close to home, as I was approached by Palantir a long time ago, and I toyed with the idea of joining. To my defense, I wasn’t aware of neither their political stance nor their approach to data "privacy" at the time.
- Get Excited About Postgres 18
-
- Asynchronous I/O
- UUID v7
- B-tree skip scans
- Generated columns on-the-fly
- OAuth 2.0
- Claude Code: Best practices for agentic coding
-
I’m trying Claude right now, and I’ll definitely need to create a
CLAUDE.md
file: I need to repeat myself too much. - werf
-
werf is a CNCF Sandbox CLI tool to implement full-cycle CI/CD to Kubernetes easily. werf integrates into your CI system and leverages familiar and reliable technologies, such as Git, Dockerfile, Helm, and Buildah.
- Advanced Bash Techniques I Wish I’d Known Earlier
-
Bash is an amazing tool, with the benefit of being available in many environments. And yet, beyond simple uses, I find the syntax quite arcane, with the chance of being bitten back harshly always present. I prefer to create my non-trivial scripts in Python nowadays, even if I’m not an expert.
- PythonBPF - Writing eBPF Programs in Pure Python
-
Cool stuff! I’d love to see this with other languages.