Slide 1

Slide 1 text

Mercari Tech Conf 2017 Head of Engineering, Souzoh Tatsuya Tsuruoka Keynote

Slide 2

Slide 2 text

4 years since the app release 7.5m downloads (Japan/US) Monthly GMV over 10b yen 3 regions Over 100 software engineers

Slide 3

Slide 3 text

How Mercari was Created

Slide 4

Slide 4 text

No content

Slide 5

Slide 5 text

Have too many things ↓ How to use them? ↓ Sell to someone else Smartphone usage rising worldwide A new era: anyone can use a smartphone app to sell things to other people Mercari’s Business Concept

Slide 6

Slide 6 text

To realize this concept, we must keep in mind… Move faster than the competition Make use of our late start 2 How to list items: Anyone should be able to list an item easily 1

Slide 7

Slide 7 text

App DB Master DB Slave App Backend read/write replication read App App LB LB Cache NDB NDB NDB NDB MySQL NDB Cluster Infrastructure? For example, a common structure

Slide 8

Slide 8 text

Issue: Infrastructure ★Final Decision Everything on 1 high-end server From the regular minutes on April 6th, 2013

Slide 9

Slide 9 text

Architecture and Technology Stack Server Client ・HTTPS + JSON API ・MVC ・Linux + Apache + MySQL5.6 + PHP5.3 ・Dedicated server: 6core * 2CPU, RAM64GB, SSD200GB ・Provides 95 types of API ・iOS/Android native + WebView DB Master App

Slide 10

Slide 10 text

No content

Slide 11

Slide 11 text

Feature #751 Considering a search feature - look at usage by Shintaro Yamada, 2013/06/01 Why No Search Feature? Users No hits = bad experience Developers Building a search system takes time

Slide 12

Slide 12 text

A B

Slide 13

Slide 13 text

A 1200x1200 JPEG Quality 100 ~1MB B 612x612 JPEG Quality 80 48KB

Slide 14

Slide 14 text

HTML5 Native Users Developers ✕ ◯ ◯ △ Make timeline native

Slide 15

Slide 15 text

May 2014 56 tickets involving load issues Dealt with in two months Full-blown load tests Introduced cache TV Commercials

Slide 16

Slide 16 text

・Single infrastructure ・No search function ・Optimizing images ・Making timeline native ・Load issues for the TV ad ・...And many more... Hurdles Understand the business concept  ↓ Decide which issues to solve  ↓ Make bold decisions The start-up phase

Slide 17

Slide 17 text

Mercari Tech Conf 2017 VP of Engineering Sotaro Karasawa Scalable and Elastic Engineering Team

Slide 18

Slide 18 text

Development Team Structure in Each Region San Francisco London Tokyo

Slide 19

Slide 19 text

US Office

Slide 20

Slide 20 text

UK Office

Slide 21

Slide 21 text

Mercari’s Expansion Strategic expansion into new regions Continued focus on Mercari UX improvements Creation of new platforms

Slide 22

Slide 22 text

Growth of the Dev Team Structure

Slide 23

Slide 23 text

Monthly API Project Insights on 2,500+ Commits 400+ Merged Pull Requests 120+ Active Branches

Slide 24

Slide 24 text

Continuously Evolving with Expansion

Slide 25

Slide 25 text

Continuously Evolving Souzoh ● Birth of a new subsidiary to develop and run new enterprises ● CtoC in new areas, expanding Mercari to specialize in certain areas ● Released new services like Atte, Kauru, Maisonz Small organization, delegation of authority A completely new challenge Making a platform

Slide 26

Slide 26 text

Continuously Evolving US Growth ● Continue to evolve on the organization side to grow the business ● Help from Japan at first ● Currently localizing the organization Help from Japan at first Dealing with local demands Gradually localizing

Slide 27

Slide 27 text

Continuously Evolving Client Source Code Fork ● At first, to optimize resources, used multiple binaries with one source ● Different cultures of different countries ● Developed to meet users’ needs ● So small teams can make decisions quickly Merits to sharing at first Delegation of authority Optimizing UI/UX

Slide 28

Slide 28 text

JP US UK

Slide 29

Slide 29 text

Mercari’s Dev Team Structure

Slide 30

Slide 30 text

Mercari’s Project Team JP US UK SRE (Site Reliability Engineer) QA/SET (Software Engineer in Test) Seller UX PJ Manager Designer Server Side iOS Android Frontend ... Growth PJ Manager Designer Server Side Frontend ... ... Search PJ Manager Designer Server Side iOS Android ... ... ... UK Manager Designer Server Side iOS Android ...

Slide 31

Slide 31 text

