Featured image of post 面試心得 - Kronos

面試心得 - Kronos

特別為 Kronos 分出來的面試心得

會把 Kronos 獨立出來的主要理由是從一開始到結束為止,他們給我的面試體驗都蠻特別的,當然整個流程拖很久也是原因之一啦,從開始到有個結果幾乎要弄滿三個月了,這麼久是因為我是最早丟履歷的人,而我同學是最晚丟的,就等他一個。不過以最後再加面的 infra 來說的話,加面其實是對我蠻不錯的一個額外機會。

投遞方法

  • 強者我同學在這邊實習,之前有開實習缺的時候沒有注意到,這次就有好好注意
  • 申請:填基本資料、交成績單跟履歷
  • 回覆超快,我星期三晚上丟的星期四下午就打電話聯繫我

面試流程

我投遞履歷的職位本來是 Quantitative Researcher,結果到後來 HR 說我也可以面看看 infrastructure team,雖然 head count 是 2022 的,不過也是可以先面看看。

Quantitative 第一關 - OA(Codility)

100 分鐘要解三個 task,本來以為給這個時間就是要難到寫不出來,結果出乎意料之外的不算太難的感覺。而且三個 task 之中有其中一個是選擇題題組的形式,問一些 C++ STL 的 behavior 之類的;一題是簡單的算法題,算前綴和就差不多能解出來了;最後一題是細心 + 語法題(沒什麼寫過 C++ class 的我),要寫個 class 來 parse 字串的題目。其實時間主要是花在查語法上面,因為 C++ 寫題目會用到的就那些,對於考題的某些部份有點不夠用,就得花時間查一下。

Quantitative 第二關 - 視訊面試(Team member)

我在假日做完 OA,下禮拜二(國慶連假完)馬上就寄信約 video interview,效率超高。

總共有兩回合(一開始 HR 說可能會有三回合,後來好像因為我時間拖太久所以只有兩回合的樣子?…),第一回合是兩個人面試,一個人問程式問題,一個人問類似博奕的遊戲,在博奕遊戲那邊我很賽,一次就剛好猜到正確答案,程式部份我感覺我也沒什麼問題;第二回合只有一個人,感覺上似乎好像比前一回合的還要資深,而且一開口就問我是不是要出國(因為看到我 GRE 的文章),還好我有提早想到然後把這篇面試的文撤掉…。他一開始問的問題蠻簡單的,就是一般的算機率問題,後來延伸成一個程式題,這次的程式部份我覺得還能表現更好,因為我不確定 C++ 的 next_permutation 要怎麼 call,就問說能不能先寫一個樣子,結果面試官就說可以請我寫一個 next_permutation,結果心態就有點崩了,記得 Leetcode 有寫過但真的忘了,然後也太緊張,最後面試官就說那要不要用 DFS 來寫(缺點是空間複雜度比較大一點),真的是救了我一命,硬寫 next_permutation 的時候真的很無望(我是誰我在哪),而且又因為是第二關實在是有點疲乏了,不過完全是我自己挖的坑。

這邊想紀錄一下我在發問階段問面試官的問題,答案其實有點讓我意外,我問的是他們喜不喜歡現在的這份工作,他們的回答都是蠻正面的,因為真的對交易有興趣,或是喜歡分析市場的一些現象,第二關的面試官甚至還說「如果不喜歡的話應該早就走了吧」,讓我有點擔心之後自己是不是會不喜歡,就算錢給的很多,但如果不喜歡的話也是白搭。另外還有一點就是他們工作的壓力來源大概分成兩種:第一種是他們其實算是某種程度的 on-call,在交易所有狀況的時候,就要隨時去補救自己的策略,或是把自己的策略停掉之類的,雖然聽他們說其實交易所越來越不常出包了,不過還是一個潛在的責任;第二種就是公司內部很看個人的績效,所以當自己的交易策略不夠好,沒辦法達到預期的收益的話也是一種壓力。我覺得他們的高薪也是有代價的,很現實面的就是你的策略能不能賺錢,但在市場裡能不能賺錢其實也不完全是自己能控制的(市場的變因真的太多了),不過還是希望能夠至少有機會試試看這樣的工作(next_permutation 寫不出來還是可以會交易吧…),應該是跟一般的軟體開發工作很不一樣的體驗。

Quantitative 第三關 - 視訊面試(CTO,HR)

