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.