I got tired of using onetimesecret.com so I built my own secret sharing service. It has zero dependencies, only standard Web APIs, and the backend never stores any plaintext because everything is end-to-end encrypted (E2EE). The backend only sees the ciphertext and some metadata, and keeps them for a limited amount of time in a Redis (or Valkey) configured to never persist anything on disk.
Due to shortages, RAM is very expensive right now. And it will probably continue according to (somewhat optimistic) forecasts. If this situation continues for a long time, how would it change our behavior and culture of software efficiency? Will we defeat Wirth's Law (which states that software is getting slower more rapidly than hardware is becoming faster) by writing software that squeezes out…
Almost a year ago I switched from my good Linux Ryzen 7 PRO-based ThinkPad to a MacBook Air M4. I wasn't really looking to switch, but my ThinkPad had broken down (because of bad luck). I was interested in M-series MacBook laptops back then. My company had given me a MacBook Pro with an M4 Pro chip and I was amazed. So I kinda planned to buy one as my next laptop, and the time had come sooner than…
Whan I started this blog, I wrote an "AI disclaimer". That document states that I do use AI, but for proofreading, not to generate ideas or research topics. That last part is 100% me. AI helps me here because English is not my native language, and I'm afraid of writing poor or even bad English. However, I'm concerned about "AI slop" in general. Of course I want this blog to be useful and…
So I've been job hunting lately. Reading job postings, doing interviews, talking to engineering teams at like a dozen companies. And I noticed something compared to five years ago when I was last doing this: literally everyone is on Kubernetes now. Every single company I talked to. None of these places were doing microservices or anything close to high scale. So I asked why. Spoiler: they don't…
The Internet is almost anonymous and privacy-preserving by design. I mean, unless some administrator actively tries to track you, there is no built-in identity layer. What breaks both properties is the centralization of communication onto closed platforms, where identification becomes possible either by the hosting company itself, or by governments compelling them to cooperate. After recent…
I needed to call an RPC service hosted behind a home NAT, with no public IP and no port forwarding. Using Valkey (or Redis) lists and blocking pops, I built a lightweight request/reply protocol that lets machines communicate across NATs without tunnels or VPNs.
This article shows how I implemented semantic search in SQLite using binary embeddings and Hamming distance, enabling hybrid search without external vector databases.
Here are the technical books I plan to read this year. As of time of writing, none of them are published yet, they all are expected in 2026. Writing this down publicly serves as a commitment device. Maybe you'll find something worth adding to your own list.
Last week, AWS launched its European Sovereign Cloud, a physically separate infrastructure ("partition"), operated by EU residents, under a German legal entity. Analysts are already asking the right questions: Is it still a US-owned company? Does the CLOUD Act still apply? I have a simpler question: who is this actually for?
LavaRand implemented by Clodflare uses lava lamps to generate random numbers for cryptography, but the camera sensor capturing the images already produces abundant entropy from unavoidable physical noise. Do the lava lamps actually add anything, or are they just good marketing?
It turns out the recent Arduino models such as the ARM-based UNO R4 can act as USB-attached HID devices. USB HID (Human Interface Device) is the standard protocol that USB mice and keyboards use. The Arduino board can speak this same protocol, making computers treat it as a genuine input device. Building a mouse jiggler (or a keyboard that sends continuous inputs) is therefore as straightforward…
ARM has this very specific instruction, FJCVTZS, doing "Floating-point Javascript Convert to Signed fixed-point, rounding toward Zero". For example, it converts Float64(42.99) to Int32(42). JavaScript uses double-precision floating-point (Float64) for all numbers (i.e., of type number). Yet many operations require 32-bit integers: bitwise operations, array indexing, typed array access. The…
900k users got their AI conversations stolen by malicious Chrome extensions, according to this article. You wouldn't believe how easy it is to make an evil Chrome extension. I know it was easy because I built one. Not to scam anyone, of course! I needed to grab a session token from a site I use for work and send it to my API for automating some boring tasks. It took me an afternoon, and I'll show…
I needed to monitor a few servers: this website, and some APIs I run for my small company. When something goes down, I want a notification so I can confirm and take a corrective action. That's all I need.
Every time IDs are discussed on Hacker News, someone suggests encrypting them instead of using public-facing UUIDv7 or other alternatives. This sounds clever. It's not.
I wanted to move away from Node.js and the practices that come with it. I wanted TypeScript to just work without configuration, JSX/TSX support out of the box, and better developer experience through unified tooling, no more juggling npx, yarn, tsc, tsx, and whatever else the ecosystem requires this year. I went with Deno.
Last fall, I started learning Go seriously. Since then, I've used it exclusively for personal projects, so here are my takeaways after a few months. Background: I come from Python. I used it for years, both at work and for side projects. My projects are mostly the same kind of thing: web services, APIs, automation scripts. That's what I've been writing in Go.