シンガポールで転職活動をした
シンガポールでソフトウェアエンジニア職を探し、無事オファーを貰うところまでたどり着きました。誰かの参考になるかもしれないのと、自分で後で思い返せるように経験を纏めてみました。
背景
以下の状態で転職活動を始めた。
- 日系企業に新卒入社・ERP開発
- シンガポール在住(約6年)
- ソフトウェアエンジニアとしての経歴は、研修期間や、PMなど実質別のロールで働いていた時期を除くと5年半くらい
- 転職活動経験はほぼ無し
- 大学は非CS卒(地方国公立文系)
実は元々日本に帰る予定だったのだけど、諸事情によりシンガポールに残る方針に変更。すでに会社事情で帰任時期が決まっていて、それまでに転職する必要がある形になってしまっていた。オファーを貰えたのはかなりギリギリ(若干アウト)のタイミングで、シンガポール国外には出ずに済んだ*1が、急に引継ぎが必要になってしまったので一部迷惑をかけてしまった…。
戦績
- 応募した会社:11社
- 選考まで進んだ会社:10社(書類選考落ち:1社)
- オファー(内定):1社
2月から本格的に準備を始めて、7月上旬にオファーのメールを貰った。途中仕事が忙しくてあまり勉強等が捗らない時期もあり、結構時間がかかってしまった。
面接準備でやったこと
情報収集
シンガポールでの面接の方式は、アメリカやその他外資系企業と似通っている箇所が多いと思う。アメリカや外資系企業に転職した人の記事はたくさんあり、参考になった。
www.slideshare.net
Resume
Resume(英文での職務経歴書)は以前から書いていたものに追加するだけだったので、あまり苦労はしなかった。普段から準備しておくのが良いと思う。
フォーマットについては有料のKickresumeを利用した。見た目をテンプレートで決められるのでResumeの作成が楽になる。
アルゴリズムとデータ構造
以前、シンガポールのNUSで勉強していたことを記事に書いた。*2その際にアルゴリズムとデータ構造の初歩を勉強していたので、まずはそれを復習した。かなり忘れていて、復習に時間がかかった。
また、本やUdemyでも勉強した。
これらは全てやったのではなく、自分が苦手な箇所等をかいつまんで勉強を進めた。
問題演習は、以下のサイトからLeetCodeの問題をピックアップして解いた。
時間が無かったので事前準備を満足にすることはできず、勉強 → 面接 → 勉強 → 面接 → … という感じだった。面接で解けない問題があるたびに、LeetCode等で類題を探し、もう一度似たような問題が出た際には解けるように準備した。
システムデザイン
こちらも全て完璧に勉強できたわけではないのだが、以下の2つのサイトにお世話になった。
今回は殆ど観れなかったが、以下のYouTubeでのシステムデザインインタビューの解説動画も気になっていて、いつか時間を見つけて観たいと思っている。
その他の技術関連(デザインパターンなど)
Enterpriseのソフトウェアを開発していたバックグラウンドがあるからか、Javaでのシステム開発関連の職を紹介されることが多く、そこではデザインパターン(オブジェクト指向周り)について聞かれることが少なからずあった。例えば「今まで実装したことのあるデザインパターンを教えてください」という質問は複数回あった。Job Descriptionからもそのような質問がされそうなことが予想ついたので、以下の本や記事を参照して勉強した。
以下の記事は、SOLIDについてJob Descriptionに記載があったので、SOLIDについて学ぶのに利用した。
余談だが、シンガポールには外資系金融機関のAPACの拠点が置かれることが多く、そこではJavaの経験があるソフトウェアエンジニアをよく募集している。
Behavioral Questions
普段の行動・姿勢等を聞かれるBehavioral Questionsは、正直あまり対策しなかった。インタビューをいくつかこなしているうちに、そこそこ上手く答えられるようになった気がする。
以下のスライドは確認して、ある程度答えられるようにしておいた。
面接の詳細
書類選考
以前から声をかけてもらっていた会社がすでに多くあり、その中からまず選んで応募した。また、LinkedInでステータスを「Open to work」に変更したところ、たくさんのお声がけを頂き、結局自分で直接応募したのは2社のみだった。なので、基本的には「そもそも面接に進めない」という事態になることは無く、時間が許せばもっと多くの会社の選考を受けることができそうだった。恐らく、ソフトウェアエンジニアの需要が増えていることと、COVID-19に伴う入国規制により、シンガポール国外からの採用が難しくなっていることが影響しているのではないかと思っている。
ただ、労働ビザの都合でシンガポール国民・PR(永住権持ち)しか受け付けてくれない企業もあった。いくつかの企業では、メッセージに返信したあとにPRかどうかを聞かれ、Noと答えると返事が無くなるということがあった。
返事しきれないくらいのメッセージ量だったので、選別して返事する必要があった。エージェントで具体的に企業を紹介してくれない人だと、電話してからすでに選考を進めている企業の紹介だったりして無駄に時間を費やすことになるので、企業名を先に教えてくれないエージェントにはだんだん返事しなくなってしまった。
ちなみに、JAC*3などエージェントに自らコンタクトする方法もあると思うが、自分の場合は特に行わなかった(不要だった)。
技術面接
ここですごく苦労した。もともと日本ですら技術面接をそもそも受けたことが無かった*4ことから、単純に経験が足りてなかった。
さらに、LeetCodeやAtCoderのようなアルゴリズムは特に苦手だったので、最初にスクリーニングとして行うWebでの試験に落ちてしまったことも数社あり、落ちるだびに結構凹んでいた。
英語
自身はすでにシンガポールに5年以上在住しており、日本人がいないチームでずっと仕事をしてきていたので、英語での面接は緊張はすれどもそんなに問題にならないだろうと思っていた。しかし、いざ受けてみると英語面でもかなり苦労した。
転職活動を本格的に始めたばかりの頃、エージェント経由である外資系金融機関でのソフトウェアエンジニア職に応募した。事前課題と1次面接は突破し、次の面接が通ればほぼ内定は確定と言われていたのだが、その面接であるタイミングから急に英語が何も分からなくなり、コミュニケーションが取れなくなってしまったことがあった。ライブコーディングしながら、さらにあまり聞きなれてないタイプの発音だったのも重なり、意思疎通が突然できなくなってしまった。(恐らく、面接官からしたら意味不明な挙動だったと思う。)
この面接はかなりトラウマになってしまったが、同時に、緊張状態にあると英語面でも問題が出てくることが分かり勉強になった。面接には慣れが必要とよく言われると思うが、英語だとなお、きちんと慣れておかなければならないと気づいた。また、そもそも英語が得意とは言い難い状態なので、引き続き勉強を続ける必要性も感じた。
給与交渉
今回良くなかった点は、複数社のオファーを貰うことができなかったので、給与交渉の余地がほぼ無かったことだった。自分はもう帰任時期が近づいて時間切れだったのだけど、できればもう1社オファーを貰えれば給与を上げる等の交渉が行えたかもしれない。
また、自身の給与について聞かれたときには正直に答えてしまっていたが、これは実はあまり良くなかったかもしれない。以下のような意見を複数見たことがある。
Want to earn more money?
— 🇯🇵 Eric Turner (@_etdev) 2021年7月22日
Stop 👏 telling 👏 prospective 👏 employers 👏 your 👏 salary
嘘をついてはいけない*5が、自分の給与を必ず開示しなければならないというわけではないことは心に留めておくと良いだろう。
次があるとすれば、やりたいこと
もっと問題を解く
今回はシンガポールを出なければならない期限が決まっていたので、面接対策は不十分な状態で面接を受けることになってしまった。LeetCodeで確認したところ、今まで1度でも解いたことのある問題は「82問」だったが、まだ足りないなという印象。次があれば、以下の「Top Interview Questions」くらいは最低でも全問解いてから臨みたい。
今回受けた企業の中ではLeetCodeのような問題を一切使わない企業もあったが、アルゴリズムが苦手なのは多くの場合ボトルネックになる。シンガポールは日本に比べて容易に解雇できることから、Job Sefetyのためにも普段から鍛えておく必要があるかもしれない。
システムデザインについては模擬面接をやって、もっと場数を踏んだ方が良いと感じた。また、以下の記事ではシステム系の基礎力の勉強について「ISUCONの過去問をいくつかやってみると良いのでは」とあり、ISUCONを利用してみるのも良いかもしれない。
勉強方法の工夫
次はこの方法を試してみたい。
コーディングインタビューの上達方法について、「面接用にコードを丸々暗記するのではなく、解き方を文章で1-2行で纏める。すると、共通な解き方も見えてくる」というような趣旨の話をしてて勉強になった。https://t.co/tZDnaIzqWo
— ishizawa (@ryoishizawa) 2021年6月30日
雑感
10社の選考を受けた、という数が多いのか少ないのかはよく分からないが、感覚としては「落ちまくって大変だった」という感じ。面接一つ一つにすごい体力を使うし、それを普段の業務と並行しながら進めるのは結構大変だった。さらに自身の場合だと明確な期限があったので、それがさらにきつかった。最終的にはだいぶ面接慣れしたし、無事オファーも頂けたので良かった。
今はインタビューのことは忘れて、次の企業で使う技術の勉強を始めている。次の仕事を楽しみたい。
*1:今シンガポールを出ると、入国制限があるのでシンガポールでの転職難易度がかなり上がることが予想される。
*2:https://ryoishizawa.hatenablog.com/entry/2020/12/02/090000
*3:https://www.jac-recruitment.sg/ja
*4:偶然ITの会社に入社し、プログラミングの研修で自分で製品を作れる楽しさに気づいてソフトウェアエンジニアになった。それまでの開発経験はゼロだった。
*5:ビジネス上当然だと思うが、それ以外の理由として、シンガポールではオファー受諾後に(シンガポール国民・PRで無い限り)必ず行う労働ビザの申請時に月額給与を書くことになる。