Spencer Hawkins
Experience
Staff Software Developer - OTA — Rivian — Remote (Puyallup, WA <-> San Jose, CA) March 2021 - Present
Sr. Software Developer - OTA February 2020 - March 2021
Design and develop in-house OTA (Over The Air) update solution for R1 and Commercial Van platforms. Write C/C++17 code for embedded linux OTA applications. Write and review rust code for vehicle-to-cloud 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
Projects
Cello Squares — cello.spencer-hawkins.com — Weekend Hacker Dec 2022 - Apr 2023
Weekend project for tracking daily cello practice. I built this website as a personal tool to track and self-motivate efforts to practice a new instrument (the cello) daily. Unfortunately I have stopped logging daily sessions on the site, but still do my best to practice every day!
MTGA Tracker — mtgatracker.com — Creator, Lead Developer Jan 2018 - June 2020
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).
GitSubmit — GitSubmit.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 dash — Link — Self-hosted gist March, 2018
MTGATracker's Serverless Backend Powered by Webtask.io — Link — Auth0_Extend blog June, 2018
Report: Exploring Weekend Events — Link — MTGATracker blog August, 2018
References
Available on request