一部覚えていないが概要としては上記のような感じだった。自分の回答に対して深ぼるような感じだった。ここではライブコーディングはなかった。こっちから質問したことストーリーボードは使う?使わない?これは本当にチームによる。ストーリーボードを使わないところもあるね。開発スタイルはアジャイルなの?そう、チームによるけど俺は2週間のスプリントだよ。タスク管理はどうしているの?(インドネシア人)うちはJiraを使ってるよ。デザイナーとはどういうコミュニケーションをするの?(たしかZeppelinでもらってやってると言っていた気がするが、)とりあえず普通だった記憶だけある。2日間の課題って結構仕様重かったけどみんな終わるの?(インドネシア人)僕も全部完全にはできなかったね笑あとは少し雑談をしつつ計1時間弱のコールで終わった。技術面接の結果が来る技術面接の結果に関するメールが来た。次の技術面接のラウンドを行うから開いてる日を教えてくれ、と。技術面接はあと1~2回あるらしい。この時点で最初に応募してからすでに一ヶ月が経とうとしている...。技術面接2ラウンド目を行うネットの調子がめちゃくちゃ悪かったのと家のすぐ隣で工事をしていて騒がしかったこともあり、開始して10分程でリスケすることになった。この時の相手はインド人2人だったのだが、マジなインド英語は初めてだったので最初ホントに何を言っているのか分からなかった。10分程度だったが、質問されたのはこんな感じ。UIのライフサイクルについて教えて描画の流れについて説明してUIWindowとUIViewの違いはLayoutIfNeededの呼ぶタイミングは?前回と違って今回はライブコーディングもあるようだったがネット環境がひどすぎてその前に終了した。他で並行していたスタートアップからオファーをもらっており、そちらに行くことにしたので、リスケの日付が確定する前にGO-JEKの方を辞退することにした。小さいスタートアップを選ぶことにした。応募するStackoverflowで見かけてGrabのiOSエンジニアの求人に応募してみた。最初の返信が来る完全に忘れた頃にメールが来て、とりあえずコールをするので開いてる日を教えてくれという趣旨だった。その2日後の12月6日にコールをすることになった。軽いコールと技術課題と行うお互いの自己紹介とポジションの説明とかとりあえずそんな感じのコール。GO-JEKの時と同様に軽い感じのコールだった。その後にコードテストのリンクを送るからやってみて欲しいとのこと。Codilityというサイトで行う。app.codility.comちょうどこの日は時間があったのでそのまま受けてみた。Swiftを使って、設問があってその条件を満たすコードを書く、というもので2問で制限時間は45分だった。GO-JEKより全然軽い課題だったが、2問目が意外と難しくて途中で力尽きた。簡単な引数だとうまくいくけど、エッジケースではfailする感じの出来栄え。技術課題の結果が来る普通にできなかったから終わりかと思っていたが、次の技術面接に進む、というメールが来た。こちらの予定の確認なしに13日にカレンダーの招待が来ていた。技術面接をする技術面接の案内のメールにTipsに関するYouTube動画のリンクが張ってあった。www.youtube.com技術面接の所要時間は、1時間のラウンドが2回で計2時間でアルゴリズムについてと、iOSのドメイン知識についてだった。アルゴリズムについてバイナリツリーのdepth(heightだったかも)の算出方法を教えてここにあるのを思い出しながら、自分の下に何もノードがない時は1を返して、下にノードがある時は、左側と右側のノードで大きい方と1を足して返す関数を再帰的に呼ぶ、と答えた。それを実装してみて以下のように答えた記憶はあるけどdepthとheightを間違えて答えたかもしれない。ちなみに以下のコードはdepthではなくheightの実装。}}その計算量はどれくらい?n個のノード全部を走査するからO(n)、と答えた。バイナリツリーのdiameterの実装をしてみてdiameterとは、あるバイナリツリーにおける最長距離のことらしいが、初耳だった。あるノードを取った時に左サイドのノードのheightと右サイドのノードのheightを足した値を各ノードで計算しその値が最大の時に最長経路になる、と答えてその実装をした(ここでは厳密に覚えていないので割愛)。すると計算量が非常に大きくなってしまうよね、という指摘をされた。それに対してどう対応するのかを見られたが、明らかに小さいものは計算しないようにしたいけど具体的な計算方法はその場で実装できない、といった感じだった。Counterにカウントされるが、weakとunownedはカウントされないのでweakとunownedはすぐ解放される。weakは解放されるとnilを返すが、unownedは解放された状態でアクセスするとクラッシュする。Cycleについて教えて恥ずかしながらこれについては英語で分からなくて、ちょっと分からないと返してしまった。循環参照のことだった。Reference的な名前だと思ってたからなんだろうってその場で困ってしまった。循環参照も知らないやつってなってしまったかもしれない...。DIについて教えてコード自体を抽象化しておいて、外から変数とか具体的なものを注入すること。これによってテスト時にモック化が容易になるというメリットがある。"Tea"]のラベルをUITableViewで描画する時の実装をして以下から書き始める感じ。)とかは覚えていなかったので、うろ覚えで進めた。IDEじゃなかったので補完が一切ない環境でのコーディングだった。普段Xcodeを使っていると、補完で細かいメソッド名までは覚えていない人が多いだろうし、間違っていてもXcodeが教えてくれるが、ここではそれがなかったので何をテストしたかったのかイマイチピンとこなかった。オーソドックスな実装をした。技術面接の結果が来る結果はダメだった。循環参照知らないって言ってしまったくらいだから仕方ないと思おう。まとめ英語はコミュニケーションできるくらいには必要だけど、営業できるレベルまで求められない。アメリカ英語のような慣れ親しんだ英語ではないと思ったほうが良い。平気で1ヶ月とかかかる。シンガポールに限った話ではないが、思ったより時間がかかるのだなと実感した。面接はどれも平日の日中に行われたが、正社員で働きながらだとかなり大変そう。アルゴリズムというよりは、アーキテクチャやテストといった実践的なことが重視されているように感じた。インド人はこういった戦いをひたすらしており、日本人ももっとチャレンジする人が増えるといいなと思っった。22:17シンガポールのGO-JEKとGrabのエンジニア求人を受けた話Tweet関連記事2018-10-21インドネシアの首都ジャカルタに行って感じたことインドネシアの首都ジャカルタに行ってきた。~マッハリーダー~5月くらいから暇な時にコツコツ作っていたアプリを公開した。(ベトナム)でiPhoneをひったくられた話(盗難時のロックとか対処法とか保険とか)プログラミングの勉強をする前に知っておきたかったこと・知っておいてほしいことブロックチェーンまわりの技術本を書きましたウェブサイトを作る時に便利なサービスたち(ロゴ生成、LP作成、画像引用とか)中国の深センの病院を退院して無事帰国しました。(医療搬送とかお金とか海外旅行保険の話)月別アーカイブ参加グループテクノロジーはてなブログをはじめよう!ngo275さんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。