Mercari Engineering Blog

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

CDN切り替え作業における、Web版メルカリの個人情報流出の原因につきまして

本日コーポレートサイトでお知らせした通り、Web版のメルカリにおいて一部のお客さまの個人情報が他者から閲覧できる状態になっていたことが判明しました。原因はすでに判明して修正が完了しております。また、個人情報を閲覧された可能性のあるお客さまには…

PHPカンファレンス福岡2017に参加してきました #phpconfuk

こんにちは。@sota1235です。 2017/6/10に開催されたPHPカンファレンス福岡2017にてメルカリからは3人のエンジニア登壇しました。 PHPカンファレンス福岡2017

メルカリ/ソウゾウのエンジニアがGoogle Cloud Next'17 Tokyo と Google Cloud Community fes に登壇します

こんにちは。@tenntennです。 6月14日(水)、15日(木)にGoogle Cloud Next'17 in Tokyoが開催されます。 また、6月14日(水)の夜にはGoogle Cloud Community fes @ Google Cloud Next'17 Tokyoというイベントが開催され私も登壇する予定です。 今回はGoo…

メルカリのデータサイエンティストの取り組みを大公開! Drink Meetupを開催しました

プロダクトの分析全般を担当している@hikaruです。 日々、メルカリのプロダクト改善のPDCAを定量分析の面からサポートしております。 以前、メルカリのデータサイエンティストが日々どのようなツールを使って分析をしているのかをお伝えしました。 tech.merc…

Go言語LT大会で登壇しました #golang

こんにちは。@tenntennです。 6月5日に開催されたGo言語LT大会で登壇してきましたので、そのレポートを書きたいと思います。 go-beginners.connpass.com

【資料公開します】AWS Dev Day Tokyo 2017 にて登壇しました/choconの簡単なご紹介

こんにちは。SREの @kazeburo です。2017年5月31日から6月2日にAWS Summit Tokyo 2017と同時に開催された「AWS Dev Day Tokyo 2017」に登壇しました。 登壇する機会をいただき、また数あるセッションの中から会場に足を運んでいただいた皆様、ありがとうござ…

golang.tokyo#6で登壇しました #golang

こんにちは。@tenntennです。 6月1日に開催されたgolang.tokyo#6にて登壇しました。 今回はそのレポートを書きたいと思います。 golangtokyo.connpass.com

AltConf 2017に登壇します!

こんにちは、iOSエンジニアの@kitasukeです。6/5-8にサンノゼで開催されるAltConf 2017に、弊社から自分が登壇します。 AltConfとは AltConfとは、WWDCのチケットの抽選に外れてしまったエンジニア達が有志で開催しているカンファレンスです。WWDCと同じ期間…

Gopher Fest 2017に参加してきました #golang

こんにちは。@tenntennです。 現地時間の5月15日にアメリカのサンフランシスコで行われたGopher Fest 2017に参加してきましたので、参加レポートを書きたいと思います。 www.meetup.com

Google I/O 2017 わいわい報告会を開催しました #io17jp

こんにちは、Software Engineerの @yui_tang です。 先日5月26日(金)に、メルカリ社内においてGoogle I/O 2017 わいわい報告会 @ Mercariを開催しました。 弊社からGoogle I/O 2017に参加したメンバーが、それぞれの分野について内容をまとめて発表しました…

「絶対要らないハズだけど、なかなか削除できずにいるもの」を対応した小話

はじめましてこんにちは。SREの@masartzです。 私は最近joinしたのですが、今回は本番環境に古くからあるテーブルの掃除作業をした案件をご紹介します。 tl;dr; 本番の住所情報テーブルを消したけど問題なかった話 絶対要らないハズだけど、なかなか削除でき…

GolangでSlack Interactive Messageを使ったBotを書く

SREの@deeeet です。 MercariではSlack Botを使い様々な業務の自動化を行っています。例えばメインのAPIのReleaseはBotによる自動化がされており、JPとUSとUKの3拠点で1日に10回以上のReleaseをSlack上で実現しています(これ以外にも多くの事例があります)…

Google I/O 注目のAndroidセッション Day3

Androidエンジニアの @mhidaka です。 Google I/O 2017 Day3(最終日)のおすすめAndroidセッションを紹介します。 Day1, Day2と紹介してきましたがDay3ではAndroidの技術要素(TensorFlowやKotlin、Chrome OSなど)を中心に解説します。 Google I/O 注目のA…

