• menu

Tech Talks Vol.17 - Backend Engineer

Az

08/18/2022

About Tech Talks

In this Tech Talks series, we will share with you the attitude and vibe of the PayPay Tech Team through the voices of the unique product members from around 40 countries! This time, Pranav Gajjewar from the O2O Team will share his story.

Pranav Gajjewar

Pranav Gajjewar

Backend Engineer

My name is Pranav Gajjewar and I am from Maharashtra, India. I joined PayPay in July 2021. I joined PayPay’s O2O (Online to Offline) Team as a backend engineer.

*The Japanese version of the article is also available here.

What I’m working on currently

I am currently working as a backend engineer in the Coupons Team. O2O handles offline to online features of PayPay, like Coupons and Stamp Cards. I am involved with developing new features for Coupons and launching new O2O products that we are working on. I am responsible for all the platform and SRE related tasks like setting up monitoring, alerting, security updates, and other tech initiatives for all O2O services. We have 30+ microservices that support the O2O features. Apart from this, I work on tech and performance improvement projects within the team. I am also the security champion for the O2O Team and ensure the stability and security of the system.

A technical challenge I experienced recently

At PayPay, we allow merchants to add their own images to show to users. But we were facing a problem because some of them would add images of very large sizes.

Large-size images are not good because it takes more time to load for the users and it looks like the app is slow. Since it is shown on a mobile device and as a small component on the frontend, there is also no benefit in having an image larger than is necessary.

The problem with resizing images at the time of upload was that we only could resize to some limited sizes. Going forward, if we changed the UI and needed images of a new size, it would not be easy to support. Taking this into consideration, changing the flow from where merchants upload images was difficult to implement in a short time. There was also the matter of images that were already added. We needed a flexible solution that we could extend in the future with minimal effort.
The images were being served as follows:

*DMS (document-management service) is the service which manages all the merchant uploaded assets.

So we came up with a solution for dynamically resizing the images as per the app requirement using AWS Lambda.

This way, the app could specify the resolution of the image that it required. If the required image was already present, it would be served through the cache. Otherwise a lambda function would fetch the image from DMS service and resize it accordingly and return. It would also get cached for the next time the same image is requested for a similar resolution.

By taking into account the device display size and the UI component size, we could optimize the images to take minimum bandwidth without affecting user experience. We can now turn an image of size 1-5 MB into < 100 KB without any perceived loss in quality by the user.
We can also change the lambda logic to extend and support more sizes as per client requirements.

We did a proof of concept of the solution, tested it, and were able to roll it out for all the coupon and stamp card screens in the PayPay app within a span of just two weeks. You can see from the following graph that we were able to significantly reduce the amount of bandwidth transferred from our CDN.

Serving optimized images speeds up the app loading time and gives a better experience for the users.

Challenges I want to take on at PayPay

I want to keep getting better as an engineer by tackling bigger and more complex challenges. Thankfully, I have plenty of opportunities to do that at PayPay. Hopefully I can overcome them and become one of the best engineers at PayPay!

My typical schedule

My typical day begins with catching up on all the communications over Slack and email. After that, I start work on the ongoing project whether it is coding, testing, reviewing or planning. My day to day work mostly involves working on backend services in Kotlin and Java using Spring Boot. For platform projects, I get a chance to work on a very wide range of technologies and tools like Terraform, AWS Lambda, AWS Personalize, Spark, etc.

In terms of meetings, we have a team daily sync meeting where we talk about our tasks status and discuss if there are any blockers within the team. Apart from the daily sync up, we also have sprint grooming and sprint planning meetings on a biweekly basis where we estimate the tasks and assign them to team members.

PayPay has a flextime system, so if you want to take some time off during the day to do some personal tasks it is easy. You can manage your own time and still accomplish everything you need to.

My career before joining PayPay

Before joining PayPay, I worked as a Clojure backend engineer for 1.8 years at a CRM SaaS company. It was my first job and I learned a lot about how to build scalable backend systems during my time there.

Why I decided to join PayPay

I wanted to work in an organization where I could make a difference and create an impact for the users. I am very interested in technology and how we are using it to transform everyday life. One aspect of that is how we use money and I believe technology can play a huge part in improving that. I was always fascinated by the cross section of finance and technology. So I wanted to work in a company which was bridging the two.

PayPay has been making huge strides in promoting cashless payments in Japan and I was excited to be a part of that mission.

Attractive points about working in PayPay

I think the attractive point of PayPay is the multicultural and diverse environment, where you work with people from all over the world. There are a lot of talented people at PayPay and you can learn a good deal from working with them. You also have a culture of open and unfettered communication where you can raise a question to anyone you want. Overall, this creates a really good work environment.

You also have opportunities to create a lot of impact as long as you are ready to take responsibility. The only thing limiting you is yourself.

Message to aspiring PayPay employees

It is okay to not know the same technologies we use as long as you are willing and able to learn fast. I remember when I was interviewed, I told them that I had never worked with Java and Spring Boot but they still gave me an opportunity and I was able to adapt very quickly after joining.

I think what really matters is how quickly you can learn and whether you can get things done.

If you are someone who can work in a flexible and fast-paced environment and love to tackle challenges at technical and organizational levels, then you will find plenty of opportunities and support to do that at PayPay.

Currently available positions


Author: Pranav Gajjewar / Editorial Supervisor: Mune / Managing Editor: Az
*Employees’ affiliations are as of the time of the interview.