Blog · Engineering notes

Notes from building software.

Practical writing on AI and agent systems, evidence, developer workflows, and the engineering work around the model.

Subscribe with RSS

Give every database a clear job

Multiple persistence layers can work well in one SaaS product when each piece of data has an authoritative owner, a recovery story, and a deliberate lifecycle.

3 min readJared Hooker
architecturedata modelingPostgreSQLFirebase

Treat credit-based AI billing as a state machine

A usage ledger, idempotent payment events, and explicit charging rules keep paid AI workflows consistent when requests fail or webhooks retry.

3 min readJared Hooker
billingStripeSaaSidempotency

Designing approval boundaries for agentic systems

Useful approval flows show the exact action and its consequences at the moment an agent crosses from analysis into change.

3 min readJared Hooker
AI agentsapprovalssecurityproduct design

Why evidence provenance matters in AI research systems

A citation should be a resolvable relationship between a claim and the evidence that supports it, not a decorative link added after generation.

4 min readJared Hooker
AI researchevidencecitationsdata modeling

Building local-first AI developer tools

A local-first coding agent needs a clear host boundary for workspace access, provider credentials, tools, permissions, and state across client surfaces.

3 min readJared Hooker
developer toolslocal-firstAI agentsarchitecture

What production AI applications need beyond a prompt

Production AI systems need typed contracts, identity, persistence, budgets, failure handling, user review, and operational evidence around generation.

3 min readJared Hooker
production AILLM applicationsarchitectureoperations

Designing provider-agnostic LLM applications

A provider interface should isolate meaningful differences in streaming, tools, errors, and capabilities instead of hiding them behind a lowest-common-denominator request.

4 min readJared Hooker
LLM applicationsarchitectureprovidersTypeScript

Building a Zero-Downtime CI/CD System with Webhooks

How I built a self-hosted CI/CD system that gives you zero-downtime deployments with webhook automation and one-command setup, solving the deployment gap when moving to self-hosting.

8 min readJared Hooker
cicd

Creating a GUI For yt-dlp

In this detailed guide, we'll create a Python GUI application for Windows that allows users to download media from YouTube using yt-dlp and convert it to either MP3 or MP4 format. The application will be built using the tkinter library for the GUI, and we'll use yt-dlp and ffmpeg for downloading and converting the videos.

8 min readJared Hooker
yt-dlp

Written by Jared Hooker · [email protected]