Backend software engineer with chemistry background
Experience
2022 — Now
2021 — 2022
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.
2019 — 2021
2019 — 2021
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.
2018 — 2019
2018 — 2019
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.
2015 — 2018
2015 — 2018
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
Oregon State University
Bachelor of Science (B.S.)
2005 — 2009
Portland State University
Bachelor of Science (B.S.)
2011 — 2015