2024-3-12
Combining Accuracy and Efficiency to Develop the No. 1 Inhouse Accounting System in Japan—Why I Work Here (Yuki Watanabe)
Hello! This is Yuki Watanabe from the Accounting Products Team. I’m currently an engineer, but I used to work in accounting. These two areas seem very much unrelated at first sight, but actually, I have been able to make good use of both of my backgrounds in Mercari’s Accounting Products Team. In this article, I will report on how my career evolved throughout the years, the joys of working in the Accounting Products Team, and the issues the team is trying to address.
Featured in this article
-
Yuki WatanabeYuki joined Keiyo Gas Co., Ltd. after graduating university and worked in the accounting department for six years, where he was responsible for compiling financial results. While exploring options to improve his work efficiency through trial and error, he gained an interest in software development, which eventually shifted his career. He joined Eiwa System Management, Inc. as a programmer, working on multiple projects that adopted Agile development. He then joined Mercari as a software engineer in 2022. He is currently working on the development of Mercari’s accounting systems in the Accounting Products Team.
Shifting careers from accounting to software engineering and eventually joining Mercari
Joining a local gas company after graduation
After graduating university, I joined a gas company in Chiba Prefecture, which is where I’m from. I worked there for six years, in the accounting department. I experienced a wide range of duties there, such as filing taxes, compiling financial results, and writing annual securities reports. I found fulfillment in creating financial reports, as I knew that they would have a great impact on the decisions made by top management.
Most of the work in the accounting department was done manually back then. We would draft documents on paper, have them stamped physically, and checked visually. At some point, I started wondering if there was a more effective way of doing these tasks. I felt that I wasn’t cut out for that sort of analog work, so I started using Excel to find solutions on a trial-and-error basis.
As I explored technical solutions, I began to ask myself what I really wanted to do in life. My interests and pursuits seemed to be not in accounting, but rather in solving issues in back-office operations. Eventually I felt the desire to build software that would make people’s work more convenient. I started to study programming and other IT subjects in my own time.
Transferring to a development contractor with a growing passion for programming
Soon after, I was consumed with a fascination for programming. I had no experience in engineering or the tech industry overall, but I was able to transfer to a development contractor company as an engineer.
After a year, I was able to hold my own as an engineer. It was around that time that I remembered my motivation to solve problems in back-office operations. Especially because I was personally concerned with how much analog work there was in accounting, there was a dormant but growing dream to make use of both of my backgrounds, engineering and accounting, to resolve the issues in that area.
Joining Mercari in pursuit of the intersection between accounting and engineering
My next battleground was to be Mercari. I was already a fan of the service since the first time I ever listed an item on it in 2014. When I saw the job posting for Accounting Products, a team in charge of developing inhouse accounting systems, I just knew I had to apply.
In the end, I chose Mercari for two reasons. The first is how close the “user base” is. And by that I don’t mean Mercari users, but our coworkers that will use the accounting systems built inhouse. I thought it would be very interesting to be able to receive immediate feedback on what you deliver and run improvement cycles swiftly.
The second reason was the abundance of opportunities for technical growth. Prior to Mercari, I had no engineering experience working on systems that handle so much data or traffic. I thought being involved in such a large-scale service would offer many opportunities to learn about various technologies.
Going beyond the borders of engineering work and taking on bold challenges
A team mostly in its members’ discretion
As the Accounting Products Team, we have the mission of visualizing the flow of money within the company. Our team supports the Accounting Team so that they may go on with their tasks smoothly and more effectively as they work in the same pace as all businesses operated by Mercari and Merpay, which of course requires the movement of money.
The work we do involves operating and maintaining the accounting systems, developing new features for them, and also considering integration with accounting systems used by Mercari Group’s new businesses. We have three accounting systems under our supervision, and as we support these systems with few people, much is left to the discretion of each team member.
Our main tech stack is Go, Kubernetes, and GCP. However, most of us did not have mastery of all of these technologies before joining the company. We have developed our understanding by on-the-job training and reading up on official documentation.
Optimization of GCP resources over a year
In early 2023, around six months after I joined, the company took on the initiative of reducing GCP costs. The accounting systems we oversee store all of the data regarding money-related transactions within Mercari and Merpay, which is a lot. As a result of this, GCP expenses for our accounting systems are extremely high compared to GCP expenses for other microservices deployed in the company, which meant that reducing these costs had suddenly become an urgent matter. Two members of the Accounting Products Team were assigned to this project. I worked on optimizing Cloud Spanner, while another member did the same for Cloud Storage. (Click this link for more details on what we did for Cloud Storage. *Only available in Japanese)
However, as there are laws that stipulate the duration of time for which we must store accounting information, we could not delete any data just for cost-reduction purposes. We aligned with stakeholders such as Accounting and internal auditors to find the right balance between cost reduction and operations, and created data deletion rules that served as a nice compromise for both purposes.
But when we actually began to delete Spanner data, we ran into multiple problems. For example, we discovered data sent by other microservices to the accounting systems unexpectedly, bringing our data deletion efforts to a halt. We reviewed the design of APIs and batch jobs, addressing each issue one by one.
The data deletion and infrastructure revamp were finished in December 2023, marking the completion of the project as well. As a result, we were able to reduce GCP costs incurred by the accounting systems by half. We weren’t able to get to automation, but creating rules for data deletion and establishing a set of operations has definitely alleviated the potential workload for future data deletion efforts.
Thanks to this experience, we now have a deeper understanding of how Cloud Spanner handles data. Because processing time was expected to take weeks, we considered various measures to minimize the impact on production. Ultimately, we made use of two deletion methods: Partitioned DML and Dataflow, which we alternated depending on the characteristics of each given table. I believe this experience of handling such a large amount of data is sure to come in handy in future work down the line.
Moreover, while I am an engineer, I found the experience of being involved in the project beyond just development work to be quite valuable. Especially because it was my first time negotiating with other teams, I learned that in order to make a big impact on a large-scale organization, you need to be skilled at close communication.
I&D on the rise—A team with high psychological safety
The Accounting Products Team is made up of people of diverse backgrounds. We have an engineer originally from the Android team, an engineer with experience as a secretary and interpreter, and an EM and PdM previously involved in SaaS development, adding up to quite a unique team roster. We also intend to take in new graduates in the spring of 2025.
In our weekly backlog refinement sessions, the backlog is not created by the PdM alone. Engineers raise issues they have noticed, and these are proactively included in our backlog, which I think is characteristic of our team. Team members, not satisfied with the current systems, continue to share issues with the team and prioritize them so that they may be addressed later. Everyone is able to make use of their background and take ownership of their work, seeing it through to the finish line. It is all very exciting.
Even though each member has ownership over their work, we still discuss matters as a team, no matter how small they may be, and work together to come up with solutions. The mentality of Inclusion & Diversity (“I&D”), a point of focus for the whole company, is quite strong in the team, which makes consultations and/or discussions feel psychologically safe.
We hold I&D workshops in the team with the EM’s guidance. In terms of language use, even though all current team members are Japanese nationals, we all try to keep up with our English practice so that we can smoothly communicate with other coworkers in English. One team initiative for that purpose is holding our daily stand-up meetings in English once a week.
Taking Accounting Products from defense to offense
With that said, there are still some areas where our team is looking to improve. Currently, our team takes a rather passive approach. Our work is focused on resolving issues with system operations and projects that are led by the business side, so most of the time, we are on the receiving end of requests. Of course, such endeavors are vital for the conduct of business, but I would like our team to switch its position from “defense” to “offense,” so to speak. For example, the team is creating a new system to handle accounting master data. The development is partially complete, but it hasn’t been released yet. In other aspects, I would personally like to ask the Accounting Team about the issues they face, so that I may actively try to solve them. Approaching stakeholders to address potential problems is the kind of active work I would like to do.
We have some technical issues as well. Most of these are on the middleware and infrastructure layers, such as query times being too long due to the substantial amount of data used, or there not being enough monitoring set up. We are in the process of prioritizing and addressing each issue one by one.
Why I work in the Accounting Products Team
One of the things I take care to do properly in the Accounting Products Team is to communicate my questions and opinions proactively. As mentioned above, we are a small team of a select few that is in charge of developing and operating multiple services. Given the size of the team, each one of us is expected to take initiative and demonstrate ownership over our own tasks. This also means that your voice is heard, and you will have the opportunity to make a direct impact on the quality of our accounting systems. This role comes with a certain level of pressure, but you will be encouraged to try new things and make mistakes along the way. It will present you with many opportunities to learn and grow as well as experiences that will prove valuable in your career as an engineer going forward.
It is also quite a challenging technical environment. Our accounting systems handle data from all of Mercari Group’s businesses using APIs, and as our businesses grow, so does the number of requests. Currently, there are upwards of hundreds of millions of requests being made every month. As part of our Accounting Products Team, we have the opportunity to develop and operate systems to handle such large-scale data, which I find to be all unique to Mercari. The technologies that support these services, such as Go, Kubernetes, and GCP, each offer so many things to learn about.
Another interesting aspect is that you can study not just the systems you are in charge of, but Mercari’s overall architecture and each microservice within its structure. The services offered by Mercari have a total MAU of 23 million. Working here allows one to understand what kind of architecture can make such a large-scale service possible, and what some of its issues may be.
While I have achieved my initial objective of putting both of my backgrounds to use by joining Mercari, I feel like I still have a long way ahead of me. I will continue to learn from accounting and engineering specialists in the company and take on challenges to have a major impact on my team and the company at large. I would like to work with people that have even more diverse skill sets than mine as well. Developing the number one inhouse accounting system in Japan that combines accuracy and efficiency—this is my personal ambition.