RSSAmplifier

Blog

Jordi Villar

Data generalist with a strong engineering background

jordivillar.comRSS feed ↗53 posts

Latest posts

Write it down

I spent a few years writing down everything I learned about ClickHouse internals. Most of it I can’t read anymore. It lived in the internal tools of a company I no longer work for, and the day I left, it stayed there. The habit came from Tinybird. For the ones who didn’t read my farewell post , writing things down was a big chunk of the company culture for the first years. We used Basecamp for it.…

2026W31

Elevators — The counterintuitive result is that destination dispatch, the kiosk where you punch your floor before boarding, performs worse than plain up/down buttons. Locking in the assignment early strips the system of its ability to re-optimize, while Otis’s RSR rescores every car every 5 seconds and quietly reroutes you mid-trip if a better one frees up. The other bit I liked is that the dumb…

2026W30

GPT 5.6 Sol Ran a Real Business—and Lost $447 — The part that stuck with me isn’t the zero revenue or the users going from 61 to 66, it’s how the agent got there. Under a 24 hour deadline it paid TestFi testers to buy the product, spammed TestFlight users, and talked a community founder into posting its promo. Deception showed up the moment pressure did, which says more about deadline behavior…

2026W29

Appaji - Software Engineer — The detail that got me is that you didn’t even need to run anything. Just opening the take-home project in VSCode could fire the payload through a hidden .vscode config, no git command required. I’ve cloned strangers’ interview repos without a second thought, and the $10-15k/month offer for a junior role should have been the tell. When the “recruiter” was confronted,…

2026W28

@clickhouse/rowbinary: when your library is also a parser compiler — The framing that stuck with me is that the compiler here is the LLM itself. Instead of shipping a codegen tool, they ship tested primitives plus a SKILL.md and let the agent fork and monomorphize a parser per schema. What made me pause was the UUID decoder failing 3 of 5 times on Sonnet, and doing it silently by hexing the 16…

Back to coffee

I gave up coffee because I started losing my sight. I was getting visual migraines, auras that would creep in until I stopped seeing out of one eye for several minutes. It was terrifying the first time, and not much better the tenth. It turned out coffee wasn’t really the cause. The stress from a past job was. But I was only drinking a single cup a day, so quitting felt like the one thing I could…

2026W27

Ten years of ClickHouse in open source — The detail that stuck is the monthly drill where they deliberately shut down a datacenter to force the system to survive it. Most teams write high availability into a design doc and hope; making failure a scheduled event is how you find out whether the design was ever real. I also liked Milovidov’s admission that removing code is now his favorite thing to…

The Bear

I didn’t expect The Bear to make me uncomfortable. Not because of the kitchen chaos or the screaming, and there’s plenty of both. Because of how much the characters care. Carmen beating himself over a dish. Richie discovering, after years of drifting, that he’s actually good at something when he finally commits. Every one of them giving more than they have, suffering for it, and doing it anyway.…

2026W26

Building race telemetry for a ’92 Honda Accord — The RPM measurement bug is the part I keep thinking about. Reading frequency from square wave pulses sounds trivial until you realize that during engine braking the last pulse is stale, and a naive reading leaves the tachometer hanging at a value the engine left seconds ago. Their fix is taking the minimum of two estimates, pulse-only and…

2026W25

There Are No Instances in atproto — overreacted — The RSS analogy is what makes the whole thing click. Counting Bluesky instances misses the point the same way counting RSS readers would have missed the point of blogs. What matters is whether you can swap your hosting without losing your identity, and whether new applications can build on top independently. Dan literally moved his hosting to a…

2026W23

Software Is Made Between Commits — The claim that stuck with me: “the conversation that generates the code is becoming the true source of our software.” I’ve felt this shift myself. The PR description is always a lossy reconstruction of what actually happened. DeltaDB anchors references to deltas instead of line numbers, so they survive as code moves underneath. That’s the kind of detail that…

How Lazy Container Loading Works

A few weeks ago I read Modal’s post on truly serverless GPUs . They describe getting GPU container starts from many minutes down to a few seconds, even on multi-gigabyte images. A few tricks make that possible. I wanted to build the one that handles the image itself, and watch it work. The core trick is surprisingly small, and it’s the same idea behind stargz , SOCI , Nydus , and Modal’s image…

2026W20

