Revised v4Presenter
Life of a Google engineer
グーグルエンジニアの日常
Tomoaki Yamauchi
Sep 28, 2010
Revised v4Presenter
自己紹介と今日の内容
今日の内容
どんな仕事をしているの?
どうやって仕事をしているの?
好きな仕事ができるの?
仕事以外の職場環境は?
ワークライフバランスってどうなの?
どうやったらグーグルエンジニアになれるの?
ケーススタディ
Revised v4Presenter
仕事内容
どんな仕事をしているの?
SWE (Software Engineer)
Googleの製品・サービスを作る人
PM (Product Manager)
ユーザーとSWEの架け橋になる人
SRE (Site Reliability Engine...
SWEはどんな仕事をしているの?
idea design implement launch
最初から最後まで
どんな製品・サービスがあるの?
Revised v4Presenter
仕事の環境
どんなマシンを使っているの?
専有
ラップトップ
デスクトップ
データセンター上のVirtual Workstationを代わりに
持つこともできる
大きなディスプレイ - 30 inch
共有
世界中のデータセンター
コードやデータはどう管理しているの?
ソースコード
基本的に全世界・全プロジェクト共通のリポジトリ
オープンソース・プロジェクトなどの特殊なものは別
VCSのコマンドを直接実行することは少ない
さまざまなラッパーや補助システムがある
コードレビ...
ビルド・ジョブ実行
ビルド
内製のビルドツール
自動的に分散ビルド・分散テスト
ジョブ実行
世界中のデータセンターの計算クラスタが自由に使える
クォータの制限はあるが、かなり大きい
同じバイナリをローカルでも実行可能
テスト実行で便利
他のプロ...
Revised v4Presenter
仕事の進め方
どんな体制で開発しているの?
世界中から開発に参加
分散しすぎてて効率悪いんじゃ?
プロダクト単位のコアチームの構成
ある程度地理的な配置を考慮
VCでつないでチームミーティング
時差12時間もあるとさすがにしんどい
個々のプロジェクト
少人数(1~数人)
face to faceコミュニケーシ...
英語ですか?
英語です。
日本人同士なら日本語で話しますが、
読み書きはそれでも英語です。
ただし、ブロークンな英語でもわりと許してくれます。
(SWEの場合。他の職種はわかりません)
でも、話すのはともかく、聞けないのはしんどいかも。
ローンチプロセスとかは?
製品・サービスによって詳細は違いますが・・・
クォリティは大丈夫?
インパクトは十分?
セキュリティは?
リソースは足りてる?
メンテナンスできるの?
法律に違反してないよね?
関連チームへの確認はOK?
などなど
エ...
Revised v4Presenter
個人と組織
好きな仕事ができるの?
半分Yesで半分No
Noの理由
コアメンバーになるにはコアチームがいないと難しい
他のエンジニアからのサポートがないとしんどい
Yesの理由
20% Projectなら比較的自由にプロジェクトを選べる
Full-tim...
仕事以外の職場環境は?
オフィスに来るのが楽しくなる仕掛け
朝・昼・晩の食事。お菓子や飲み物。(無料)
オフィスデコレーション、遊具、マッサージ 
各種クラブ
チームの絆を深める仕掛け
仕事中のおしゃべりはOK
休憩時間とかは決まっていない
各...
ワークライフバランスはどう?
仕事が好きそうな人が多いけど、みんな大丈夫かな・・・?
仕事時間の裁量は自由度が高い
有給のほかに疾病休暇(有給)もあり
病気の時のために有給を残しておくとか考えない
1週間位まとめて休んで家族旅行とか普通
子供の...
Revised v4Presenter
採用活動
どうやったらグーグルエンジニアになれるの?
エンジニアの採用は、エンジニアの大事な仕事
まずはレジュメ
エンジニアが見て「これは!」と思えば、面接へ
電話面接。オンサイト面接。
人事や管理職ではなく、現場のエンジニアが面接
技術力を問う質問が中...
だから、具体的にどうすればいいの?
英語
全然できないと入った後しんどい
英語のAPIドキュメントを読んで理解できて、
海外に個人旅行ができる程度の英語力があれば、
とりあえずは大丈夫だと思う
技術
さまざまな分野を知っているほうがいい
CPU...
Revised v4Presenter
ケーススタディ:私の場合
経歴
大学
特に情報科学や情報工学ではない
文学部:言語学
工学部:工学系基礎、経営学
院進学しないで就職
プログラミングとの出会いは21歳のとき
職歴
大手SIでオープン系のインフラ構築支援のエンジニア
中堅ソフトウェアメーカーでソフトウェア...
グーグルに入社した経緯
グーグルの検索広告でエンジニアを募集していることを知る
転職フェアにグーグルが来るというので話を聞きにいく
とりあえずレジュメを送ってと言われたのでだめもとで送る
なぜか面接の連絡が来て、なぜか1次面接に受かる
2次面接...
グーグルに入社した経緯(続き)
期待して結果を待つが、落ちる
ショックだったが、惜しかったからまたチャレンジして、と言われ
て1年後の再戦を勝手に誓う
1年間、情報科学の勉強を、仕事の傍ら、独学する
1年後、再度応募して、今度は受かる
(今度は...
平日の過ごし方(一例)
7時 起床。重要なメールの確認
8時半 家を出る
10時 オフィスに到着
10~11時 メールの処理を終える
11~12時 コアチームとビデオ会議
12~13時 昼ごはん。雑談
13~16時ごろ なんとなく集中
16時か...
他の会社と違うとところ
どのオフィスに所属しても、エンジニアとしては対等
時差や規模などがハンディでないわけではない
コードレビューが必須
プロジェクトのコアメンバー
プログラミング言語毎の認定エンジニア
エンジニアがエンジニアを評価
採用でも...
Revised v4Presenter
ご静聴ありがとうございました
Google Developer Day 2010 Japan: Google エンジニアの日常 (山内 知昭)
Upcoming SlideShare
Loading in …5
×

Google Developer Day 2010 Japan: Google エンジニアの日常 (山内 知昭)

3,853 views
3,746 views

Published on

Google のソフトウェアエンジニアがどのような環境でサービスの開発を行っているかを紹介します。

Published in: Technology
0 Comments
3 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
3,853
On SlideShare
0
From Embeds
0
Number of Embeds
790
Actions
Shares
0
Downloads
26
Comments
0
Likes
3
Embeds 0
No embeds

No notes for slide

Google Developer Day 2010 Japan: Google エンジニアの日常 (山内 知昭)

  1. 1. Revised v4Presenter Life of a Google engineer グーグルエンジニアの日常 Tomoaki Yamauchi Sep 28, 2010
  2. 2. Revised v4Presenter 自己紹介と今日の内容
  3. 3. 今日の内容 どんな仕事をしているの? どうやって仕事をしているの? 好きな仕事ができるの? 仕事以外の職場環境は? ワークライフバランスってどうなの? どうやったらグーグルエンジニアになれるの? ケーススタディ
  4. 4. Revised v4Presenter 仕事内容
  5. 5. どんな仕事をしているの? SWE (Software Engineer) Googleの製品・サービスを作る人 PM (Product Manager) ユーザーとSWEの架け橋になる人 SRE (Site Reliability Engineer) Googleのサービスを動かし続ける人 SWE in Test / Test Engineer Googleの製品・サービスの信頼性を高める人 Ops Googleの社内システムを動かす人
  6. 6. SWEはどんな仕事をしているの? idea design implement launch 最初から最後まで
  7. 7. どんな製品・サービスがあるの?
  8. 8. Revised v4Presenter 仕事の環境
  9. 9. どんなマシンを使っているの? 専有 ラップトップ デスクトップ データセンター上のVirtual Workstationを代わりに 持つこともできる 大きなディスプレイ - 30 inch 共有 世界中のデータセンター
  10. 10. コードやデータはどう管理しているの? ソースコード 基本的に全世界・全プロジェクト共通のリポジトリ オープンソース・プロジェクトなどの特殊なものは別 VCSのコマンドを直接実行することは少ない さまざまなラッパーや補助システムがある コードレビューが必須 データ ホームを含むさまざまなディレクトリがNFS どの端末でも同じホームで作業できる どの端末でも同じコマンドが実行できる ジョブの入出力などの大容量データはGFS
  11. 11. ビルド・ジョブ実行 ビルド 内製のビルドツール 自動的に分散ビルド・分散テスト ジョブ実行 世界中のデータセンターの計算クラスタが自由に使える クォータの制限はあるが、かなり大きい 同じバイナリをローカルでも実行可能 テスト実行で便利 他のプロジェクトの生成ファイルにもアクセスできる 中間処理の終わったWebページなど
  12. 12. Revised v4Presenter 仕事の進め方
  13. 13. どんな体制で開発しているの? 世界中から開発に参加
  14. 14. 分散しすぎてて効率悪いんじゃ? プロダクト単位のコアチームの構成 ある程度地理的な配置を考慮 VCでつないでチームミーティング 時差12時間もあるとさすがにしんどい 個々のプロジェクト 少人数(1~数人) face to faceコミュニケーションは重要 必要に応じて出張して開発 その他 メールが中心。チャットを使う人も。 グループウェア(カレンダーやバグトラッカーなど)
  15. 15. 英語ですか? 英語です。 日本人同士なら日本語で話しますが、 読み書きはそれでも英語です。 ただし、ブロークンな英語でもわりと許してくれます。 (SWEの場合。他の職種はわかりません) でも、話すのはともかく、聞けないのはしんどいかも。
  16. 16. ローンチプロセスとかは? 製品・サービスによって詳細は違いますが・・・ クォリティは大丈夫? インパクトは十分? セキュリティは? リソースは足りてる? メンテナンスできるの? 法律に違反してないよね? 関連チームへの確認はOK? などなど エンジニアが主体的に関わっていく範囲は広い エンジニアへからインプット エンジニアへのフィードバック
  17. 17. Revised v4Presenter 個人と組織
  18. 18. 好きな仕事ができるの? 半分Yesで半分No Noの理由 コアメンバーになるにはコアチームがいないと難しい 他のエンジニアからのサポートがないとしんどい Yesの理由 20% Projectなら比較的自由にプロジェクトを選べる Full-time projectでも課題発見・解決は裁量の範囲 親切な人や使えるリソースが多い
  19. 19. 仕事以外の職場環境は? オフィスに来るのが楽しくなる仕掛け 朝・昼・晩の食事。お菓子や飲み物。(無料) オフィスデコレーション、遊具、マッサージ  各種クラブ チームの絆を深める仕掛け 仕事中のおしゃべりはOK 休憩時間とかは決まっていない 各種イベント - オンサイト・オフサイト ランチタイムのミニトーク ハッカソン Funイベント
  20. 20. ワークライフバランスはどう? 仕事が好きそうな人が多いけど、みんな大丈夫かな・・・? 仕事時間の裁量は自由度が高い 有給のほかに疾病休暇(有給)もあり 病気の時のために有給を残しておくとか考えない 1週間位まとめて休んで家族旅行とか普通 子供の病気とかで当日の朝連絡して休むのも普通 子供が生まれたら、 父親は育休(4週間は有給)をとるのが普通 母親の産休(16週間は有給)をとることができる 14週間(法定) + 2週間 少なくともとりにくい雰囲気はないはず
  21. 21. Revised v4Presenter 採用活動
  22. 22. どうやったらグーグルエンジニアになれるの? エンジニアの採用は、エンジニアの大事な仕事 まずはレジュメ エンジニアが見て「これは!」と思えば、面接へ 電話面接。オンサイト面接。 人事や管理職ではなく、現場のエンジニアが面接 技術力を問う質問が中心 ホワイトボードにコードを書くことも 面接官は、面接の後、合否の判断とその客観的な理由を書 いたレポートを提出 合否の決定 何人も面接したレポートを元に、会議で決定
  23. 23. だから、具体的にどうすればいいの? 英語 全然できないと入った後しんどい 英語のAPIドキュメントを読んで理解できて、 海外に個人旅行ができる程度の英語力があれば、 とりあえずは大丈夫だと思う 技術 さまざまな分野を知っているほうがいい CPUの仕組みからソフトウェアデザインまで 表層的でない理解が求められる。「なぜそうなのか?」 人に指示する力ではなく、自分で作れる力を重視 きれいなコードをすばやく書けると好印象
  24. 24. Revised v4Presenter ケーススタディ:私の場合
  25. 25. 経歴 大学 特に情報科学や情報工学ではない 文学部:言語学 工学部:工学系基礎、経営学 院進学しないで就職 プログラミングとの出会いは21歳のとき 職歴 大手SIでオープン系のインフラ構築支援のエンジニア 中堅ソフトウェアメーカーでソフトウェア開発エンジニア
  26. 26. グーグルに入社した経緯 グーグルの検索広告でエンジニアを募集していることを知る 転職フェアにグーグルが来るというので話を聞きにいく とりあえずレジュメを送ってと言われたのでだめもとで送る なぜか面接の連絡が来て、なぜか1次面接に受かる 2次面接はカリフォルニアで、といわれて焦る 会社を休んでマウンテンビューへ
  27. 27. グーグルに入社した経緯(続き) 期待して結果を待つが、落ちる ショックだったが、惜しかったからまたチャレンジして、と言われ て1年後の再戦を勝手に誓う 1年間、情報科学の勉強を、仕事の傍ら、独学する 1年後、再度応募して、今度は受かる (今度はカリフォルニア旅行はなし!) 晴れてグーグルエンジニアに
  28. 28. 平日の過ごし方(一例) 7時 起床。重要なメールの確認 8時半 家を出る 10時 オフィスに到着 10~11時 メールの処理を終える 11~12時 コアチームとビデオ会議 12~13時 昼ごはん。雑談 13~16時ごろ なんとなく集中 16時から30分位 マッサージチェアでリラックス 16:30~18:40 お菓子を食べながら、もうひと頑張り 18:45 会社を出る 20:15ごろ 家に到着 24時ごろ 就寝
  29. 29. 他の会社と違うとところ どのオフィスに所属しても、エンジニアとしては対等 時差や規模などがハンディでないわけではない コードレビューが必須 プロジェクトのコアメンバー プログラミング言語毎の認定エンジニア エンジニアがエンジニアを評価 採用でも人事評価でも 豊富なリソース 計算機、コードだけでない 実際に使える
  30. 30. Revised v4Presenter ご静聴ありがとうございました

×