Experience
Work Experience
Lawrence Berkeley National Lab
At LBNL, I created a processing pipeline for running MODTRAN in parallel on NERSC's Cori supercomputer. Using OpenMPI, I significantly reduced the iteration time for running MODTRAN on a full suite of test cases. I also created several utilities for managing, visualizing, and analyzing the input / output of this pipeline.
Nelumbo
At Nelumbo Inc., I created systems for quantifying the propagation of frost and condensation of droplets on custom hydrophobic surfaces. For measuring frost propagation, I developed a configurable pipeline for analyzing multiple time series of images from frost & defrost cycles. For measuring droplet condensation, I tracked both droplet positions and radii within images individually and the behavior of droplets entering and leaving the surface.
Lamont-Doherty Earth Observatory
While working with the Lamont-Doherty Earth Observatory at Columbia University, I created and proved the viability of a novel method of data augmentation. This method was applied on a U-Net segmenting high-resolution satellite images of Antarctic fractures given only low-resolution images and labels for training.
Invenio Imaging
At Invenio Imaging, I created a Python framework for conducting validation tests on Invenio proprietary software and hardware and created tests covering a large portion of the software design spec.
Personal Projects
vtrace
Vtrace is a simple voxel path tracer. A branchless DDA algorithm is used to accelerate traversing rays. It's written in C, and uses the OpenGL API. Vtrace uses a GLSL compute shader to perform the path tracing.
emu
Emu is a simple and low-level programming language. Its compiler is written in Haskell and C++, and uses LLVM for code generation. Emu supports pure function semantic analysis and compile time evaluation.
Hummingbird
Hummingbird is a simple rigid body physics engine. Hummingbird is written in C++, and uses OpenGL for rendering.
rml
rml is a minimal machine learning library. rml is written in C and facilitates the training of arbitrary machine learning models. Currently, rml implements abstractions for basic tensor operations, tensor data types, dynamic computational graph generation, OpenCL support, jacobian calculations for individual operations, backpropagation, and stochastic gradient descent. A full TODO list can be seen on rml's GitHub page.
mnist-from-scratch
mnist-from-scratch is a from-scratch approach to training a deep learning model to identify numbers in images of handwritten digits. mnist-from-scratch uses only CUDA (C w/ the NVCC compiler) - no PyTorch, no Tensorflow, no Caffe! mnist-from-scratch is not meant to be extensible to other deep learning problems - it is simply a <500 line example of training a neural network from scratch.
- https://www.github.com/RArbore/mnist-from-scratch
- Note, if you want to try running this yourself, you will need .csv versions of the MNIST dataset. I couldn't upload my versions of these files to GitHub due to file size limits, so you can find them here:
glfw-voxel
glfw-voxel is a simple voxel-based rendering engine focused on speed. glfw-voxel is written in C, and uses OpenGL/GLFW for rendering. glfw-voxel optimizes chunk meshing to minimize faces that need to be rendered; it also uses frustrum culling. glfw-voxel uses the cglm linear algebra library.