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.