Google I/O 注目のAndroidセッション Day2

Androidエンジニアの 久木野(@cookych)です。 昨日の Google I/O 注目のAndroidセッション Day1 に続き、I/O 2017 Day2に行われたおすすめのAndroidセッションを紹介します。 What’s new in Android Support Library www.youtube.com 今回発表されたSupport …

メルカリのデータサイエンスチームと分析エコシステムのはなし

この記事について メルカリでプロダクトの分析全般を担当している @hikaruです。 日々、メルカリのプロダクト改善のPDCAを定量分析の面からサポートしております。 この記事ではそんなメルカリの分析を支える、分析環境について書いてみたいと思います。 分…

Google I/O 注目のAndroidセッション Day1

Androidエンジニアの @mhidaka です。 今回はGoogle I/O 2017の会場よりおすすめのAndroidセッションを紹介します。 Google I/Oは毎年5月に開催されるGoogleの開発者向けカンファレンスです。 今後の技術動向を示すキーノートや、AndroidやTensorFlow、Webテ…

lltsvでLTSV形式のデータをサクサクパースしよう

SREチームの@cubicdaiyaです。 今回はlltsvというツールを利用してLTSV形式のデータを処理する術について解説します。 LTSV LTSVはLabeled Tab-separated Valuesの略で、コロンで区切られたラベルと値の組み合わせ(key:value)をタブ区切りで表現したフォーマ…

iOSCon 2017 in LondonでProtocol Buffersについて発表しました

iOS

iOSCon 2017 iOSConとは、iOSやSwiftに関わるエンジニアのためのカンファレンスです。今年は3/30, 31の2日間にロンドンで開催されました。参加者は約200人が集まり、27人のスピーカーがそれぞれLT、セッション、ワークショップ形式で発表します。 skillsmatt…

"High 意識 Android Team" のチームワーク - その 2

