John Spong
Software Engineer
Building Complex Systems using Simple Pieces, and Mentoring Junior Developers to Do the Same.
Contact
- Email: jspong@gmail.com
- Phone: 628-363-0108
Skills
Software Architecture
Design Patterns, Implementation Patterns, Distributed Systems, API Design, Iterative Processes.
Machine Learning
Data Science and Data Mining Principles, Deep Learning Models with PyTorch, and Data Pipeline Engineering.
Languages
python, Java, TypeScript, Javascript, C#, SQL, golang, ruby, C++, perl, C, HTML
Technologies
AWS Cloud Development and Administration, Linux System Administration, TCP/IP Networking, node.js, Full LAMP Stack Administration, Apache Airflow, Apache Kafka, Apache Spark.
Communication Skills
Empathetic and solution-oriented, understanding that all individuals have personal priorities, life-experiences, and unique strengths.
Education
University of Illinois, Urbana-Champaign
Bachelor of Science, Computer Science
September 2003 - May 2007
Amazon, Inc.
Software Engineer
June 2020 - June 2024
Designed Isolated Services and Cross-Team Integrations to help Amazon deliver the best experience for their Customers by supporting Delivery Drivers with safe, efficient, familiar, and reasonable delivery routes.
- Integrated Deep Learning Platform for route-level time estimation with Delivery Planner.
- Designed and implemented inference client for Real-Time Cost Planning.
- Analyzed performance bottlenecks in client and model, scaling to bursts of millions of requests per minute.
- Led cross-functional initiatives to implement and evangelize modern DevOps and MLOps practices.
- Created event-driven Model Registry Service to streamline operations and facilitate communication between engineering and data science teams.
- Designed and implemented Data Pipeline to perform Extract-Transform-Load (ETL) tasks for model training and feature extraction for real-time inference.
- Designed, implemented, and rearchitected systems using Java, Typescript, Python, PyTorch, Apache Spark, AWS SageMaker, AWS Glue, and AWS EC2 infrastructure.
- Organized efficient processes for team, including standardized issue tracking, Agile Workflow using Scrum and Kanban principles, service monitoring, and code quality standards.
- Led team of three to build Simulations Platform using Native AWS Services.
- Orchestrated system execution using Elastic Container Service (ECS), AWS Step Functions, AWS Lambda, AWS Simple Queue Service (SQS), and AWS Batch.
- Configured connectivity to Microservices using VPC Networking, Dynamic Client/Server Configuration, and IAM policies.
- Built systems for deploying architecture, service configuration, and metadata using Java, CloudFormation, VPC Networking, and S3.
- Supported internal customers, allowing users to run 1,000,000 Simulations, covering 15,000,000 Delivery Plans, in 2021.
- Designed organization-wide development guidelines to allow production services to run within the Simulations Environment.
- Migrated non-AWS systems to run in
docker
containers on Elastic Container Service.
Confluent, Inc.
Software Engineer
August 2019 - March 2020
Developed and Modernized CI/CD Test and Deployment Infrastructure for Apache Kafka and Enterprise Extensions.
- Modernized test infrastructure to more accurately represent production environments using AWS and
docker
. - Reduced system test execution time by 30% by running tests in parallel rather than sequentially.
- Updated automated management of third-party utilities, including JDK, MySQL, and Apache Hadoop Ecosystem to more reliably integrate all deployment scenarios.
Youtube, Inc.
Software Engineer
August 2014 - July 2019
Identified and mitigate shared Workflow gaps or hurdles, and led Force Multiplier Initiatives to Improve Engineering Productivity Across the Company.
- Led large, cross-team code cleanups on Live CI/CD Environment with zero production issues.
- Followed mature DevOps Practices to ensure all code was thoroughly reviewed and tested before/during the release process.
- Refactored YouTube Authentication Workflow to unify multiple credentials into a single abstraction.
- Led integration of Protocol-Level Observability into entire flow through client, middleware, and backend services, balancing privacy concerns with data availability.
- Led year-long feasibility study for
python
static analysis on YouTube code base, focusing on bug detection, in collaboration with Google language teams and third-party vendors. - Streamlined automated testing and simplified building running services and mobile (iOS and Android) apps.
- Interviewed candidates and mentored new engineers on the team.
Clustrix, Inc.
Software Engineer in Test
January 2013 - July 2014
Wrote, Executed, and Automated Test Plans for Distributed MySQL-Compatible Database. Directly Supported Customer issues, Reproducing Failures and Diagnosing Root Causes.
- Led testing and verification of XML Functions, SQL Triggers, and Distributed Disaster Recovery and Consistency, from design through customer support.
- Optimized Team Processes by modernizing the test automation codebase,
refactoring code and unit tests, organizing educational initiatives,
and implementing a standard Code Review Policy.
- Increased Team Productivity by 17% by removing the need for a full-time revolving test reviewer position and replacing it with individual ownership and a new system for viewing test analytics.
- Identified and diagnosed errors in distributed ACID database using SQL, Internal Interrupts, and external client automation to reproduce issues with the Query Planner, Replay Queues for Disaster Recovery, and Paxos-driven node management.
- Interviewed candidates and mentored new engineers on the team.
Google, Inc.
Software Engineer in Test
January 2010 - August 2010
Developed first Scalable and Reusable Integration Test Infrastructure for the Android Marketplace.
- Wrote, maintained, and executed Integration Tests for the Android Marketplace using Java and Selenium.
- Designed API for Integration Tests and refactored it into existing legacy framework to allow all developers to create more reliable and scalable tests.
Riverbed Technology
Quality Assurance Engineer
August 2007 - December 2009
Automated Integration and Regression Tests for WAN Optimization, Working with Product and Engineering to Ensure Quality from Conception through Client Support
- Led a team of six engineers in engineering efforts, coordinating individual contributions into a cohesive and unified test system.
- Wrote Client Automation, Server Deployment, and Network Configuration in
bash
,C#
,perl
,python
to allow reusable test code for Windows and Linux clients. - Wrote and optimized test result analytic tools using MySQL database, requiring data modeling, index optimization, and complex SQL queries.
- Interviewed candidates and mentored new engineers on the team.