見出し画像

ベルリンでエンジニアとして働くことになった。-就活編-

※このページは就活編で、自分自身などについてはポエム編にて記載しています。

はじめに。

来月(2022年7月現在)より、ベルリンのスタートアップ企業でエンジニアとして働きます。どうやって仕事を見つけたのか、どのような選考が行われたのかについて、備忘録として、そしてベルリンでエンジニアとして働きたいと思っているかもしれない誰かに向けて、記事を書くことにしました。
LinkedInで求職ステータスをオンにし、勤務地希望をドイツで出していたところ、次の職場からメッセージをもらったので、カジュアル面談からオファーまでの流れについて著していこうと思います。

カジュアル面談

LinkedInでもらったメッセージの内容は、

  • 会社名とその概要

  • 昨年(2021年)の活動

  • 成長に伴いエンジニアを積極採用しているとのこと

  • 技術スタックについて

についてでした。
そのメッセージに直接返信をし、自分が日本で働いていることと海外での機会に興味がある旨を伝えました。
その後、スケジュールを調整し、Google Meetで30分のカジュアル面談を行いました。面談は主に、

  • 会社についての詳細説明

  • 使用技術や開発現場の様子の説明

  • (私の)これまでの仕事内容についての質問

  • 転職の積極度

についてでした。採用プロセスに進んでほしいとのことで、今後の流れとコーディング試験についての説明を受けて、カジュアル面談は終了しました。
ちなみにここまでも、ここからも使用した言語は英語でした。

コーディング試験

コーディング試験は課題を渡され、それを期間内に完了させて提出するという形式でした。与えられた期間は3日で、内容はWeb APIを作成するといったものでした。評価にあたり、

  • 仕様通りに動くこと

  • テストが書かれていること

を重視するとのことでした。まあ当然のことですね。一応Kotlinで書かれた雛形を渡されましたが、当時はGoをよく書いていたのでGoで実装しました。READMEにアプリの起動方法(docker-compose)や使用したミドルウェアなどの説明を記載し、提出しました。ロギングなどは結構適当でしたが、そこそこちゃんとしたAPIだったので、課題の理解・設計・実装で割と時間はギリギリでした。
提出後は担当エンジニアがレビューをし、正しく実装ができていれば次のプロセスに招待するということで、連絡を待ちました。
コーディング課題を提出した翌日には次にステップについての連絡が来て、レビューしてくれた担当エンジニアと行う技術面接と、エンジニアリングマネージャーとのカルチャーフィット面接なるものに招待されました。

技術面接

技術面談は2人のエンジニアと行いました。まずはお互い自己紹介と軽いアイスブレイクを行い、それから自分の書いたコードについて、意識していたことなどについて質問されました。アルゴリズムについて指摘も受け、計算量やメモリ使用量などについても話は及びました。また、作成したAPIについて、スケーラビリティに関して追加の要求を出され、自分のアイデアをベースにディスカッションを行い、最後にQ&Aの時間を設けてもらい、1時間弱の面接は終了しました。
「面接」ではありましたが、自分のコードの改善点を示してくれたり、ディスカッションでは建設的な議論をすることができたり、緊張しましたが満足感のある時間を送ることができました。

カルチャーフィット面接

一方のカルチャーフィット面接では、面接らしく質問に対してこちらが答える、というスタイルでした。技術面接と同様、まずは自己紹介とアイスブレイクを行いましたが、自分のバックグラウンドについて(文系卒でエンジニアにジョブチェンした話など)、とても興味を持って話を聞いてくれていた点に好感を持ちました。
主に自分の働き方や課題解決へのアプローチについて質問され、当時コーディングに加えプロジェクトマネジメント的なこともやっていたため、

  • プロジェクトが期間内に終わらなさそうなときはどのように対処するか

  • 対処してもそれでもまだ間に合わないときはどうするか

