Resume

Andrew Thomas

Introduction

Andrew is a software engineer with a B.S. in Computer Science from Northwestern University. He has significant experience building web applications across all layers of the stack and working on dynamic, high-velocity teams.

Githubgithub.com/andrewmthomas87
Emailandrewmthomas87@gmail.com
LocationBoulder, Colorado

Skills

LanguagesTypeScript, JavaScript, Go, Java, Python, Rust, SQL, C++, HTML, CSS
Backend frameworks & dataNode.js, Express, Prisma, tRPC, Zod, Gin, Quarkus, Hibernate, Django, axum
Runtimes & protocolsTokio, embedded V8 (Rust), OpenAPI, gRPC, Protocol Buffers, MCP
Infrastructure & cloudDocker, Kubernetes, Terraform, ArgoCD, Prometheus, Grafana, GitHub Actions, AWS (EC2, Lambda, Kinesis, SQS, S3), Cloudflare Workers
StoragePostgreSQL, MySQL, SQLite, PostGIS, Redis, Elasticsearch
Messaging & mediaKafka, RabbitMQ, WebSockets, MQTT, WebRTC, GStreamer, Pion
FrontendReact, Remix, Svelte, SvelteKit, TanStack (Query, Router, Form), MobX, RxJS, Zustand, Chart.js, deck.gl, Vite, MUI
TestingVitest, Jest, Testing Library, Storybook, JUnit, Mockito, pytest

Education

Northwestern University

DegreeB.S. Computer Science
SchoolRobert R. McCormick School of Engineering
Dates2017-2020, 2023-2024
Notable CoursesData Structures, Algorithms, Networking, Programming Languages, Compiler Construction, Code Analysis & Transformation, Cryptography, Artificial Intelligence, Machine Learning, Knowledge Representation & Reasoning, Game Development, Scalable Software Architectures, Cyber-Physical Systems, History of Programming Languages

Professional Experience

Workday

TitleSoftware Development Engineer
DatesAug. 2024-Present
  • Developed a FaaS platform with first-class MCP support, enabling product engineering teams to develop and deploy tools and skills as simple TypeScript functions with declarative bindings for access to external resources (inspired by Cloudflare Workers) including fully-typed REST API clients, using TypeScript and Node.js.
  • Built a FaaS platform MVP with strong concurrency and sandboxing for execution of untrusted JavaScript code with platform-authorized access to external resources using Rust and the V8 JavaScript engine.
  • Contributed to the development of a custom relational database system; designed and implemented a resource-efficient bulk import and export capability, using TypeScript, Node.js, and PostgreSQL.
  • Designed and implemented a tenanted blob storage service using Java, Quarkus, S3, SQS, and Terraform.
  • Contributed to the development of a shared platform for new applications using Java, Quarkus, and Kubernetes.

Viget

TitleJavaScript Developer
DatesFeb. 2022-Sept. 2023

Note: I left Viget in Sept. 2023 to return to Northwestern, having previously withdrawn during the pandemic.

  • Developed backend service to receive and record live video over WebRTC with API endpoints for querying and retrieval of recorded video using Go, Pion WebRTC, GStreamer, AWS Kinesis Video, Prometheus, and Grafana.
  • Built and integrated frontend features for live video streaming and live playback via WebRTC; built a timeline screen for playback of archived video synchronized with user-recorded events using TypeScript and React; contributed to backend API development and integration with video service using Python, Django, and Redis.
  • Upgraded sophisticated event-recording screen to use TypeScript, React, and Zustand; developed component and state-management system to simplify management and creation of event-recording widgets; rewrote event-recording API to use WebSockets and support real-time synchronization using Python and Django.
  • Built charts with advanced controls to visualize multidimensional historical data using TypeScript, React, and Chart.js; communicated extensively with stakeholders to iteratively refine behavior and improve UX.
  • Developed scenario modeling MVP; built a tree-based graphical editor integrated with a computation engine using TypeScript, React, Elixir, and Phoenix; worked closely with client to refine product concept and MVP.
  • Led internal hackathon; motivated participation from half the company resulting in a record number of projects.

The Toro Company (by acquisition)

TitleSoftware Engineer
DatesMarch 2021-Feb. 2022
  • Researched and implemented AAA (authentication, authorization, and accounting) prototype to provide SSO (single sign-on) and consolidate AAA across company applications using Go, Java, AWS Cognito, OAuth, Casbin, and Redis.
  • Built data ingestion and visualization application for hardware product, integrating with data warehouse service using TypeScript, React, and deck.gl; coordinated with hardware team and customer to validate.
  • Developed web boilerplate, common packages, and documentation using TypeScript, React, RxJS, MUI, Vite, Jest, Testing Library, and Storybook.

Left Hand Robotics (startup)

