2022-present
Key Technologies:
In my current position, I serve as the lead scientist on multiple RF-focused projects. I am both an individual contributor as well as the project manager, providing direction and tasking to contractors and interns supporting the projects. Most of my team's internal and customer facing delivarbles are developed in C++14 to support high our high-performance data analysis requirements. However, we do also make use of MATLAB for prototyping, and one of our flagship products is an instrument-control interface developed in Java. This role involves a mix of both maintaining legacy code and green-field development.
See CV for additional information
Indiana University
Project: Neutrino Detector Simulation
2020-2022
Key Technologies:
In this position, I worked on the development of my research group’s simulation software. Our detectors measured the elastic neutrino-argon scattering cross section as part of the COHERENT collaboration. The simulation software I worked on is written in C++ and makes use of Geant4, a semi-modern C++ library commonly used for particle physics simulations. We also made use of the C++ library ROOT for data serialization and analysis. This program is used by several researchers in the collaboration, and Git is used for version control. Simulation runs are primarily performed on computing clusters to take advantage of parallel execution.
I was primarily responsible for maintaining, modernizing, and adding new features to our simulation program. One of the large projects I worked on was to modernize how the detector geometry is specified. I added support for GDML geometry specification, where an XML-like file containing the detector geometry is loaded at run-time. Previously, this information was hard-coded into the simulation executable and any changes to the detector required recompilation. I also worked on updating the scintillation physics engine to support xenon doped liquid argon. Additionally, I worked towards implementing a regression testing system so that refactoring and modernization projects could be undertaken with greater confidence. This project gave me great experience working on a moderate size code-base that was written by someone other than myself.
Cornell University
Project: Positron Converter Simulation and Modeling
2019-2021
Key Technologies:
This project focused on developing simulation and modeling software for positron converters. These particle accelerator components are used to produce positrons for use in electron- positron colliders. I wrote this software from scratch using C++17. The simulation component made heavy use of Geant4, and the modeling component used the GNU Scientific Library for data analysis and fitting. I also wrote the user manual for this software, as well as a paper to be published in a peer reviewed journal. This software is packaged as part of the Bmad library of accelerator simulation software, which uses a CMake-based build system and Subversion for version control.
Cornell University
Project: Tao GUI Development
2019-2020
Key Technologies:
Tao is Cornell's Tool for Accelerator Optics, a program used around the world for modeling particle accelerators written in Fortran 95. I worked on developing a GUI for Tao using python. We also developed a general purpose scripting interface for the program.
Cornell University
Project: Conservative Machine Learning
2019-2020
Key Technologies:
My advisor and I explored an alternative machine learning algorithm referred to as conservative learning. Unlike stochastic gradient descent, which is almost universally employed in today's machine learning algorithms, conservative learning aims to take the smallest step size possible when updating the weights of the neural network.
Coastal Carolina University
Project: Potentially Hazardous Asteroid Interception
2017
Key Technologies:
During the summer of 2017, I worked at Coastal Carolina University on this personal project. We analyzed interception techniques that could be employed to reach and deflect potentially hazardous asteroids. Most of this work was done using MATLAB to model orbits and compute interception trajectories.