Jonathan Sumner Evans
Sumner Evans
Software Engineer at The Trade Desk

Portfolio

Note

This page is my extended Curriculum Vitae containing all my professional achievements. For a more concise overview, please view my resume.

Experience

Software Engineer

June 2019 - Present

The Trade Desk

Key Technologies: React JS, C#, SQL

I am a member of the Connected TV engineering team. I am responsible for building features related to Connected TV across the entire stack from the high performance bidding systems to the client UI for advertisers.

Notable projects include:

  • Implementing ingestion of the ifa_type field in OpenRTB requests.
  • Implementing many of the frontend features for Connected TV planning.
  • Implementing backend for recommending strategies for new ad campaigns and forecasting the impact of those strategies.

Adjunct Professor (Advanced Computer Architecture)

January 2021 - May 2021

Colorado School of Mines

I taught CSCI 564 Advanced Computer Architecture in Spring of 2021. Topics that the class covered included: performance analysis, cache, virtual memory, pipelining, branch prediction, out-of-order execution, and multiprocessors.

I based the course off of the curriculum provided by Dr. Bo Wu and adapted it for hybrid COVID learning. The main additions/changes were adding lecture worksheets to improve student engagement in lectures, and reworking the projects starter code to better focus on the core concepts.

Adjunct Professor (Programming Languages)

August 2020 - December 2020

Colorado School of Mines

I taught a section of CSCI 400 Principles of Programming Languages in Fall of 2020. Topics that the class covered include: functional programming concepts, type inference, OCaml, programming language implementation, and formal semantics.

Adjunct Professor (Programming Languages)

January 2019 - May 2019

Colorado School of Mines

I taught a section of CSCI 400 Principles of Programming Languages in Spring of 2019. Topics that the class covered include: programming language concepts, evaluation, and implementation; object-oriented programming; Lambda Calculus; and Racket (a LISP dialect).

Adjunct Professor (Algorithms)

August 2018 - December 2018

Colorado School of Mines

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

Software Engineering Intern

May 2018 - August 2018

Pivotal

I worked on the Infra pod on the Tracker team, the team responsible for developing Pivotal Tracker. I anchored the development of a new system for imaging workstations for consistent workflows on all machines used by the Tracker team. I also participated in a LEAN Product process to determine the needs of the Tracker team.

CS@Mines on Tour Presenter

January 2017 - May 2018

CS@Mines Unplugged

I gave presentations to high school students about the Computer Science Department at Mines. I also led computer science related workshops for middle school students.

Teachers Assistant (Data Structures)

August 2017 - May 2018

Colorado School of Mines

I assisted students during TA office hours and during the in-class lab sessions. I was nominated for the Student Employee of the Year by CPW, the faculty member responsible for the course.

Software Development Intern

June 2017 - August 2017

Kenzan

I contributed to OSS projects including React and Node.js on behalf of Kenzan. I also worked to improve the Kenzan.com website by implementing a CI/CD Jenkins pipeline with a WebPack build.

Software Developer

February 2013 - August 2016

Can/Am Technologies

Key Technologies: C#, ExtJS, SQL

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.

Education

MS Computer Science

August 2018 - May 2019

Colorado School of Mines, 4.0 GPA

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

I served as the Chair of the Mines Association for Computing Machinery (ACM) Student Chapter, the Linux Help Guru of the Linux Users Group, and the Service Chair of the Mines chapter of the Tau Beta Pi Honor Society.

Notable classes I took include...
  • Advanced High Performance Computing
  • Parallel Computing
  • Advanced Computer Architecture
  • Abstract Algebra
  • Theory of Computation
  • Theory of Cryptography

BS Computer Science

August 2016 - May 2018

Colorado School of Mines, 3.9 GPA

I graduated with a degree in Computer Science from Colorado School of Mines. I was awarded the Outstanding Graduating Senior award for Computer Science.

As a student I served one year as the Vice President of the Mines ACM Student Chapter and one and a half years as Secretary of the Mines Linux Users Group (LUG). I made Dean's List every semester of my undergraduate studies.

Notable classes I took include...
  • Operating Systems
  • Algorithms
  • Computer Graphics
  • Computer Simulations
  • Virtual Reality
  • Principles of Programming Languages
  • Artificial Intelligence
  • Software Engineering and Advanced Software Engineering (Field Session)
  • Computer Organization
  • Linear Algebra
  • Data Structures

Mines Transfer Program

August 2012 - May 2016

Red Rocks Community College, 4.0 GPA

Through high school, I took classes at Red Rocks Community College via the transfer program between Colorado School of Mines and Red Rocks. I was a member of the Phi Theta Kappa Honor Society for three years.

I was selected to be published in CLARO an interdisciplinary scholarly journal. I then presented my work at the CLARO academic conference.

Notable classes I took include...
  • Spanish Language I and II
  • Calculus I, II, III, and Differential Equations
  • Chemistry I and II
  • Calculus-Based Physics I and II

