Introduction

Hey, I'm Garrett.

Broadly speaking, I am interested in software, hardware, math, and art. I enjoy extending the capabilities of open-source projects, developing algorithms to obtain a certain goal, and scripting repetitious tasks in an attempt to reduce wasted time. I am interested in a wide range of different areas such as automobile safety systems, sound design and software synthesizers, acoustics and fluids, embedded systems, image processing, computer vision, artificial intelligence, robotics, and computer graphics.

Right now I'm working on a PhD in Computer Science, so I have been primarily focused on artificial intelligence and robotics.


Education

Washington State University

Expected: May 2021
GPA: 4.0

PhD in Computer Science
Focus in Artificial Intelligence

Walla Walla University

June 2016
GPA: 3.99

B.S. in Engineering: Concentration in Computer Engineering
Minor in Mathematics


Skills

  • Languages - Python, C++, C, Bash, JavaScript, SQL, PHP, HTML, CSS, Matlab
  • Tools - ROS, Jupyter, Numpy, Yocto, GStreamer, Scikit-learn, PyMC, Boost, OpenCL, OpenCV, CppCMS, Eigen, Qt, PoDoFo, git
  • Embedded systems - NVidia Jetson, Raspberry Pi, Arduino, Wandboard, Mbed, Gumstix

Experience

Research Assistant

August 2017 - Present
Washington State University
  • Robotic Activity Support (RAS) project to help older adults retain functional independence longer
  • Created object detection datasets for use with YOLO and Tensorflow (TF)
  • Trained CNNs on a high performance computing cluster with Slurm
  • By writing Python ROS nodes, integrated object detection, finding 3D coordinates of objects from bounding boxes and point clouds, saving/querying locations to/from database, and controlling the Turtlebot 2 and 3
  • Set up and included the Arduino camera pan-tilt in the robot model

Intern

Summers of 2013, 2014, 2015
Solution Engineering, Inc.
  • Developed and tested a UAV vision landing system prototype with Piccolo and Pixhawk autopilots
  • Accelerate algorithms with Arm Neon and OpenCL allowing a PID controller to run in real when
  • Corrected Raspberry Pi camera driver stride length calculation and Qt Gstreamer YUV to RGB color conversion
  • Developed Gstreamer workaround for unreleased buffers in camera driver and integrated Qt GStreamer into a Qt QML app
  • Created Yocto Project layer for embedded Linux setup with Gumstix camera
  • Developed in-house Windows Phone app for balancing UAV motors
  • Rewrote Matlab code for Kalman filter in C++ with unit tests

STEM Instructor

Summers of 2016, 2017
Sunset Lake Camp
  • Taught game programming with Unity, Boolean and fuzzy logic with Lego Mindstorms, and RF propagation with a "fox" hunt
  • Led students building a hydraulic claw, surface-mount Softrock SDR kit, and through-hole soldering a Velleman Microbug kit
  • Built an inexpensive 2-axis hanging CNC drawing machine using an Arduino

High School Math & Computer Teacher

August 2016 - June 2017
Yap SDA School, Micronesia
  • Taught 8th grade math, Algebra 1, Geometry, Algebra 2, Precalculus, and 1 semester of 12th grade computers
  • Configured / managed a lab with 18 Windows computers using WDS and batch script unattended software installs
  • iTALC for monitoring, mandatory user profiles on server and software restriction policies for student accounts

Projects

  • Thermal Soaring UAV - Bayesian methods vs. GP regression, C++/Python network interfaces with 2 autopilots
    2014 - 2016
  • Bubble Form Grading - load PDF, image processing, C++ threading, web UI with AJAX, CppCMS backend
    2012 - 2014
  • DHCP Spoofing Prevention - prevented attacks with ebtables in Mininet, Linux per-process filesystem mounts
    2015
  • Collaborative Quiz Website - peak of 1800 monthly visitors, 4 rewrites, used PHP, AJAX, and SQL
    2007 - 2013
  • School Bell System - C++ on Raspberry Pi monitors XML file turning on with serial or GPIO, web frontend
    2011 - 2012

Classes

  • Structured Prediction
    CptS 580
  • Computational Genomics
    CptS 571
  • Machine Learning
    CptS 570
  • Advanced Algorithms
    CptS 515
  • Gerontechnology I & II
    CptS 485, 486
  • Intro to Artificial Intelligence
    CPTR 445
  • Intro to Database Systems
    CPTR 414
  • Intro to Networking & Computer I/O
    CPTR 425
  • Digital Control Systems
    ENGR 454
  • Digital Design
    ENGR 433
  • Software Engineering
    CPTR 435
  • Engineering Finite Element Methods
    ENGR 468