Blog

Thoughts on software architecture, AI, algorithmic trading, investing, and building for the long term.

Software Architecture · Jun 13, 2026

Tailwind v4 CSS-First Config: Deleting tailwind.config.js for a theme Block

How Tailwind CSS v4 replaces the old JavaScript config file with a CSS-native @theme block, and what that means for theme management, build tooling, and the developer experience gap between v3 and v4.

5 min read
Software Architecture · Jun 13, 2026

A Stock-Up Alert Service in Laravel: Comparing Current Deals Against Months of Price History

How a Laravel service scores every grocery circular deal against its 6-month price floor and fires a notification when the timing is right.

4 min read
Software Architecture · Jun 13, 2026

From Gemini Flash to Imagen 4.0: Migrating Recipe Image Generation in a Weekly Meal Pipeline

How I migrated a weekly meal pipeline from direct Gemini Flash image generation to Imagen 4.0 via a shared gemini_image module. Better quality, consistent prompting, WebP output, and one less env var to manage.

5 min read
General · Jun 13, 2026

SQLite as a Backtest Results Store: Schema Design, Query Interface, and Sensitivity Heatmaps

How the trading-bridge project replaced ephemeral console logs with a structured SQLite store for backtest results — schema, auto-save hooks, CLI query API, desktop history views, and parameter sensitivity heatmaps.

5 min read
General · Jun 13, 2026

Content and Container Separation: Building a PowerPoint Generator with JSON as Source of Truth

A weekly training series needed consistent PowerPoint decks without manual formatting. The solution: JSON as source of truth, a Python generator as the renderer, and a clean separation between content and presentation.

5 min read
Trading · Jun 13, 2026

Drift Detection for Live Trading Strategies: Comparing Broker Performance Against Backtest Baselines

How the DriftEngine evaluates live broker metrics against backtest baselines, generates recommendations, and gates strategy deployment through statistical drift analysis.

6 min read
Software Architecture · Jun 13, 2026

Pairing Blood Pressure Readings from Health Connect: The Millisecond Problem

How the Hermes Health Connect app pairs systolic and diastolic readings from Android Health Connect using one-second buckets and fuzzy matching, before exporting to a Laravel backend.

5 min read
Software Architecture · Jun 13, 2026

Natural Unit Prices for Grocery Flyers: Why $/kg Hides What You Actually Pay

When your grocery price scraper normalises everything to $/kg, you lose the signal consumers actually see. Here is how Panier Futé learned to parse 473 ml, barquette, sac, and botte without hardcoding a lookup table.

5 min read
Software Architecture · Jun 04, 2026

From Circular to Alert: Building a Grocery Price Intelligence Pipeline in Laravel

How a Laravel app scrapes weekly grocery circulars, normalizes prices into a historical time series, predicts optimal buy moments with linear regression on SQLite, and fires Telegram alerts when a staple hits its floor price.

6 min read
Software Architecture · Jun 04, 2026

Three Bugs Before Breakfast: Integrating Flutter with Google Health Connect

A walk through three sequential bugs that blocked a Flutter app from reading Google Health Connect data, how each was discovered, and what the health package v13.3.1 actually needs from your AndroidManifest.

7 min read
Software Architecture · Jun 04, 2026

Binary Bars and Byte Orders: Building a High-Performance Backtest Data Pipeline

How I built a custom binary bar format with MappedByteBuffer, chased an endianness bug across Python and Java, and organized 11 Maven modules around zero circular dependencies.

2 min read
AI & Automation · Jun 03, 2026

Stop Treating AI Like Autocomplete: 5 Game-Changing Lessons from the OpenCode / Crush Revolution

Agentic coding is not about better prompts. The OpenCode-to-Crush lineage of Plan/Build agents, persistent AGENTS.md context, granular permissions, and provider sovereignty changes how developers collaborate with AI.

6 min read