Projects

Sublime Music

November 2018 - Present

 GitLab |  Website | GPLv3+

Sublime Music is a native, GTK3 Subsonic, Airsonic, Revel, Gonic, Navidrome, client for the Linux Desktop that is written in Python. Sublime Music allows users to connect to multiple Subsonic API-compliant servers, and browse and play music from those servers.

Other features include being able to play music through Chromecast devices on the same LAN; Offline Mode and the ability to cache songs for offline listening; a DBus MPRIS interface integration for controlling Sublime Music via playerctl, i3status-rust, KDE Connect, and other DBus MPRIS clients; a sophisticated play queue; playlist management; and more.

I began this project after migrating to Airsonic for music hosting because I was dissatisfied with the existing Airsonic clients on Linux.

Sublime Music is developed on GitLab and is available via the AUR, NixOS 20.09 and later, Debian Testing, as a Flatpak, and via PyPi.

Nix Home Manager

April 2021 - Present

 GitHub | MIT | Maintainer

Nix Home Manager is a project that provides a system for declaratively managing a user environment using the functional Nix package manager together with the Nix libraries found in Nixpkgs.

I am a maintainer of the Nix Home Manager project with write access to the repository. I review and merge contributions to the Home Manager project.

Tracktime

June 2018 - Present

 sourcehut | GPLv3+

Tracktime is a filesystem-backed time tracking solution with a command line interface. It uses a sane directory structure to organize CSV files that store time tracking data for each day.

Tracktime allows you to start, stop, resume, and list time entries for a given day. You can also generate reports for a given month in the reStructuredText, PDF, or HTML formats (optionally restricted to a particular customer). Tracktime also allows you to synchronise the time spent on each issue/merge request to GitLab using the GitLab Time Tracking API.

Tracktime is written in Python, and is available via PyPi and on the AUR.

offlinemsmtp

May 2018 - Present

 sourcehut | GPLv3+

Read my blog post announcing offlinemsmtp v0.3.5: Introducing offlinemsmtp.

offlinemsmtp allows you to use the msmtp SMTP email sending program offline. While offline, it enqueues emails to be sent once an internet connection is established. While online, it sends the emails immediately.

offlinemsmtp is written in Python, and is available via PyPi and on the AUR.

Visplay

February 2018 - May 2020

 GitLab | GPLv3+

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 worked on the Python components of the project which consume the configuration files and generate playlists. I also led development of the web configuration frontend.

Currently, I am working in an advisory role as an industry project mentor.

MLocate

February 2019

 Second Place |  GitLab | AGPLv3+

This project won  Second Place at HackCU V.

Read my blog post about this hackathon: 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

November 2018

 First Place |  Demo |  GitLab | AGPLv3+

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

Read my blog post about this hackathon: Facebook Global Hackathon Finals - The Competition.

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.

 CS@Mines Demo at Facebook Global Hackathon Finals

Datanium

October 2018

 Facebook Best Social Good Hack + 1 more |  GitLab | GPLv3

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 2018 hackathon.

Wii-Track

February 2018

 Judges Favorite + 2 more |  GitHub | GPLv3

This project won  Judges Favorite,  Best Use of AWS, and the  Dish Network sponsor challenge at HackCU.

Wii-Track is a distributed inventory tracking system. It utilizes a WiiFit, Rasberry Pi, and Arduino to gather information about packages. All heavy computation is done on AWS Lambda and it uses the DynamoDB NoSQL database as a backend.

I worked on setting up the DynamoDB database and implemented a AWS Lambda function to identify packages by weight.

Wii-Track was a hackathon project by David Florness, Jack Garner, Robby Zampino, and myself. We developed it during a 24 hour period at the HackCU hackathon.

BlockMRS

January 2018

 GitHub | GPLv3

BlockMRS is a privacy concious, decentralized, blockchain-backed, medical record system for the 21st Century. It stores patient records in IPFS using asymmetric encryption giving patients control over their health data.

I led the development of the protocol specification for this decentralized system. I also built the system for storing encrypted medical records in IPFS.

BlockMRS was a hackathon project by David Florness, Jack Rosenthal, Robby Zampino, and myself. We developed it during a 24 hour period at the MinneHack 2018 hackathon.

Virtual Reality Final Project

August 2017 - December 2017

 GitHub | GPLv3

Read our final report on GitHub.

This was the final project from my independent study in Virtual Reality under the supervision of Dr. Paone. Our team consisted of Sam Sartor, Robbie Merillat, and myself.

We created our own library called flight for developing VR applications which implemented a new type of program architecture called Deferred Immediate Mode.

Parqyng

October 2017

 Grand Prize |  Demo |  GitHub | MIT

This project won the  Grand Prize at the 2017 Xilinx PYNQ Hackathon.

