🔎

面接体験や対策 ByteDance Backend Software Engineer

面接のプロセスは国によって変わるが少なくとも日本/シンガポール法人のByteDance/TikTokは同じプロセスです。

なぜByteDance

  • ネームバリュー
  • スケール(TikTok以外色々ある)
 
面接のステップは:
  • 書類選考
  • テクニカル面接 x 3
  • HR面接

テクニカル面接#1(レジュメ+ドメイン知識 + コーディング)

面接はレジュメの話から始まりました。レジュメに書いている技術スタックを深掘っていく感じでした。自分の場合、プログラミング言語はGoだったのでGoのGC(ガーベージコレクター)の仕組み詳しく聞かれました。なので使っている技術を改めて予習しておくと良さそうです。また、基本的なデータ構造の内部の動きやComplexityの話もありました。
面接の最後の20分のセッションはライブコーディングです。Leetcodeを練習すれば対策できます。自分の場合は問題を比較的素早く解けたのでもう一つのフォローアップ質問がありました。

テクニカル面接#2(レジュメ+ドメイン知識 + コーディング)

同じくレジュメに沿って話が始まったが過去のプロジェクトの話について聞かれました。プロジェクトの詳細も面接の前にブラッシュアップしといた方がスムーズにいけます。募集要項に分散システムの知識が必須と書かれていたポジションだったので分散システムの話たくさん聞かれました。ただ中国人の英語だとlockとlogの発音に違いがなかったため聞き取るのに苦労してました。
同じく最後の20分はコーディングのテストがありました。最適な解法を最初から出してと言われて面接官と話しながらお互いの納得できる方法に至ったのであとは実装するだけです。実装中日本の生活について聞かれたので集中できてなかったです。おそらく最適な解法を説明できた時点で面接官の中に合格が出たかと感じてました。

テクニカル面接#3 by hiring manager (ドメイン知識 + システムデザイン)

データ構造の話から面接が始まりました。結構深く聞かれるので基礎的なデータ構造を復習しとくと良いです。例えばHashMapのcomplexityはもちろん、内部構造やエッジケースの時のcomplexityも聞いてきます。多く聞かれるより深く聞かれます。個人的にはMIT6006を面接の前見てたのでいい復習でした。
最後の15分に短いシステムデザインがありました。完璧にシステムをデザインする必要なくスケール周りの話が多かったです。

HR round

行動面接では主に過去よかったプロジェクトやチーム構造の話が多かったです。”Tell me about a time…”というような感じではないです。ByteDanceの社内の話もたくさん聞けます。例えばByteDanceは個人でパフォーマンス出せたら個人ボーナス出たりするという話は面白かったです。

オファーミーティング

🎉と思ったらここも戦えなければならないです。ByteDanceは現在の年収もしくはもらっているオファーを聞いてきます。それをベースにオファー額を決めるので他社のオファーも取ってきた方が有利です。他のオファーがなければ現職の年収で戦うしかないのでその時は期待している年収を言うぐらいですね。

まとめ

書類選考が通れば話が速いです。面接が終わって次の面接に進む場合コーディネーターから翌日(または同日)にすぐ連絡がくる。早ければ2週間以内に面接を終わらせることが可能です。ByteDanceバックエンドエンジニアの面接はテクニカル的だがダイナミックプログラミング技法を完璧に覚える必要はありません。代わりに、ソフトウェアエンジニアの基礎的な知識を復習しとく必要があります。会った面接官たちは大体中国オフィス勤務で非常にエネルギッシュで情熱的で知識豊富だったので良いプロセスでした。
 
対策ですが
  • LeetCode 100問
があるとスムーズに行けるのではないかと思います
 
 
 
 

Already purchased? Sign in here.