読者です 読者をやめる 読者になる 読者になる

Mercari Engineering Blog

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

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にて発表された内容から、モバイル系エンジニアがすぐ試すべき注目技術についてもまとめま…

USのiOSアプリでApple Payに対応した話

iOS

iOSエンジニアの@kitasukeです。 USのアプリでApple Payに対応したので、その実装方法やその中で得た知見について紹介します。 背景 USではApple Payに対応しているアプリが徐々に増えています。また実店舗でも使えるところがあり、日常生活でApple Payを目…

自社カラーで Slack を染める

はじめまして。サーバサイドエンジニアの @b4b4r07 です。 今回は Slack を自社カラーで染めるというライトなお話です。最近 bot 開発などのプラットフォームとしても有名なチャットツールの Slack ですが、メルカリでも使用しております。過去に Slack 関連…

Gaurun Powered by HTTP/2

SREチームの@cubicdaiyaです。つい先日メルカリでOSSとして開発・公開しているスマホアプリ向けのプッシュ通知用ゲートウェイサーバであるGaurunがGCM、APNsともにHTTP/2を利用したプッシュ通知に対応したので紹介します。 github.com ちなみにロゴも出来ま…

Go Conference 2016 SpringでgRPCの現状について発表してきました

こんにちは、SREチームの @kazegusuri です。 2016年4月23日にGo Conference 2016 Springが開催されました。今回は参加者だけでなく発表希望者も多かったそうですが、メルカリからは自分が、ソウゾウからは @ttsuruokaが発表しました。そのときの発表資料を…

WEB+DB PRESS にてメルカリSREチームによる大規模インフラ運用の連載が始まります

SREチームの @kazeburo です。2016年4月23日(土曜日)に発売される WEB+DB PRESS Vol.92より、メルカリSREチームメンバーによる連載が開始されます。 gihyo.jp 連載1回目は @kazeburo が書かせていただきました。 連載タイトルは「大規模インフラ運用最前線 〜…

アッテの開発技術をお伝えする atte FeS【Go・Swift開発編】を開催しました

こんにちは、ソウゾウの @ttsuruoka です。 メルカリの子会社ソウゾウでは新規事業に取り組んでいます。今回「メルカリ アッテ」の開発技術について、これまでに得られた知見の一部をお話させていただく機会として atte FeS 【Go・Swift開発編】 を開催しま…

DroidCon San Franciscoに参加して感じたAndroid開発の今

こんにちは、Androidチームの@tomoaki_imaiです。1月よりメルカリUSオフィスに出向となり、サンフランシスコにて日々サービスを開発しております。慣れない生活の中、ぎっくり腰になったり銀行口座が凍結されたり色々ありますが元気にやっております。 さて…

メルカリのサンフランシスコオフィスで「SF日本人エンジニアの飲み会」を共催しました!

こんにちは、胡です。 ( 英語名はBocelli ) 先日告知いたしました、メルカリでの「SF日本人エンジニアの飲み会」のレポートをお届けします!

Widebullet〜API Gateway with JSON-RPC〜

SRE(Site Reliability Engineering)チームの@cubicdaiyaです。今年のはじめから開発しているWidebulletというシンプルなAPI Gatewayを紹介します。 Widebullet〜API Gateway with JSON-RPC〜 WidebulletはJSON-RPCをベースにしたシンプルなAPI Gatewayです。…

メルカリで「SF日本人エンジニアの飲み会」の共催をします / Meetup in San Francisco!

こんにちは sotarok です。 今日は US でのミートアップイベントについてお知らせします! 「SF日本人エンジニアの飲み会」 SF日本人エンジニアの飲み会は、現地にもう長く住んでいる方から出張でたまたま来ている方まで、様々な方が参加するコミュニティで…

try! Swiftで会いましょう!! #tryswiftconf

こんにちは!iOSエンジニアのishkawaです。 3/2から3/4にtry! Swiftが開催されますね。 もちろん、メルカリも協賛しています! try! Swiftは世界中のSwiftデベロッパーが集まるカンファレンスです。登壇者の多くが海外ゲストであり、RealmやSwiftLintなどを…

Androidについて語る! shinobu.apk #1 を開催しました! #shinobuapk

Androidエンジニアの@operandoOSです。 最近、JSONArrayのremoveメソッドがAPI Level 19以上でしか使えない現実に落胆しております。 http://developer.android.com/intl/ja/reference/org/json/JSONArray.html#remove(int) 先日、メルカリオフィスにて shin…

Gitのコミットハッシュ値は何を元にどうやって生成されているのか

こんにちは。サーバサイドエンジニアの @DQNEO です。 前回の「Gitのつくりかた」に続いてGitのコアな部分のお話です。 Gitのコミットハッシュ値とは何か Gitを使っていると必ずコミットハッシュ値というものが出てきます。9e47c22みたいなアレです。 これは…

光遅い問題を克服してcomposerを10倍速くした話

はじめまして。サーバーサイドエンジニアの中野(@Hiraku)です。2015年12月からメルカリで働いています。 2016年1月27日(水)の第98回PHP勉強会@東京にて、composerを速くする取り組みについて発表をしてきました。 composerの遅さをまじめに考える #phpstudy …

サーバサイドWebアプリケーションエンジニアにとって必携の一冊。「nginx実践入門」が発売されます

SRE(Site Reliability Engineering)チームの@kazeburoです。 1/16(土)にSREチームの久保(@cubicdaiya)が執筆に参加した「nginx実践入門」が技術評論社から発売されるので、紹介します。 gihyo.jp 電子版も同時に発売されます。こちらもどうぞ gihyo.jp メル…