Mercari Android チームの @tsuyogoro です。US 版 Mercari Android アプリの開発を担当しています。 先日の “High 意識 Android Team” のチームワーク - その 1 に続き、今回は 2016 年秋頃におこなった US 版 Mercari のカメラ機能 (日本版メルカリとは別…

"High 意識 Android Team" のチームワーク - その 1

Mercari Android チームの @tsuyogoro です。US 版 Mercari Android アプリの開発を担当しています。 今年 1 月に弊社で開催した Mercari Day 2017 において、我々 Android チームは 「High 意識 Android」というお話をしました。 これから数回に分け “High …

「Be Professional Day」でちょっと便利なQAテストツールを作った話

こんにちは。メルカリのテストエンジニアとして、スマホアプリのテスト自動化をぶりぶりしている@daipresentsです。 先月のおわりに、Be Professional Day (BPD)というイベントが開催されました。BPDとは以下のような取り組みです。 この先、人やコンポーネ…

Appiumの新しいGUIツール、appium-desktopがよくなってきてるぞう

こんにちは! メルカリのテストエンジニアとして、モバイルアプリのテストをぶりぶり自動化している@tadashi0713です。 メルカリでは、モバイルアプリのテスト自動化のために、一部、Appiumを使用しています。 今回は、現在ベータ版で公開されているGUIツー…

Gitのステージング領域の正体を探る

Git

ソフトウェアエンジニアの @DQNEO です。こんにちは。 Gitの内部構造を深掘りするシリーズ3回目です。 前回までのお話はこちら Gitのつくりかた - Mercari Engineering Blog Gitのコミットハッシュ値は何を元にどうやって生成されているのか - Mercari Engi…

プログラマーの三大美徳 その2

SREチームの@shmorimoです。今日はプログラマーの三大美徳の続きのお話しです。 プログラマーの三大美徳 その2 みなさんはプログラマーの三大美徳ってご存知ですか? プログラミング言語Perlの作者である Larry Wall が http://www.perl.com/pub/1998/08/sho…

モダンなテスト管理プロセスのためにテスト管理ツール3つを比較検討したはなし

こんにちは。メルカリのテストエンジニアとして、スマホアプリのテスト自動化をぶりぶりしている@daipresentsです。 テスト自動化をすすめるにあたり、効率のよいテストを作るために、既存のテストケースについて調べる機会がありました。その過程で現状のQA…

golang.tokyo#4でGo開発環境Goglandのライブデモを見てきた

こんにちは、メルカリアッテのAPIチームでGoエンジニアをしている@sonatardです。 この記事は弊社ソウゾウの社員である@tenntennが運営しているgolang.tokyo #4のブログ枠として書いています。 golang.tokyo #4では、ゲストスピーカーとしてJetBrains社のSer…

スタンドアロンAMPのススメ

CSS

こんにちわ、@t32kです。先日、3/18に大阪で開催されたFRONTEND CONFERENCE 2017に登壇してきました。また弊社メルカリは懇親会スポンサーでした。今回は『スタンドアロンAMPのススメ』というタイトルで講演した内容をシェアしたい思います。 私が所属してい…

AMP Conf 2017へ行ってきました #AMPConf

こんにちは、Software Engineerの @yui_tang です。 3月7-8日にニューヨークにて開催されたAMP Conf 2017に参加してきましたので、そのレポートを書きたいと思います。 メルカリでのAMPの取り組み まずは、現在までのメルカリにおけるAMP(Accelerated Mobile…

QAのためのChatOps!テストデータを作成するSlackコマンドを作ってみた

こんにちは。メルカリのテスト自動化エンジニアとして、スマホアプリのテスト自動化をぶりぶりしている@daipresentsです。 ChatOpsが運用の効率化として誕生したのであれば、それはソフトウェア開発に関連するどんな手作業にでも適用できそう。そう思いつい…

DroidKaigi 2017 に登壇します!

こんにちは、Androidエンジニアの @operandoOS と @mhidaka です。 「DroidKaigi 2017で僕達と握手っ!! 」 ということで、DroidKaigi 2017に弊社から 岡野(@operandoOS)と 日高(@mhidaka)の2名が登壇します。 DroidKaigiとは DroidKaigiはエンジニアが…

Appdevcon 2017 in Amsterdam に登壇します!

iOS

こんにちは、iOSエンジニアの@yoichitgyです。 3月16-17日にオランダ・アムステルダムで開催されるAppdevcon 2017に弊社から私が登壇します。UK版アプリでヨーロッパに進出したメルカリもスポンサーとして協賛します! Appdevcon 2017 - Conference by App D…

iOSCon 2017 in Londonに登壇します

iOS

こんにちは、iOSエンジニアの@kitasukeです。 弊社から、@yoichitgyと自分の2名がiOSCon 2017に登壇します! iOSCon 2017 - The conference for iOS and Swift Developers iOSConとは、iOSやSwiftに関わるエンジニアのためのカンファレンスです。 今年もロン…

Mercari Day 2017 Tech Track 発表資料まとめ

Mercari Day iOS チームの @jarinosuke です。 2017年1月20日に Mercari Day 2017 というイベントを開催しました。 当日はあまり天気も良くない中、とてもたくさんの方々に足を運んで頂き大盛況の中イベントを終えることができました。 ご参加いただいた皆様…

Our Image Classification Experiment with Deep Learning

Introduction Hi, my name is Takuma. I am a software and machine learning engineer at Mercari. Artificial Intelligence (AI) is a buzzword nowadays. We also often see terms, such as 'Deep Learning' and 'Deep Neural Networks' that are subsets…

GoでとあるAPIサーバを実装し直した話

Go

サーバサイドエンジニアの @b4b4r07 です。この記事は Go Advent Calendar 2016 の 19 日目です。今回は Go (Revel フレームワーク) で書かれていた API サーバをフルスクラッチで書き直したお話をします。 Revel とは A high productivity, full-stack web …

未来のCSSを先取るHoudiniとは?それは魔法である!

CSS

こんにちわ、メルカリアッテでFront-end Developerをしている@t32kです。 メルカリではセミナー参加補助制度があり、それを利用して海外カンファレンスに参加してきました。今回は11/30 ~ 12/01、オーストラリア・メルボルンで開催されたCSS/JSConf Australi…

監視だけじゃない!デプロイにMackerelを使う話

SREチームの @siroken3 です。 以前、メルカリでリリース手段としてChatOpsを採用していることを本ブログで紹介しました。今回は内部で使っている技術の一部を紹介したいと思います。 tech.mercari.com tl;dr メルカリではデプロイにAnsible使ってる 毎日デ…

PHPカンファレンス2016で「Crowiの歩き方」という話をしてきました

サーバサイドエンジニアの @suzuki です。同僚の @Hiraku さんが「PHPカンファレンス2016でComposerプラグインの話をしてきました」という記事を書いていたので、負けじと書いてみたりしています。 似通った内容になってしまうのですが、2016年11月3日に開催…

ハイパフォーマンスGaurun〜メルカリの大規模プッシュ配信を支えるミドルウェア〜

SREチームのcubicdaiyaです。 今回は本ブログでも何度か紹介しているGaurunを利用したメルカリのプッシュ配信基盤とGaurunのパフォーマンスを最大化する方法について紹介します。 github.com 改めて紹介するとGaurunはスマホアプリ向けのプッシュ通知サーバ…

PHPカンファレンス2016でComposerプラグインの話をしてきました

サーバーサイドエンジニアの中野(@Hiraku)です。久しぶりのブログ投稿になります。 タイトルの通りなのですが、2016年11月3日(木)の文化の日、東京都大田区産業プラザPiOでPHPカンファレンスが開催されました。 phpcon.php.gr.jp 私も「Composerプラグインを…

メルカリのCRMツールをKaizenした話

こんにちは、こんばんは。 サーバーサイドエンジニア(社内ではAPIエンジニアとも呼称します)の@bravewoodと申します。一部の人からはウッディと呼ばれていて気に入っております。 キャリア初期にウノウラボに大変な憧れを抱いていた身としては、ウノウの流…

WEB+DB PRESS Vol.94にてメルカリSREチームによる連載第3回が掲載されました

SREチームの@siroken3です。WEB+DB PRESSの連載第3回が 本日発売の Vol.94に掲載されました。 gihyo.jp 前回に引き続き @siroken3 が執筆いたしました。 今回はデータベースのバックアップと題して、メルカリの運用をベースにしてMySQLのバックアップについ…

nginxによるTCPロードバランサー

SREチームの@cubicdaiyaです。今回はnginxによるTCPレイヤーでのロードバランスについて解説します。 ロードバランサーとしてのnginx nginxはHTTPやTCP、UDP等の複数のレイヤーでロードバランサーとして稼働させることができます。(TCPロードバランサーは1.…

DockerとMakeを利用したRPMパッケージのビルド環境

SREチームの@cubicdaiyaです。今回はDockerとMakeを利用したメルカリの自作RPMパッケージのビルド環境について紹介します。 メルカリの自作RPMパッケージ事情とVagrant、そしてDocker メルカリの開発およびプロダクション環境では現在CentOS6と7を利用してお…

PHPカンファレンス関西2016で基調講演してきました

サーバーサイドエンジニアの@Hirakuです。 2016年7月16日(土)、 PHPカンファレンス関西2016 にて基調講演をしてきましたので、その報告と補足をします。 トーク動画は後日公開されると聞いていますので、口頭で補足した内容などはそちらをご期待ください。 …

プログラマーの三大美徳

SREチームの@shmorimoです。今日はプログラマーの三大美徳についてお話したいと思います。 プログラマーの三大美徳 みなさんはプログラマーの三大美徳ってご存知ですか? プログラミング言語Perlの作者である Larry Wall が↓で述べたのが最初とされています。…

WEB+DB PRESS Vol.93にてメルカリSREチームによる大規模インフラ運用の連載第2回が掲載されます

弊社SREチームで連載しているWEB+DB PRESSの記事第2回が2016年6月24日(金) 発売のVol.93 に掲載されます。データベースのスケーリングについてご紹介します。

3つのnginxをうまく使い分けよう〜nginx、OpenResty、Tengine〜

SREチームの@cubicdaiyaです。今回はメルカリで利用実績のある以下の3つのnginxの使い分けに紹介します。 nginx OpenResty Tengine nginxとメルカリ 本ブログや過去のイベントでも何度か紹介していますが、メルカリではパフォーマンスやスケーラビリティが要…

PHPカンファレンス福岡2016で「Guzzle Promiseを使った
非同期処理によるAPIコールの高速化」という発表をしてきました

初めまして、@suzukiです。2016年の1月からメルカリのサーバサイド・エンジニアとして働いていて、今は主にPHPを書いています。ときどきJavaScriptが書きたくなるので、最近は個人活動としてCrowiへpull requestを投げたりもしています。 発表した内容につい…

Google I/O 2016 現地レポート+モバイル系エンジニアが今すぐ試すべき注目技術まとめ

こんにちは、Androidチームの @tomoaki_imaiです!今回はシリコンバレーにて5/18 - 5/20の3日間開催された、Google I/O 2016についてレポートします。またGoogle I/Oにて発表された内容から、モバイル系エンジニアがすぐ試すべき注目技術についてもまとめま…