Skip to main content

Quick Thoughts

Some quick thoughts on software development, AI, and startups.

DevelopmentAI

Fine-tuning made it worse, and I still do not know why

What I learned fine-tuning speech models locally · Part 2

I fine-tuned whisper-small on 7.7 hours of real spontaneous speech and made it 2.6 times worse. I had a tidy explanation for it, so I tested the explanation, and the test said I was wrong.

The four stages of a fine-tuning pipeline: data collection, data processing, fine-tuning, testing.

AIResearch

Good speech data is the hard part

Locally fine-tuning Whisper and ASR models with Listenr · Part 1

Whisper is impressive and its vocabulary stopped in 2023. Fine-tuning fixes that, but only if you have high quality data, and getting that is the part nobody wants to do.

The OpenSCAD editor showing the script for a pipe reducer next to its rendered 3D preview.

TechnologyAI

LLM generated 3D modeling is the way to go

After hitting walls with FreeCAD, TinkerCAD, and Fusion 360, I discovered that scripting 3D models in OpenSCAD with an LLM produces precise, reusable parts faster than any GUI-based workflow I tried. Two prompts into ChatGPT, I had a working pipe reducer printed and in hand.

A graphic depicting a human developer collaborating with robotic elements, surrounded by code, symbolizing AI-assisted automation.

DevelopmentTechnology

Automate Everything: LLMs and Bash Scripts Mean Saved Time

Using LLMs to generate deterministic scripts rather than running real-time AI agents is a more reliable, testable, and repeatable approach to automation. This post explains the strategy, shares real examples from managing this blog, and covers how to keep the output production-ready.

A cartoon image of a laptop with a magnifying glass looking at a concern human using the machine

Research

Why do Canadian News Sites Track Me so Much?

After noticing CBC blocking 11 tracker domains in uBlock Origin, I built an automated tool to scan Canadian and international news sites and measure exactly how many trackers each one loads. The results reveal a pattern of aggressive, ad-network-driven data collection that goes well beyond basic analytics.

An illustration of a developer working alongside robotic arms in a library of code, representing the choice between a third-party library and AI-generated code.

TechnologyOpinion

Rethinking Library Dependencies in the GenAI age

Large language models are changing the calculus on when to reach for a third-party library versus generating a lightweight, purpose-built implementation. This post examines the tradeoffs and where a hybrid approach of GenAI-generated code refined by a developer makes the most practical sense.

A colorful cartoon-style digital illustration depicting a light-skinned developer working on a laptop surrounded by code snippets, emphasizing the theme of integrating hCaptcha into web applications.

Development

Using hCaptcha instead of Google's ReCaptcha with Vue and Express

hCaptcha is a privacy-respecting, drop-in alternative to Google ReCaptcha that actually pays you for serving its challenges on your site. This post shows how to integrate it into a Vue frontend and verify tokens server-side in Node with minimal code.