Mercari Engineering Blog

We're the software engineers behind Mercari. Check out our blog to see the tech that powers our marketplace.

JSFestで登壇してきました

はじめまして。メルペイでフロントエンドエンジニアをしている @sottar です。 今年の11月8,9日 にウクライナのキエフで行われた JSFest というカンファレンスにスピーカーとして登壇してきました。 時間が空いてしまいましたが、その際の登壇内容や感じたこ…

Sign in with AppleをCLIでも使いたい

Merpay Advent Calendar 2019 の 23日目は、IDPチーム の @kokukuma がお送りします。 はじめに Sign in with Apple(以降、SIWA)、コマンドラインツールでも使いたくありませんか?使いたいですよね?わかります。特定のAppleID持っている人じゃないと使え…

Mercari Microservices Platformの進捗(2019年)

Microservices Platform TeamでTech leadをしている@deeeeeeetです. 昨年のMTC2018ではMicroservices Platformチームの立ち上げから1年で僕らが取り組んできたことを紹介しました. speakerdeck.com 具体的にはStranglerパターンによるMonolithからMicroser…

Programing AutoLayout philosophically

The 22th day’s post of Mercari Advent Calendar 2019 is brought to you by @StingeSu from the Mercari iOS team. I usually write articles on my Medium, check it out if you are interested! medium.com About AutoLayout iOS AutoLayout which was i…

より良いコードレビューをするために気をつけていること

Merpay Advent Calendar 2019 の22日目は、メルペイスマート払いチーム/Backend Engineer の @oinume がお送りします。今日はコードレビューについて自分が普段から実践していることを書いてみたいと思います。 はじめに 世の中にはコードレビューをする時の…

メルペイ立ち上げの裏側 - 決済サービス開発のゼロイチ話

はじめに こんにちは。メルペイのPayment PlatformチームでPaymentServiceの開発を担当するエンジニアの @foghost です。この記事は、Merpay Advent Calendar 2019 の21日目の記事です。 3年前、ソーシャルゲーム業界からメルカリに転職してから、幸運なこと…

メルカリアプリのWebView向けWebアプリケーションの開発を支えるモック技術

こんにちは、メルカリでフロントエンドエンジニアをしている @karszawa です。 本日はメルカリアドベントカレンダー2019の21日目の記事として「メルカリアプリのWebView向けWebアプリケーションの開発を支えるモック技術」というニッチ(?)な題目の話をさ…

Fast and robust data transfer to Splunk indexer using custom aggregator for real-time transaction monitoring ⚡

This post of Merpay Advent Calendar 2019 is brought to you by @agro1986 from Merpay AML/CFT team. As explained in our previous articles (1 and 2), Merpay’s AML (Anti Money Laundering) system uses Splunk as its centralized database and rule…

Tech Talk vol.2 Backend Engineer 〜マイクロサービスの冪等性〜 を開催しました

はじめに こんにちは。メルペイBackend Engineerの@knsh14です。 12月18日にメルペイ主催でTech Talkを開催しました。 今回はテーマとして「マイクロサービスの冪等性」を掲げ、プロダクト開発をしているエンジニアたちに冪等性についてそれぞれの思いを語っ…

機械学習モデルを高速にオンラインテストする仕組みを作った話

こんにちは。Mercari Advent Calendar 2019の20日目は、AIチーム所属エンジニアのlain_m21が担当させていただきます。 一度出したサービスはそのまま放置せず、何度も改善させていくものです。特に機械学習を用いたサービスを改善させていく際には、精度向上…

Improving Android Build Performance

The 19th day’s post of Mercari Advent Calendar 2019 is brought to you by @panini from the US@Tokyo Android team. As most Android engineers will know, the majority of your day is spent waiting for Android Studio to complete building your ap…

マイクロサービスにクリーンアーキテクチャを採用する上で考えたこと

Merpay Advent Calendar 2019 の19日目は、Backendエンジニアチームの @toshinao がお送りします。 新しくマイクロサービスを立ち上げる機会があり、クリーンアーキテクチャをベースにしました。クリーンアーキテクチャはバックエンド・フロントエンド・アプ…

「プロダクトと共に進化する」Design Systemをチームで導入した話

Mercari Advent Calendar 2019の18日目はCatalog ListingチームiOSエンジニアの@kokoheiaが担当します。 私が所属するCatalog Listingチームでは、先月から全機能の開発にDesign Systemの導入をしています。Design Systemは、高品質なプロダクトを継続的にお…

メルペイ Android のアーキテクチャとテスト

こんにちは。Merpay Advent Calendar 2019 の18日目を担当する、メルペイ Android チームの @KeithYokoma です。 前回の記事ではマルチモジュール構成なプロジェクトにおける画面遷移の実装について、簡単な設計の方針から解説しました。 今回の記事では、メ…

メルペイエキスパートチームの取り組み〜人類Gopher化計画の進捗報告〜

Merpay Advent Calendar 2019 の17日目は、メルペイ エキスパートチームの @tenntenn がお送りします。 筆者が所属するエキスパートチームでは「アウトプットをするところに技術は集まる」という考えのもと、工数の50%以上を技術コミュニティへの貢献に充て…

