Skip to main content

Category

Development

13 post s

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.

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.

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.

Development

Using Google's Captcha V3 with Express and Node

Google ReCaptcha V3 offers invisible bot detection that scores users without requiring puzzle challenges, and wiring it into an Express backend is straightforward once you understand the token verification flow. This post walks through the full frontend and backend integration with working code examples.

DevelopmentOpinion

Considerations when supporting a legacy software stack

Maintaining a legacy web application is a challenge most developers eventually face, where migrations are too costly, rebuilds are impractical, and doing nothing means a growing list of security risks. This post covers practical considerations for keeping aging stacks alive while keeping technical debt in check.

DevelopmentOpinion

Build a URL Shortener with Node + Mongo

Building a URL shortener is a great project for exploring real-world concerns like unique ID generation, database modeling, and abuse prevention. This post covers the core mechanics using Node and MongoDB, focusing on the counter-based schema design that keeps short IDs truly short.

DevelopmentOpinion

Building a Flask Application: Where to Start

Flask is a lightweight Python web framework that gets out of your way, but choosing the right supporting tools for your database, frontend, and dev environment is where the real decisions are made. This post walks through the key choices when building a full Flask application from scratch.

DevelopmentOpinion

Refreshing an old stack's front end

When an application's core technology grows stale, mixing a modern frontend framework like Vue into an aging backend can be a practical step forward without a full rebuild. This post explores why decoupling your frontend from server-side rendering engines makes sense and how to do it incrementally.