
A page to frame the resume and linkedin. (See here and the bio for the extent of writing directly about me.) In brief: I work towards engineering, documenting, and presenting solutions to problems of computer hardware/software and research/engineering.
See my technical writing, my presentations, my personal repositories and GitHub.

Research
- Sabbatical (2024-)
-
Update to come. - DARPA SIEVE (2022-2024)
- Joined an internal Trail of Bits team at the midpoint of DARPA's Securing Information for Encrypted Verification and Evaluation (SIEVE) program. Executed a proposal for generating zero-knowledge proofs about "real world" program execution at the granularity of machine code.
- Developed proofs (and their caveats) in zero-knowledge for exploits in Linux userspace: libc heap corruption, log4shell under JVM interpreter.
- Developed an entirely combinational model of (a limited subset of) x86-64 machine code, first as delicate work with Verilog then transitioned to compiling from Haskell. Wrote Haskell for circuits modelling linux syscalls and libc memory side-effects.
- Solved problems of esoteric compiler and build system engineering: using Nix to emulate an intricate OpenJDK cross compile, developing an (ill-fated) LLVM backend, used to compile "recursively" dependencies along with their program.
- Developed appropriately sized tasks and onboarded students, fall 2023 and summer 2024.
- Program notices: program announcement, first phase results and second phase announcement, DARPA contract

Engineering
- Hardware & Software
- Embedded systems. wrote software constrained by power, scheduling, interrupt latency, and flash memory wear protection for an embedded sensor (pictured above).
- Computer architecture. need to write more about ASIC designs (pictured further above).
- Open Source
- Supply chain security. worked on the sigstore project at Trail of Bits, learning the idea and implementation in the last few percent of the Python coverage tests, pushing a Rust implementation to parity through the pains of compiling to Rust.
- Build systems. need to write more about uses of Nix.

Education & Pre-Profession
In college I came to electrical engineering courses expecting a very applied math degree, but instead found second-hand programming explanations. My first proper programming course was a use of Racket by the incredible force of Olin Shivers, who perfectly transmitted the kind of computational essence of the lambda calculus. A lot of what I enjoyed and attributed solely to math—reasoning through complex and creative interactions from designing a simple set of rules—was almost the core idea of computation presented to me. I spent most the following summer in a beautiful Victorian Gothic Revival library at Cambridge, finding Shannon, Turing, Church, McCarthy, to the neglect of the Shakespeare assignmets I was there to actually do.
I graduated from Northeastern University with a degree in electrical and computer engineering, in order of my slide in focus. I used my electives to take Ben Lerner's compilers course, microprocessor-based design, hardware & systems security, and theory of computation.