Portfolio

Education

Colorado School of Mines

Colorado School of Mines August 2018 - May 2019 (projected)

M.S. Computer Science

I am working with Dr. Dinesh Mehta on a project to automate group selection for projects in CSCI 406 Algorithms.

I am serving as the Chair of the Mines ACM Student Chapter, the Linux Help Guru of the Linux Users Group, and Service Chair of the Mines chapter of the Tau Beta Pi Honor Society.

  • Advanced High Performance Computing
  • Parallel Computing*
  • Advanced Computer Architecture*
  • Abstract Algebra
  • Theory of Computation
  • Theory of Cryptography*
  • Human-Centered Robotics*
  • Bioinformatics
* Currently enrolled

Skills

Design: Protocol Specification Requirements Gathering Implementation Specification Mockups
Languages: Python C++ JavaScript C# Java LaTeX HTML CSS SQL
Operating Systems: Linux macOS Windows
Tools: Vim Visual Studio Git Sublime Text

Experience

The Trade Desk

Software Engineer Starting June 2019

The Trade Desk

I will be starting full time at The Trade Desk in June of this year as a Software Engineer.

Colorado School of Mines

Instructor (Programming Languages) January 2019 - Present

Colorado School of Mines

Computer Science Education Programming Languages

I am teaching a section of CSCI 400 Principles of Programming Languages this semester. Topics that the class covers include: programming language concepts, evaluation, and implementation; OOP; Lambda Calculus; and Racket (a LISP dialect).

Colorado School of Mines

Instructor (Algorithms) August 2018 - December 2018

Colorado School of Mines

Computer Science Education Algorithms

I taught a section of CSCI 406 Algorithms in Fall of 2018. Topics that the class covers include: analysis of algorithms, evaluation of data structures, sorting algorithms, dynamic programming, graph algorithms, and NP-completeness.

Can/Am Technologies

Software Developer February 2013 - August 2016

Can/Am Technologies, Inc.

JavaScript Ext JS C# Agile

I worked on the Teller Development Team designing and building new features for Teller, an enterprise point-of-sale system geared towards municipal governments.

I primarily worked on the web-based application which uses a technology stack consisting of Ext JS (a JavaScript framework), C#.NET, and Oracle PL/SQL, but I also worked on the native Windows application. Additionally, I designed and built plugins that integrate external systems into Teller. One of the more notable plugins I developed was an integration with Bank of America for electronic deposit of checks.

Projects

Visplay

Visplay February 2018 - Present

Digital Signage Python C++ Distributed Systems

Visplay is a Mines ACM project. It’s goal is to create a digital signage system with a dynamic, hierarchical configuration system which can be used in a wide variety of hardware and infrastructure configurations.

I worked on the initial design of the overall architecture of the project. I have also contributed in a project management role. I have worked on the Python components of the project which consume the configuration files and generate playlists. Currently, I am leading development of the web configuration frontend.

MLocate

MLocate February 2019

Device Tracking RSSI HTML 5 Canvas

This project won Second Place at HackCU V.

MLocate is a comprehensive system for tracking and locating devices within an indoor space just using Wi-Fi ping signals. Using three specially configured Wi-Fi access points, we were able to capture signal strength from every device in the room by MAC address. Then, applying Radio Signal Strength Indication (RSSI) models, we were able to derive distance from signal strength which allowed us to use standard triangulation algorithms for determining the location of all of every device in the room.

I worked on the triangulation logic for pinpointing device locations given distances calculated from signal strength. I also built the web frontend for displaying device locations.

MLocate was a hackathon project by Ben Perkins, Jesus Nuñez, Nick Jarmusz, (all freshmen) and myself. We developed it during a 24 hour period at the HackCU hackathon.

HypAR Map

HypAR Map November 2018

Indoor Navigation Augmented Reality Structure from Motion Android

This project won First Place at the Facebook Global Hackathon Finals at Facebook HQ.

HypAR Map helps users navigate around unfamiliar locations by overlaying a map of the area using augmented reality. The map can come from any photo (for example, a fire escape plan) and is calibrated using an intuitive user interface. HypAR Map then uses simultaneous location and mapping to find and display the location of the user in the map in real-time.

I worked on the image import functionality and worked with all of the members of the team to ensure that everything connected properly.

HypAR Map was a hackathon project by Sam Sartor, Jack Garner, Fisher Darling, and myself. We developed it during a 24 hour period at the Facebook Global Hackathon Finals at Facebook HQ in Menlo Park, CA.

Watch our demo here (our demo starts at ~3:30):

Datanium

Datanium October 2018

Data Transfer Network Twilio GCP Rasberry Pi

This project won Best Use of GCP and the Facebook Best Social Good Hack award at MHacks.

Datanium is a large-scale network of Raspberry Pis which allow for human-powered transfer of data between places with internet access and places which do not. In the Datanium ecosystem, there are two different types of users: consumers and couriers. Consumers request data, and Datanium ensures that couriers move the requested data to the Datanium Node closest to the consuming user. Datanium does this coordination using only SMS.

I worked on the web frontend for requesting and uploading data to the Datanium nodes.

Datanium was a hackathon project by Sam Sartor, Robby Zampino, Fisher Darling, and myself. We developed it during a 36 hour period at the MHacks hackathon.

Publications

Presentations

Makefile logo

Makefiles March 2019

Makefile Build Tool

I gave this presentation at the Mines Linux Users Group. I covered the basics of GNU make as well as how to make a Makefile.

mutt presentation slide

Mutt February 2019

Mutt Email Client GPG/PGP

I gave this presentation at the Mines Linux Users Group. I covered the basics of the Mutt CLI email client. I discussed the basics of using Mutt and some of the most useful configurations including how to configure it to be used with GPG encryption and signatures.

GnuPG logo

PGP February 2019

Cryptography GPG PGP

I gave this presentation at the Mines Cybersecurity Club (OreSec) with David Florness. We discussed the cryptographic theory behind PGP/GPG such as symmetric vs. asymmetric encryption and the PGP protocol. Then we had an interactive time where we showed how to use GPG.

ZSH

ZSH January 2019

zsh Shells

I gave this presentation at the Mines Linux Users Group with Jordan Newport. We covered ZSH, an alternative shell to BASH. We discussed everything from the basics, to some really cool quality-of-life improvements which make using the shell enjoyable.

LaTeX logo

LaTeX January 2019

LaTeX Beamer

I gave this presentation at the Mines Linux Users Group with Joseph McKinsey. We gave an extensive introduction to the LaTeX typesetting language. We covered everything from the very basics of using LaTeX all the way up to advanced LaTeX topics such as using it for presentations!

i3wm icon

i3wm March 2017, October 2018

i3wm Window Managers

I gave this presentation at the Mines Linux Users Group. I discussed the traditional motif for window management and then presented a better alternative: tiling window managers. I presented i3wm, my personal favourite tiling window manager. I talked about the pros of using it as well as how to use it and customize it.