About

I'm a junior at George Mason University studying Information Technology with a cybersecurity minor, after an A.S. at Northern Virginia Community College. This summer I worked on CBP's Vulnerability Assessment Team through the DHS HS-POWER program, where the recurring question was which findings to fix first.

I'm focused on detection engineering, application security and vulnerability management, and on measuring whether security tooling does what it says. The projects here come out of that: a gate that tests detection rules against recorded attack telemetry, a taint analyzer that reports how it compares with a pattern linter, and an intake service that ranks findings by known exploitation.

I'm studying for the OSCP and the AWS Security Specialty so that the defensive work is informed by how the attacks run.

I'm looking for internships in security engineering, product and application security, detection engineering, vulnerability research, cloud security and offensive security. I'm a U.S. citizen. The quickest way to reach me is email; I'm also on LinkedIn and GitHub.

How I check my work

  1. Run the stock thing first

    Before writing a replacement, run what already exists on recorded data. The stock SigmaHQ setuid rule flagged 0 of the 2 attack events among 36 recorded events. That run is red on purpose: the stock rule missed the attack, which is the finding. run 41838714456 failed 2026-11-04 The latest passing run on main replays the same recording with the replacement rule. run 43100952362 passed 2026-11-11

  2. Test the tests

    Coverage says a line ran, not that a test would notice it breaking. Six deliberate defects survived kevgate's 227 tests until each got a test of its own. run 42960808156 passed 2026-11-11

  3. Compare against the original

    fuzzdiff runs the C parser and the Rust port on the same bytes; five seeded bugs were caught, and a 500,000-input control stayed clean. run 43035685955 passed 2026-11-11

  4. State the limits where the number is

    sinkline's page leads with its score on an independent benchmark, and says next to the number that the fixes were chosen from the earlier failures and that Bandit still leads over all 14 categories. run 43136290658 passed 2026-11-12

Issued by