Spencer Hawkins

(redacted for github)

Experience

Sr. Software Developer - OTA — Rivian — Remote (Puyallup, Wa <-> San Jose, CA) February 2020 - Present

Design and develop in-house OTA (Over The Air) update solution for R1X and RPV platforms. Write C/C++17 code for embedded linux OTA applications. Collaborate closely with wide-ranging hardware and software teams to deliver a high-quality OTA firmare update solution for over 60 individual embedded ECUs, spanning RTOS and embedded linux applications. Implement and maintain project and system level CI/CD processes.

Build & Release Engineer — Wizards of the Coast — Renton, WA December 2018 - February 2020

Wrote C#, Powershell, NAnt and Python to perform and manage builds for diverse .NET style projects, including MTG Arena, a large online game created with Unity. Worked closely with Release Management and Infrastructure teams to design and maintain deployment workflows and ensure large releases occur smoothly. Debugged, documented, and resolved a variety of issues at all application layers, from Arena client code to CDN traffic analysis. Developed and maintained web-based deployment tools to make large production deployments painless.

System Validation Automation Sr. Engineer — Tesla — Palo Alto, CA Apr 2017 - December 2018

Wrote Python, Go and C to automate system-level testing of OTA (Over-The-Air) updates on all Tesla vehicle platforms. Coordinated between multiple teams to design, develop, and test Model 3 OTA specifications and behaviors. Designed and developed python and web user interfaces to aggregate, analyze, and organize data from firmware update logs to drive firmware release signoffs. Regularly reviewed, analyzed, and validated Python, Go, and C-based firmware changes.

System Validation Automation Engineer — Tesla — Palo Alto, CA Mar 2016 - Apr 2017

Design and develop test plans and test cases related to over-the-air updates at a system and component level. Implement continuous integration tools to test and deploy internal Python packages on commit. Work with issue tracking software (Atlassian suite: JIRA, Confluence, Stash) to report, document, and resolve firmware bugs and issues, and validate their fixes.

System Validation Automation Intern — Tesla — Palo Alto, CA Summer 2015

Designed and developed web-based test reporting dashboards (MongoDB, Flask, Bootstrap, rivets.js). Worked with many teams with diverse needs to implement python client interfaces between testers, test reporting software, and test result dashboards.

Firmware, PCBA Validation Engineering Intern — Tesla (formerly Tesla Motors) — Palo Alto, CA Jan 2014 - Aug 2014

Wrote Python for testing automation and build / test automation infrastructure. Automated manual hardware tests and ECU application and bootloader validation processes. Collaborated with firmware engineers to design bootloader specifications. Created NI LabVIEW FPGA modules for real-time hardware data acquisition. Used NI LabWindows and LabVIEW CVI to create software interfaces for hardware testbeds. Wrote regression tests for hardware / ECU application validation. Wrote HTTP API clients for various web interfaces (Atlassian Stash, IBM Jazz / RQM). Collaborated with large teams to implement well-documented Python CAN / UDS utilities.

Electronics Technician, Microcontroller Programmer — Precise Circuits — Dallas, TX Sep 2011 - Jan 2014

Loaded circuit boards with components, soldered loaded circuit boards (Through-hole and surface-mount). Tested physical aspects of circuit boards (QC), troubleshooted malfunctioning circuit boards. Managed PHP/SQL-based parts catalog. Wrote C-based firmware for projects utilizing the dsPIC2011 / dsPIC3011 microcontroller families. Collaborated with clients to design, develop, and test embedded state-machine firmware.

ISAAC Project Engineering Intern — Jet Propulsion Laboratory ( NASA / JPL / CalTech ) — Pasadena, CA Summer 2013

Set up and managed internal networking for the ISAAC Project. Implemented and maintained an Ubuntu server (Drupal, MediaWiki, NFS, LDAP, DHCP) and 6 Ubuntu workstations. Designed and implemented new online applications for the ISAAC project. Collaborated with FPGA developers on hardware and software projects. Contributed to wxPython-based GUI for FPGA Interfacing. Assisted in dsPIC33F development for CubeSats using MPLAB8.

Programming, Build, and Drive Crew — FIRST Robotics Team 3735 — Tomball, TX 2010 - 2011

Wrote JAVA code for autonomous and controlled modes of operation on National Instruments CompactRIO. Collaborated to Design, build and troubleshoot hardware and software in a team environment. Operated robot during competitions. Adhered to safety rules and regulations during competitions.

Education

University of Texas at Dallas — 3.4 Cum. GPA — Computer Science B.S. — Class of 2015

Skills

Python
C/C++
CAN / UDS
Docker / Kubernetes
Jenkins
Atlassian Suite
Git
Node.js
Javascript
Serverless
PostgreSQL / SQL / SQLite
MongoDB

Projects

MTGA Trackermtgatracker.com — Creator, Lead Developer Jan 2018 - Present

Cross-platform Electron application backed by local python websocket API and webtask.io API. Parses rapidly-evolving black-box log files in real time to distill and convey meaningful information to users. Includes a web-based, passwordless-auth application, with a unique, self-designed model of trust in a system that does not offer OAuth. Utilizes browser-automation tools to scrape js-required websites. Uses discord.js to manage authentication & moderation commands for a 250+ user server (and still growing).

GitSubmitGitSubmit.com — Team lead, Developer June 2015 - Nov 2015

Led team of 4 to take second place in UT Dallas 2015 Senior Design Competition. Developed and created project pitch and design documents, successfully pitched abstract to be selected by Senior Design committee as a team lead (usually reserved for established companies). Managed development of full-stack python / web application across a small team of 4. Created, scheduled, and delegated stories and tasks using github issues to emulate issue-tracking software. Implemented continuous integration practices to automatically test new code changes. Developed both backend (API) and frontend (UI) tests using Robotframework. Managed Jenkins deployment.

Selected Technical Writing

Choosing the last clickData event from a list of graphs in plot.ly dashLink — Self-hosted gist March, 2018

MTGATracker's Serverless Backend Powered by Webtask.ioLink — Auth0_Extend blog June, 2018

Report: Exploring Weekend EventsLink — MTGATracker blog August, 2018

References

Available on request