The Product Team consists of about 250 engineers and about 40 product managers and designers.
The team of engineers include front-end engineers who develop iOS/Android apps and web, back-end engineers who compose microservices, and engineers that work across teams to support the front-end and back-end engineers such as platform engineers, SRE engineers, data engineers, and QA engineers.
The product managers are responsible for growing the product by communicating with each person in charge of the business domains as well as sales, marketing, customer support and other internal departments.
There are team members from around 35 different nationalities, and about 40% the team members are Japanese. To make the most of the diversity, we try to avoid having too many people with the same background being assigned to the same team. As for communication, we use both English and Japanese. If there’s someone in the team who doesn’t understand Japanese, we use English. There is also a team of interpreters who can provide assistance in meetings if necessary, in addition to which, many team members also take English and Japanese classes. When it comes to written communication, there are many excellent translation tools available, so the belief that is maintained is that it’s not the ability to communicate but the “willingness to communicate” that is important.
PayPay consists of a group of microservices, and accordingly, the backend in particular is divided up into teams by different domains. There are more than 100 microservices both large and small, which are developed and managed by around 10 teams. On average, there’s about 10 people in each team.
PayPay uses Amazon AWS for its infrastructure, building Kubernetes clusters on EC2 instances and running applications on them. We mainly use Java for backend development, with some teams also using Kotlin, Scala and Node.js. Spring boot is used for the Java framework. As for DBs, we use Amazon Aurora DB which is compatible with MySQL, TiDB which has a distributed architecture, DynamoDB for NoSQL, ElasticSearch, Redis, etc. depending on the purpose. We also use Kafka for asynchronous processing.
On the front end, Swift is used for iOS, Kotlin for Android, and Vue.js as the main framework for web.
The past 2 years has been a continuous sprint – new values and ideas are incorporated every day even now, so there is no clear-cut definition of what the PayPay Tech Team’s culture is.
One thing that can be said though is that we learn quickly from our mistakes. We are a group of people from different backgrounds, and arguing who is right or wrong doesn’t lead anywhere. The key is to identify things that must not fail, in order to provide a safe and secure payment service. Based on that, we try out whatever is thought to be best for things that are not necessarily critical even if they fail, learn quickly from the results, and avoid repeating the same mistakes.
Multiple services are released basically everyday across the different microservices that make up PayPay’s backend, and the PayPay app itself is upgraded every week. Such a development style is what allows us to “learn from our mistakes quickly”.
PayPay is now used by many people, but it still remains a new service. There are also still many scenes in Japan where cash is required, so there are a mountain-load of outstanding things that we want to do to help transform Japan into a truly cashless society.
We also believe that taking on such a challenge, working together on the development with a team of unique individuals, presents a rare opportunity that is hard find elsewhere. If there is anything you find interest in through the series of articles that will be published, you are more than welcome to knock on PayPay’s door. We look forward to seeing you on the team!
- See here to see open positions
- Join our back-end/iOS/android engineer recruiting event on February 10.
- Author & Editorial Supervisor: Mune
- Managing Editor: az (PayPay Inside-Out)
* Employees’ affiliations are those of the time of the interview.