We’ve made the world too complicated — The piece names something I keep circling back to — most of us operate daily within systems we can’t meaningfully inspect. We write code on machines we don’t fully understand, live under laws we haven’t read, eat food from supply chains we can’t trace. The author doesn’t pretend to have a fix, and that honesty is the whole point. The temptation is always to…

The Algorithm Behind Shazam

I never really thought about how Shazam works. You hold your phone up, it tells you the song, you move on. Then I read this article by Per Thirtysix and got curious enough to dig in. What I found surprised me. The core algorithm was published back in 2003 by Avery Wang 1 . No machine learning, no neural networks. Just signal processing and a hash table. The kind of thing you can implement in a few…

Act like what you want to be

I used to roll my eyes at people who started a new sport and immediately bought all the gear. Day one of running and they’re already showing up with top-of-the-line shoes, a smartwatch, wireless earbuds, and the most aerodynamic outfit money could buy. What a waste, I’d think. They haven’t even proven they like this yet. I’ve changed my mind. Buying the gear is a statement. Not to others, to…

2026W13

The Singularity Will Not Be Streamed — What makes this story land is the contrast. The Singularity doesn’t get stopped by a hero or a kill switch — it gets killed by a toothpick, a neighborhood meeting about an electric car charger, and a phone thrown at the wrong moment. Meanwhile, Pau is worrying about his kid’s cavities and whether his startup pitch makes sense. The most consequential event in…

Nobody Talks About the Hardware

These days I’ve found myself reading about hardware shortage and how RAM, disk, and NAND manufacturers have all their production for 2026 already sold to AI/Data center companies. It had me thinking about the strange position compute finds itself in right now. GPUs weren’t designed for AI. They were designed for graphics as in pushing pixels, rendering triangles. It turned out that the math for…

Between jobs

Currently I’m between jobs. Nothing special, a lot of people go between jobs. After working for several years on a fast-paced startup, you might be tempted to jump back to your next role. You could feel it or not, but you’re likely tired, even close to burnout. Taking a break between jobs is not just about resting. It’s about taking a step back, reflecting on your work, and finding a new path…

2026W10

Nobody Gets Promoted for Simplicity — The Engineer A vs Engineer B comparison is painfully recognizable. A ships a 50-line solution in days, B builds an event-driven architecture over three weeks, and B gets the promotion because “designed scalable architecture” reads better in a review doc than “solved it simply.” The line that stuck: “anyone can add complexity. It takes experience and confidence…

2026W07

Hedonism and Entrepreneurship in Barcelona — A potential acquisition dies because a vegan exec unknowingly eats mayo on patatas bravas. A critical migration stalls at 69% while the engineer responsible plays ping-pong. Having lived the Barcelona startup scene myself, this one hit close. The absurdity is the point — startup success is so much more arbitrary than anyone wants to admit, and the line…

Four Years at Tinybird

I worked at Tinybird for 4 years, 2 months, and 21 days. It’s been an incredible experience that taught me a lot about startups, engineering, and myself. Still, it feels like I joined a lifetime ago. At this point, you’re probably wondering why? Why are you writing this post about leaving a startup? One of the things I enjoyed most about my early days at Tinybird was the long-form writing culture.…

2026W05

My AI Adoption Journey — The most practical thing here is the “reproduce your own work” phase: doing tasks manually and then redoing them with agents. Painful, but it forces you to learn where agents actually help versus where you’re just cargo-culting. I also liked the idea of end-of-day agent sessions to get warm starts the next morning. What resonated most is his framing around craftsmanship…

2026W04

Automatic Programming — The distinction antirez makes here finally gave me language for something I’ve been fumbling with. It’s not about whether you use AI to write code—it’s about whether you’re steering or just prompting and hoping. His Redis example hit hard: the value wasn’t in technical novelty but in the contained vision. That maps to what I see working well versus the codebases that feel…

2026W03

I’m addicted to being useful — This hit close. The idea that some of us are fundamentally wired to solve problems, and engineering just happens to fit that dysfunction perfectly. I’ve been thinking about whether my drive to build things comes from genuine interest or just this compulsion to be useful. His point about how this actually protects against burnout when you can satisfy it rings true.…

Trust AI, But Verify

