Resume

Senior Software Engineer

May 2022–Present

Software Engineer

Nov. 2021–Apr. 2022

Lehi, Utah

  • Reduced company-wide production cloud infrastructure costs by 20%
  • Revamped how Neighbor handles payment retries, reducing failed payment attempts by 60%
  • Lead the addition of structured logging and improved error monitoring to Neighbor microservices
  • Improved Neighbor's listing price recommendation algorithm by 11%
  • Built an integration testing framework using Go for our Neighbor's payment service
  • Led critical infrastructure support and systems maintenance for several of Neighbor's core services
Tools used: Go • Python • AWS • Ruby • CI/CD with Github Actions • Kubernetes • Docker • PostgreSQL

Software Development Engineer

Jun. 2020–Oct. 2021

Northern Virginia

  • Built and operated highly available and distributed services with Route 53 Resolver, responsible for the resolution of millions of DNS queries per second across AWS
  • Despite staffing shortages, built out EC2 DNS for a new AWS region without incurring any further time delays
  • Triaged and resolved high severity systems failures across teams and organizations in a 24/7 operationalenvironment
  • Identified and implementation engineering improvements for fleet management of thousands of servers
Tools used: Java • Ruby • DynamoDB • Redis • C • Linux • Git • DNS resolvers (BIND/Dnsmasq/Unbound) • CI/CD

Director of Engineering

Jan. 2018–May 2020

  • Responsible for product technical development, implementation, and maintenance
  • Representing capabilities of cyber-physical vulnerability to potential clients, investors, and stake holders
  • Fostering academic and industrial partnerships among university and private research laboratories
Tools used: Python • JavaScript • PostgreSQL • AngularJS • Docker • Git

Graduate Intern

May 2019–Apr. 2020

Provo, Utah

  • Project lead for technical development and deployment of predictive forecasting prototype for a Fortune 500 client
  • Responsible for 12x run-time performance improvement across nationwide predictions
  • Refactored codebase to be responsive to data source changes and implemented continuous validation process
Tools used: Python • Java • MATLAB • Jupyter Notebooks • Git

Graduate Intern

Jun. 2017–Jun. 2019

  • Selected for the National Security Internship Program in the Computing and Analytics Division of PNNL
  • Researchrd methods of conducting contingency analysis of power and water infrastructure models
  • Developed component models to capture integrated power and water dynamics
  • Future work to include submission of conference paper and implementation of analysis software
  • Poster describing status of project as of Aug. 2017: NSIP Intern Poster Session PNG (421 KB)
Tools used: Python • Java • MATLAB • Jupyter Notebooks • Git

Research Assistant

Sep. 2015–Jun. 2017

  • Lead development of a web application using vulnerability research of cyber-physical systems
  • Developed and presented project architecture to personnel of sponsoring agency, the Dept. of Homeland Security
  • Conducted analysis on financial market and client data to produce predictive models
  • Assisted and collaborated with lab personnel on various other projects within the IDeA Labs
Tools used: Python • JavaScript • PostgreSQL • MATLAB • AngularJS • Docker • Flask • GitLab

Software Engineer in Test Intern

Apr. 2016–Jul. 2016

Salt Lake City, Utah

  • Worked with the Data Analytics team to improve test coverage and deployment efficiency
  • Created a framework used to test production SQL that is used in the Instructure ETL process
  • Began a machine learning project with the aim to identify students that teachers should assist
  • Refactored existing codebase to facilitate project needs, like strict typing within Apache Spark SQL
Tools used: Scala • JavaScript • Apache Spark • Node.js • SQL • Docker • Git • IntelliJ • Jira • SBT

Software Development Engineer Intern

May 2015–Jul. 2015

Redmond, Washington

  • Implemented a feature to mitigate a social engineering attack vector within Microsoft Office
  • Utilized an existing framework to add telemetry tracking of related features to assist business decisions
  • Created a development plan in coordination with the Project Manager based on given specifications
  • Coordinated with other organizations within Microsoft to integrate the project with the existing codebase
  • Authored scenario tests to verify the integrity of the project as development continues
  • A knowledge base article about this feature can be found here:
    Microsoft TechNet: Block VBA macros from running in Word, Excel and PowerPoint files from the Internet in Office 2016