など、PM的な質問をされました。こちらも最後にQ&Aの時間があり、30分ほどで面接は終了しました。面接らしい面接で、かつイギリス人のエンジニアリングマネージャーだったため英語のスピードも早くて、終わったあとはとても疲れていたような気がします。
この面接のあと2日ほどして、リクルーターから最後のシステム設計面接へ招待をされました。

システム設計面接

ここでは技術面接のときと同じように、2人のエンジニアと行いました。(前回とは別の人)
自己紹介と軽いアイスブレイクのあと、お題を言い渡され、その場でシステム設計を行いました。技術面接のとき同様、自分のアイデアをベースにディスカッションし、計算量やメモリ使用量などについても言及しながら、担当エンジニアたちと一緒にシステム設計をしていく感じでした。
技術面接のときもそうでしたが、macでGoogle Meetをしながらsidecarで接続したiPadを使いながら面接をしていたので、図など書きながら意思疎通をすることができ、面接担当者もiPadはいいアイデアだねと言ってくれたので、おすすめです。
システム設計面接も最後にQ&Aがあり、1時間弱で面接は終了しました。

オファー

その後、身内に不幸があったため1週間強ほど期間はあいてしまいましたが、リクルーターからフィードバックがある、とのことでGoogle Meetを行い、オファーをいただきました。各面接担当者からの評価も伝えていただき、「新しいアイデアに対してオープンで、ディスカッションの中で指摘されたことをすぐに修正していた点は良かった」一方、「まだスケーラビリティについてはまだ課題がある」との評価をいただきました。
その後、オファーを受けたあとの流れやリロケーションのサポートなどについて説明を受けて、オファー面談は30分ほどで終了しました。

感想

過去に日本でも転職のために採用試験を受けたことがあり、当時はコーディング試験は受けたままでフィードバックなく、技術面接は知識量を問うだけのような印象を受けていました。しかし今回受けた面接では、実際に現場のエンジニアと一緒に課題に取り組み、自分がこの会社に入ったらこんな感じで一緒に働くんだろうな、というイメージが湧きやすくてとても好印象でした。面接の終わりのときのQ&Aで、このような面接のスタイルはドイツではよくあるものなのか尋ねたところ、「古い会社ではたしかに知識を問うようなスタイルかもしれないが、最近の会社はこのようなスタイルが多いと思う」とのことでした。面接をする側も受ける側も、採用後に一緒に働いてみたらなんかやばいやつだった、みたいなミスマッチが防げるので、とても良い方法だと思いました。
日々の業務での自分の成長や取り組みが評価されてオファーをいただけたのは良かったのですが、システム設計面接のあと正直落ちただろうなと思いました。普段の業務で英語を使うことはあるとはいえ、設計課題でいっぱいいっぱいで頭の処理が追いつかずブロークンイングリッシュで面接担当を困らせていたような気がしていたためです。
面接に対して準備不足であったのは間違いなかったため、結果が出るまでの間、次回以降の機会に向けてYouTubeやTwitterなどでSystem Design Interviewについて発信されている情報をチェックしていたのですが、コーディング試験やシステム設計課題で出されたお題は、定番の問題からそう離れたものではないことがわかりました。中は読んでいないですが、こちらの書籍の目次に載っているのと同じような課題が出されたので、興味がある人は買って読んでみるのもいいですし、著者(@alexxubyte)をフォローするのもいいかもしれません。
余談ですが、海外企業、とくにヨーロッパの企業は時差が7,8時間のため、日本の業務後に面談や面接の予定を組みやすく(ちょうどその時間がヨーロッパが働く時間のため)、思っていたよりスムーズに進んだこともよかったです。

おわりに

ここまでお読みいただきありがとうございました!転職をしようと思ったきっかけなどについてはポエム編で書いていますので、もし興味があればそちらの記事も読んでいただけると嬉しいです。
この記事が誰かのためになれば幸いです。

この記事が気に入ったらサポートをしてみませんか?