Writing

Short technical writeups of concepts and decisions made during the development of my projects.

Designing the Controller/Dstore protocol: what broke first

A check-then-act race in the file index, and why the fix only needed to hold a lock for two lines of code.

Building a typosquat detector: how far can you get with heuristics alone

Levenshtein distance, homograph substitution, and where a scoring system built on regex and thresholds actually falls over.

Five ways to turn a packet capture into training rows

Sliding windows, event-centered windows, and why the labeling strategy mattered more than the model choice.