エンジニアたるもの、アメリカのGAFAMなどの有名企業やスタートアップで働いてみたいと思いませんか??
今回読んだ本『エンジニアとして世界の最前線で働く選択肢』は、「アメリカで働くとはどういうことか?」をわかりやすく伝えてくれる良書でした。
海外就職を考えているエンジニアの方に一度は読むことをお勧めしますので、紹介させていただきます!
本記事では要約的に一部の内容を書いていますが、詳しい解説や事例は本書に詰まっていますので、是非お手に取ってみてください。
著者について
竜さんは、ソフトウェアエンジニアとしてサンフランシスコのベイエリア(シリコンバレー)で10年以上、シアトルエリアで4年以上の勤務経験があります。
Amazonで働かれた経験があり、この本の執筆当時はMicrosoftに勤められているということで、バリバリのつよつよエンジニアの方です。
ただ、帰国子女というわけではなく、大学院までは仙台で過ごされており、日本で教育を受けられてから渡米されています。
海外でなく日本で教育を受け、キャリアを積んできたエンジニアにとって、竜さんの経験は非常に参考になるのではないでしょうか。
あなたはアメリカに合っているのか
渡米したい人には、もしやってみたいと思うならば、何かと理由をつけて先延ばしにしないほうがいいと述べておられます。
完璧に準備しようと時間をかけると、人生のステージが進むに従い、実現がさらに困難になってくる。
「思い立ったが吉日」「案ずるより産むが易し」で海外に住もうということです。
アメリカでエンジニアとして働くメリットとして、
- ソフトウェアエンジニアはベストジョブ
- 管理職でなくても、年収の中央値は1000万円を超える
- 社会全体から尊敬されている
- 外国人のハンディが少ない
- 転職が不利にならない
- 自由で合理的な職場環境
- キャリアパスの選択肢がある(マネジメント系、技術系)
反対にデメリットとして
- 外国人として働く
- プライベートでも外国人
- 外国語を使ってコミュニケーションしなければならない
- 管理職への昇進が難しい
- クビになる確率が高い
- 家族と離れて暮らす
- 【田舎限定】食べ物の良し悪しは無視できない
を挙げられています。
こうしたメリデメを踏まえつつ、「アメリカに合っている日本人エンジニア」は以下のような条件を満たしそうとのことです。
- ソフトウェアの本場で働きたい
- ずっとエンジニアとしてコードを書いていたい
- 会社と従業員は対等な契約関係だと思う
- 海外に住むのはかっこいいと思う
- 自分の仕事は難しいのだから、高給をもらえるべきだと思う
- 自分の専門を活かす職を日本で見つけるのが難しい
- 自分はどんな環境でもやっていけると思う
- 情緒より理屈で物事を考える
- たいていのことは自分でやってしまう
- 日本の〇〇のノリが苦手
- 日本の人間関係のウェットさが苦手
- お酒を飲めない
どうやったら渡米できるか
ソフトウェアエンジニアは一番英語力を問われないポジション
海外から来るエンジニアの比率が高いのが一因です。
現地に住んで勉強した方が上達のスピードはずっと速くなるので早いうちに移住した方が英語面で良いそうです。
シリコンバレーは一番英語力が問われない
2010年にシリコンバレーの技術者の半数以上がアジア人になりました。
技術を武器に移住してきた人たちはあまり英語能力を問われません。
ある程度会話が成り立って、しっかりしたコードが書ければok。
情報伝達速度が大事です。
そして、日本人の英語能力は高いです。
さらに、オンラインで英語を学べるリソースは溢れかえっています。
ビザの壁
いくつかのビザの種類が紹介されています。
また、永住権・市民権についても触れられています。
ビザなどの状況は政権と時期により変化するので、都度一次情報に当たるのが良いかと思います。
3つの就職ルート
- 留学後に現地就職
- やる気と能力があれば一番確実
- 日本で就職後に移籍
- 一番簡単、でも運任せ
- 日本から直接雇用
- ハードルが一番高く、運も必要
アメリカ企業に就職・転職する
レジュメ作成
- 大事な項目から順に書く
- 名前、できること、職歴、学歴
- 'Objectives'、'Hobby'は不要
- OSS貢献、自作サービス運営は非常に受けが良い
- 転職サイトでキーワードマッチングに引っ掛かるようにする
- Linkedin、Monster、Dice
- ポジションに合わせてレジュメを変える
- ネイティブスピーカーのチェックを受ける
- 非英語圏出身者は英語のファーストネームを使うのもあり
- 面接に呼ばれる確率が有意に上がるようです。シビアですね。
応募
- 公式ページより社員からの紹介
- 有名企業ほど直接応募は埋もれてしまう
- すでにその会社で働いている社員から紹介してもらうのが高確率
リクルーターとの"chat"(緩めのスクリーニング)
- やりたいことを明確に、給与額は不明確に
- 自分にとって欠かせないものは何か?を意識
- 希望給与額を言ってはいけない
- 現在の給与額も言う必要はない
電話面接
- 現在の仕事内容の確認
- 希望する仕事内容の確認
- 口頭での技術的質問
- コーディング
- collabeditがよく使われるサイト
- 不正をすると面接が2度とできない
オンサイト面接
45分〜1時間くらいの面接を、それぞれ違う面接官相手に4回〜6回ぐらいやることになります。
- 事前に会場を下見する
- 働いている人の中で一番きちんとした服装でいく
- 閃きの可能性と自信を高める
- カフェインを多めに取る
- トイレの個室などでパワーポーズを取る
- 面接官との距離を縮め、緊張をほぐす
- 途中で失敗しても、最後まで最善を尽くす
- ランチは面接に含まれない、というのは信用しない
- ランチの雰囲気は最終判断に考慮されうる
- 応募者側も志望企業を面接している
- 最後に質問をする
- 入社の決め手になる答えが期待できる質問をする
- オフィスを見せてもらう
結果通知
- すぐに入社しますと言わない
- オファーの細かい内容を見てから検討する
最終決断
- 舞い上がったままオファーを受けるな
- 本当にやりたいポジションか?
- 他の会社よりもいいのか?
- 現職に留まるよりいいのか?
- カルチャーフィットしそうか?
- 条件を交渉する
- ジョブタイトル
- 基本給
- サインアップボーナス(現金と株)
- ベネフィット(福利厚生)
辞職
- 退職日で収入が変わるので注意
- 日本以上に円満退社が大事
- 'Don't burn the bridge'
ホワイトボードコーディング面接を突破する
面接官の前で、求める機能を実現するコードをホワイトボードに書いていく面接です。
仕事の実力だけでは不十分
面接官に説明しながら手書きするので、練習とコツが必要です。
コーディング面接の流れ
- 自分のペースを掴む、緊張を避けられることは何でもする
- 軽いジョークを挟んだりする
- 一般的な質問には短くまとまった返答をする
- ネガティブなことを言わない。デメリットしかないから
- 現職の悪口は言わない
- 問題を出されたら、とにかく確認する
- 勝手な思い込みで突っ走ってしまって後になってから大きな間違いに気づくような人は採用されない
- 最初に確認して将来の手戻りを防止するコミュ力が見られている
- 最適でなくても方針を説明する
- テディベア効果で説明することで改善策が浮かぶかもしれない
- ホワイトボードに余白と行間を確保する
- 書き足す可能性があるため
- 処理の塊ごとに説明してから書く
- まずメインの関数を最後まで書いてしまう
- 書き終えたら、チェックし、バグを見つけて修正する
- コーディング終了でも面接終了ではない
- 問題へのアプローチの仕方が、問題が解けるかどうかより大事
- 終了後は次に集中する
- 一つ前の失敗を悔やんでも良いことは何もない
ノーヒントで解くより、「こいつと一緒に仕事をしたら楽しそうだ」
面接官とディスカッションをしながら解答にたどり着くプロセスがチェックされます。
自分を合格にして一緒に仕事するといいことがある、と面接官に伝えるのがポイントだそうです。
コミュニケーション能力とは
アイディアを説明すること、人のアイディアを取り込むこと
- 他人の意見を客観的に聞けるか?
- 他人から学べるか?
- 自分の意見を主張できるか?
- 意見が対立した時に、自分の意見に拘泥せずに正しいジャッジができるか?
問題に出しやすい技術、出しにくい技術
- ランダウの記号(Big-O notation)
- メモリ消費量も聞かれることがある
- ハッシュテーブル(hash table)
- 任意の要素へのアクセスが
O(1)
で、複雑なほとんどの問題がこれで解決できる - これを使えないという制限のある問題を出す人もいるくらい
- 任意の要素へのアクセスが
- 再帰(recursion)
- 木構造(tree)
- 配列(array)
- たいていの問題は
O(n)
が最適解なことが多い
- たいていの問題は
どこで練習するか
有名な対策本とサイト
- Programming Interviews Exposed: Secrets to Landing Your Next Job
- Cracking the Coding Interview: 150 Programming Interview Questions and Solutions
- careercup
- LeetCode
アメリカで働くと何が違うのか
- 飲み会なし、ほとんどランチで済ませる
- 同僚と仲良くなるにはランチが有効
- 残業代なし、コアタイムなし、好きな時に家で働く
- エンジニアはみな年俸制
- アウトプットの質と量で成果主義の評価が行われる
- 会社での滞在時間、仕事にかけた時間といった判断基準は一度捨てる
- ミーティングの量は最低限
- 参加人数は絞られる。必要な人だけ招集
- 開発プロセスは適量を追求
- 360度評価
- 自分が人を評価している時、そこから自分も評価されている
- マネージャーが人事権も握る
- 反対意見はしっかり表明
- Disagree & Commit
- チームとしての決断には、個人として反対はしてもその方針にコミットする
- 感情を爆発させるのはプロ失格
- メンタリングによりスキルアップ
- エンジニアが主な面接官
- モラルイベントがある
- 業務時間に開催される会社のピクニックやパーティー、旅行など
転職を通してキャリアアップする
- 転職のタイミングは自分よりも周りの状況がカギ
- 特に景気の良さが大きな要因に
- 1年後と言わず力試しで挑戦してみるのは良い
- ポジションは、できることより、したいこと
- やりたいものに近づけるかどうかも見る
- 内容も環境も大事
- 安定の大企業 or 何でもあり得るスタートアップ
- 迷ったら難しいポジションを選べ
- ex. Research Engineer
- 技術系とマネジメント系のキャリアトラックが用意されている
- 歳を取れば能力が衰える。再就職のチャンスも減ってくる
- ネガティブなことだけではない
解雇に備える
- ファイア、は悪い解雇
- 違法行為、職務怠慢、社内規則違反などによる
- 勤務態度に問題のない、パフォーマンス不足での解雇もある
- レイオフ、は必ずしも悪いとは言いきれない解雇
- 会社に原因のある解雇
- 従業員に落ち度はなく、次の会社に雇われる時に悪い経歴として問題になることはない
- 噂レベルのレイオフ対策
- 2階層上のマネージャーと仲良くしておく
- 定常的なリモート勤務を避ける
- 複雑なプロジェクトの第一人者になり、ドキュメントは書かないでおく
- 昇進昇給などを避け、自分の給与額を低めに抑えておく
- 転職可能な状態にいておくことが1番のレイオフ対策
おわりに
- アメリカの方が雇用が流動的で、エンジニアとして働く文脈で優れていることが多いです。雇用の不安定さというデメリットはあります。
- アメリカで働けば幸せとは限りません。とはいえ、迷った時には将来の後悔の量を最小にする選択をするのが良いかもしれません。
- 試しにやってみたら、思ったよりずっとあっさりとアメリカで働くチャンスはあるようです。