Mercari’s engineering organization has transformed dynamically over the years to match the scale of its business operations and the different phases of its services. To remain innovative, we have incorporated state-of-the-art development styles and arranged them in our own, original way to create a system for development, all while constantly embracing and learning from trial and error.
In addition to development and organizational structure, we have also taken a firm approach to the technologies we have adopted and our development domains. In this article, Mercari CTO @kwakasa reflects on the history of the Mercari engineering organization and introduces a project he is considering that aims to address issues. He also discusses his ideal engineering organization that could be made a reality after addressing those issues.
This interview aims to provide a clear picture of the determination and pride necessary for achieving our mission at Mercari.
Mercari’s engineering organization to date
— You started working at Mercari in 2019, so it’s been about two years. Although this was before you joined the company, can you tell us what the engineering organization was like prior to 2019?
Sure thing. Going too far back is a bit difficult, so let’s start from 2017. Mercari, as a company and as a service, had enjoyed stable growth thanks to the strength of its products and the loyalty of its large customer base. Starting in 2017, we established our goal of forming a world-class engineering organization to further enhance our products and raise the bar even higher.
Running a world-class engineering organization entails having a development organization and environment that not only attract talented engineers from around the world but also enable us to create products beloved globally. This can be considered essential to achieving Mercari’s mission of creating value in a global marketplace where anyone can buy and sell.
If we can make this a reality, we can accelerate the process from development to delivery and provide products that are safe for customers to use. Of course, the foundational technology that supports this endeavor is also important. We’re still in the process of creating this organization now, four years later.
— So since 2017, you’ve taken a step toward creating a structure that is more globally conscious. What about 2018, the following year?
There were three major changes in 2018.
Before we introduced the EMs, the product owner managed the engineers and designers. We changed this to a system in which EMs evaluate the engineers. I myself believe that engineers should be evaluated by other engineers, so I feel that this was important in achieving our goal of becoming a world-class engineering organization.
Next, there was the microservices migration. Up until that point, Mercari’s system was what is referred to as a monolith. A monolith consists of a single backend containing the business logic and databases. This is not to say that monoliths are bad, but with a monolithic architecture, all the business logic and data tends to be tightly coupled. In a tightly coupled system, small changes to the system can affect every part of the system, which makes development time consuming. To address this, we promoted microservices.
*Ref: メルカリのマイクロサービス移行の進捗 (2019年冬) (Japanese article)
We are also seeing solid results in the hiring of overseas engineers. Currently, about half of the personnel at the Tokyo office of Mercari’s engineering organization are overseas engineers.
— So the methods that are now considered the norm at Mercari were established in 2018. How about 2019?
There were three major changes in 2019.
Merpay was released on February 13, 2019. At the time, we released the product upon investing a significant amount of internal development resources. The EMs must have had quite a heavy burden, since we were undergoing a culture change with the increased number of engineers from overseas and we were in the midst of migrating to microservices.
In addition, we introduced scrum as our agile development framework in 2019. Currently, almost all our teams are engaged in agile development.
Lastly, we established frontend and backend systems. This is related to our migration to microservices. We divided the systems to put some distance between the backend team and the development of new features and to focus more on architecture migration. For this reason, we delegated new feature development to the frontend team.
— And then we have 2020.
That’s right. There are two main points regarding 2020.
First, the introduction of the Camp System was a big deal. We had been working on frontend and backend systems since 2019, and the magnitude of the communication costs became apparent. When you create a new feature on the frontend, the backend doesn’t usually end up being irrelevant. Also, it usually isn’t the case that you end up changing only one feature. When you improve one feature, other features are affected as well. This increases the cost of communication with other teams.
To remedy this, we introduced the Camp System. This system is based on Spotify’s development model and customized to fit the Mercari style. The key concept is to create more cross-functional teams. A single Camp contains not only EMs and PMs but also people in all kinds of other roles, including frontend, backend, and machine-learning engineers. We changed to a system that emphasizes cross-Camp communication to deliver value to our customers.
Also in 2020, we launched a project to revamp the frontend. We started with the web version, which we developed from scratch and released recently.
— Finally, we have 2021.
In 2021, we are working on solving the complex technical problems contained within the shared business infrastructure. This is a large-scale code refactoring initiative that we refer to as Robust Foundation for Speed, or RFfS.
— Can you tell us more about RFfS?
Sure. There are a number of reasons for RFfS, but first and foremost, creating products that customers can use safely requires strengthening our infrastructure. Of course, we’d invested in our infrastructure in the past, but we felt that we needed to make even further investments.
That being said, expanding our business beyond the C2C marketplace required us to take on new challenges more rapidly than ever. And a robust foundation is essential to such an effort. RFfS is a policy that we implemented to make both a robust foundation and rapid development a reality. The following is a hierarchy diagram that shows our technical efforts to date.
The frontend revamping project is aimed at improving the parts of the system that customers actually interact with, such as mobile apps and web apps. Microservices migration refers to improving the infrastructure, which corresponds to the lower layer. RFfS is a project with the goal to strengthen the shared business infrastructure that lies between these two.
There are several areas that RFfS will tackle first. The first is the area related to the buying and selling of products, which at Mercari is called “Transactions.” The second is the ID platform for authentication and authorization, and the third is our customer support tools (CS tools). In addition, we will also enhance security.
What to expect from RFfS
— Having looked back on the period from 2017 to 2021, I’m still curious about the RFfS initiative. What are the key points required for the implementation and success of this project?
One of the reasons why we launched RFfS was that the complexity of the infrastructure was slowing down development. This is largely a matter of personal experience and subjective perception, but everyone felt that even small changes were taking a significant amount of time. For this reason, we want to improve the situation using RFfS by visualizing the current situation first. To this end, we are simultaneously advancing a project aimed at visualizing the status of development as well as development productivity.
Also, we have not set an absolute numerical goal, such as doubling development speed. What’s important is that we quickly provide products that can be used safely by customers. Pulling this off requires quickly implementing and delivering the necessary functions and services. Our goal through RFfS is to reduce and narrow the gap between the estimated time and the actual time required.
Mindset required of Mercari engineers
— Can you tell us about the organizational challenges you’re currently facing?
To put it simply, I want to instill an “accountable autonomy” mindset. “Accountable autonomy” means working independently and proactively with accountability.
As I mentioned earlier, at Mercari, the Camp System combined with microservices has made it possible for teams to improve and release their own systems. This is the very essence of “microdecisions” (advocated by former CTO @suguru), enabling teams that can make decisions autonomously to develop more independently. I’m looking to take this to the next level.
While microdecisions are, of course, important, we must not lose sight of the problem we are trying to solve. As we become increasingly optimized for individual teams, it becomes more difficult to see the big picture. It’s important to remember not to become complacent. Mercari is not a technology provider, but a company that provides products to customers. We must always be conscious of providing value to our customers.
In addition, it is important for engineers to be proactive in identifying issues and actively working to solve them, rather than adopting a passive stance. I believe that engineers should be problem solvers.
This is what I mean by accountable autonomy. If we can successfully foster an accountable autonomy mindset within our engineering organization, I believe that Mercari can cultivate a world-class engineering organization.
— This problem-solving mindset is required because the challenges themselves are becoming more difficult, right?
That’s right. There are still many challenging issues left to be solved at Mercari. We need engineers who can solve such issues independently.
At Mercari, we place an emphasis on diversity and inclusion (D&I) in our hiring activities. This primarily means diversity in terms of gender, age, and values. I believe that diversity is essential in the engineering field as well.
I think there’s a wide variety of engineers: some enjoy developing new features, some want to work on infrastructure, and some want to improve DX (developer experience). This varies depending on the technology stack they are interested in, the business domain, and the scale of the service. I want everyone to know that Mercari provides opportunities to work in a wide range of engineering domains.
What’s important is doing what needs to be done in a proper manner without being restricted by any particular method. I hope to work with engineers who can solve problems to create a world-class engineering organization.
— Thank you very much!
Mercari is currently hiring. If you are at all interested in joining us, please take a look at our career page and the special page for Robust foundation for Speed.