PeiYun Cai
SoftWare Engineer
+81-701-303-3216
27-7 Moegino, Aoba Ward, Yokohama, Kanagawa, Japan 227-0044
Hi, I am PeiYun-Cai! I am a passionate software engineer with 4 years of experience. I recently focused on developing microservices with event-driven system for different applications, including Push Notification System (email/sms/push/webhook), user authorization and authentication (OAuth 2.0 and OIDC), data synchronization by utilizing Change Data Capture techniques (MySQL binlog parsed by Maxwell and sent to Kafka), and etc. I love coding and enjoy expanding my knowledge by reading tech books regularly during the weekends and on free times during the weekdays. The knowledge that I gain from books and the internet helps me a lot when working and gives me more motivation to continuously improve myself. While working, I try my best to contribute to the company by doing as much as possible, learning lessons from failures, getting things done quickly, and picking up new things quickly.
Currently, I am working for PayPay Corp. (a mobile payment startup in Japan), as a member of the User Module team (critical team), which is responsible for user authentication, authorization, all user related information handling and push notification. Our microservices have 2000 tps and can even rise more during campaign periods. From developing, testing, releasing, to monitoring, each of these tasks gave me lots of great experiences and at the same time gave me the drive to keep on improving myself and use the best of my abilities to contribute to the company as much as possible!
The journey keeps on going! :)
Experience
Software Engineer
PayPay Corp.
Sep 2020 - Present
Tokyo, Japan
- Built Alpakka Kafka application (akka stream integrated with Kafka) to solve faster producer and slow consumer problems by utilizing its flow control features (reactive stream with backpressure).
- Added complex Device List feature to sign-up, sign-in, and log-out APIs to handle user access information under different scenarios in the combination of user, device, client, and session parameters to detect account takeover.
- Improved Notification Center APIs to introduce DynamoDB TTL feature to the API user.
- Developed Push Notification System to send email/sms/otp, push messages to the app, and access internal and external APIs to accomplish tasks.
Used techniques: Spring Boot, OAuth 2.0, OIDC, Kafka, MySQL, Redis, AWS DynamoDB, Kibana, NewRelic, and Java
Software Engineer
Rakuten
Oct 2018 - Aug 2020
Tokyo, Japan
- Identified critical DB migration issues twice by tracing log and code from gateways to microservices, raised awareness concerning issues to the relevant developers.
- Built Kafka consumer applications as a base for multiple projects from the ground up to apply complex business logic on messages sent from different producers (internal systems and external vendors) and save into DB.
- Integrated trace context of multiple upstream (Kotlin and PHP) and downstream (Kotlin) applications written in different languages to allow distributed tracing.
- Developed multiple Gateways (Kotlin and PHP) and Microservices (PHP) at the same time to support different projects, which includes complex business logic handling, DB CRUD, email sending, JWT authentication, and etc.
- Utilized Change Data Capture techniques (MySQL binlog, Maxwell, Kafka) to synchronize data between MySQL and Couchbase (flattened ranged data into Couchbase to speed up searches).
- Rebuilt (unified) log format of applications actively to remove duplicated data, provide clear alert notification, save parsing scripts within ETL process by utilizing MDC and Logstash Logback Encoder (JSON layout).
Used techniques: Spring Boot, Laravel, Kafka, MySQL, Couchbase, TigerGraph, Kibana, Express.js, MongoDB, Kotlin, and PHP
Software Engineer
TSMC
Feb 2017 - Jul 2018
Hsinchu, Taiwan
Outlook Email Monitoring Service
- Created RESTful web services to control 40K employees’ outgoing email.
- Setup MS SQL Servers and built HA DB with Always-on Availability Group (master-slave/failover). Created SQL server jobs to notify failure, backup DB/transaction log and synchronize data between SQL servers.
- Created automated MS Windows Service to fetch and process data from Outlook Exchange server and save into DB. Enabled web services to read data fast from DB with acceptable stale read.
- Utilized Apache JMeter to perform stress testing on system and HP SiteScope to monitor service availability.
- Ran 240 test cases identified by the Legal department to ensure all scenarios are covered.
Company App Portal
- Built an Android app with Google Play-like features to browse, download, update, and comment on company apps.
Used techniques: ASP.Net Web API, C#, MS SQL Server, Apache JMeter, HP SiteScope, Java and Android
Skill
Language
Java (Proficient)
Kotlin, PHP, SQL, Shell Script (Familiar)
JavaScript, C#, C/C++(Prior Experience)
Framework
Spring Boot, Laravel, Mockito, MockK (Proficient)
Akka Stream (Familiar)
Express.js, CodeIgniter (Prior Experience)
Tech Stack
Kafka, Jenkins, Docker, Kubernetes, Jacoco, SonarQube, Elastic Search, New Relic, ArgoCD, Pager Duty, Integration Test, Unit Test, Gatling
Database
AWS DynamoDB, MySQL, Redis, Couchbase, TigerGraph DB, MongoDB, MS SQL Server, Oracle
Language
Mandarin (Native)
English (Fluent)
Others
OAuth 2.0
OIDC
Education
National Tsing Hua University
Master of Computer Science
Jan 2015 - Jan 2017
- Created a flexible 168-PE accelerator to simulate CNN (Alexnet) based on Eyeriss project (MIT), using Chisel (Scala based language developed by Berkeley) and built a base for a new 4-years project.
- Served as the teaching assistant for the university CS courses.
- GPA: 4.2 of 4.3
National Central University
Bachelor of Computer Science
Sep 2010 – Jul 2014
- Worked with Taiwan Landseed Hospital for 2 industry-academic collaboration projects at the same time. (2013-2014)
- An e-learning website for medical residents.
- A rehabilitation app. (HTML5, PHP, JavaScript, and MySQL)
Adward
- TSMC Outstanding New Staff Award (Sep. 2017)
- Awarded 2nd place prize out of 25 new staff members for knowing technologies used by company well through 12 training sessions.
- Academic Excellence Awards (2012 - 2014)
- Awarded 3rd place prize for academic excellence 4 times.
- National Central University Computer Science Project Contest Adward of Excellence (Feb. 2014)
- Developed industry-acdemic project: cross-platfrom and wearable stroke rehabilitation system for new generation pervasive healthcare