Sr. Content Developer at Microsoft, working remotely in PA, TechBash conference organizer, former Microsoft MVP, Husband, Dad and Geek.
151112 stories
·
33 followers

Eight years of wanting, three months of building with AI

1 Share

Eight years of wanting, three months of building with AI

Lalit Maganti provides one of my favorite pieces of long-form writing on agentic engineering I've seen in ages.

They spent eight years thinking about and then three months building syntaqlite, which they describe as "high-fidelity devtools that SQLite deserves".

The goal was to provide fast, robust and comprehensive linting and verifying tools for SQLite, suitable for use in language servers and other development tools - a parser, formatter, and verifier for SQLite queries. I've found myself wanting this kind of thing in the past myself, hence my (far less production-ready) sqlite-ast project from a few months ago.

Lalit had been procrastinating on this project for years, because of the inevitable tedium of needing to work through 400+ grammar rules to help build a parser. That's exactly the kind of tedious work that coding agents excel at!

Claude Code helped get over that initial hump and build the first prototype:

AI basically let me put aside all my doubts on technical calls, my uncertainty of building the right thing and my reluctance to get started by giving me very concrete problems to work on. Instead of “I need to understand how SQLite’s parsing works”, it was “I need to get AI to suggest an approach for me so I can tear it up and build something better". I work so much better with concrete prototypes to play with and code to look at than endlessly thinking about designs in my head, and AI lets me get to that point at a pace I could not have dreamed about before. Once I took the first step, every step after that was so much easier.

That first vibe-coded prototype worked great as a proof of concept, but they eventually made the decision to throw it away and start again from scratch. AI worked great for the low level details but did not produce a coherent high-level architecture:

I found that AI made me procrastinate on key design decisions. Because refactoring was cheap, I could always say “I’ll deal with this later.” And because AI could refactor at the same industrial scale it generated code, the cost of deferring felt low. But it wasn’t: deferring decisions corroded my ability to think clearly because the codebase stayed confusing in the meantime.

The second attempt took a lot longer and involved a great deal more human-in-the-loop decision making, but the result is a robust library that can stand the test of time.

It's worth setting aside some time to read this whole thing - it's full of non-obvious downsides to working heavily with AI, as well as a detailed explanation of how they overcame those hurdles.

The key idea I took away from this concerns AI's weakness in terms of design and architecture:

When I was working on something where I didn’t even know what I wanted, AI was somewhere between unhelpful and harmful. The architecture of the project was the clearest case: I spent weeks in the early days following AI down dead ends, exploring designs that felt productive in the moment but collapsed under scrutiny. In hindsight, I have to wonder if it would have been faster just thinking it through without AI in the loop at all.

But expertise alone isn’t enough. Even when I understood a problem deeply, AI still struggled if the task had no objectively checkable answer. Implementation has a right answer, at least at a local level: the code compiles, the tests pass, the output matches what you asked for. Design doesn’t. We’re still arguing about OOP decades after it first took off.

Via Hacker News

Tags: sqlite, ai, generative-ai, llms, ai-assisted-programming, vibe-coding, agentic-engineering

Read the whole story
alvinashcraft
7 hours ago
reply
Pennsylvania, USA
Share this story
Delete

INFO: Microsoft Weekly Entra Newsletter – “Your weekly dose of Microsoft Entra”

1 Share

If you’re a security or identity specialist leveraging Microsoft Entra identity technologies & services, this is the newsletter for you:

Entra.News helps you stay on top of all the identity and network access related news on Microsoft Entra.

This weekly summary is a curated list of Microsoft Entra related articles, blog posts, links, videos and podcasts from Microsoft, MVPs and the wider infosec community.

Subscribe to get full access to the Entra.News weekly newsletter and website. Never miss an update.

(Note: Entra.News, it’s content and opinions are Microsoft Entra Product Manager, Merill Fernando’s, own and do not reflect the views of his employer, Microsoft. All blog postings are provided “AS IS” with no warranties and is not supported by the author. All trademarks and copyrights belong to their owners and are used for identification only.)



Read the whole story
alvinashcraft
9 hours ago
reply
Pennsylvania, USA
Share this story
Delete

INFO: Microsoft Weekly Newsletters for Azure & Power BI

1 Share

Azure Weekly is a summary of the week’s top news to help you build on the Microsoft Azure Platform.
From AI to Zero Trust, it aims to keep you on top of the latest Azure developments

Power BI Weekly is a collation of the week’s top news and articles from the Power BI ecosystem.
From Power Query to Copilot, it aims to keep you on top of the latest Power BI developments

(Note: Both Azure Weekly & Power BI Weekly are independent newsletters not affiliated with Microsoft. Both newsletters are the creation of Endjin, a London-based Microsoft Solutions Partner that curates posts & content largely from the official Microsoft Azure blog & other sources but is not limited to Microsoft sources alone.)



