Mercari is a marketplace app that makes it easy for people to safely sell and ship their things. Having been downloaded over 100 million times, it is now among the largest peer-to-peer selling platforms globally.
Though we have over 1,800 employees, we still have a startup culture, where we encourage people to come up with big, crazy ideas, and to not be afraid of failure. Because the company is rapidly growing, you can set your own path, and there is enough transparency to allow our members to do so. For instance, at our all-hands meetings, every single member is encouraged to ask questions directly to our executive team.
We’re a Japanese company, but are building a global work culture, and so we provide a great opportunity to experience a blend of Japanese and international culture. We relocate developers from around the world to join our team, and provide translation and interpretation to smooth communication between members.
We want our employees to be able to give 100% both inside and outside of the office, and our benefits reflect this. These include providing language education, financial support for childcare, and allowing you to pursue paid side gigs outside of working with us.
Our response to COVID-19
In response to COVID-19, Mercari began its work-from-home policy on February 19, 2020. On September 1, 2021, Mercari introduced a work style policy called “Your Choice.” Each member is free to choose whether they want to work in the office or work fully remote.
About the position
At Mercari, we have been making changes in order to implement a microservice architecture on the backend of our app. However, some of our core systems (for example, the Item Transaction feature) are still running as part of the PHP monolithic application that has supported our growth so far. Our team is responsible for developing and maintaining these core systems. Given that the systems are complex and have a long history at Mercari, agile development remains a challenge for us. To solve this, we have to ensure that our core systems are loosely coupled in order for us to both augment these systems and contribute to our business growth going forward.
The Mercari Engineering Division has defined this new direction as building a “Robust Foundation for Speed.” In order to achieve our company mission under this new direction, rather than migrating to microservices, we have taken on a more essential and worthwhile challenge: modularizing. Specific work responsibilities for this position include the following:
- Developing and maintaining core features (PHP or Go, etc. as needed)
- Designing loosely coupled/modular systems
- Working with PMs on a series of development tasks (plan, design, implementation, QA, release, etc.)
- Investigating inquiries from customer support or other development teams
- Conducting system operation tasks, including responding to alerts while on call
Besides your software engineering skills, in this position, you will be able to utilize comprehensive problem-solving skills. You will need to approach these problems by setting and testing hypotheses, and you will need a lot of curiosity and attention to detail in order to tackle core systems that run a huge number of item transactions everyday. These are important systems that handle user assets, so it’s important to go beyond our team’s domain to understand the features’ end-to-end behavior and how they relate to other features. Some features, however, can be hard to fully understand simply by reading the code because they are too complex or old. This will require that you embrace some level of uncertainty and strategically set and test hypotheses to check them. Additionally, you will need to always keep your goals in mind and try to find solutions thinking outside the box.
- Shared belief in Mercari’s mission and values
- Experience developing and operating systems for large-scale products, selecting technologies and improving their codebase
- Experience in API development using programming languages such as Go, PHP, or Java
- Experience in designing and developing with databases (MySQL or similar RDBMS)
- Ability to design and develop products while considering performance and scalability
- Extensive knowledge of object-oriented software development, networks, memory management, and software testing
- Good communication skills to collaborate with stakeholders and teammates on product development
Nice to haves
These aren’t required, but be sure to mention them in your application if you have them.
- Domain knowledge in e-commerce, order management, payments, shipping and delivery, etc.
- Experience with project management or team leadership
- Experience with Scrum
- Experience developing and operating systems using microservice architecture
- Knowledge of and experience with databases (RDBMS/NoSQL), networks, Linux, monitoring systems, logging, and SLO/SLA
- Experience with software development in the cloud (GCP, AWS or Azure)
- Experience contributing to an open-source project
- Basic Japanese ability