Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Mercari Engineer's meetup for students vol.2

sapuri
September 25, 2019

Mercari Engineer's meetup for students vol.2

Mercari Engineer's meetup for students vol.2 の発表資料です。
https://mercari.connpass.com/event/145420/

sapuri

September 25, 2019
Tweet

Other Decks in Technology

Transcript

  1. 1
    Mercari Engineer's meetup for students vol.2
    2019/09/25
    @sapuri

    View full-size slide

  2. 2
    Backend Engineer
    Merpay NetPayment Team
    2019年4月 メルペイ入社
    Twitter: @sapuri_tappuri
    辻野 祐希 (@sapuri)

    View full-size slide

  3. 3
    インターン
    Blockchain Team
    Software Engineer, Blockchain
    2017/12 - 2018/06
    インターンから配属まで
    新卒入社(研修)
    Software Engineer
    2019/04
    他社インターン
    COLOPL, Inc.
    CyberAgent, Inc.
    Nintendo Co., Ltd.
    チーム配属
    Merpay NetPayment Team
    Software Engineer, Backend
    2019/06

    View full-size slide

  4. 4
    インターン
    Blockchain Team
    Software Engineer, Blockchain
    2017/12 - 2018/06
    インターンから配属まで
    新卒入社(研修)
    Software Engineer
    2019/04
    他社インターン
    COLOPL, Inc.
    CyberAgent, Inc.
    Nintendo Co., Ltd.
    チーム配属
    Merpay NetPayment Team
    Software Engineer, Backend
    2019/06

    View full-size slide

  5. 5
    「Mercari X」もお披露目。メルペイ
    CTOが描く、信用と価値交換「
    Mercari Tech Conf 2018」レポ | mercan (メルカン)
    Mercari X

    View full-size slide

  6. 6
    「Mercari X」もお披露目。メルペイ
    CTOが描く、信用と価値交換「
    Mercari Tech Conf 2018」レポ | mercan (メルカン)
    Mercari X

    View full-size slide

  7. 7
    インターン
    Blockchain Team
    Software Engineer, Blockchain
    2017/12 - 2018/06
    インターンから配属まで
    新卒入社(研修)
    Software Engineer
    2019/04
    他社インターン
    COLOPL, Inc.
    CyberAgent, Inc.
    Nintendo Co., Ltd.
    チーム配属
    Merpay NetPayment Team
    Software Engineer, Backend
    2019/06

    View full-size slide

  8. 8
    ● 約2ヶ月間の研修
    ● Training Week
    ○ 各分野の基礎的な技術的知識を身につける
    ■ Go、Microservices、Backend、Mobile App、Frontend、AI、QA、Security
    ● Scrum Training
    ○ 新卒同士でチームを組んでスクラム開発を体験する
    ○ 開発するプロダクトを考えるところからプロトタイプ実装までの全てをやる
    ■ どれだけのインパクトがあるか、市場規模は、競合は、もしリリースしたら利益はどれぐ
    らい見込めるか...
    ■ 2, 3週間でプロトタイプを実装して発表する
    新卒研修

    View full-size slide

  9. 9
    インターン
    Blockchain Team
    Software Engineer, Blockchain
    2017/12 - 2018/06
    インターンから配属まで
    新卒入社(研修)
    Software Engineer
    2019/04
    他社インターン
    COLOPL, Inc.
    CyberAgent, Inc.
    Nintendo Co., Ltd.
    チーム配属
    Merpay NetPayment Team
    Software Engineer, Backend
    2019/06

    View full-size slide

  10. 10
    メルペイネット決済
    メルペイ決済がオンライン( EC)・オフライン(お店)双方で可能に
    お店や サイトで
    商品を購入
    使わなくなったものを
    メルカリで出品
    メルカリの売上金を
    サイトで利用
    5月29日にリリースされました

    View full-size slide

  11. 11
    バックエンドエンジニアとしてのメルペイ
    サービスのつくりかた

    View full-size slide

  12. 12
    メルペイの裏側
    メルペイのマイクロサービスの構築と運用 / CloudNative Days Tokyo2019 - Speaker Deck
    GCP上にデプロイされている 40以上のマイクロサービスによってメルペイが動いている

    View full-size slide

  13. 13
    ● 複数のマイクロサービスを通って決済が行われる
    ● 各サービスはそれぞれ異なる GCP Project 持ち、Project ごとに Spanner
    や Pub/Sub などを管理する
    マイクロサービスアーキテクチャ

    View full-size slide

  14. 14
    ● GCP Project の作成、Terraform
    ○ GCP 上や Kubernetes 上のさまざまなリソースをコードで管理
    ● コードを書く
    ○ 基本的には Go で実装する
    ○ サービス間は gRPC で通信する
    ■ Protobuf は単一のリポジトリで管理されている
    ○ 必要になった人が実装してプルリクを送る(場合による)
    ■ そのマイクロサービスのオーナーにレビューしてもらう
    ● デプロイ
    ○ Circle CI でテスト
    ○ Cloud Build で Docker Image を作成
    ○ Spinnaker で Docker Image を GKE にデプロイ
    テスト、デプロイ、モニタリング、運用をそのサービスの開発者が行う
    サービス開発の流れ

    View full-size slide

  15. 15
    サービス開発の流れ

    View full-size slide

  16. 16
    実際メルペイで働いててどう?
    :thinking_face:

    View full-size slide

  17. 17
    コアタイムが12時から16時
    エンジニアには夜型が多い(要出典)
    出社時間の自由度が高い

    View full-size slide

  18. 18
    現代的な技術スタックや開発環境を利用できる
    Kubernetes, Spanner, Terraform, Microservices, etc.
    GCPのリソースを自由に使わせてくれる会社はそうないと思います

    View full-size slide

  19. 19
    新卒だから○○みたいな扱いはされない
    個人の裁量が大きい

    View full-size slide

  20. 20
    ドメインリード制
    ● ネット決済の Backend チームではタスクをある程度大きな分類に仕分けて、
    それぞれの担当を決めている(このタスクの分類がドメイン)
    ● それぞれのドメインに Tech Lead と PM がいる
    ● → チームの Tech Lead に案件が集中しにくい
    ○ チームのスケーラビリティが向上する
    ● → 新人でも、ドメインの Tech Lead として仕様の検討から案件に関わる
    ○ 特にネット決済は他のチームとの関わりが多いです

    View full-size slide

  21. 21
    より良い労働環境のために...
    無いものは創る文化

    View full-size slide

  22. 22
    Mercafe Pre-order App
    Slackコマンドからカフェの注文と決済ができる!

    View full-size slide

  23. 23
    Mercafe Pre-order App

    View full-size slide

  24. 24
    Mercafe Pre-order App

    View full-size slide

  25. 25
    ● メルカリのOSSリポジトリ
    ○ https://github.com/mercari
    ● Spanner のためのツール
    ○ wrench: Schema management tool for Cloud Spanner
    ○ yo: A command-line tool to generate Go code for Google Cloud Spanner
    ○ zagane: A static analysis tool which can find bugs in spanner's code
    メルカリのOSS

    View full-size slide

  26. 26
    ● メルペイの裏側
    ○ 40以上のマイクロサービス
    ○ 大まかなサービス開発の流れ
    ● メルペイの労働環境
    ○ 出社時間の自由度が高い
    ○ 現代的な技術スタックや開発環境を利用できる
    ○ 個人の裁量が大きい
    ○ 無いものは創る文化
    ○ 周りの人たちが優秀
    モノを創るのが好きな人にとっても、技術が好きな人にとっても
    いろんなチャレンジができて良い職場だと思います☺
    締め

    View full-size slide