33 Followers
40 Following
359 Posts

I’ve finally written a deep-dive into the 250-hour build process behind syntaqlite.

While AI agents were the only reason I finally overcame the 8-year inertia to start this project, using them taught me a lot about the psychological toll of AI-assisted engineering and the trap of "vibe-coding."

The full post-mortem with journal logs and commit history:
https://lalitm.com/post/building-syntaqlite-ai/

(Thread on the key takeaways follows)

Eight years of wanting, three months of building with AI

For eight years, I’ve wanted a high-quality set of devtools for working with SQLite. Given how important SQLite is to the industry1, I’ve long been puzzled that no one has invested in building a really good developer experience for it2. A couple of weeks ago, after ~250 hours of effort over three months3 on evenings, weekends, and vacation days, I finally released syntaqlite (GitHub), fulfilling this long-held wish. And I believe the main reason this happened was because of AI coding agents4. Of course, there’s no shortage of posts claiming that AI one-shot their project or pushing back and declaring that AI is all slop. I’m going to take a very different approach and, instead, systematically break down my experience building syntaqlite with AI, both where it helped and where it was detrimental. I’ll do this while contextualizing the project and my background so you can independently assess how generalizable this experience was. And whenever I make a claim, I’ll try to back it up with evidence from my project journal, coding transcripts, or commit history5.

Lalit Maganti

There is virtually **no** AI slop security reports anymore submitted about #curl. They don't seem to happen any longer.

Almost everyone still uses AI though.

A few years ago I designed a way to detect bit-flips in Firefox crash reports and last year we deployed an actual memory tester that runs on user machines after the browser crashes. Today I was looking at the data that comes out of these tests and now I'm 100% positive that the heuristic is sound and a lot of the crashes we see are from users with bad memory or similarly flaky hardware. Here's a few numbers to give you an idea of how large the problem is. 🧵 1/5

@markdennehy I've had managers, but I've also seen misplaced points of interest on maps, errors introduced during coordinate transformations, people mis-selecting text when copy-pasting, and missiles malfunctioning or being clipped by air defense. There was a target in the vicinity of the school.

Presenting "we've used Claude for some stuff" as "Claude selected a school" is dishonest.

Garlic confit I've never tried, but there's a recipe on Serious Eats and they've never misled me.

@markdennehy "for intelligence purposes, as well as to help select targets and carry out battlefield simulations".

Which is different from "Claude just selected an elementary girls school as a target" if we're still reporting the known facts and not trying to mislead.

@markdennehy it's behind a paywall, but the other sites just say they're using Claude, not that it picked the school in Minab as a target.
@markdennehy do you have a link to the article? I can't browse WSJ right now.
@markdennehy the strike was a terrible tragedy, but can you substantiate your assertion that this was a target selected by Claude?
Math trivia: the "B." in Benoit B. Mandelbrot stands for Benoit B. Mandelbrot

PSA: Did you know that it’s **unsafe** to put code diffs into your commit messages?

Like https://github.com/i3/i3/pull/6564 for example

Such diffs will be applied by patch(1) (also git-am(1)) as part of the code change!

This is how a sleep(1) made it into i3 4.25-2 in Debian unstable.