リモートのデータ取得のためのフックライブラリの SWR を使ってみる

こんにちは。Mercari Advent Calendar 2019 の 17 日目は Web UX Team 所属の @lightnet328 がお送りします。 どのようにリモートのデータを取得して管理するかは SPA 構成の Web フロントエンドにおいて大きなテーマの 1 つだと思います。最近では Apollo C…

Shaping Mercari's Engineering Culture

Hi, the 15th day's post of Mercari Advent Calendar 2019 is brought to you by @tuttiq from the Engineering Office team at Mercari. Our Engineering Office is not a traditional product development team. In fact, we are nothing like a product …

Mercari x Merpay Frontend Tech Talk vol.3を開催しました

はじめに Merpay のフロントエンドエンジニアの @tokuda109 です。 11月26日に Frontend Tech Talk vol.3 が開催されましたので、当日の発表の様子を簡単に紹介します。 create own CMS from scratch まず最初の発表は Merpay の @sottar_ による「create ow…

Swiftにおける末尾再帰とCompilerによる最適化を探る

初めに この記事はMercari Advent Calendar 2019の16日目の記事です。 こんにちは、iOSエンジニアの@kagemikuです。MercariのiOSアプリ開発をしています。 突然ですが、皆さんは普段、再帰関数を書いていますか? リスト探索や木探索を行うアルゴリズムを、…

メルペイ iOS にスナップショットテストを導入した話

Merpay Advent Calendar 2019 の16日目は、メルペイ iOS チームの @akifumi がお送りします。 メルペイ iOS の品質向上を目的に、スナップショットを用いたテストを行うことができる iOSSnapshotTestCase を導入した話について記載します。 目次 iOSSnapshot…

Rate Limiting Bank Transfers

The 15th day’s post of Merpay Advent Calendar 2019 is brought to you by Robert, a Backend Engineer @ Merpay. Hi, I already talked a little bit about how we have different challenges facing us in my previous post. tech.mercari.com Apart fro…

商品通報対応をgRPCとGraphQLとReactでリプレースしてみた

こんにちは。Mercari Advent Calendar 2019 14日目は、CSTool Domainチームの @Peranikov がお送りします。 メルカリではお客さまに安心して取引を楽しんでいただくため「あんしん・あんぜん宣言」に取り組んでおり、プロダクトの開発と同じレベルの課題感で…

Maintain SLO 〜俺たちのSLOはこれからだ!〜

Merpay Advent Calendar 2019 の14日目は、メルペイSREチームの@Tがお送りします。 本記事では、メルペイSREチームのSLO運用状況について、紹介いたします。 メルペイリリース前 去年のAdventCalendar 2018で、メルカリのWeb MicroservicesにおけるSLI/SLOに…

Xcode Previewsを用いたUIKitベースのプロジェクトの開発効率化

こんにちは。メルペイのiOSチームの@kenmazです。 メルペイのiOSチームでは Xcode11 で導入された Xcode Previews 機能を用いて、UIKitベースのプロジェクトの開発効率向上に取り組んでいます。Xcode PreviewsといえばSwiftUI用の開発支援機能、というイメー…

gaurunとGoのHTTP/2事情について

Mercari Advent Calendar 2019の13日目担当はメルカリSREチームの@catatsuyです。 社内ではGoを書いていることが多いので、今回はmercari/gaurunの事情を通して、GoのHTTP/2事情に関して紹介します。 忙しい人のためのまとめ Goはhttp.TransportのTLSClientC…

メルペイのエンジニア組織をEMとして振り返ってみた

この記事は Engineering Manager vol.2 Advent Calendar 2019 の 4 日目の記事(代打)です。 はじめまして。メルペイでBackendのEngineering Manager(以下EM)をやっている@keigowです。 Merpay Advent Calendar 2019 の初日で行われた、メルペイ VPoE に…

メルペイの社内向け管理画面を振り返る

Merpay Advent Calendar 2019 の 13 日目は、メルペイフロントエンドチーム の @tanakaworld がお送りします。 メルペイの管理画面は 2019 年 2 月のサービスローンチに先立ち、2018 年 11 月にリリースされました。私は 2018 年 8 月に入社してから一貫して…

Specifying Kotlin tests with Spek

The 12th day’s post of Mercari Advent Calendar 2019 is brought to you by @kinnerapriyap from the US@Tokyo Android team. Writing unit tests usually means having to suffer through a lot of boilerplate code. I’m guilty of sometimes writing te…

メルペイのQRコードスキャン機能(QRScanner)を、OSSにしました

Merpay Advent Calendar 2019 の12日目は、 Merpay iOS チームの @hitsu がお送りします。 目次 QRScannerとは OSS開発の背景 QRScannerの特徴 使い方 基本な使い方 カメラのアクセスを許可 QRScannerの導入方法 CocoaPodsを使う場合 Carthageを使う場合 カ…

メルカリ・メルペイの社内勉強会についての簡単なご紹介

こんにちは、syumaiです。 本記事は Merpay Advent Calendar 2019 11日目の記事です。 今回は、私自身の日常として参加しているいくつかのメルカリ・メルペイの社内勉強会について簡単に紹介させていただこうと思います。 自己紹介 2016年に新卒でスタートア…