Rakuten Group, Inc. Backend Developer, July 2021 ~Present
Develop and maintain Item and shipment APIs (Item/Product/Inventory/Category/ImageResources/Shipping/FamilyMart/..) and handle DevOps for Rakuten Taiwan projects, collaborating with team members from Japan, China, and India.
FileManagement API Rakuten Cloud Object Storage and DB migration
- Refactor and migrate the file management api from NAS to Rakuten Cloud object storage.
- Develop the file migration tool with a thread pool to simultaneously migrate over 3 terabytes of files for all of
Rakuten TW's shops.
-
Initiate a discussion with the system engineer and backend leader to plan the file migration process, ensuring zero downtime and no data loss.
- Reduce the annual budget to approximately one-tenth of its current amount.
- Memory profiling with JMS and running stress tests with JMeter.
FamilyMart B2C project
- FamilyMartB2C as a new shipment option on the Rakuten e-commerce platform that empowers merchants to ship batches of products to distribution centers, ensuring faster delivery process for top merchants to ship their products.
- Design and implement a new Batch service for the new shipping method FamilyMart B2C in the Rakuten EC platform.
- Download shipping status files from FamilyMart's FTP server to update the shipping and order status on the Rakuten platform.
- Implement the deployment script for the Jenkins pipeline.
- Implement integration and unit tests to achieve a coverage rate of over 80% for quality assurance.
Resolve the database deadlock issue related to delete and re-insert operations
- Utilized SHOW ENGINE INNODB STATUS to analyze the database lock status for the READ COMMITTED transaction isolation level.
Shopping cart-revamp project
- Developed the new version Cart-API (Java and MySQL) to replace the legacy API (Ruby on Rails and NoSQL).
- Developed the Point handler business logic to calculate the Rakuten Super Point and shopper's Point Campaign.
Search Engine Feed project
- Develop the new version Search Engine Feed API (Java) to replace the legacy API (Ruby on Rails)
- Transform the data format from the relational database to search engine when the client updates shop/product/campaign information.
- Implement a full-shop feed to query all items within shops on the Rakuten platform in order to rebuild the search engine index.
- Implement a local cache for categories using a doubly tree data structure and read/write locks to retrieve tree paths instead of making repeated calls to the category API.
- Conduct a code review for colleagues and develop unit tests to achieve a test coverage rate of over 80% to ensure software quality.
Global Open-API data migration from MongoDB to MySQL- Developed data migration tool with spring-batch-partitioner
- Migrated 4 million records using multi-threading to reduce the processing time to approximately one-tenth of the original time (from 70 minutes to 7 minutes).
- Replaced the database from MongoDB with MySQL to speed up the API response time to reach 400 QPS.