Cross-Region Engineering Team Supporting the Project Team QA/SET (Software Engineer in Test) Engineering Operations SRE Site Reliability Engineer Provides a sense of reliability (“can always use the product comfortably and safely”) to users. Not just in charge of the infrastructure; responsible for reliability as well. Responsible for the quality of software. In the Project Team, QA does manual tests and SET does automation and provides environments. Responsible for developing the team structure and hiring. Takes the lead for hiring, internships, branding, and presence expansion.

Slide 32

Slide 32 text

Mercari’s Values Go Bold All for One Be Professional

Slide 33

Slide 33 text

Mercari’s Values Hey guys, we changed the WiFi settings on the Souzoh side of the office, but it looks like it’s got a bit unstable. Went ahead and changed the settings back! Really sorry for the inconvenience.

Slide 34

Slide 34 text

Mercari’s Values Go Bold All for One Be Professional

Slide 35

Slide 35 text

Scalable and Elastic

Slide 36

Slide 36 text

Scalable and Elastic Elastic Scalable The number of engineers will grow to 500, 1000, even 2000 people globally Trends change daily ● Speed and efficiency of development shouldn’t drop ● The product quality shouldn’t drop ● Should bring out 100% of each individual’s abilities ● Should be able to commit right away even if moved to another team ● Should put people on areas that need more power to raise the development speed Both new and experienced engineers should be able to grow naturally

Slide 37

Slide 37 text

Mercari Tech Conf 2017 CTO Suguru Namura Technology Strategy At Mercari

Slide 38

Slide 38 text

Current State of Mercari Engineering

Slide 39

Slide 39 text

Japan ・Introducing new tech (like Mercari Channel) ・Increased complexity from platformization ・Scaling of databases ・Optimization of content distribution ・Better UX through improved search precision

Slide 40

Slide 40 text

US ・Growth and feature improvements ・Architecture reforms and code refactoring ・Adding US-specific features ・Automation of trouble prevention and fraud detection

Slide 41

Slide 41 text

UK ・Still in start-up phase ・Implementing UK-specific features ・Very diverse team

Slide 42

Slide 42 text

Mercari Code of Engineering Conduct

Slide 43

Slide 43 text

-1- Ownership

Slide 44

Slide 44 text

Microservices Architecture

Slide 45

Slide 45 text

Low onboarding costs Ownership Rapid deployment Simple testing Small teams Team discretion Clear areas of influence

Slide 46

Slide 46 text

Ownership Low onboarding costs Rapid deployment Simple testing Small teams Team discretion Clear areas of influence

Slide 47

Slide 47 text

Microservices Monolithic

Slide 48

Slide 48 text

How are you handling the transition to microservices?

Slide 49

Slide 49 text

Our approach to microservices Mercari API MySQL Solr

Slide 50

Slide 50 text

Our approach to microservices Mercari API Database Solr API Gateway

Slide 51

Slide 51 text

Our approach to microservices Mercari API MySQL Solr API Gateway Search Service Offer Service Search SaaS Cloud Spanner

Slide 52

Slide 52 text

Our approach to microservices API Gateway Search Service Offer Service Search SaaS Cloud Spanner

Slide 53

Slide 53 text

-2- Automation, Karakuri

Slide 54

Slide 54 text

Examples of automation in action Go Bold Bot ■ Bot that handles Mercari’s 400+ deploys each month

Slide 55

Slide 55 text

Examples of automation in action “Tonkotsu” bot Account Bot (↑↑This is a bot that checks the App Store/Google Play to see when our updates have been published)

Slide 56

Slide 56 text

Examples of automation in action e2e Test Platform

Slide 57

Slide 57 text

An environment that encourages Karakuri Problem occurs ↓ Look for the cause ↓ Think of ways the problem could have been prevented ↓ Implement the solution from above ↓ Now the problem won’t happen, even if we mess up Mercari

Slide 58

Slide 58 text

-3- Progressive

Slide 59

Slide 59 text

Always looking for the best solutions Progressive Web Apps

Slide 60

Slide 60 text

New Technology

Slide 61

Slide 61 text

AI & Machine Learning

Slide 62

Slide 62 text

Mercari Machine Learning Use Cases Already implemented Testing and researching ・Price suggestions based on text input ・Improved search results through search intent predictions ・Suggestions based on demographic/interests ・Productivity support for CS team ・Image- and text-based price suggestions ・Replies to tier 1 CS inquiries ・Optimization of onboarding process ・Automated detection of illicit listings ・Image-based automated recognition of category/brand/color

Slide 63

Slide 63 text

Machine Learning Platform

Slide 64

Slide 64 text

Machine Learning Platform Overview (Simplified) Training Manager Training Definition Training Program Model Storage API Serving Cluster Training Cluster

Slide 65

Slide 65 text

Blockchain

Slide 66

Slide 66 text

C2C Marketplace × Blockchain = ?

Slide 67

Slide 67 text

Code of Engineering Conduct Ownership Automation & Karakuri Progressive