Tools used: C++ • C# • Source Depot • Visual Studio

Web Application Developer

Jan. 2014–Sep. 2014

  • Developed and maintained different applications used by various departments, faculty, and students
  • Updated large existing code bases to improve performance and add features to existing applications
  • Integrated an SQL database to a C# technical support application to monitor computer systems
  • Implemented an Alpaca nutrient calculator for a BYU research project using JavaScript and jQuery
Tools used: C# • ASP.Net • JavaScript • jQuery • HTML/CSS • Team Foundation Server

Technical Support Engineer

Jan. 2013–Dec. 2013

Orem, Utah

  • Diagnosed and resolved problems with databases, web applications, system and network settings, etc.
  • Continually exceeded company goals for client satisfaction while taking over 1500 support calls
Tools used: Linux • Bash • PHP • MySQL • Wordpress • IMAP/POP3/SMTP

Education

Master of Science, Computer Science

August 2020

  • Research interests include control systems, cyber security, data analysis, machine learning, and system modeling
  • Master's thesis: Vulnerability Analysis of Infrastructure Systems
  • Teaching Assistant for CS 611: Advanced Computer Theory
  • Graduate GPA: 3.48/4.00

Bachelor of Science, Computer Science

April 2016

  • Minor in Mathematics
  • Member of the Association for Computing Machinery, BYU Chapter and the BYU Developers Club
  • Teaching Assistant for CS 312: Algorithm Design & Analysis
  • Cumulative GPA: 3.40/4.00
Tools used: C • C++ • C# • Java • JavaScript • MATLAB • Python • Apache Spark • Docker • Git • Linux/Bash

Publications

A graph-theoretic understanding of network-wide implications of local cyber protections for mission assurance

SPIE: Cyber Sensing 2018

April 2018

Modern Department of Defense mission systems are very complex and therefore arduous to defend, especially in the cyber domain. A major cause for this concern arises from the fact that implementation of security protections occur at a local scale, while the important operational security issues stem from a global perspective of the system, e.g., mission assurance. Being able to understand network-wide implications of local cyber protections has the potential to significantly impact the strategies we use to protect modern mission systems. In this work, we present a graph-theoretic perspective on this problem, which is based on a framework for modeling and assessing the integrated cyber-physical dynamics of complex systems. Under the framework, these dynamics (and their relationships) are modeled as a graph and then analyzed using processing techniques from graph theory...

Projects

Aug. 2017, Ongoing

Personal Project

My extended family decided to participate in Secret Santa this year, and I came up with this as a way to compile all of the information, determine the pairings, and then distribute the assignments. I searched the Internet for something that would be relatively simple to use and deploy but nothing seemed to fit, so I decided to patch one together from a few other open source projects. It was done quickly during a few free hours on the weekend, so I wouldn't call it much of a project, but it works well enough.

The project is a couple of NodeJS scripts merged with a few Mustache templates to generate a static website from information contained in a JSON file. Setup consists of configuring the project parameters, editing the information for the participants, running the scripts (which generate the site and then send emails out via an SMTP account), and then copying the static site to a web server.

Tools Used: HTML/CSS • JavaScript • NodeJSMustache

Aug. 2016, Ongoing

Personal Project

On one hand, I'm a bit of a fan of Jekyll, the static website generator that powers this site as well as GitHub Pages. On the other, my wife and I recently had an adorable baby whose pictures need to be appropriately shared with loved ones. I tried a few things, but I wasn't satisfied with either ownership of the images when uploaded, or the process with uploading them to the service. So I combined these two things to (mostly) automate this. I use Syncthing to automatically sync my phone, my default camera, to my computer. With the photos already automatically being uploaded to my computer, I set up a chron job to run a script that uploads images to a folder on a server that hosts the site.

Where this project comes in is in generating the album. The template defines albums as images within specified folders, and then the cron job that uploads the server just needs to build the Jekyll site once the photos are uploaded. All I need to do is take the pictures, and put them in the right folder to be uploaded. The generated album uses lazy loading to help save bandwidth, and is friendly for mobile devices, including a swipe-able light-box for viewing individual images.

