見出し画像

アメリカのスタートアップ、リモートエンジニアのオファーを獲得した話(面接、会社名、オファー掲載)

こんにちは、サカモトです。私は現在外資ITのソフトウェアエンジニアとして働いていますが給料は円で貰っています。歴史的にも類を見ない円安ドル高の現在、今後の人生でドルを稼げる力を持つというのは人生の選択肢を増やす上で重要な事だと日に日に感じています。そんな中で100%リモート、アメリカのスタートアップ企業の面接を受けてみたのでその体験記を書いていきます。これから外資や海外リモート企業を目指される皆様のためになればと思います。

ある日メッセージが来ました。開発の主体はアメリカではあるがAPACでの採用を強化しているイメージでした。

フルスタックエンジニアの要件
- 学士以上の関連学位
- 5年以上のWebアプリケーション開発の経験
- React, Vue.js, Angular を使ったフロントエンドの経験
- アジャイルソフトウェア開発の経験(機能・デザイン仕様書のライティング、ユニットテスト設計)

関連記事

面接対策

正直Linkedinでメッセージが来てから全く時間がなかったのでLeetCodeは今までの蓄積を信じて、

  • Prampを使ったモックコーディング面接

  • JavaScript・ブラウザのレンダリングとWebパフォーマンス等のドメイン知識の復習

だけをやりました。今思い返すとCSSも合わせて復習すべきでしたね。特にflex/grid周りはリファレンスを見ないで書けるように練習しておくと良いと思います。

ちなみにPrampとはコーディング面接したい人同士をマッチングさせて、お互いにコーディング面接し合うプラットホームです。無料なので是非お使いください。

Pramp

本来はコーディング面接対策するならLeetCodeやCracking the Coding Interview(日本語訳: 世界で闘うプログラミング力を鍛える本)をやると良いと思います。

JavaScriptに関してはThe Modern JavaScript Tutorialのサイトを一通り見て自分が表面的に理解しているだけで詳しく説明できない部分を復習しました。またFront End Interview Handbookの中にJavaScriptのドメイン知識を答える問題がいくつかあったので、こちらも参考にしてましたね。

ブラウザのレンダリング周りの話はパフォーマンス改善の話が出たときに語れるように、こちらのYouTube見て復習などしてました。

インタビュー内容

全部で3ラウンドの技術面接になっています。そのうち全てでコーディング面接が行われます。スタートアップと聞いていたのに、こんなにコーディング面接やるのか、、、と思いながら受けていました。

1stラウンド

初回はSenior Software Engineerとの面接でした。前半の30分は軽い自己紹介とテクニカルな質問をされました(例: コードレビューで注意している点は何ですか)。正解があるというよりソフトウェア開発に対してどのような取り組みを行っているのかを測っているように見えました。

後半の30分はコーディングテストを行いました。https://codeshare.io/ のリンクと問題文が面接官から送られて来てオンライン上にコードを書くイメージです。LeetCodeのような問題ではなく、実務よりの内容だったと思います。ちなみに言語はJavaScriptで書くことを求められました。あえてLeetCodeに例えるならEasyとMediumの間のレベルの問題でしたね。取り組み方としては問題を読み上げながら理解していき、分からない事があれば都度聞いていく形でした。入力形式の情報が問題文からは曖昧だったので、nullが入ってこないかなどを確認し要件をクリアにしていきました。その後はコードを書き始める前に解法を共有して(必要に応じてコメントの形式で書く)。問題を解いた後はこの問題のテストケースを考えてくださいという指示があり、カバレッジが100%になるようなデータのパターンを列挙し漏れがないかを確認しました。

2ndラウンド

2ndはStaff Software Engineerとの面接でした。前半の20分は軽い自己紹介と過去に自分が経験したプロジェクトの説明をしました。極めてスタンダードなもので、過去のプロジェクトで難しかった事や、テクノロジースタックの説明を求められました。

後半40分はオンラインテストでのJavaScript/CSSに関する問題 + UIのコーディングテストでReact or 自分が得意なフレームワークでUIを作成する問題でした。問題自体はそこまで難しくなかったと思いますが、完全にタイムマネジメントに失敗し、重要な実装をミスしたまま終了し「あっこれ終わったわ」と思いましたが、なぜか次の面接ステップに呼ばれる事となりました。後々聞いてみるとループ面接だったので結果に関わらず次に進めるパターンでしたね。

3rdラウンド

3rdはSenior Software Engineerとの面接でした。面接が始まるや否やhttps://codeshare.io/ のオンラインエディタを渡されていきなりコーディング面接入り、えっ自己紹介しなくていいの?と思いながら問題に取り組みましたが、LeetCodeで言えばEasyレベルを二問だされてこんなに簡単でいいんかなと思いながら解いたところ説明を含め20分以下で終わってしまいました。1stラウンドでやった実務よりの実装ではなくこれ本当にLeetCodeだなって感じの問題でしたね。ちなみにプログラミング言語は何を使ってもよかったので普段から問題を解く上で書き慣れているPythonを使って解きました。

残りの時間はまた過去に自分が経験したプロジェクトの説明をしました。特に困った質問は飛んでこなかったです。前回のうまく説明できなかった部分があったので予め自分の過去のプロジェクトの紹介画像やビデオを見せたので上手く伝えられました。結果的にこの面接ラウンドは一番上手くいったと思います。

InterviewCat

宣伝: テック企業の面接対策にはサカモトは運営開発しているInterviewCatを活用してください。海外のスタートアップでも同様の面接スタイルを行っています。

全体を通しての感想

全体を通してそんなに高難易度の面接ではなかったと思います。強いてあげれば2ndラウンドのコーディングテストかなと思いましたが、内容としてはそんなに難しいものではなく自分の時間配分ミスでした。面接で英語を話せて、ちゃんとコーディングできるレベルなら受かるレベルだったと思います。しかし面接は他人と競う部分もあり、面接のフィードバックをもらった時に実は裏に複数人候補者がいて、面接官全員で話し合いサカモトが一番良いという事で連絡したという話を聞いて少し嬉しくなりました。

1を知って10を知る事ができるわけではないので、もっと難しいアメリカのスタートアップリモート企業はあると思います。しかしながら、今回の経験でオファーを一回でも勝ち取れる事ができたのは一つ自信になりました。

キャリア初期の自分を考えると今の現状は予想できるものではなく、「継続は力なり」と言いますが、嫌いだった英語力を根気よく学び、苦手だったコーディング面接の練習を重ねた事で多少なりとも自信がついてます。外資の面接を受けた事がない方はこれを読んでなお自分が受かるかどうかは未知数だと思います。一回目では上手く行かなくとも、継続すれば高確率で良い結果に繋がります。私も以前何度も面接に落ちました。これは新卒就活のような一発勝負の世界ではありません。諦めずに何度跳ね返されても挑戦を辞めない事が最も大事だという事を胸に留めておいてくれると嬉しいです。

オファー内容

ここから先は検索避けを想定してペイウォール(1000円)を置かせてもらいます。会社名、オファー詳細、Job Descriptionの詳細も書いてあるので、アメリカのリモートスタートアップ企業はこんな感じのオファー出すんだという事を参考にしてください。

ここから先は

2,519字 / 2画像

¥ 1,000

よろしければサポート(ワンコイン)お願い致します。今後記事執筆の励みになります。