Backend software engineer with chemistry background
2021 — 2022
Portland, Oregon Metropolitan Area
Orchestrated an emulator reservation workflow for a mobile cloud gaming platform, integrating with the Skillz personalization system for a controlled rollout. Services are implemented in Go, deployed in Kubernetes, and are backed by AWS DynamoDB, SNS, and SQS.
Developed a web-based MMP integration using Google Tag Manager and Next.js to track effectiveness of user acquisition campaigns targeting cloud gaming.
Portland, Oregon Area
Tech lead for backend engineering team, operating in a cross-functional capacity to deliver and scale features for a competitive mobile gaming platform.
Operated in a cloud native, distributed system designed for high scalability and availability, with Java/Spring Boot microservices deployed in a combination of Kubernetes (EKS) and AWS EC2, and backed by data in RDS MySQL, DynamoDB, S3, Elasticsearch, and Redis.
Re-architected a legacy system to improve the durability, observability and speed of push notification marketing campaigns, leveraging Elasticsearch sliced scroll parallelism with AWS SQS to generate a 15x speed increase from start to finish.
Integrated the trophies feature into the personalization system, increasing tournament entry fees up to 50% during time-limited trophy events.
Led the optimization of a recurring job for writing segmentation data into Elasticsearch, doubling write throughput to ensure pipeline completion within a one hour time limit.
Designed or approved technical design documents for platform feature additions such as segmentable trophies and third party ad integrations.
Portland, Oregon Area
Developed a Kafka Streams app for transforming and enriching topic messages that originated from a MySQL database. Messages are serialized with Avro using the Confluent Schema Registry for compact storage.
Rewrote a specific graph-like API to use a graph DB instead of SQL, allowing queries to resolve approximately 10x faster.
Designed an architecture and migration path for an existing application to switch to a change data capture system, by reading database change events with Debezium and streaming them into Kafka for downstreams clients.
Retrofitted an application to support user defined permission groups. In addition to a database schema migration, SQL queries were modified in order to restrict content to the appropriate users. Intermediate level queries were cached and leveraged at runtime to mitigate performance impact.
Prepared a MySQL to PostgreSQL migration using pgloader, altering and consolidating column types where applicable.
Portland, Oregon Area
Developed a NodeJS web server for supporting real time multi-user interaction in a single page app. The server is written in Typescript using Express and socket.io, with Mocha and Chai for unit testing, and backed by a Redis store. Redis interactions are implemented using Lua scripts to minimize network traffic and guarantee atomic execution.
Consolidated and updated an existing Docker configuration by fixing bugs and updating several Bash scripts responsible for loading, saving, and migrating MySQL databases. Additionally, rewrote an existing Dockerfile to use a multi-stage build, resulting in a 33% reduction in image size.
Designed and created a microservice for selecting files out of a ClearCase repository. The server is another NodeJS/Typescript/Express combo wrapping the cleartool and rcleartool command utilities, with a Dojo dgrid UI in order to match the theme of a related application.
Participated in MECOP program as a mentor. Responsibilities included leading intern projects, instructing and teaching concepts when needed, and giving performance appraisals.
Created a feature for defining integrations with OSLC compatible microservices. This is a full stack CRUD implementation, including MySQL schema design, writing the backend models and controllers using PHP within the Zend Framework, with a React UI.
Built a suite of React components of various input types, designed to support exclusive multi-user editing backed by a socket.io server. The components wrap, and in some cases extend, open source components such as react-datetime, react-select, react-dropzone, and ckeditor, among others, in order to support a consistent API. The project also includes Redux with Immutable.js for managing state, and is compiled/bundled using Babel and webpack.
Education
2005 — 2009
Oregon State University
Bachelor of Science (B.S.)
2005 — 2009
2011 — 2015
Portland State University
Bachelor of Science (B.S.)
2011 — 2015