Building in Public vs Building in Private
Two serious projects sitting in private repos while my GitHub looks empty. Why that needs to change and what I am doing about it.
Building in Public vs Building in Private
Two serious projects sitting in private repos while my GitHub looks empty. Why that needs to change and what I am doing about it.
Stealth File Integrity Monitoring with SSM and Lambda
Designing an invisible intrusion detection system for an EC2 instance — no scripts on disk, no cron jobs, cryptographically random scheduling, and tamper-proof audit trails.
Profiling PHP with Xdebug & Cachegrind
How to find and eliminate the actual bottlenecks in a legacy PHP application using profiling tools — rather than guessing.
Copy as cURL: The Browser's Secret Weapon
How to replay any browser request exactly — with all headers, cookies, and auth — using one menu item in DevTools.
On Using Claude and Not Losing the Plot
AI tools are making prototyping and iteration dramatically faster. But speed without understanding is a trap, and knowing where the line is matters.
Privacy-Respecting Analytics for $5/month
Building a page view counter that stores no cookies, no IPs, and no PII — a Rust binary with in-process rate limiting and a DynamoDB backend.
Oxiflight: Rewriting Betaflight in Rust for STM32
An embedded Rust rewrite of Betaflight flight controller firmware — started from a blackbox logging problem, turned into a ground-up firmware project on real hardware.
BEAT Consensus: Async BFT Across the Network Stack
A practical implementation of the BEAT asynchronous BFT protocols (Duan et al.) with censorship-resistant multi-transport networking — clearnet, Tor, and I2P simultaneously.
Maximising Performance Through Cache Hierarchy
My dissertation research into matrix multiplication performance — exploring how L1, L2, L3 caches and TLB behaviour determine whether your code runs fast or crawls.