Tim Yates

Open-Source Projects

Tartan OS

Tartan OS screenshot

An operating system bootloader and kernel for Intel and Arm architectures, written in Rust.

Topics: Rust, Systems programming

Malaria cell classification

Malaria cell classification screenshot

Experimenting with machine learning models to classify pre-segmented red blood cell images as uninfected or infected with P. falciparum. Demonstrates both convolutional neural network and random forest approaches.

Topics: Machine learning, Python, Keras, Scikit-Learn

Hasklog

Hasklog screenshot

A toy Prolog interpreter/compiler written in Haskell. Interprets a subset of Prolog and compiles to Warren Abstract Machine code.

Topics: Language design, Haskell, Prolog

2D Wave Equation

2D Wave Equation screenshot

An interactive animation integrating the 2D wave equation, with calculations and drawing done in WebGL.

Topics: Physics, Visualizations, WebGL, GPGPU

Color spaces

Color spaces screenshot

An exploration of the CIE XYZ, Lab, and Luv color spaces with WebGL. Also illustrates the math to convert between these spaces and sRGB.

Topics: Color theory, Visualizations, WebGL

Minkowski diagram

Minkowski diagram screenshot

Interactive diagram of the relationship between the spacetime coordinates of two observers moving at different velocities, illustrating the effects of special relativity.

Topics: Physics, Visualizations, D3

WebMapReduce (unmaintained)

WebMapReduce (unmaintained) screenshot

A web-based teaching interface for Hadoop with extensive documentation and easy AWS setup. Interfaces for Python, Java, C++, Scheme, and more. Developed for the CS in Parallel project.

Topics: Hadoop, Education, Amazon EC2, Django, Java

Work Experience

Pie Insurance

Denver, CO (remote)
Senior Software Engineer Dec. 2020 – current
  • Designed significant aspects of next-generation policy management system, adaptable to numerous jurisdictions and insurance offerings
  • Created scalable, cloud-native billing system with robust testing infrastructure
  • Assisted several teams with configuring and troubleshooting serverless architecture
Technologies: .NET, TypeScript, Go, React, Docker, Stripe, AWS

NextEra Analytics

St. Paul, MN
Software Engineering Contractor Aug. 2018 – Jun. 2020
  • Added substantial features to web-based work order scheduling system used across wind fleet
  • Worked with data scientists and stakeholders to optimize work assignments and crew sizes
  • Maintained AWS-based JVM microservices and Angular/Vue web UIs for desktop & mobile
  • Developed efficient storage & querying system for lightning strikes across U.S. & Canada
Technologies: Kotlin, Spring, TypeScript, Python, Pandas, Docker, Terraform, AWS

Garmin

Chanhassen, MN
Software Engineering Team Lead 2015 – 2018
Software Engineer 2012 – 2015
  • Redesigned and expanded web portal for Garmin’s aviation customers
  • Championed usability-focused enhancements to subscription and data management products
  • Architected and guided development of flexible services used by web, desktop, mobile, and embedded clients
  • Wrote cross-platform C++ libraries and managed development of companion desktop applications
  • Coordinated with internal and external teams to meet needs for diverse projects
  • Introduced Scrum and drove adoption of Scala, TypeScript, Electron, and other tools to enhance productivity and improve code quality
Technologies: Scala, Spring, Angular, TypeScript, C++, Objective-C, Oracle DB

CS in Parallel

Northfield, MN
Researcher 2009 – 2012
  • Designed tools, examples, and documentation for hands-on introductions to parallelism
  • Developed WebMapReduce, a teaching interface for Hadoop
  • Created example simulations to illustrate design patterns for concurrent programming
Technologies: Hadoop, Python, Django, Java, OpenCL, OpenMP, MPI, Amazon EC2

R&D Systems, Inc.

Minneapolis, MN
Bioinformatics Programmer May 2012 – Sep. 2012
Bioinformatics Intern Jun. 2011 – Aug. 2011
  • Applied a naïve Bayes classifier to double F1 score in an experimental data mining application for scientific abstracts
  • Presented methods & results to non-engineer audience at company-wide symposium
  • Modernized parts of an experiment & asset management application and ported to Ruby on Rails
  • Adapted interface for web environment, meeting with end-users to clarify requirements and gather feedback on usability
Technologies: Ruby on Rails, MySQL, Gene Ontology, NCBI Taxonomy

St. Olaf Beowulf Project

Northfield, MN
Cluster Administrator 2008 – 2012
  • Maintained & improved 3 clusters used regularly in classroom & interdisciplinary research
  • Worked on team to manage day-to-day operations and implement long-term changes in program
  • Expanded documentation for users and future administrators
Technologies: Ubuntu Server, Fedora, KVM, Hadoop, Sun Grid Engine, MediaWiki

Education

St. Olaf College

Northfield, MN
B.A., Computer Science 2008 – 2012
  • Studied computer science along with a strong emphasis on biology and other natural sciences
  • Taught class sessions on parallel algorithms analysis, POSIX threading, and networking
Honors: Magna cum laude, Great Conversation program, National Merit Scholar

Publications

WebMapReduce: an accessible and adaptable tool for teaching map-reduce computing

P. Garrity, T. Yates, R. Brown, and E. Shoop

WebMapReduce (WMR) is a strategically simplified user interface for the Hadoop implementation of the map-reduce model for distributed computing on clusters, designed so that novice programmers in an introductory CS courses can perform authentic data-intensive scalable computations using the programming language they are learning in their course. The open-source WMR software currently supports Java, C++, Python, and Scheme computations, and can readily be extended to support additional programming languages, and configured to adapt to the practices at a particular institution for teaching introductory programming. Potential applications in courses at all undergraduate levels are indicated, and implementation of the WMR software is described.

Proceedings of the 42nd ACM technical symposium on Computer science education, New York, NY, USA, 2011, pp. 183–188. http://doi.org/10.1145/1953163.1953221.