Parqyng Lots tracks the number of cars in an arbitrary number of parking lots with an arbitrary number of entrances to create an up-to-date picture of the parking situation.

I built the web frontend which provided a view of the parking lots' status.

Our team consisted of Sam Sartor, Jack Rosenthal, Daichi Jameson, and myself. I worked on the web interface and also helped implement the tracking system using the sensors provided by Xilinx.

 Parqyng: Never Look for a Parking Spot Again

Wireless Debugging

May 2017 - June 2017

 GitHub | Apache 2.0

Wireless Debugging is a mobile SDK and sample web server for streaming mobile app logs to a web UI console. I worked on this project on a team of five CS students during Mines Computer Science Field Session. This project was done under supervision of Google.

We designed and built a mobile API, log parsing library, datastore interface, user management interface, and web app. I was the primary writer of the API Specification for communicating between each component. I also built the log parsing library and the mobile API implementation for iOS. I was involved in the development of the other components as well.

Snowflakes

November 2016

 GitHub | Demo | MIT

An interactive "screensaver" built for the Mines ACM JavaScript Hackathon.

I built Snowflakes with bungle.js, a team consisting of Sam Sartor, Jack Rosenthal, and myself. We used EaselJS to manipulate a fullscreen canvas to render the interactive elements.

Chess++

August 2016

 GitHub | MIT

Chess++ was my final project for CSCI 261 at Colorado School of Mines during the Summer II Semester of 2016.

Chess++ allows two players to play a standard Chess game against one another on the computer.

Quadratic Solver

September 2016

 sourcehut | Demo | MIT

A quadratic equation which shows the steps required to get an answer.

Quadratic Solver uses MathJax to display beautifully formatted solutions to quadratic equations.

Publications

Dreams of Flight

September 2016

Journal |  PDF

I wrote this creative writing piece about Orville and Wilbur Wright and the first flight at Kitty Hawk for my Twentieth Century World History class in Fall 2013. I had written this piece for an assignment called A Picture is Worth a Thousand Words. We were tasked with writing an approximately 1000 word narrative from the perspective of a person in a significant photo from the 20th Century. Later in 2013 I was published in the 2013 edition of CLARO, Red Rock Community College's Interdisciplinary Scholarly Journal. In May 2014, I presented at the CLARO academic conference.

Presentations

GUI Toolkits

November 2020

 GitLab |  PDF

I gave this presentation at the Mines Linux Users Group with Robby Zampino and Dorian Cauwe. We discussed the different types of GUI toolkits available and we presented the pros and cons of three specific GUI toolkits: Flutter, GTK, and Qt.

Open Standards

November 2019

 GitLab |  PDF

I gave this presentation at the Mines Linux Users Group with Robby Zampino. We discussed what standards exist, and why open standards are better than closed ones. We also gave a few examples of different open standards in many different industries.

Makefiles

March 2019

 GitLab |  PDF

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

February 2019

 GitLab |  PDF

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.

PGP

February 2019

 GitLab |  PDF

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

January 2019

 GitLab |  PDF

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

January 2019

 GitLab |  PDF

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

March 2017, October 2018

 GitHub |  PDF

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.

Idris

March, June 2018

 GitHub |  PDF

I first gave this presentation at the Mines Linux Users Group with Sam Sartor. We also gave the presentation for the Wednesday tech talk while interning at Pivotal. In both talks, we covered Idris, dependent types, and using Idris as a proof assistant.

Universal Package Formats

January 2018

 GitHub |  PDF

I gave this presentation at the Mines Linux Users Group with Robby Zampino. We covered the background and history of packages and package formats, and some of the new universal package formats: AppImage, Snaps, and Flatpak.

Filesystems

November 2017

 GitHub |  PDF

I gave this presentation at the Mines Linux Users Group with Sam Sartor. We covered the background and history of filesystems and some current filesystems used in Linux, Windows, and macOS. We also covered some more fringe filesystems like Btrfs and ZFS and network filesystems such as Samba and sshfs as well as virtual filesystems such as /proc.

SSH

February 2017

 GitHub |  PDF

I gave this presentation at the Mines Linux Users Group. I discussed what SSH is and its applications and then demonstrated how to configure it for easier login and management. Then I briefly talked about how to set up SSH on your own server.

JavaScript Crash Course

November 2016

 GitHub |  PDF

I gave this presentation at the Mines Linux Users Group with Sam Sartor. We covered the history of JavaScript, gave an overview of the language constructs, and discussed many of the possible pitfalls along the way. We also talked about the DOM and HTML5 Canvas manipulation.

Dreams of Flight

May 2014

 YouTube Recording |  Slides

I presented my creative writing piece about Orville and Wilbur Wright at the 2014 CLARO academic conference. I had written this piece for an assignment called A Picture is Worth a Thousand Words. We were tasked with writing an approximately 1000 word narrative from the perspective of a person in a significant photo from the 20th Century.

 Sumner Evans Zac Champion