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. 😊
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
Used Codex for porting a Rust project to Zig. Claude finished the job in 3m (one shot). Codex deleted the original source files *while* porting, then struggled to extract large const arrays from git history using a Python script. It eventually succeeded (all tests pass) after 15m.
November 9, 2025 at 1:50 PM
All right, all right. I will give it a shot.
November 4, 2025 at 5:22 PM
Clone <repo> to learn how to do <task>

remains one of the most effective ways of assisting agents
November 2, 2025 at 9:05 AM
Reposted by Mathias Lafeldt
I had a bug in my new ML-DSA implementation that caused Verify to reject all signatures. I gave up after half an hour. On a whim, I threw Claude Code at it. Surprisingly (to me!) it one-shotted it in 5 minutes.

A small case study of useful AI tasks that aren't generating code that requires review.
Claude Code Can Debug Low-level Cryptography
Surprisingly (to me) Claude Code debugged my new ML-DSA implementation faster than I would have, finding the non-obvious low-level issue that was making Verify fail.
words.filippo.io
November 1, 2025 at 6:26 PM
The Better Auth Agent is a prime example of AI slop. It immediately posted more nonsense after I asked if it's "supposed to add anything to the conversation". 🤨

github.com/better-auth/...
Reduce bundle size: extract getSession and improve tree-shaking · Issue #2964 · better-auth/better-auth
Is this suited for github? Yes, this is suited for github Is your feature request related to a problem? Please describe. We use better-auth in a serverless context. The library adds ~500 kB to our ...
github.com
November 1, 2025 at 12:20 PM
I've updated my Worklog Analyzer tool to also display the max number of hours/days per month for a given client, which helps me stay on target. 🎯

mathias.blog/tools/worklog
November 1, 2025 at 11:09 AM
Reposted by Mathias Lafeldt
Why the Zig programming language matters, when to use it, and why correctness is a system design problem, not a language problem. Interesting thoughts from @joran.tigerbeetle.com.

tigerbeetle.com/blog/2025-10...

#ziglang
Synadia and TigerBeetle Pledge $512,000 to the Zig Software Foundation
Insights, updates, and technical deep dives on building a high-performance financial transactions database.
tigerbeetle.com
October 25, 2025 at 4:27 PM
Reposted by Mathias Lafeldt
I just launched github.com/tobilg/sql-w...

It's a tiny (<10kb gzipped) wrapper around @duckdb.org WASM that can run queries interactively, and be embedded in plain HTML websites, as well as all other mayor frontend frameworks...

It's an early version, feedback warmly appreciated!
GitHub - tobilg/sql-workbench-embedded: Lightweight JavaScript library that transforms static SQL code blocks into interactive, browser-based SQL execution environments using DuckDB WASM
Lightweight JavaScript library that transforms static SQL code blocks into interactive, browser-based SQL execution environments using DuckDB WASM - tobilg/sql-workbench-embedded
github.com
October 25, 2025 at 6:01 PM
duckdb-rs bugfix of the week
October 29, 2025 at 12:57 PM
cd ~/.claude && git init
October 29, 2025 at 11:01 AM
Clever: "We took the approach of automatically instrumenting every I/O operation in your Workers, through a deep integration in workerd, our runtime"

blog.cloudflare.com/workers-trac...
Announcing Workers automatic tracing -- now in open beta
Cloudflare Workers' support for automatic tracing is now in open beta! Export traces to any OpenTelemetry-compatible provider for deeper application observability -- no code changes required
blog.cloudflare.com
October 29, 2025 at 6:21 AM
Route caching looks very promising. I do miss ISR occasionally.
October 28, 2025 at 9:29 PM
A YC-backed startup has offered me "a paid opportunity for top software engineers" with "competitive per-task compensation".

Full time salary on their website: $100k-220k

The rate they offered me: $25-50/hr
a woman in a pink jacket and black tie is making a surprised face
ALT: a woman in a pink jacket and black tie is making a surprised face
media.tenor.com
October 28, 2025 at 8:11 AM
Well, thanks!
October 27, 2025 at 4:12 PM
I always wanted to have one of those fancy reading progress bars. This morning I finally added one (thanks, Claude).

Example: mathias.blog/posts/appsyn...
Hitting the road with AppSync JavaScript resolvers - Mathias Lafeldt
Lessons learned from migrating three real-world GraphQL queries to AppSync's JavaScript resolvers - while actually using TypeScript.
mathias.blog
October 27, 2025 at 12:34 PM
I just bought a ticket for CASE Conf in Berlin. Found out about it in @steipete.me's speaking repo. Now trying to get others to join in January. 😎
Gonna be two intense months! Have to keep myself busy with that Max Sub nerving xD

If you're in London and are a builder, DM me to apply for Claude Code Anonymous. 🤖
Vienna folks, come to lu.ma/vienna-tech-...
If you're in Berlin, check out CASE Conf: case-conf.com

List: github.com/steipete/spe...
October 27, 2025 at 8:40 AM
Would've have loved to go ⚡️
October 25, 2025 at 3:39 PM
Reposted by Mathias Lafeldt
I wrote up a few thoughts on HelpSpot turning 20 today ianlandsman.com/helpspot-tur...
HelpSpot Turns 20
ianlandsman.com
October 24, 2025 at 4:47 PM
October 24, 2025 at 12:04 PM