The Michaels Companies, Inc.
Software Development Engineer
Backend API Development – Michaels.com Ecommerce (Feb. 2021 – Aug. 2022)
-
Participated in the design, development, improvement, test, and deployment of the high scale backend services for the entire online shopping experience.
Third-party Service Integration (Nov. 2021 – Aug. 2022)
Java
SpringBoot
Python
Redis
Apache Airflow
Datadog
Google Tag Manager
-
Participated the integration of the third-party service including Affirm (financing), Attentive (text message), Fusion 92 (promotion), Tibco (loyalty), and SheerID (ID validation) etc.
-
Took part in the implementation of the global third-party service admin portal. Helped to create Java Spring tool package for third-party API metric/usage/access/defect/data analysis.
-
Led the development of the data retrieving APIs and data uploading/syncing up pipelines for 3rd-party service data access.
-
Introduced cache system to store the frequently accessed data and avoid the entire list traverse. Greatly reduced the average API data retrieving time from 1000ms to 10ms.
Shopping Cart Development (Feb. 2021 – Oct. 2021)
Java
SpringBoot
Redis
Cassandra
Google Spanner
MongoDB
Kafka
Jenkins
Google Cloud
-
Designed, developed, tested, and deployed of the shopping cart system and RESTful APIs using Java, Spring Boot including initialize shopping cart, add/remove product, change quantity, inventory check, etc.
-
Worked with the front-end team to discuss API design such as HTTP method, request/response format, and error handling, etc. Under the premise of realizing functionalities, optimized the structure of request and response (params/JSON), reduced the amount of transmitted data and achieved faster API access.
-
Incorporated Kafka as message broker and data buffer for decoupling checkout and shopping cart microservices. Implemented shopping cart cache with Redis which increases performance and reduce response time by 92%.
-
Cooperated with the DB team to migrate item table from MySQL to MongoDB using primary-secondary mechanism. Constructed the new shopping cart table schema and index strategy. Managed to merge the separated shopping cart tables (course products, project products, and SKU products) into one standalone table by normalizing the optional tables and extracting the same entities. Reduced the average API long queries from 3 times to 1.5.
-
In charge of: using (TDD) Junit and Mockito to keep unit tests light and non-invasive, using SonarLint for code style check, writing swagger API doc, conducting the CI/CD pipeline from dev to QA, and integrating Datadog for API monitoring.
iOS Mobile Development (Dec. 2020 – Feb. 2021)
iOS
Swift
Objective-C
XCode
UIKit
RxSwift
SDWebImage
SnapKit
Alamofire
-
Worked on a 16-people mobile development team to design, develop, test and deliver Michaels apps in an agile development cycle. Participated in the start-up of iOS team. Collaborated with team members to research different mobile development frameworks (hibernate vs native, storyboard vs SwiftUI), iOS programming languages (Swift, OC), decide coding style, code structure pattern, version-control flow, third party libraries, and CI/CD pipeline.
-
Contributed critical, shared components to multiple features of the mobile app including reusable UI component library, global data transformation, presentation, cache, persistence, and network communication library, etc.
-
Closely worked with backend team to discuss API design and requirement, and UI/UX team to design and integrate the app’s UI and prototype using Sketch and Figma.
-
Responsible for the development of instore scan & go app from scratch. Implemented the use of WIFI SSID, Bluetooth beacon, and Geofence to improve the user's instore status detection speed. Researched common barcode formats, and compared Apple's official Vision barcode scan solution with Google's MLKit solution to improve scanning and product information retrieving speed.