Resume
Click here to download my resume.
Security
Before compilers, I spent a few years at Veridise doing security work on smart contracts and zero-knowledge circuits.
I performed over 35 manual source code security reviews, turning up dozens of high and critical severity bugs across ecosystems including EVM, Mina, Linea, Monero, and NEAR. The reviews covered a wide range of targets — ERC-4626 vaults, NFT collections, lending protocols, AMMs, orderbooks, zkEVMs, and cryptographic primitives like FROST distributed signing, ECDSA, Keccak, and recursive ZK-verifiers — across frameworks including halo2, gnark, o1js, circom, and arkworks. On the tooling side, I developed detectors for an LLVM-based static analyzer and set up and ran static analyzers and fuzzers for clients.
I also worked on the board/executive team where I worked on company strategy. During that time I hired and managed the auditing team, growing it from one to seven.
Research
Programming Languages
I worked to automate the implementation of certain concurrent programs from a declarative specification with Dr. Işil Dillig, Dr. James Bornholt, and Dr. Kostas Ferles.
Check out the paper here!
High Performance Computing
I worked with Dr. Samuel Williams and Dr. Hans Johansen at Lawrence Berkeley National Labs on the Bricks project, which optimizes high-performance codes by transforming data layouts rather than code.
Check out the paper here.
Scientific Computing
At Baylor, I worked with Dr. Robert Kirby and Dr. Andreas Kloeckner to integrate pytential into the Firedrake finite element framework. This enabled the use of fast multipole methods to approximate far-field boundary conditions — useful for problems like the Helmholtz equation with a Sommerfeld radiation condition.
Check out the paper here.