TitleSoftware Engineer
DatesAug. 2020-March 2021
  • Built single-page application to ingest and visualize streams of spatial-temporal sensor data, including interactive visualization builder screens using React, deck.gl, React-vis, styled-components, mapbox, and RxJS.
  • Developed microservices to query and manage sensor data using Go, Auth0, PostgreSQL, and PostGIS.
  • Built pipeline to livestream robot multi-camera feeds to a remote web dashboard using C++ and GStreamer.

CBOE Global Markets

TitleSoftware Engineer Summer Intern
DatesJune 2020-Aug. 2020
  • Coordinated with research team to learn methodology of Cboe S&P 500 Covered Combo (CMBO) Index.
  • Implemented daily and roll day calculation for CMBO using Java, Kafka, Hazelcast, and internal frameworks.
  • Developed unit tests (JUnit) to verify calculation correctness and behavior tests (Cucumber) to verify integration.

Left Hand Robotics (startup)

TitleSoftware Engineer Intern
DatesJune 2019-Sept. 2019
  • Developed storage mechanism, API, models, and data migration tooling for enhanced object storage and mutation system to solve major server and network bottleneck using Google Protocol Buffers and Java.
  • Built frontend library for reactive consumption, mutation, and upload of Google Protocol Buffer objects.
  • Developed GPS path editing tools to compute mutations on client using React, MobX, Turf.js, and Google Maps API.
TitleSoftware Engineer Intern
DatesJune 2018-Sept. 2018
  • Redesigned two primary frontends to meet new customer needs; integrated the Ant Design framework for React.
  • Researched area coverage and cell decomposition techniques; built planning algorithm using Go and Python.
  • Developed GPS path editing frontend screens and server API for persistence and advanced geometric mutation.
  • Created monitoring dashboard to remotely control robots and visualize real-time status and geospatial data using React, TypeScript, MQTT over WebSocket, Google Maps API, and MobX.
TitleSoftware Engineer Intern
DatesMay 2017-March 2018
  • Built robot operations center web application to manage inventory and collect GPS path data, robot tasks, and reports for use by customers and internal support using TypeScript, React, MobX, LESS, and webpack.
  • Developed registration, token-based authentication, and RBAC authorization using Java, bcrypt, and JWT.
  • Implemented message consumption and routing system on top of RabbitMQ using custom messaging protocol for HTTP and WebSocket to automate communication between microservices using Java and Grizzly NIO.
  • Built API to retrieve object model descriptors, data, and links between objects using the Java Reflection API.

Workday

TitleGW Software Engineering Intern
DatesJune 2016-Aug. 2016
  • Developed real-time collaborative document editing MVP frontend using JavaScript, React, MobX, and Quill.
  • Implemented operational transformation algorithm to correctly and efficiently reconcile concurrent edits without additional coordination from the server using JavaScript.
  • Demoed MVP to development team and company executives; documented codebase and future work opportunities.
TitleGW Software Engineering Intern
DatesJune 2015-Aug. 2015
  • Rewrote frontend library to transition from CoffeeScript to JavaScript using modern ES2015 features; developed unit tests to verify correctness using Mocha and Chai.
  • Worked with a senior developer to refactor modal wizard components to transition away from Angular.
  • Debugged and implemented fixes for bugs in spreadsheet web application using JavaScript and Angular.

Volunteering

FRC Team 1619 Up-A-Creek Robotics

team1619.org • a FIRST Robotics Competition team; 2022 World Champions.

RoleMentor
DatesJan. 2018-Present
  • Mentored the robot software team; taught students Java programming, basic control theory, path planning algorithms, motion profiling, computer vision, and object-oriented design including S.O.L.I.D. principles.
  • Mentored the app software team; taught students basic development skills like git and bash as well as full stack development using React, React Native, Node.js, and relational databases.

Projects

web-p2p-tunnel

A peer-to-peer HTTP tunnel directly to/from the browser. Expose a local web server directly to any device with a web browser and Internet connection. Using Go, Pion, Typescript, WebRTC, and a Service Worker.

arborist · wip

An LLM-powered code intelligence system that indexes a codebase into a semantic tree and provides MCP tools to coding agents using TypeScript and tree-sitter.

newscast

An AI-powered news broadcast; gathers and scrapes articles for trending topics from several sources, summarizes articles, generates a news broadcast including summary and guest take sections, integrates with an AI avatar to deliver broadcast, provides web application to run, monitor, and customize each step; using TypeScript, SvelteKit, Prisma, OpenAI GPT LLMs, and Azure APIs.

arcade

A collection of multiplayer web games inspired by Jackbox Games and NYT Games using TypeScript, SvelteKit, Bulma, Prisma, and OpenAI GPT LLMs.

frcbrackets

A web application for predicting outcomes for FIRST Robotics Competition events integrated with The Blue Alliance API and implementing automated scoring using TypeScript, Remix, MUI, Prisma, and nodemailer.

News search engine

Ingests articles from the Common Crawl project datasets and implements a simple search engine using Java, EC2, Lambda, SQS, Elasticsearch, and Tomcat.