I am a Principal Applied Scientist for AWS in the Automated Reasoning Group. I help programmers write better programs and architects design better systems. I enjoy working at many levels of the system stack, but particularly verification and specification at the hardware/software boundary.
I got my PhD at Imperial College London with Alastair F. Donaldson on scalable verification techniques for data-parallel programs.
FreeRTOS meets separation logic: memory safety, thread safety and functional correctness proofs in VeriFast, CAV'20 Sponsored Event (23 July 2020)
The Semantics of Transactions and Weak Memory in x86, Power, ARM, and C++, PLDI'18 (20 June 2018)
Reasoning about Transactional Memory, Axiomatically, FMATS-5 (21 Sept 2017)
A Verification Methodology for Arm Confidential Compute Architecture, ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications, 2023
Verifying Dynamic Trait Objects in Rust, International Conference on Software Engineering (Software Engineering in Practice), 2022
Formally Verifying the FreeRTOS IPC Mechanism, Embedded World Conference, 2021
Code-Level Model Checking in the Software Development Workflow, International Conference on Software Engineering (Software Engineering in Practice), 2020
The Semantics of Transactions and Weak Memory in x86, Power, ARM, and C++, ACM SIGPLAN Conference on Programming Language Design and Implementation, 2018 (Distinguished Paper Award)
Implementing and Evaluating Candidate-Based Invariant Generation, IEEE Transactions on Software Engineering, 2017
Formal Analysis Techniques for Reliable GPU Programming: Current Solutions and Call to Action, Book chapter in Advances in GPU Research and Practice, pp. 3-21 (Morgan Kaufmann), 2017
The Design and Implementation of a Verification Technique for GPU Kernels, ACM Transactions on Programming Languages and Systems, 2015
Many-Core Compiler Fuzzing, ACM SIGPLAN Conference on Programming Language Design and Implementation, 2015
Scalable Verification Techniques for Data-Parallel Programs, Imperial College London (PhD thesis), 2014
Engineering a Static Verification Tool for GPU Kernels, Computer Aided Verification, 2014
A Sound and Complete Abstraction for Reasoning about Parallel Prefix Sums, ACM SIGPLAN Symposium on Principles of Programming Languages, 2014
Barrier Invariants: a Shared State Abstraction for the Analysis of Data-Dependent GPU Kernels, ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications, 2013
GPUVerify: a Verifier for GPU Kernels, ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications, 2012
IP Modeling and Verification, Book chapter in Processor and System-on-Chip Simulation (Springer), 2010