Read the whole story
alvinashcraft
9 hours ago
reply
Pennsylvania, USA
Share this story
Delete

Links For You (4/5/26)

1 Share

Happy "Three Days Before My Birthday Day"! Oh - yeah, and happy Easter too, but I'm personally a bit more excited about turning 53 as I've decided that's when I'm going to grow up and act like a mature adult. Probably. Maybe. We'll see. Now, if you, my lovely and incredibly intelligent reader, are feeling generous and you've gotten some good knowledge (or entertainment) from this blog, I'll use today's Links For You post to remind you of my Amazon Wishlist. Or even cheaper, leave me a comment below saying HBD - that's just as good. ;)

Everything old is new again...

First up is a blog post on an old topic but one that's still pretty useful - bookmarklets. "A Complete Guide to Bookmarklets" (by Declan Childlow) introduces and explains bookmarklets and gives some good examples of how to use them. Be sure to check the comments to for more examples.

contrast-color() - more CSS Awesomness

I've said this (probably too often), but it's been incredibly gratifying to see how far CSS is advancing. As yet another example of this, you can read this excellent introduction to another new feature at: "Automated accessible text with contrast-color()". This lets you pass a color and get either black or white as a value that can be used to contrast properly against the original. This is not yet available but will launch in Chrome 147 (as of today, 146 is the released version).

Can your game be programmed?

I love this. I mean, I really love this. So apparently there's a city-sim game (a genre I've long liked myself) where you manage a beaver colony - Timberborn. As part of the game's most recent updates, they added the ability to perform automations via HTTP calls. This exposes an endpoint that can be called by external clients to perform actions in the game. So of course someone took this and did something completely ridiculous - build a basic database.

Just For Fun

Ok, I'll leave you with another music video, and once again I've got Brian Rinaldi to thank. This is another new band for me, "Golden Cats" - enjoy!

Play Video

Read the whole story
alvinashcraft
9 hours ago
reply
Pennsylvania, USA
Share this story
Delete

Can your AI rewrite your code in assembly?

1 Share

Suppose you have several strings and you want to count the number of instances of the character ! in your strings. In C++, you might solve the problem as follows if you are an old-school programmer.

size_t c = 0;
for (const auto &str : strings) {
    c += std::count(str.begin(), str.end(), '!');
}

You can also get fancier with ranges.

for (const auto &str : strings) {
    c += std::ranges::count(str, '!');
}

And so forth.

But what if you want to go faster? Maybe you’d want to rewrite this function in assembly. I decided to do so, and to have fun using both Grok and Claude as my AIs, setting up a friendly competition.

I started with my function and then I asked AIs to optimize it in assembly. Importantly, they knew which machine I was on, so they started to write ARM assembly.

By repeated prompting, I got the following functions.

  • count_classic: Uses C++ standard library std::count for reference.
  • count_assembly: A basic ARM64 assembly loop (byte-by-byte comparison). Written by Grok.
  • count_assembly_claude: Claude’s SIMD-optimized version using NEON instructions (16-byte chunks).
  • count_assembly_grok: Grok’s optimized version (32-byte chunks).
  • count_assembly_claude_2: Claude’s further optimized version (64-byte chunks with multiple accumulators).
  • count_assembly_grok_2: Grok’s latest version (64-byte chunks with improved accumulator handling).
  • count_assembly_claude_3: Claude’s most advanced version with additional optimizations.

You get the idea.

So, how is the performance? I use random strings of up to 1 kilobyte. In all cases, I test that the functions provide the correct count. I did not closely examine the code, so it is possible that mistakes could be hiding in the code.

I record the average number of instructions per string.

name instructions/string
classic C++ 1200
claude assembly 250
grok assembly 204
claude assembly 2 183
grok assembly 2 176
claude assembly 3 154

By repeated optimization, I reduced the number of instructions by a factor of eight. The running time decreases similarly.

Can we get the AIs to rewrite the best option in C? Yes, although you need SIMD intrinsics. So there is no benefit to leaving the code in assembly in this instance.

An open question is whether the AIs could find optimizations that are not possible if we use a higher-level language like C or C++. It is an intriguing question that I will seek to answer later. For the time being, the AIs can beat my C++ compiler!

My source code is available.

Read the whole story
alvinashcraft
9 hours ago
reply
Pennsylvania, USA
Share this story
Delete

Evaluating AI Agents with Microsoft.Extensions.AI.Evaluation in C#

1 Share

Learn evaluating ai agents microsoft extensions ai evaluation in C#. Build LLM-as-judge evaluation harnesses with real .NET code examples for quality testing.

Read the whole story
alvinashcraft
9 hours ago
reply
Pennsylvania, USA
Share this story
Delete
Next Page of Stories