Tools Used: HTML/CSS • JavaScript • JekylljQuery • Liquid (Template engine for Jekyll)

Mission Impact Situational Awareness tool

Sep. 2015–Present

This project is federally funded to provide a prototype web application that can evaluate the robustness and security of a cyber-physical system. Aimed towards modeling attacks on critical infrastructure, the application should be able to determine weaknesses within the system, suggest reconfigurations, and assess the impact of a given attack on the system mission. My role with this project has been to help the development of the web application and design the architecture of the system.

Tools Used: AngularJS • PostgreSQL • Python

Apache Spark SQL query testing framework

Apr. 2016–Jul. 2016

Salt Lake City, Utah

Instructure makes use of Apache Spark to transform and send data from the production database into a data warehouse that can be queried by clients for their own purposes. I implemented a Scala framework that provides automated testing to the production SQL queries. This allows for a faster response time from the Data Analytics QA team to test new queries, meaning increased productivity for engineers and greater satisfaction from clients.

Tools Used: Apache Spark • Node.js • Scala

Tracking Illness using Big Data

Jan. 2016–Apr. 2016

Using publicly available data sources we visualized symptoms of diseases as they came up over time within the United States. We conducted a scalable data exploration project with an emphasis on social media data. Using an open source Twitter archive, we attempted to use sentiment analysis and other features, both native and derived, of the available data to discover correlations that can be used to identify and predict outbreaks of illness or other events that could benefit national security.

Related article: Undergrad collaborations prime hiring pipeline

Tools Used: Apache Spark • Python • R

Jan. 2016–Apr. 2016

Python Sensitivity Analysis for Machine Learning models in Apache Spark (PSAML) is a Python package with the capability of performing sensitivity analysis on ML models from PySpark, namely, subclasses of the `pyspark.ml.model` abstract class. The caller needs only to have a DataFrame of sample data and a trained data model to be analyzed. With a few extra Python primitive parameters for things such as analysis sensitivity and which input columns to analyze, analysis is incredibly easy. The DataFrame containing PSAML analysis is both simple to understand and easy to visualize via graphing libraries, requiring only two Python function calls within your Spark live shell or submitted job.

Related article: Undergrad collaborations prime hiring pipeline

Tools Used: Apache Spark • Python

Jan. 2016–Apr. 2016

As part of a group project, I lead our team's effort to create a platform that would host JavaScript games with a focus on mobile support. The idea was to allow for a game to be started at a social gathering within 30 seconds, using mobile devices as interfaces with the game. The minimum viable product was successfully completed, and further development is a possibility. I served in the role of Project Manager for this group project. While I was not able to contribute much in the way of lines of code, I spent most of my time coordinating with the other team members or producing course documents and other documentation.

Tools Used: PostgreSQL • React • Scala

Jul. 2015

Personal Project

I had been using a popular app for Android, SMS Backup & Restore, and I wanted to be able to view the exported files within a browser on my desktop. I made this over the course of a few hours one weekend, and it served my purposes. There are some other things I would like to do with it, but haven't had the time.

Tools Used: HTML/CSS • JavaScript • jQuery

Block VBA macros in untrusted files

May. 2015–Jul. 2015

Redmond, Washington

My internship project was to create an enterprise feature to mitigate an existing social engineering attack vector. Users of Microsoft Office were being tricked into running malicious code in the form of VBA macros hidden inside files that were sent from the Internet. This project allows enterprise administrators to disallow the running of VBA macros in files that were deemed untrusted. A knowledge base article about the feature can be read here:

Block VBA macros from running in Word, Excel and PowerPoint files from the Internet in Office 2016

Tools Used: C++ • C#


Technologies

Languages

C
C++
C# / ASP.Net
Golang
HTML / CSS
Java
JavaScript
Python
Scala
SQL

Tools & Miscellaneous

AngularJS
Apache Spark
AWS
Git / GitHub
Hadoop
Jupyter Notebooks
Matplotlib
Pandas
React