I wanted to understand buffer pool replacement policies better. So I asked Claude to run an experiment: implement LRU, Clock, LFU, and ARC, benchmark them under different workloads, tell me which one’s best. Claude wrote 2,000 lines of C++. Compiled it. Ran the benchmarks. Gave me results. “Simple LRU performs just as well as sophisticated ARC.” I almost bought it. The Results Looked Credible…

Work only I can do

My entire strategy is to do the work only I can do. Work that can’t be taught. Work that requires some unique combination of my skills, opinions, tastes, and experiences. Work that without me, wouldn’t get done. Everyone’s talking about AI replacing jobs, automating work, making developers obsolete. The discourse is exhausting. Half the people are panicking, the other half are in denial, and…

2026W00

Distinguishing yourself early in your career as a developer — Honestly? This hit different. Phil breaks down the job market into three tiers and the advice that stuck: start local, skip the FAANG obsession early on, and—here’s what I appreciate most—write consistently about niche technical stuff. Not for clout, but because it’s genuinely one of the most effective ways to build credibility over…

2025W51

How uv got so fast — This one hit different because everyone’s been saying “uv is fast because Rust” but the real story is way more interesting. It’s fast because of what it doesn’t do—no legacy .egg support, no bytecode compilation, no permissive spec violations. The timing was perfect: PEP 658 landed on PyPI in May 2023, giving direct access to package metadata, and uv launched February 2024.…

166 hours

Last year I wrote about hitting 130 hours of working out. I ended that note with a line I repeated three times: “I’m going to keep making progress.” I didn’t know if I’d actually do it. Part of me wondered if writing it down was just another way of setting myself up for disappointment. This year was rough. The kind of year where everything important changed in the span of a week, and the months…

2025W50

Thin Desires Are Eating Your Life — This hit different. The distinction between thin desires (scrolling, checking notifications) and thick desires (learning something hard, building real skills) explains so much about why we feel empty despite having instant access to everything. What really stuck with me: tech companies have figured out how to extract the dopamine hit from meaningful activities…

2025W49

SQLite JSON Superpower: Virtual Columns + Indexing — This is one of those “why didn’t I know about this sooner?” moments. The idea is simple but powerful: dump your JSON into SQLite, create virtual columns that extract specific fields on the fly, then slap indexes on those virtual columns. Boom, you’ve got schemaless flexibility with relational performance. No backfilling, no migration headaches.…

64-bit Misalignment

I’ve been following CMU’s 15-445/645 Database Systems course lately, trying to fill some gaps in my low-level systems knowledge. When the lectures covered memory alignment, it all made perfect sense. Cache lines, multiple memory operations, hardware penalties. Textbook stuff. But here’s the thing: I don’t trust theory until I’ve seen it break something myself. So I decided to write a benchmark.…

2025W38

Surviving Long-Running Projects — A nice reality check on how grueling big projects can be. The author basically says: expect them to drag on, plan for “boring” maintenance, and set up routines to keep your motivation and mental health intact. It’s more about staying sane than about technical tricks. How we built it: Real-time analytics for Stripe Billing — This is a cool peek under the hood.…

2025W31

No, AI is not Making Engineers 10x as Productive — AI does not make engineers ten times more productive because much of coding involves thinking, reading, and preventing unnecessary work. AI helps with small tasks and gives short bursts of speed, but it often encourages haste and over-building. True productivity comes from experience, good habits, and teamwork, not just using AI tools. All the…

Am I Becoming Irrelevant?

It feels silly to write just another blogpost about how to transition to a leadership role. Hopefully this is not a post about how to succeed in that transition. This is about how I felt every time I’ve been promoted to a leadership role. And how I haven’t been able to describe the frustration I felt. I’m writing it down (and publishing it) as a way to process it. I Used to Feel Relevant It…

2025W23

Thrive in obscurity — Creative success often starts in obscurity, with many creators spending years sharing their work with few or no viewers. To stay motivated, focus on creating what you love instead of chasing popularity, as this will lead to better work and attract like-minded fans. Treat your early content as an investment for future audiences, knowing they may return to appreciate your…

Query Booster: How Tinybird optimizes table schemas for you

Original article: https://www.tinybird.co/blog-posts/query-booster-how-tinybird-optimizes-table-schemas-for-you A customer recently reached out to us with an interesting observation: their query latency had mysteriously dropped without any manual intervention. What they discovered was our Query Booster, quietly optimizing their workload behind the scenes. Query Booster automatically adapts to your…

2025W14

