Mathias Lafeldt
banner
mathias.blog
Mathias Lafeldt
@mathias.blog
Indie product engineer obsessed with dev tools & performance.

Maintainer of duckdb-rs & duckdb-go. Zig-pilled. ⚡️

🔗 mathias.blog
Pinned
Beyond excited to share that I'm now working with DuckDB Labs!

My first priority will be the DuckDB Rust client, which will receive a lot more love going forward.

🎉 🦆 ❤️
Signing a new freelance contract is always exciting. Being able to work on open source makes it doubly so.

Will share more soon. 😊
"OpenAI are murderers" is in my top 10
Is this platform still massively against AI or has it moved more towards acceptance?
November 26, 2025 at 11:03 AM
Only old nerds will understand
November 26, 2025 at 10:10 AM
After extensive work on duckdb-rs, duckdb-go, and my own DuckDB Zig library, I'm more convinced than ever that Zig is the only modern language in which FFI actually makes sense and is even enjoyable. ⚡️
November 25, 2025 at 12:22 PM
Days since finding a bug in Zig's MachO compiler: 0️⃣
November 25, 2025 at 8:27 AM
What I really like about Codex is its precise technical (nerdy) language. Claude would never write something dense like this:

Avoids O(null_count) bit twiddling for pass-through operators, and for dense-null inputs reduces branchy per-row work to a single mask copy/AND over (size+63)/64 words.
November 24, 2025 at 4:53 PM
Claude checks Codex.

Codex checks Claude.

I check both of them.
November 24, 2025 at 4:30 PM
I began exploring how to write DuckDB extensions in Go. It's still early days, but the spike works.

github.com/mlafeldt/qua...
GitHub - mlafeldt/quack-go
Contribute to mlafeldt/quack-go development by creating an account on GitHub.
github.com
November 24, 2025 at 2:52 PM
Our heat pump isn't keeping up at night. Too cold every morning despite no night setback programmed. Uploaded screenshots of the manual to ChatGPT and fed it the parameters it asked for. Instant diagnosis: curve too flat for cold nights, gave exact param changes. Now wait and see.
November 23, 2025 at 11:55 AM
Nice: Claude throwing in some box diagrams to explain stuff
November 21, 2025 at 3:32 PM
One of the most annoying features of agentic coding tools is their tendency to update staged git changes or, worse, amend existing commits. Claude does this without being asked. Codex does it as well. You have to tell them to STOP IT.
November 20, 2025 at 3:53 PM
Even the smart robots are also confused by Cloudflare vs CloudFront
November 19, 2025 at 7:11 PM
When your website and monitoring provider are both deployed to Cloudflare 🙈
November 19, 2025 at 10:59 AM
At long last, I figured out how to capture exceptions inside waitUntil with Sentry \o/
November 19, 2025 at 10:06 AM
Building duckdb-rs will become a lot easier. 🚀

With DUCKDB_DOWNLOAD_LIB=1, the build script automatically downloads libduckdb and sets everything up.

No need to compile DuckDB (bundled feature) or download/configure libs manually.

github.com/duckdb/duckd...
Download pre-built DuckDB libraries by mlafeldt · Pull Request #628 · duckdb/duckdb-rs
How this works: When DUCKDB_DOWNLOAD_LIB is set, we map CARGO_TARGET_DIR to target/duckdb-download/<target>/<version>, download the matching DuckDB release archive, unzip it, and add th...
github.com
November 18, 2025 at 3:46 PM
Reposted by Mathias Lafeldt
DuckDB's website and extension installation endpoint are still intermittently down due to today's Cloudflare outage – see our status page for more details: status.duckdb.org

For a single-file PDF copy of our documentation, see our recent post.
DuckDB Status Page
status.duckdb.org
November 18, 2025 at 1:37 PM
One would assume that CI in a paid GitHub org would be faster than CI in a personal open-source project (or fork). That might not be true at all since runners/credits are shared across the org. In other words, paying less/nothing can make development faster.
November 18, 2025 at 11:19 AM
Something I'm exploring...

Building DuckDB itself with Zig (~400 lines build.zig)

A bit surprised that it can load C++ core extensions just fine. Zig uses clang, official builds use clang, macOS libc++ is the same → ABI compatible? 🤔
November 17, 2025 at 4:47 PM
"AI is awful at generating Zig code: small sample dataset and the language updates faster than the models"

Not true. The trick is to give LLMs access to a curated list of open source Zig projects, including Zig itself.

news.ycombinator.com/item?id=4594...
Open-source Zig book | Hacker News
news.ycombinator.com
November 17, 2025 at 2:53 PM
Did this to clean two sticky keys on my MacBook Pro 🧼

www.youtube.com/watch?v=cXfO...
How to Remove and Clean Sticky Keys on M1 Macbook Air Step by Step Repair (Very Detailed Fix)
YouTube video by thecollegepicker
www.youtube.com
November 16, 2025 at 11:40 AM
> The document is production-ready and includes real code examples from the actual migrations!

Claude sneaking in yet another "production-ready"
November 15, 2025 at 2:34 PM
Want: Astro app + "monolith with subdomain routing” experience that Rails/Laravel offer (one deployment unit)

Don't want: multiple Cloudflare workers deployed separately from the main app
November 14, 2025 at 4:14 PM
Surest sign of not having any users

rm -rf migrations
bun db:generate
bun db:fresh
November 14, 2025 at 3:56 PM
Reposted by Mathias Lafeldt
i wrote everything that i've been kind of nervous to write about @val.town: here's how things have been going the last three years, and read to the end for how we're hiring for two people macwright.com/2025/11/11/v...
Val Town 2023-2025 Retrospective
The whole story
macwright.com
November 11, 2025 at 5:07 PM
When telling Claude to download and unpack a zip file, it will invoke `unzip` in /tmp. It won't pass -o by default though, which causes unzip to become interactive if any unpacked file already exists, blocking the agent. It's the little (dumb) things.
November 14, 2025 at 12:34 PM
Not a Windsurf guy, but this rings true

"the engineer’s role shifts from authoring to accountability — you might not write every line, but you’re still responsible for what ships"

cognition.ai/blog/codemap...
Cognition | Windsurf Codemaps: Understand Code, Before You Vibe It
Codemaps is meant to offer a shared understanding of a system between humans and AI, enabling your AI to teach you about the code you are looking at quickly and elegantly. A codemap can be generated ...
cognition.ai
November 10, 2025 at 2:21 PM