Professional
-
Hard Disk Failure Predictor
-
Test Bed as a Service (TBaaS)
-
Firefly node-admin
-
Firefly Gradle Build Plugin
Role(s): Intern, Lead developer
Skills: Machine learning, scikit-learn, fast.ai, technical writing
Description: I leveraged machine learning to create a classifier that inputs raw S.M.A.R.T. attributes and predicts if the disk is likely to soon fail. Using a real-world dataset from Backblaze, we achieved a precision score of 0.97 when trained over 120,000 disks of numerous models and manufacturers.
Role(s): Intern, developer
Skills: Docker, Python, Celery, cloud computing
Description: For more consistent, reproduceable testing, ADTRAN uses an internal IaaS system that allows for the dynamic creation, utilization, and deletion of testbeds that often involve clusters of virtual machines. Test Bed as a Service (TBaaS) is that system, working as a cloud service running on top of Docker. My involvement included daily maintence of the system, intefacing with internal customers, and developing new features like test bed expiration.
Role(s): Intern, developer
Skills: Python, cloud computing
Description: ADTRAN's Firefly product is designed from the ground up to be a distributed, cloud-based networking management app. As such, it needs substantial tooling to create and manage the clusters it runs on. The node-admin tool allows for the provisioning and configuration of individual pieces of a Firefly cluster. My involvement included a substantial refactoring of the tool making it much easier to understand and extend the tool's codebase.
Skills: Gradle, Groovy
Description: The Firefly product follows a microservice architecture, and individual installs vary vary tremendously. As such, a special Gradle build plugin was developed to facilitate the processes. My involvement included improving the plugin such that the final binaries utilized 50% less disk space than before.
Research
-
VectorDefense: Vectorization as a Defense to Adversarial Examples
-
Survey on the Robustness of Neural Networks to Adversarial Examples
-
MPIgnite: An MPI-like Language and Protytpe for Apache Spark
-
MCGPU: Monte Carlo GPU Chemistry Simulator
Role(s): Intern, core developer
Role(s): Co-author
Skills: TensorFlow, deep learning
Description: Deep neural networks are highly susceptible to being fooled by small perturbations in their input, known as adversarial examples. We propose a new defense to adversarial attacks that involves converting the bitmap imapge into a vector graphic using the popular Potrace algorithm before converting back and classifying. This simple preprocessing step has a substantial benefit to preventing the effectiveness of adversaries, as we demonstrate compared to numerous attacks and defenses on the MNIST dataset.
Role(s): Lead author
Skills: Technical writing
Description: Deep neural networks are extremely performant on a wide range of machine learning tasks, but can be easily fooled by small changes to the input. These "adversarial examples" pose a serious threat to deep learning's ability to be fully leveraged in real-world environments. We take a comprehensive look at the state of research into adversarial examples in deep learning, looking at the different attacks, defenses, and theoritical hypotheses.
Role(s): Lead author
Skills: Apache Spark, MPI, HPC, cloud computing
Description: Task-parallel code common on modern supercomputers relies heavily on the Message Passing Interface, or MPI. However, MPI is very low level, requires intimate domain knowledge, and is difficult to refactor. We take the spirit of MPI and implement a similar API into the Apache Spark data processing engine. Without compromising Spark's strength of data-parallel capabilities, we introduce a flexible system that also allows for MPI-like programming in a popular cloud platform.
Skills: C++, OpenACC
Description: MCGPU leverages GPU programming to accelerate chemistry simulations. In the Monte Carlo simulation, the energies between and within molecules needs to be repeatedly calculated as the dynamics of the system shift. These operations are highly parallelizable, and thus well-suited for the GPU. My contributions to the project involved substantially refactoring the system, making it easier to understand and expand, as well as introducing new intra-molecular energy calculations to the system.
Personal
-
AUACM.com
Role(s): Project lead & core contributor
-
auacm-cli
Description: Command-line interface to the REST API of the auacm.com for competitive
programming practice.
-
ICPC Competitive Programming
Skills: Java, Python, C++, team collaboration
Skills: Full-stack development, AngularJS, Flask, MySQL, GitHub
Description: Full stack website for the Auburn University ACM student chapter. Also served as a platform for ICPC competitive programming practice.
Description: Algorithmic challenges to be completed in a timed, team-based environment. Repository of solutions to problems from various sources (HackerRank, Kattis, etc.)
School
-
Senior Design: Auburn Facilities Management Web App
Role(s): Backend lead, frontend contributor
Skills: Full-stack development, jQuery, Flask, REST API, GitHub, technical communication
Description: For our senior design project, we were tasked with meeting with a professor from Building Science to design a technical solution for his research project. Building designers utilize Navisworks 3D design software, and builders and maintainers document parts and specifications elsewhere. We sought to integrate the underutilized digital design documents with the day-to-day information necessary to keep university buildings running. We designed and implemented a client-server application with a web app for easy modification of information that leveraged a REST API that could easily be consumed by the Navisworks applicaton.