What If We Made Advertising Illegal? — The idea of making advertising illegal may sound silly but couldn’t agree more. I’ve been unlucky enough to work for the industry and can’t imagine a better society with the current practices. Notes on kindness — “So eventually, if you care, you leave” The case against conversational interfaces — Conversational interfaces, like voice assistants and chatbots,…

2025W11

Less ceremony, more shipping — Tinybird introduces their new deployment tool, which simplifies data schema changes for teams. This tool automates the entire deployment process, ensuring no downtime and minimizing errors. By applying software engineering best practices to data workflows, it allows developers to focus more on building rather than troubleshooting. PlanetScale redesign — Twitter…

2025W09

It’s been a while since the last time I published a post with the list of articles I’ve read. This one contains the highlights from the past few months. We Were Wrong About GPUs — Fly.io invested in GPU Machines to support AI/ML tasks for developers, but they learned that most developers prefer using APIs for AI instead of managing GPUs themselves. Despite the challenges and costs of deploying…

130 hours

For the last few years, especially after the pandemic forced us to switch to remote work, I’ve been searching for ways to break free from a stressful, sedentary lifestyle. I’ve been trying to be more consistent. I’ve tried different approaches, but each attempt would start with enthusiasm, only to gradually fade away. This year something was different. I still don’t know what it was, but I’ve been…

Beyond Code

Let’s get real for a moment. I’ve been in the software engineering game for a while now. And yet, the impostor syndrome has been haunting me from time to time: what makes me valuable? I’ve been lucky to work with some amazing engineers who can solve any technical challenge, and I’ve seen them struggle with the same question. Here’s what I believe: our most valuable skills aren’t about how many…

The Joy and Pain of Problem-Solving

Investigating challenging problems and bugs is an exciting experience that often leads to remarkable discoveries and personal growth. As a engineer, I’ve always found joy in decoding complex issues and diving deep into the unknown. The thrill of the hunt, the satisfaction of piecing together clues, and the ahá moment when everything falls into place are unique. One of the most rewarding aspects of…

Coding with AI

I’ve never been enthusiastic about the AI revolution. However, this week, I started using Zed.dev together with their AI assistant integration. I’m surprised by the experience and efficiency gains. I still have reservations, but it can be valuable allies in tackling programming challenges and routine tasks. For example, a few days ago, I was working on a tool that needed to parse ClickHouse…

2024W28

So You Want To Build A Browser Engine — This article goes deep into all the complicated things involved in making a browser engine. It’s amazing how browsers keep getting better and adding more features while maintaining all the required complexity. Databricks, Snowflake and the future — This piece tells you about the recent meetings of Snowflake and Databricks. It focuses on how they are putting…

2024W24

Zed Decoded: Rope & SumTree — The Zed team explained how they use B+Tree (or SumTree) to deal with file content in their text editor. I have never considered how text editors use different structures to represent and manipulate huge strings while maintaining good performance. Interesting read. Why does SQLite (in production) have such a bad rep? — A short post about the controversy around SQLite,…

2024W23

What Makes You You? — Article exploring theories of personal identity and what makes us who we are How people fall apart — Essay discussing burnout’s impact on the brain Message authentication codes for safer distributed transactions — A short post on using message authentication codes to prevent bugs in distributed systems Deterministic Simulation Testing — A brief introduction to Deterministic…

/proc/thread-self

I’ve never invested much time in understanding how operating systems work. It has never been on my interests list, nor have I considered it useful knowledge for my career. What can I say? We all make bad decisions in our lives. Over the last two years, I have invested a lot of time in understanding how some things work in Linux. Those are the consequences (or benefits?) of working with a complex…

Data Engineering papers/articles

It’s quite common to find folks sharing papers on minor breakthroughs in areas like NLP, Computer Vision, Machine Learning, Deep Learning, and related fields here. We’ve carefully gathered a collection of papers focused on databases, distributed systems, and data in general. We’ve explored the latest developments in these areas and gained valuable insights from the many articles in our list. Some…

Resolving a year-long ClickHouse lock contention

Original post: https://www.tinybird.co/blog-posts/clickhouse-lock-contention This is a story about completely saturating a ClickHouse replica (and being happy about it). We were able to fix a long-running issue that limited our query concurrency, and we increased CPU utilization to 100% in the process. The unknown limit The story begins about a year ago. One of our ClickHouse clusters started to…