Slackへの通知をAttachmentsでわかりやすく...

Site Reliability Engineering Teamの@cubicdaiyaです。今回はSlackのライトなお話です。 SlackのAttachments SlackにはIncoming WebhooksやWeb APIでメッセージを投稿する際、ペイロードにAttachementsと呼ばれる情報を含めることでメッセージを装飾できる…

fluent-agent-hydraで省エネログ転送

Site Reliability Engineering Teamの@cubicdaiyaです。 今回はGo製のログ転送エージェントであるfluent-agent-hydraとメルカリでの利用事例について紹介します。 メルカリとFluentd メルカリではAPIサーバのアクセスログやアプリケーション固有のログをはじ…

PHP BLT #1を開催しました。 #phpblt

サーバサイドエンジニアの@yui_tangです。 先日、メルカリオフィスにて PHP BLT #1を開催しました。 全員がLTで発表するというコンセプトのPHP周辺/Web/サーバサイド全般の勉強会 というコンセプトを打ち出した初回開催、どの程度応募が来るのか不安もありま…

ハイパフォーマンスngx_lua

Site Reliability Engineering(SRE) Teamの@cubicdaiyaです。 今回は数あるnginxのサードパーティモジュールの中でも一際強力で、メルカリでも活用しているngx_luaの便利な活用方法や最適化集について紹介します。 ngx_lua ngx_luaは軽量スクリプト言語のL…

インフラチーム改め Site Reliability Engineering (SRE) チームになりました

インフラチーム改めSite Reliability Engineering チームの @kazeburo です。この記事ではまだ馴染みの薄い Site Reliability Engineer とは何かについて紹介したいと思います。 SREとGoogleのSRE Site Reliability Engineerは日本語にすると「サイト信頼性…

Consulを利用したTLSセッションチケットの自動更新

Site Reliability Engineering Team(通称SRE)の@cubicdaiyaです。最近チーム名が変わりました。 今回はConsulを利用して複数台のnginxサーバのTLSセッションチケットを自動更新する仕組みについて紹介します。 TLSセッションチケット TLSセッションチケッ…

大人のスタートアップは大人のリリースができる。そう、ChatOpsならね。

このブログをご覧のみなさま初めまして。@siroken3です。メルカリではインフラチームに所属しており、リリースの仕組み構築を担当しています。 メルカリのリリースについて メルカリではカスタマーサポートから受け取る改善要望、プロダクトとしてまだやれて…

PHPカンファレンス2015 で会いましょう!! #phpcon2015

こんにちは @sotarok です。 今週末 10/3(土) は、PHPカンファレンス2015 です。 PHPカンファレンスは年に1度開催される、日本最大のPHPの祭典です。 今年のテーマは、まもなくリリースされる (11年ぶりのメジャーバージョンアップ!) の PHP 7 にちなんで "7…

Gitのつくりかた

はじめまして。サーバサイドエンジニアの @DQNEO です。 今日はGitのつくりかたをご紹介します。 C言語学習教材としてのGit Gitと同じものをゼロから作って何の意味があるのか?と思いますよね。 私がこの再発明をやり始めた動機は「C言語を書けるようになり…

Pascal〜Puree + ngx_lua + Fluentd + BigQueryでつくるメルカリのログ分析基盤〜

エンジニアではなくプログラマと呼ばれたい@cubicdaiyaです。今回はメルカリのログ分析基盤のお話です。 メルカリにおけるログデータ分析 メルカリでは初期の頃からログデータの分析をサービスの成長にとって重要なタスクとして位置づけ、そのための基盤作り…

nginx-build〜nginxのビルドプロセスを自動化〜

インフラチームの@cubicdaiyaです。今回はnginxのビルドプロセスを自動化するツールであるnginx-buildについて紹介します。 メルカリとnginx メルカリでは多数のnginxを活用し、高速なレスポンスやサービスの安定稼働を実現するのに重要な役割を果たしていま…

WEB+DB PRESS Vol.88 にメルカリのデータベース設計の記事を書きました

2015年8月22日発売のWEB+DB PRESS Vol.88 にメルカリのデータベース設計、運用に関する特集記事をインフラチームの@cubicdaiya、@siroken3、@kazeburoの3人で書かせて頂きました。 WEB+DB PRESS Vol.88gihyo.jp 特集のタイトルは「実戦データベース設計 サー…

YAPC::Asia Tokyo 2015 で会いましょう!!

こんにちは! メルカリでインフラを担当しております @kazeburo です。 YAPC::Asia Tokyo 2015 の開催まで1週間とちょっととなりました。メルカリからは私も含め2名が登壇しますので、このエントリーでセッションの紹介をさせてください。 実践nginxモジュー…

nginxとGoでつくるメルカリのプッシュ通知システム

原稿の締め切りを越えた先にあるもの、それは校正です。「俺達の戦いはこれからだ!」的な展開に胸が熱く・・・いえ、ちょっと胃のあたりがチクチクする@cubicdaiyaです。 今回はメルカリのプッシュ通知システムとその変遷について紹介します。 メルカリとプ…

Androidクライアントアプリのデバッグ機能

こんにちは, Androidチームの @tomoaki_imai です。 先日 shibuya.apk というAndroid勉強会で メルカリのデバッグ機能についてお話をさせていただきました。スライドはこちらです。 Developing better debug_components from Tomoaki Imai www.slideshare.ne…