2018 — Now
San Francisco, California, United States
Marketplace Data Observability team. We manage pipelines for processing large volumes of business-critical ads data and powering analytics.
Technical domain includes
* Distributed Systems
* Batch/Stream Processing
* Logging
* Data Schematization, Modeling, Observability, & Warehousing
* Job Orchestration
Business domain includes
* Ad Metrics
* Ad Attribution
* Advertiser Billing
* Ad Delivery Monetization
* Bot Filtering
Mentorship: I've guided many engineers (NA + EU) during their onboarding, projects (design/scoping/prioritization), and oncall shifts.
Incident response: We're one of the most oncall-heavy teams at Yelp, and I've been responsible for accurately assessing the (financial) impact of many incidents, quickly resolving them, writing postmortems, proposing platform/infra improvements, and making our systems more failure-resilient.
2018 — 2018
San Francisco, California, United States
Team: Ads Backend
Simplified campaign management for advertisers with multiple budgets (i.e. regular + promotional), allowing bids to be set more efficiently:
* Created a new MySQL table for representing ad campaign budget changes and a Cassandra table for representing an ad campaign's spend within a specific budget period
* Created APIs for querying/updating the above tables (i.e. performing budget edits, getting spend info, etc)
Languages: Python
2018 — 2018
San Francisco, California, United States
Team: Ads Backend
Developed a package for logging user interactions with Yelp ads (impressions and clicks) so that new ad products could be monetized quickly and safely:
* Implemented schema validation for heavily nested revenue-critical logs, thereby reducing the risk of malformed data entering Yelp’s ads systems
* Ran performance tests to ensure that the package had a tolerable impact on page load times
* Rolled the package out to 100% of ad traffic and added SignalFx metrics reporting to make it easier to detect logging issues in the future
* Used Spark to compare data produced by the package against data produced by the legacy system
Languages: Python
2017 — 2017
Toronto, Canada Area
Team: Game Services
Developed an API for searching usernames and retrieving player info within popular games:
* Implemented a new endpoint that allows you to retrieve information about a player by supplying either an exact or partial name
* Utilized an Elasticsearch-backed service for the partial-matching aspect of this endpoint, and created an SQS workflow for indexing player data in Elasticsearch
* Performed various performance tests using JMeter and optimized reads/writes
Made performance improvements to a graph-based service that managed player relationships:
* Modularized SQS consumers and redeployed them with separate autoscaling
Languages: Go, Java
Kitchener, Canada Area
Team: Video Player & Dashboard
Made several improvements to Vidyard's video player, focusing on user experience and metrics reporting:
* Simplified code for video playback, reducing load times on desktop and mobile
* Identified and fixed issues where video engagement data wasn't being properly reported during video playback
* Refactored code that controlled the player's responsiveness under different screen resolutions, improving the user experience on mobile
* Improved the player's accessibility, localization, and cross-device/browser compatibility
* Redesigned existing player components and expanded customization options
Languages: JavaScript, CSS/HTML, and Ruby on Rails
Education
University of Waterloo
Bachelor of Software Engineering (BSE)
Forest Heights Collegiate Institute