I spend a lot of time developing software. My programming interests range from genetic programming to lock-free data structures, and I work in a variety of languages including C++, python, and elisp. When I'm not writing code I'm usually playing the piano or reading.
You can reach me at [email protected]
Batchelor's degree in Software Engineering • May 2015
My studies in software engineering ranged from high-performance computing to database design. My undergraduate work focused on the design of a lock-free memory allocator in C++.
Software Engineer • Dec 2017 - Present
Currently I am working at Star Lab as a software engineer writing Rust and working with the Xen hypervisor, as well as doing some Linux kernel development.
Reverse Engineer/Developer • May 2015 - Dec 2017
I worked as a security researcher for Dynetics. In that capacity, I performed a variety of tasks including reverse engineering (typically on real-time, embedded systems) and tool development.
Software Developer/Intern • May 2014 - March 2015
While at ViaSat, I designed and implimented high performance QNX applications. I also participated in the specification of programming API to interact with these applications, and later worked with a team to construct an HTML5 web front-end using this API.
ReCon Montreal 2017 • Available Here
When reverse engineering embedded platforms, it is often difficult or impossible to connect the IDA Pro debugger to a target application. Manually importing debug info is possible but tedious. This talk describes a new plugin to export debug information from IDA that can then be imported in to software debuggers allowing the user to step through decompiled code, read local variable values, etc directly on the device
Derbycon 2015 • Available Here
I developed a tool that predicts the output of the random number generators used in many languages. This talk was a description of attacks on various projects that could be launched by predicting these outputs.
I try to maintain a diverse skillset including but not limited to the areas below:
Foresight is a python library for predicting the output of random number generators across a variety of platforms and languages including glibc, MSVC, PHP, and Java.Security, Python
A WebGL based puzzle game written using phaser.Web Development, Game
PuppyJusticeAutomated is a tool that programmatically generates videos from US Supreme Court transcripts, making listening to the audio from court cases more entertaining. Generated videos are available here.Entertainment
devolve is a genetic programming library written in the D programming language. The core goal of the project is to create a flexible, easy-to-use interface while still maintaining performanceD, Genetic Programming