Skip to content

Instantly share code, notes, and snippets.

@penguinco
Last active August 29, 2015 14:05
Show Gist options
  • Star 6 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save penguinco/a2f9fbe4f47d152140b1 to your computer and use it in GitHub Desktop.
Save penguinco/a2f9fbe4f47d152140b1 to your computer and use it in GitHub Desktop.
講演メモ
freakout
(バナー広告の現在について紹介)
DSP
URLとcookieを見て分析して、
男性女性何歳 生活習慣興味関心、どんな広告がベスト?
いくらで入札するのが一番なんだろうか?
を判断、100msでの入札RTB
会社の成長について
創業から3年半
エンジニア:社長1->25人
オフィス:2段ベッド → 世界
今は、入札リクエスト数 2200億/月
事業成長を加速させるために必要なこと
・テクノロジー x 業務知識 x データサイエンス
テクノロジー:
50ms
必要な枠必要な人必要な瞬間だけリアルタイムで買うには?
FreakOut DSP
入札サーバー/hadoopクラスタ
それぞれ数百台くらいの規模
基本はオンプレ。AWSは一部
入札サーバーは安いコアを並べる
入札の判断には必要なKVS
十億ブラウザの性別など属性を持つ。
CAP定理のAP, とread/writeパフォーマンスが必須
tech stack : fluentd, hbase, es, hadoop , hive, perl, kibana
業務知識:
アドテク。広告の領域において、複数の企業が相互にシステム接続して成り立つ生態系。
生態系を理解することが、業務理解への近道
早期の段階(創業一年後)から、業務オペレーションを全てAPI化する
パートナーへ開放
プロダクト的なメリット
・クライアントやパートナーの要求に柔軟に対応
・プラットフォーマーとして市場を提供する側へ
エンジニアリングのメリット
・抽象化する意識の高まり
・深まる業務知識
ドッグフードを食べる
FreakOut 管理画面もAPIクライアントの一つ
FreakOut 上に、エンジニアがユニークなアプリケーションをどんどん開発(天気連動入札)
APIを使って社内ハッカソンができる。
データサイエンス:
・PDCAサイクルを高速化するプロジェクト体制とは?
・データサイエンティスト
・エンジニア
・プロダクトマネージャー
・経営企画
・CTO/CEO
↑のメンバーでチームを組んで、プロジェクトを回す
さらに、共通言語を持つ(CPC 回帰分析 検定 Hive 機械学習)
ロジックのスプリットランテスト
2200億インプレッションを7つのロジックを並列でテスト。
数時間で成績が見える(可視化)
CTR・CVRを見比べる画面のデモ
フリークアウトのCTR予想モデル(例)
Hivemall ロジスティック回帰(正則化なし)
最適化はSGD
ログは直近3日分30GBで実行時間は一時間
→数時間で結果が見える。手元でやるよりよい。
浜本階生
プログラミング歴20年
2007年頃から個人で色々作るのがたのしくなってくる
会社をやめて個人サービスを開発する方に100%コミット
Blogopolisは注目された
2010年から基盤技術を開発開始、
ニュース配信への応用を発案
crowsnestを2012年ごろまでにリリース
2013年 アプリへピボット
2013年 400万DL
2014年から本格的に開発していく感じだと表現
人数が急激に増えてくるフェーズ
tech stack jenkins data dog newrelic munin fabric chef
しかし、技術環境は重要だが、表層
その下には
・技術環境、(CI モニタリング、テスト自動化)
・チーム環境、(朝会、雑談、オフィス)
・開発思想(ビジョン、哲学)
がある
開発思想:
・プロダクト中心主義
・細部へのこだわり
・職人気質(かたぎ)
全社員でSFでクレイグリストを使ってスマフォユーザーをオフィスに招いてユーザーテスト
風景:https://www.dropbox.com/s/jiyv3ona71i1dwn/2014-08-23%2014.39.13.jpg
入社した人は5回ユーザーテストに参加するというルールがある(いい!)
形態素解析による折り返し:
合理性を超えた細部へのこだわりが重要だと考えている(哲学)
チーム環境:
・オフィス
チームコラボレーションが発生しやすいように作っている
・雑談文化
なるべく会議をしない、会議室を使わない、雑談する
→必要なときに、必要な人で、必要なことだけを話せる、合議制に陥らない。
・フリースペース
・ホワイトボード
→とにかく書く(いい!)
Clonfluenceを使っていた→重い
Qiita:Teamに乗り換え → 投稿激増
ツールの選定重要
まとめ:
思想チーム環境を大事に守りつつ、技術環境の改善を続けて開発体制を充実させていく
メルカリ開発の歴史
アジェンダ:
・メルカリはどんなアプリ?
・どんなチームで開発している?
・大事なことはスピード
・メルカリ
毎日10万出品
月次流通10億円以上
開発チーム:
・2013年1月に誕生(7月にリリース)
・クライアント:1人
・サーバ:2人
・フルタイム開発者は1人
android 2
iOS 2
server 7
(US版の開発も開始)
ゴール100なら今は1
これまでは0->1の段階
開発者の役割、開発の考え方は成長段階によって変わる。
・大事なこと
使ってもらって価値を高める
スピードを出す方法(教訓):
1. 迷ったら単純な方を選ぶ(高機能だけど複雑なもの vs 低機能だけど単純なもの|chef vs ansible)
低機能だけど単純なものは習得がしやすく成果が出やすい
半年一年先よりも今のメリットが大事
2. 60%でリリース(いつか使われるかもしれないコードを今準備してもだいたい使われない)
いつまでたっても終わらない、UIデザインもよくある話、ユーザーの反応を見て決める
Done is better than perfect.
3. 最も重要な事にフォーカスする
メルカリの場合、ホーム画面に表示される商品の一覧、出品・購入の操作にフォーカス
アプリ公開を急ぐために、盛り込む機能を限界まで絞った(APIの数 95->171)
アプリ公開時は物理のさくらのサーバー1台に高性能サーバーに全部つっこんだ
これによる準備時間の削減は堅牢なインフラを先に準備するより価値があった。
これから
1->10
これまでうまくいく考え方も一旦リセットして、
個人の力をチームにすることが重要
課題:
グローバルの開発体制
1000万ユーザー規模のスケールアウト設計
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment