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. I am interested in a wide range of different areas such as artificial intelligence, machine learning, robotics, computer vision, embedded systems, automobile safety systems, acoustics and fluids, and computer graphics.

Right now I'm working on a PhD in Computer Science and have been primarily focused on artificial intelligence — machine learning in particular.


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, TensorFlow, Numpy, Yocto, GStreamer, Scikit-learn, PyMC, Tornado, 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
  • Wrote webpage for human interface on a tablet using roslibjs
  • Helped with debugging navigation issues, creation of state machines with SMACH, and integrating all components together
  • Helped drive robot during user experiments since complete autonomy was not functional at that point

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