這一次間隔就比較久了,是約距離上一回合面試兩個禮拜之後的時間。我看郵件裡面寫這回合是 Hiring Manager 跟 HR,就想說應該沒有技術面試了吧,結果出現的「Hiring Manager」是 CTO,只能說我還太菜了…完全沒想到還會有技術面試。

CTO 簡單的介紹他自己跟公司之後,就開始問數學題了。總共兩題,我兩題都沒有在第一次嘗試就答對,但還好 CTO 人很好都會給提示,除了他會在我思考的時候滑手機讓人壓力有點大之外,整體來說我覺得他算是蠻友善的。第一題我一開始用了不好的方向去做,之後拿到提示才答對;第二題的話我最一開始我亂講了個錯的算法,CTO 就開玩笑的說你在算什麼,後來我就有嘗試著列出式子,雖然我少了 +1,不過方向是對的,感覺唯一的可取之處應該也就算式的方向是對的吧…。

之後 HR 就也簡單的問了幾個問題,然後說明這會是 Hiring 的最後一關,可是考慮到我可能會太晚加入公司(四下畢業 + 當兵可能要到明年 12 月),即使我有符合他們的要求,也可能會先把所有 applicants 都面完之後才決定,等於說我的優先權就被降低了,我也就從這時候開始考慮要不要提早畢業去當兵,但是很不幸的我還缺了 2 學分跟服務學習二(那時候本來要用 NASA 課程抵,但我耍白痴沒有選課所以沒抵到,如果真的要畢業的話就只能麻煩承滿姐去跟學校協調能不能在這種時候加簽服務學習二),所以要畢業的話就只能用線上學分來補了…,希望不要搞到爆肝,也希望我至少有辦法拿到他們的 offer(即使我可能會去新加坡,可是有個保底還是比較舒適一點)(後記:沒有,新加坡的公司都沒有錄取我,Kronos 也沒有錄取我)。

Infrastructure 加面 - 視訊面試

  • 因為同學在面試的時候有談到不怎麼喜歡做研究,所以 HR 就也問我的意願,想不想試試看他們的 infra 職位,我就當作是多一個機會也說想面看看
  • 這個職位的待遇跟 researcher 不太一樣,是有比較高的 base,績效獎金就比較少

總共分為兩關,第一關是先問我怎麼實作一個簡單的交易系統,面試官蠻和善的,說如果有語法不熟的話可以查網路,我剛開始寫的時候腦袋還沒有開機,還好只有當機幾分鐘,之後就都還算寫的蠻順的,基本上就是 STL 用一用就都能解決的題目,而且我在寫的過程中有變數寫錯或是哪裡不小心漏掉的地方,面試官也都有提醒我,超感謝他;第二關就換 infra team 的主管了,主管考的題目比較偏基礎的部分,問到怎麼樣寫 C++ 才能比較快,或是怎麼樣寫他會有怎樣的 behavior,這部分雖然我覺得對我來說蠻困難的(畢竟我最近寫 C++ 都是直接在 leetcode 上面寫然後直接編,也不會寫到比較特殊的用法),但整體來說主管真的非常友善,有時候我只講一個輪廓,他也會提出一些可能的解釋甚至跟我討論為什麼那樣想,或是我想做的是什麼(我對 C++ char 指標的用法真的完全不熟,被 string 養壞了),在這邊我也蠻慶幸蝦皮那時候有考我 template 怎麼寫,這邊就有用到 template,還好我有惡補才不至於直接開天窗,蠻有趣的部分是面試官會問一些比如說這個變數會不會被 copy,或是怎樣寫才不會被 copy,以及他們的好壞等等的。

最後也有和面試官們聊到為什麼不想念研究所(講一講還真的發現自己更適合 infra team),以及更具體的工作內容,工作內容的部分其實聽起來完全就是 backend engineer,只是 infra 做的更 specific 一點,是要做一個虛擬的交易所介面來讓 researcher 來用,這跟我本來的想像差蠻多的,我本來的想像是可能要顧機器,上去 aws 看或是設定一些有的沒的,或是做 Ops 的東西,幫助 researcher 他們部署或測試他們的模型,這樣聽下來其實蠻心動的,雖然說 researcher 不完全都是在做研究的工作,也會寫一定的 code,不過骨子裡其實還是 infra 最接近 engineer 的屬性,希望之後還真的有機會做這份工作 ><。面試官們也特別說他們其實不太加班的,基本上都是有彈性的上班時間,做太久也效率很差,他們也說這在量化交易這行算是蠻稀有的存在,因為這行是要跟全世界的各大公司競爭的,很少有不用加班的(特別是聽他們說其實他們接到的需求非常多,想做的改善也很多,還不用加班去完成它,真的蠻佩服的)。如果說真的能不用加班的話,這個 position 應該完全能媲美 Google 的了。

