Writing
Blog
Thoughts on software architecture, AI, algorithmic trading, investing, and building for the long term.
GoAccess in Filament: A Zero-Dependency, Privacy-First Analytics Pipeline for Laravel
A deep dive into building a self-hosted web analytics dashboard inside Filament using GoAccess, Nginx log parsing, and secure local file serving without tracking cookies or GDPR banners.
Automated Blog Hero Images: Gemini Generation, GD Thumbnails, and Eloquent Observer Wiring
How a Gemini API call, a PHP GD thumbnailer, and a single Eloquent observer turned blog hero images into a zero-touch pipeline. No admin panel interaction required.
AppImage CI for PyQt6 Desktop Apps: From uv sync to a Distributable Artifact
Packaging a Python desktop app as an AppImage means bundling Tesseract OCR, a GGUF ML model, Qt platform libs, and a PyInstaller-built binary into a single distributable file. Here is the exact workflow.
Operations Manifest for a Trading System: What 900 Lines of Runbook Taught About Running Code That Handles Money
After 14 weeks of paper trading, the engineering team realized the code wasn't the problem -- the operational layer was missing. Enter a 900-line operations manifest and an 800-line reliability engineering guide.
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.
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.
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.
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.
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.
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.
Position Sizing Is the Only Free Lunch: ATR, Risk Units, and Sensitivity Heatmaps in Java
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.