Blog Posts and Articles
A collection of posts on various topics including data science, software engineering, cycling, travel, food, and startups.
Ruff vs Traditional Bandit - A Performance Comparison
Ruff is 25x faster than traditional Bandit. Here's what that performance difference means for your workflow and when to choose each tool.
Reviving Graduate School MATLAB with Claude Code
How I used AI coding assistants to transform decade-old MATLAB research code into a modern Rust library with Python bindings. The origin story of ParGA.
Bankroll Management with Keeks: Fixed Fraction
The Fixed Fraction strategy bets a constant percentage of your bankroll on each wager. Learn when this simple approach beats more complex methods.
The Scientific Method as a Decision Framework
Most structured decision frameworks are really just the scientific method adapted to different time scales and contexts.
How I Write Software With AI
My workflow for building data-intensive services has gotten messier and faster. AI tools have made throwaway code cheap, which changes everything.
Bankroll Management with Keeks: OptimalF
Ralph Vince's OptimalF maximizes geometric growth based on your trading history. Learn how it differs from Kelly and how to use it with Keeks.
Integrating Bandit into CI/CD Pipelines
How to add Bandit security scanning to your CI pipeline without breaking every build and making developers hate you forever.
Evergreen Gets Even Evergreener
Continued development of my personal CRM Evergreen and how AI agentic coding with Claude and MCP helps make rapid iteration happen.
Bankroll Management with Keeks: Drawdown-Adjusted Kelly
Drawdown-Adjusted Kelly dynamically reduces bet sizes during losing streaks to protect your bankroll. See how to implement it with Keeks.
Managing Bandit False Positives Without Breaking Security
How to handle false positives in Bandit without accidentally silencing the real vulnerabilities hiding among them. A practical guide.