Software development
My expertise in software development centers around creating accessible, robust, and high-performance computational tools. I strongly emphasize open-source projects that promote reproducible science and collaboration with the Prosperity Public License.
Languages#
The pragmatic balance of developer productivity, performance optimization, and team velocity drives my language choices. My primary stack reflects a commitment to efficient scientific development while strategically exploring cutting-edge, high-performance solutions.
Python#
I have primarily used Python since 2013, leveraging its balance of rapid prototyping and high-performance execution. It remains the core language for my scientific computing, offering access to optimized, production-grade libraries like NumPy, SciPy, and PyArrow through highly efficient wrappers. This choice also facilitates the quickest ramp-up for graduate and undergraduate research teams, ensuring high velocity in a collaborative research environment.
High-Performance Languages#
To address the demanding needs of high-performance computing, I have strategically focused on Rust and Mojo. Rust provides the essential memory safety and concurrency required for building robust, reliable backend services and systems tools. More recently, I’ve adopted Mojo, a language I anticipate will grow tremendously in the scientific computing and machine learning spaces. Mojo offers an elegant solution to the “two-language problem” (or three for GPU), allowing me to control performance and optimization within the same language where needed, leading to fewer memory errors and faster student collaboration.
Front-end#
My front-end work primarily utilizes JavaScript and TypeScript to provide necessary user interaction and data visualization. This ensures that the computational tools I develop are accessible and intuitive. I particularly enjoy using libraries like p5.js for creating engaging, interactive visualizations and generative art, which reinforces the importance of clear, user-centric design even within scientific tooling.
Packages#
simlify#
Created an open-source Python framework that simplifies the development and execution of molecular simulations. The software provides a modular architecture for building customizable simulation workflows, enabling researchers to focus on scientific objectives rather than technical implementation.
atomea#
Developed an open-source Python framework that standardizes atomistic simulation workflows through extensible schema definitions. The software leverages Pydantic for robust data validation and Jinja2 for automated input file generation, enabling reproducible computational chemistry and biology research. Features include automated file preparation, flexible data storage (Zarr integration), and standardized output parsing.
raygent#
Parallelize computations and data analysis with directed acyclic graphs powered by Ray
povme#
Led comprehensive modernization of this widely-used protein pocket analysis tool by reimplementing its core framework in modern Python. Enhanced the software’s capabilities through parallel processing optimizations, robust data validation with Pydantic, and improved testing coverage. Initially developed for structure-based drug discovery, POVME enables researchers to analyze binding pocket shapes and volumes from molecular simulations, supporting critical applications in drug design and protein-ligand interactions.
wisp#
Improved the stability and reliability of this established tool for analyzing allosteric pathways in molecular dynamics simulations through comprehensive code modernization. Enhanced the software with automated testing infrastructure, bug fixes, and improved documentation while maintaining its core capability to identify communication pathways between protein regions.
subpex#
Led modernization of this protein sampling tool by rewriting its implementation with modern software engineering practices. The software uses weighted ensemble path sampling to explore protein pocket conformations for ensemble docking, leveraging WESTPA for enhanced sampling. Enhanced with automated testing, continuous integration, and improved documentation while maintaining its core capabilities to generate diverse protein conformational ensembles. The framework supports multiple MD engines (AMBER, NAMD) and progress coordinates for flexibility in sampling strategies.
vaxstats#
Developed an open-source statistical framework for vaccine research in collaboration with the Dr. Reed in the Center for Vaccine Research at the University of Pittsburgh. The software provides specialized tools for analyzing and forecasting vaccine-related data through a modular architecture supporting data preparation, statistical modeling, and scientific visualization.
citator#
Created an open-source reference management plugin for Obsidian that streamlines academic citation workflows. The software enables seamless integration of BibTeX references into note-taking through automated literature note creation, customizable citation templates, and Pandoc-style citation support. Built with TypeScript and maintains high code quality through comprehensive testing and automated documentation generation, making scholarly note-taking more efficient for researchers and academics.
reptar#
Developed an open-source Python framework for computational chemistry and biology that streamlines data management for research projects.
The software enables flexible storage and analysis of large-scale computational results through a unified interface supporting multiple file formats (exdir, zarr, JSON, npz), automated data parsing, and standardized export to common molecular formats (ASE, GAP, PDB, SchNetPack).
Framework emphasizes reproducibility and FAIR data principles through version-controlled data storage and automated documentation.
Note: reptar has been superseeded by atomea.
mbgdml#
Developed an open-source Python framework that enables size-transferable machine learning potentials by combining gradient-domain machine learning with many-body expansions. The software provides tools for training quantum-mechanical force fields, performing molecular dynamics simulations, and analyzing molecular ensembles with high accuracy.
cclib#
Contributed improvements to this foundational Python library for computational chemistry by implementing bug fixes and expanding the test suite. The software serves as a universal parser for quantum chemistry calculations, supporting 15+ major computational packages (including Gaussian, ORCA, Q-Chem) and enabling standardized access to electronic structure data.