blog
- Archive Discipline for the Floppy Era
- Assumption-Led Security Reviews
- Benchmarking with a Stopwatch
- Building Repeatable Triage Kits
- C:\ After Midnight: A DOS Chronicle
- Clarity Is an Operational Advantage
- CONFIG.SYS as Architecture
- Debouncing with Time and State, Not Hope
- Debugging Noisy Power Rails
- Exploit Reliability over Cleverness
- Fuzzing to Exploitability with Discipline
- Giant Log Lenses: Testing Wide Content
- Ground Is a Design Interface
- Incident Response with a Notebook
- Interrupts as User Interface
- IRQ Maps and the Politics of Slots
- Latency Budgeting on Old Machines
- Maintenance Is a Creative Act
- Mode 13h in Turbo Pascal: Graphics Programming Without Illusions
- Mode X in Turbo Pascal, Part 1: Planar Memory and Pages
- Mode X in Turbo Pascal, Part 2: Primitives and Clipping
- Mode X in Turbo Pascal, Part 3: Sprites and Palette Cycling
- Mode X in Turbo Pascal, Part 4: Tilemaps and Streaming
- Prototyping with Failure Budgets
- Recapping a Vintage Mainboard
- Recon Pipeline with Unix Tools
- ROP Under Pressure
- Security Findings as Design Feedback
- SPI Signals That Lie
- State Machines That Survive Noise
- Terminal Kits for Incident Triage
- The Cost of Unclear Interfaces
- Threat Modeling in the Small
- Timer Capture Without an RTOS
- Trace-First Debugging with Terminal Notes
- Turbo Pascal Before the Web: The IDE That Trained a Generation
- Turbo Pascal History Through Tooling Decisions
- Turbo Pascal Units as Architecture, Not Just Reuse
- When Crystals Drift: Timing Faults in Old Machines
- Why Old Machines Teach Systems Thinking
- Why Constraints Matter
- Restoring an AT 286
- RISC-V on a 10-Cent Chip
- Nmap Beyond the Basics
- Format String Attacks Demystified
- Writing Turbo Pascal in 2025