「BPStudy#119」の発表資料
北米のソフトウェア開発(BPStudy#119)真幡 康徳@スマートニュース株式会社
View Slide
お品書き1. 北米でソフトウェア開発者として働く方法2. 北米のエンジニアリング文化3. 地理的に分散した開発拠点を作る方法
自己紹介
略歴● 2005年: Yahoo! Japan 入社 (新卒)● (転職3回)● 2010年: VOYAGE GROUP 退社● 2011年: 渡加 (BC州バンクーバー)● 同年: Hootsuite, Inc. 入社● 2015年: Hootsuite, Inc. 退社● 2017年: SmartNews 入社
略歴● 2005年: Yahoo! Japan 入社 (新卒)● (転職3回)● 2010年: VOYAGE GROUP 退社● 2011年: 渡加 (BC州バンクーバー)● 同年: Hootsuite, Inc. 入社● 2015年: Hootsuite, Inc. 退社● 2017年: SmartNews 入社気持ちの変化
気持ちの変化● 国内に「転職したい」企業がなくなった● シリコンバレーへの憧れが強くなった
気持ちの変化
北米とは● すなわち「アメリカ合衆国」
北米とは● すなわち「アメリカ合衆国」● そして「カナダ」
北米とは● すなわち「アメリカ合衆国」● そして「カナダ」● さらに「メキシコ」
北米とは● すなわち「アメリカ合衆国」● そして「カナダ」● さらに「メキシコ」 今回お話する対象
シリコンバレー
バンクーバー
えっ...● シリコンバレーで働きたいのでは?
えっ...● シリコンバレーで働きたいのでは?● そうなんです (´・ω・`)
唐突ですが
北米で働くために必要なのは?
北米で働くために必要なのは?● もちろん英語力
北米で働くために必要なのは?● もちろん英語力● ...ではなく、就労許可証 (就労ビザ)
就労ビザを取得する正攻法● 現地の企業にスポンサーしてもらう○ 1. 日本支社 (本社?) からの転勤○ 2. 日本から現地企業への転職● 現地の大学を卒業する● 現地国籍の配偶者を作る
就労ビザを取得する正攻法● 現地の企業にスポンサーしてもらう○ 1. 日本支社 (本社?) からの転勤○ 2. 日本から現地企業への転職● 現地の大学を卒業する● 現地国籍の配偶者を作る全部難しくないですか... (´・ω・`)
簡単にビザを手に入れたい
ご存知ですか?ワーキングホリデー● 海外で「ワーク」と「ホリデー」を楽しめる制度○ ワーク: 「就労ビザ」○ ホリデー: 「観光ビザ」● (言い換えると...) 高性能ビザ発行制度
なにそれ最高じゃん?
ワーキングホリデーの実際● 年齢制限あり (おおむね30才)● ワーキングホリデー協定参加国のみで有効○ カナダ○ オーストラリア○ イギリス○ etc.
ワーキングホリデーの実際● 年齢制限あり (おおむね30才)● ワーキングホリデー協定参加国のみで有効○ カナダ○ オーストラリア○ イギリス○ etc.アメリカ合衆国は対象外
ワーキングホリデーの実際● 年齢制限あり (おおむね30才)● ワーキングホリデー協定参加国のみで有効○ カナダ○ オーストラリア○ イギリス○ etc.当時は消極的な選択だった
ちょっと待ってほしい● 年齢オーバーなんだが... (´・ω・`)
(再掲) 就労ビザの取得方法● 現地の企業にスポンサーしてもらう○ 1. 日本支社 (本社?) からの転勤○ 2. 日本から現地企業への転職● 現地の大学を卒業する● 現地国籍の配偶者を作る
最短で大学を攻略● 社会人向けの短期コース○ がんばれば9ヶ月で卒業可能○ e.g. UC Berkeley Extension
復習しましょう
北米で働くために必要なのは?● もちろん就労許可証 (就労ビザ)
北米で働くために必要なのは?● もちろん就労許可証 (就労ビザ)● ...だけではなく、英語力
英語学校の選び方● 総合大学付属の語学学校がオススメ○ 各専攻の学生と仲良くなるチャンス■ 技術的な文章を添削してもらえるかも
英語学校の選び方● 総合大学付属の語学学校がオススメ○ 各専攻の学生と仲良くなるチャンス■ 技術的な文章を添削してもらえるかも英語の先生が必ずしも技術用語に明るいわけではない
ソフトウェア技術者は尊敬の対象● 例)「俺、プログラマやってるんだ」
ソフトウェア技術者は尊敬の対象● 例)「俺、プログラマやってるんだ」○ 日本: 「そっか、大変だね... (´・ω・`)」○ 北米: 「すごい! カッコいい!!」(一部誇張あり)
ソフトウェア技術者 in 北米● 難しいことを理解していると思われている○ いわゆる文系プログラマは少ない○ (一般に) 採用ハードルは高い■ 新卒一括採用もない● インターンからの入社はありえる● 高給取りだと思われている
北米企業のつらいところ● 解雇が非常にカジュアル○ 生存戦略が必要■ 自身の成果を周囲にアピール■ 替えのきかない仕事の選択
私の Hootsuite でのロールの変化● 2011~2012: アプリケーション開発者 (PHP/JavaScript)● 2012~2014: ローカライズ技術者 (Python)● 2015: DevOps エンジニア
私の Hootsuite でのロールの変化● 2011~2012: アプリケーション開発者 (PHP/JavaScript)● 2012~2014: ローカライズ技術者 (Python)○ (少なくとも) 二ヶ国語の理解が必須○ (社内で) 非主流のプログラミング言語の理解が必須● 2015: DevOps エンジニア
私の Hootsuite でのロールの変化● 2011~2012: アプリケーション開発者 (PHP/JavaScript)● 2012~2014: ローカライズ技術者 (Python)● 2015: DevOps エンジニア○ 色々な “歴史的経緯” の理解が必須
北米企業の給与● (基本的に) 交渉しなければ昇給しない○ 例えば 1 on 1 などで主張する● 入社時の給与交渉も普通に行われる
私の北米時代の給与の変遷● (オフレコ)
北米の技術チームの典型的構成● プロダクトマネージャ● エンジニアリングマネージャ● ソフトウェアエンジニア○ テックリード○ シニア / ジュニア
北米の技術チームの典型的構成● プロダクトマネージャ● エンジニアリングマネージャ● ソフトウェアエンジニア○ テックリード○ シニア / ジュニアディレクター相当?チームリーダー相当?
北米の技術チームの典型的構成● プロダクトマネージャ○ プロダクトに責任を追う● エンジニアリングマネージャ● ソフトウェアエンジニア○ テックリード○ シニア / ジュニア
北米の技術チームの典型的構成● プロダクトマネージャ● エンジニアリングマネージャ○ チームビルドに責任を負う● ソフトウェアエンジニア○ テックリード○ シニア / ジュニア
北米の技術者採用● スキル要求がかなり限定的○ 日本: 「要プログラミング経験3年」○ 北米: 「要Rails経験3年」■ チームごとに採用するため
北米の技術者採用● カバーレター文化● リファラル文化● 電話文化
北米の技術者採用● カバーレター文化○ 画一的なレジュメでは相手にされない○ 募集要項に即したレターを書く● リファラル文化● 電話文化
北米の技術者採用● カバーレター文化● リファラル文化○ 人気企業はリファラルがないと面接にたどり着けない○ Meetup などであらかじめツテを作る● 電話文化
北米の技術者採用● カバーレター文化● リファラル文化● 電話文化○ 現地面接の前に電話でふるいにかけることが普通
北米の技術者採用 - 事例紹介● (オフレコ)
北米の技術者面接● ほぼ間違いなく技術者が面接する○ 入社したら同僚になる人間○ 入社したら上司になる人間● ほぼ間違いなく技術的なトピックが聞かれる● かなり時間をかけて面接される○ まるまる数日かけて選別されることもある
北米の技術者面接● ホワイトボードコーディングはある程度のパターンがある
北米の技術者面接
北米の技術者面接 (例)● 一般的なスタックのように、push() と pop() が可能で、さらにスタック中から最大の要素を返却する getMax() が実装されたスタッククラスを作成してください。なお、getMax() は O(1) で動作するものとします。
大前提● 開発拠点の分散は とても 難しい● 前職でも開発拠点は分散させていない
開発拠点を分散させる難しさ● 言語の壁● タイムゾーンの壁● 空気感 (?) の壁
開発拠点間の言語の壁● 歯を食いしばってがんばるしかない
開発拠点間の言語の壁● 歯を食いしばってがんばるしかない● ...が、仕組みでカバーできる部分も
SmartNews の最近の取り組み
まだ道半ば● たとえば、ボットはどうローカライズする?
まだ道半ば
開発拠点間の時差の壁● Google Calendar は優秀○ 設定次第でかなり時差を吸収できる
開発拠点間の時差の壁
常に相手のタイムゾーンを意識● たとえば Clocker
便利ツールまじ便利● とはいえ...○ 同じ空間を共有する方が相互理解は深まる■ 交流を促す仕組みが求められる
今日お話したこと1. 北米でソフトウェア開発者として働く方法2. 北米のエンジニアリング文化3. 地理的に分散した開発拠点を作る方法
今日お話したこと1. 北米でソフトウェア開発者として働く方法2. 北米のエンジニアリング文化3. 地理的に分散した開発拠点を作る方法道半ば (´・ω・`)
一緒にやっていきましょう
まずは気軽にランチでも
Thanks!