Career Profile
Highly skilled and motivated with proven track records of CI/CD initiatives, unit/UI/end-to-end testing solution and project build time optimization.
Seeking to leverage expertise to contribute to the success of a dynamic organization.
Work Experience
Mobile Infrastructure: CI/CD, developer tools and developer experience solutions.
-
End-to-end testing solution
-
Enhanced test stability by identifying and resolving infrastructure-related errors, achieving a near-error-free testing environment.
Developed and maintained features for end-to-end servers to improve stability and performance; enhance troubleshooting experiences (ex. inspecting Appium logs, WebDriverAgent logs, pytest logs, screenshots, etc).
-
Ensured the availability of the in-house device farm by implementing service watchers and service recovery logic (for the farm).
Monitored real devices in the device farm and resolved device related issues in time.
-
Reduced overall test execution time by orchestrating parallelized test pipelines, dynamically allocating resources based on device farm availability and task priorities.
-
Designed and implemented strategies to address test flakiness, including auto-detecting flaky tests, skipping them in critical runs, and benchmarking them for further analysis.
-
-
CI/CD process improvement
-
Improved pipeline efficiency by migrating single-step Jenkins jobs to multi-stage pipelines, enabling parallel execution and stage retries.
-
Grab Driver: The ride-hailing app for Southeast Asian drivers.
-
Spearheaded the successful implementation of the end-to-end testing solution within the tech family:
-
Reduced engineering effort significantly by leveraging Appium and Python to write tests once for both iOS and Android platforms.
-
Assisted QA engineers in seamlessly adopting the end-to-end testing infrastructure.
-
-
Ensured robustness of the UI testing infrastructure:
-
Enhanced overall test reliability by introducing a sophisticated test quarantine logic to isolate flaky tests (read more: here).
-
Optimized test execution time on CI by implementing horizontal scaling, resulting in a remarkable 3x reduction in test execution time.
-
-
Played a pivotal role in project build time reduction initiatives:
-
Developed and maintained the open-source CocoaPods binary cache, leading to a remarkable 55% reduction in project build time (from 18m to under 8m on average).
-
-
Orchestrated the ingestion of crashlytics data from Firebase to the company's data lake, providing engineers with enhanced troubleshooting insights.
-
Single-handedly managed critical CI/CD initiatives, ensuring seamless delivery of software products.
-
Actively assisted engineers from other tech families with platform-related blockers or queries.
Portfolio apps: Branded apps for users to perform various actions on Bluetooth devices (trackers and smart watches). The apps support nearly 20 different languages (including RTL ones).
-
Helped develop the core modules from scratch, took the major role in the features Activity, Sleep, Goal Tracking and Client-Server Data Sync.
-
Helped increase the scalability by modularizing the code base into components (corresponding to 17 development pods). One project but able to build 7 different apps sharing the common core: Kate Spade New York Connected, MichaelKors Access, Emporio Armani Connected, Skagen Connected, DieselOn, Armani Exchange Connected, Chaps.
-
Proposed and pioneered adopting MVVM as a solution for massive-view- controllers, making the business logic more manageable and testable. Besides, introduced and integrated ReactiveCocoa, helping the team implement asynchronous logic clearly, readably and maintainably.
-
Incorporated frameworks Quick/Nimbler, MockingJay, Cuckoo to facilitate testing with less effort. Pioneered writing test cases for the core.
-
Assisted new comers to straightforwardly get acquainted with the project by hosting technical knowledgesharing sessions and writing wiki documents.
Ticketbox: For users to discover events, book and manage tickets.
-
Built the app at the early stage and successfully shipped it within 2.5 months, with the team size of 3 (1 iOS, 1 Android, 1 Designer). Maintained it till v1.0.8.
-
Researched and partially adopted functional programming to make the code readable and elegant.
-
Technology stacks: MVVM, ReactiveCocoa, Realm.
Ticketbox Event Manager: For organizers to manage events, make check-in procedures more convenient.
-
Enhanced performance related to data syncing with server.
-
Refactored and finally applied the same technology stacks with the Ticketbox user app to unify the code base of the 2 apps.