一個禮拜之後寄信問 HR,HR 說還要再等一個禮拜,看來是想要讓我等滿三個月嗎…(我會等這麼久是因為我是第一個面試的 new grad,而許耀文是最後一個面的)

結果 + 心得

最後在我寄信問的下禮拜三,HR 就打電話聯絡我說慘遭拒絕,拒絕的原因我可以理解成他們調整內部 hiring bar,因為要收一個 new grad 的話,他們要付出的成本其實蠻高的,也因為這樣,所以他們必須非常確定團隊很需要這個人才能給 offer,說白了就是在 team match 的時候要有人覺得我非常適合;第二個理由我覺得就比較像是小吹毛求疵了,HR 說面試官們的 feedback 都是正面的,只是跟許耀文比起來我可能 C++ 的部分稍微差一點,不過我覺得其實這點就比較像是運氣問題了(事實上面試就是一堆運氣問題),我覺得我的表現幾乎算是只有在語法上的一個小失誤(對於我的小失誤,面試官也說沒關係他知道我意思就好,那可能其實還是有關係吧),如果要解釋成我演算法部分沒有那麼強的話,我覺得可能是他們誤判了吧,我在演算法的地方都是直接給最佳解,除了中間有小誤會面試官意思的地方。

總結起來我覺得應該就是在語法那邊我不知道哪根筋不對,就寫了顯然是錯的寫法(關於 char* 的用法)。而且許耀文會拿到 offer 似乎也是他們有 team member 對他很印象深刻,這個就真的蠻吃運氣的了吧,不過就結果來說,他們的 hiring process 還要拉更長一點,因為 infra 的部分是吃到明年的 head count,在流程上面還要再等一個月以上之類的。以結果論來說的話我沒有拿到 offer 也算是讓我不用再多考慮這個因素吧,不完全是壞事。最後 HR 也說了因為我在面試表現都蠻不錯的,之後如果我還對他們的 position 有興趣的話,都歡迎再挑戰一次,到時候我的優先度絕對是會比第一次單純丟履歷還要高一些,聽到這邊我覺得應該也算是圓滿結束了吧,結束了三個月的忐忑不安。

最後就是我的一些小發現,對於 Kronos 的關卡篩人的方式我覺得真的是蠻吃運氣的,拿我面 Quantitative researcher 的那兩關來說好了,我遇到的都沒有給我很 intense 的感覺,但是聽也有面但被刷掉的 Googler 說,他遇到的蠻困難的,面試官給他一堆機率題目還什麼的,總之就是聽起來很可怕,跟我遇到的完全是兩個世界(儘管我也答的不怎麼樣,但就沒有到那麼猛烈的感覺)。還有在 OA 就被刷掉的好像是因為一些小地方沒寫到完美就下去了,雖然說以分數來看,沒有到標準的就該被刷掉,可是這樣的標準我覺得會讓公司錯過一些也是很有價值的人(個人淺見而已,以面試官們面試要付出的成本來看的話,這種超嚴格的標準也蠻合理的)。

還有其實每一間公司要看的東西都差蠻多的,像我沒有被 Google 跟 Kronos 錄取,但我被「把許耀文刷掉的 MixerBox」錄取;被 Kronos 刷掉的進了 Google,一定還有很多例子是這樣的,面試的公司跟錄取與否完全就不能以薪資待遇當作唯一標準(本來就不是,但我一直有一種這樣的既視感),也就是說 overall 越強的人不一定就有更高薪的 offer,也要看公司測驗的能力是哪部份的。講了那麼多廢話,總之就是既然每間公司想要的不一樣,那在準備的時候也就能對自己想要的公司特別加強某些部份,也就是說可以透過自己的長處去選一個自己能達到的最好公司(例如:演算法就很強,去 Google 就輕輕鬆鬆,數學機率很強的就去面 Quant 的),更可以在面試的過程更加了解自己缺的是哪個部份,需不需要把它補起來。

如果沒意外的話,之後要轉職的時候應該還是會再挑戰一次 Kronos,到時候希望我有足夠的能力 + 運氣能體驗一下 Kronos 的文化。

Licensed under CC BY-NC-SA 4.0
Apr 08, 2022 18:13 +0800
comments powered by Disqus