Blog

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

Trading · Jun 14, 2026

The Batch Backtest Workflow: From 500 Strategies to a Go/No-Go Decision

Running individual backtests one at a time does not scale. Here is the workflow I built to run 500+ strategy/symbol combinations in parallel, filter for quality, and produce a ranked decision list — all from a single shell command.

4 min read
Software Architecture · Jun 14, 2026

What 40 Automated Drafts Taught Me About Building a Cron-Powered Technical Blog

Three runs per day, every day: an AI agent drafts technical blog posts from git history, project context, and recent working sessions. After 40+ automated drafts, here is what the architecture looks like and where it breaks.

6 min read
Software Architecture · Jun 14, 2026

Semiotics of a Desktop Trading App: Why I Hand-Picked Every Icon in Trading Bridge

26 Lucide icons, 7 navigation items, and a dark theme built on amber. How icon choice shapes the feel of a desktop trading application.

6 min read
Software Architecture · Jun 13, 2026

Self-Hosted Server Analytics with GoAccess and Laravel: No JavaScript, No SaaS

How to pipe nginx access logs through GoAccess on Fly.io, embed the HTML report inside a Filament admin panel, and keep your visitor data off third-party servers.

5 min read
General · Jun 13, 2026

The Testing Pyramid That Actually Works for Trading Software

Unit tests catch bugs. Integration tests catch regressions. Golden backtest baselines catch the silent failures that make you lose money at 3 AM.

6 min read
Software Architecture · Jun 13, 2026

Parsing StrategyQuant XML to Java: What 40+ Strategy Conversions Taught Us About Code Generation

Building a parser to convert StrategyQuant XML strategies into pure Java revealed hard truths about automated code generation for trading systems.

7 min read
Trading · Jun 13, 2026

Position Sizing Is the Only Free Lunch: ATR, Risk Units, and Sensitivity Heatmaps in Java

5 min read
Software Architecture · Jun 13, 2026

The Dukascopy Downloader Rewrite: Extracting Node.js from a Java Trading Monorepo

Why I replaced a Python/Node hybrid data pipeline with 166 lines of pure Java 21, removing shell dependencies, fixing cross-platform crashes, and cutting build complexity in a Maven monorepo.

7 min read
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