ByteDance - TikTok
Software Engineer02/2021 - Now
Data Comment & Recommendation Team
Google - Search
Software Engineer10/2020 - 02/2021
Word Press Editor
Google - Area120 - Tangi
Software Engineer02/2020 - 10/2020
Area 120 is a workshop for experimental products at Google which uses a lean-start-up approach of rapid iteration and user testing. Tangi is a new experimental short video platform with lifestyle videos that inspire you to try new things in under 60 seconds. Project successfully graduated to Google Search in Oct 2020.
Tangi Recommendation System
Role: Project Lead & Main Contributor
The recommendation system I designed and built recommends personalized video feeds for 13k users. We did the recommendation system v1 in March, and are the process of doing recommendation v2.
- Designed, implemented and productionaized the recommendation server V1 for Tangi web and mobile applications from scratch in 1 week.
- Make the recommendation system scalable and efficient to handle 500K MAU with over 10k videos for both web and native apps; be able to serve hundreds of high quality feeds for users within 2 seconds.
- Improved payload fetching performance from 20s to 2s and reduced the payload size from 1.5MB to 400KB on average by pruning redundant queries and using GZIP compression.
- Implemented the pagination for the recommended video content, which reduced the response data size on the API transmission and largely improved the app loading speed.
- Applied parallel computation to improve data processing performance. Reduced both the interval video indexing time and the recommended posts querying time by 400%.
- In the process of exploring new design for recommendation V2 with Recommendation AI, which is a new AI technology from Google Cloud.
- Presented the recommendation system to Area 120 Principal and Staff engineers; collected feedback to further improve the pipeline.
- Gave a talk about Tangi Recommendation’s design and implementation at Area 120 Tech Sharing Session.
Role: Project Lead
The Redis service I set up improves the performance of querying at the recommendation system and sets up the foundation for the memory cache for Tangi.
- Reduced the data fetching of the feed from 8s to 0.75s on average (10.7 times faster).
- Reduced the data fetching time of comments from 500ms to 1ms on average (500 times faster)
- Learning Required: When we started this project, nobody at the team knew anything about Redis. I learned and built a functional prototype from scratch in 1 month.
- End to end configuration: Configured and maintained a Reids instance on Memorystore to cache videos and comments data, built an API to handle the cache jump start on Cloud Scheduler and implemented an independent Redis service that supports the cache data processing.
- Integration Complexity: Integrated the Redis server with the recommendation server and the mobile application; it allows recommendation server fetch comments data from Redis cache instead of query from database, which made a huge performance improvement; on the client side, user’s comment data will be cached to Redis.
- Independent Development: Researched, proposed and implemented the Redis service end to end from scratch in 1 month.
- Presentation: Gave a talk about Tangi Redis design and implementation at Area 120 Show & Tell on July 22nd.
Google - Trust & Safety
Web Solutions Engineer03/2019 - 02/2020
Develops platforms and systems that help protect the Google ads ecosystem, keeping ad traffic clean and removing bad actors from Google’s ad network.
Role: Project Lead
Migrate the legacy Python code in AdSpam codebase.
- Migrated 100k+ lines of Python 2 code (730+ building targets that affected AdSpam, PubQual and Sales teams, on the PY2AND3 compatible stage).
- Developed documentation and tracker for the team to understand the project scope and setup milestone on each migration stage. The documents explaining how to migrate and test the code saved the rest of the team at least 2-week research effort.
- Hosted a migration 2 week war-room and led the team to finish the 97% migration of the codebase.
- Shared migration experience across multiple engineering teams and helped our partners boost the productivity in their migration work (e.g. PubQual team, T&SE - Search team etc.)
- Legacy Code: This project involved migration and testing of 100,000+ lines of 10-year-old legacy Python2 code, with extremely diverse and complicated business logic.
- Communication Effort: The AdSpam codebase has 600+ build targets, 200+ blocking dependencies and countless projects that depend on our codebase; the migration process requires lots of communication and CL reviews from Dublin & Hyderabad AdSpam teams, which are in different time zones.
- High Complexity: Some libraries have more than 3000 thousands lines of code. It required lots of time and effort to figure out the business logic, use cases, testing behaviors and change caveats.
- Partnered with a teammate, tech led for a team of 5 SWEs (2 week war-room), dispatched migration work to individuals and provided guidelines for the team.
- The team accomplished 97%+ of PY2AND3 coverage in 5 business days.
- The team converted 51 / 54 binary targets to PY3 by the end of the war-room.
- Onboarded 2 new SWEs for the AdSpam systems.
A platform allowing AdSpam analysts to record and manage ad traffic reviews.
- Optimized the workflow that analysts spend anywhere from minutes to multiple weeks in the spam investigations, each impacting thousands to potentially millions of dollars of revenue.
- Improved front end UI with stronger layout/style designs, clearer page transition interaction and more informative data validation instruction.
- Refactored the code base by abstracting and building shared UI components and stylesheets, which reduces the overall rendering complexity, cuts down lots of repetitive code and increases the scalability for the future components to add on.
- Fixed multiple production-blocking bugs under a tight timeline.
Web Properties Inspector
A system primary used for inspecting and reviewing AdSense publishers.
- Initialized and developed the tool improvement and redesign plans for WPI (which was built in 2007, 12 years old, with 530+ users) and CBI (which was built in 2008, 11 years old, with 370+ users).
- Hosted client-side UX research over 500+ of users, analyzed survey response, new UI components design(sample design mock) and prototyped the design.
- Research and investigate into the user logs on the from the SpamOps QueryAid endpoint, write plx script to query and categorize the users into different groups for WPI and CBI. This research served as an important guide to get the user source about the tool usage and categorize the recipient groups for taking the tool survey.
- Tracked and measured user interaction by embedding Google Analytics and Tag Manager to the system. Added user event tracker through Tag Manager to record the real time web traffic.
Google - Ads
Sales Support Tool Engineer04/2018 - 03/2019
Builds internal web tools and supports app development that provides sales solutions for thousands of sales representatives and AdWords advertisers worldwide.
A calendar for sales representatives to schedule treatments discussion.
- Helps 50k+ advertisers to schedule meetings with sales representatives based on treatment, language, timezone and market.
- Partnered with a Salesforce vendor to work on appointment data communication through SFDC API, built server handlers to fetch calendar available slots from SFDC and to send confirmation between sales representatives and Salesforce.
- Designed and built a shared library for both Autopilot and Direct Calendar applications.
Project OneClick redesign, treatments scheduler.
- Scaled up and divided the implementation works for SMBs, and helps 1700+ account strategists to focus more on results and growth with Google.
- Refactored the OneClick project to version 2 based on the Angular framework with material design to improve the performance stability and user experience, project extendibility and to align with the technical stack of the team.
Apollo Deliver - Eligibility Calculator
A campaign eligibility calculator, for evaluating the Ads representatives performance and points.
- Proposed and researched the plan of data server performance, which took 10+ seconds to load.
- Built a test plan to show the loading performance of each Dremel SQL query that triggered during the search.
- Implemented an extra Dremel client to enable multi-threading on the data server which improved the entire querying speed by 25%.
Glassbox Apollo Deliver
Bug triaging service, address sales representatives bug requests and handle appeal cases.
- Created a bug triaging document to manage and classify the issues types, reduced the bug solving time to less than a day on average and dropped the bug amount received by 50% compared to previous quarters.