Projects

Open Source

Knowledge Canvas

Knowledge Canvas is a meta-productivity tool meant to make learning and research easier and more organized (screenshots). With Knowledge Canvas, you can import almost any digital resource and treat it as a knowledge-producing entity.

Apache Tika is used to extract text from Knowledge Sources. Once text is extracted, users can feed it into their own Machine Learning pipeline for training and inference.

Users can track their learning and research activity with event-driven logging.

AI/ML/DS

Machine Learning with TensorFlow: 2nd Edition

Primary contributor on the TFv2 branch for Machine Learning with TensorFlow: 2nd Edition, published by Manning and written by my mentor and Chief Technology and Innovation Officer (CTIO) at JPL, Chris Mattmann. [The first time my name appeared in a published book!]

Accelerated Gibbs Sampling

Custom CUDA implementations for GPU-accelerated Gibbs sampling. Used in GMM, LDA, NLP, topic modeling, and more. [In collaboration with Tyler Hackett @ UCLA, and Matin Ghavamizadeh @ MIT]

CUDA Kernels for Convolutional Neural Networks

Custom CUDA kernels for running convolutional neural network operations — i.e. convolution and general matrix multiply.

cuDNN Performance Model

A model for predicting inference time given a set of convolution or general matrix multiply configurations and GPU architecture.

FPGA

FPGA USB Controller

USB-to-PS2 mouse controller for FPGAs written in Verilog. Performs clock division, signal sampling, processing, error checking, and validation. Includes Xilinx Basys 3 target configuration.

Neural Network for the MNIST Data Set

A custom built, half-precision FPGA neural network trained to recognize the MNIST data set. Displays the MNIST hand-written digits through a custom VGA controller and shows the predicted number on an onboard 7-segment display.

Operating Systems

EXT2 Filesystem Image Validator

Ingest and validate EXT2 filesystem images. Performs consistency checks on binary data structures with various levels of indirection.

EXT2 Filesystem Consistency Analysis

EXT2 Filesystem Audits — Performs block consistency, i-node allocation consistency, and directory consistency audits on a given EXT2 filesystem summary.