Featured image of post 面試心得

面試心得

大四面正職的心得

在一年內就要畢業了,所以得開始找工作才能決定要不要繼續念研究所,這篇文沒有意外的話應該會很長,紀錄我去各大公司送頭的過程。

(真的太長了,我還是有分成好幾篇來分享)

丟履歷去哪些公司(所有公司,包含沒有出現在這篇文章的)

  • Optiver
    • Graduate Quantitative Trader
  • WorldQuant
    • Quantitative Researcher
  • Kronos Research
    • Quantitative Researcher
  • ByteDance (Singapore)
    • Backend Engineer (Computer Vision)
    • Backend Engineer (Recommendation System)
  • Shopee (Singapore)
    • Software Engineer (Campus Hire), “Backend”, “Machine Learning”, “Data Engineering”
  • Google
    • Software Engineer, University Graduate, 2022
  • SEA (Singapore)
    • Engineer, Backend (Sea Corporate Lab)
    • Data Scientist (Garena)
  • Stripe (Singapore)
    • New Grad Software Engineer
    • Backend Engineer, Global application
  • ASUS (Taiwan, Singapore)
    • AICS
  • 群暉
    • 台大快速媒合面試
  • Appier
    • Software Engineer - Machine Learning
  • MaiCoin
    • Backend Engineer
  • NetBase Quid
    • Full Stack Engineer
  • MixerBox
    • Tranee Program - Backend Engineer

紀錄內容

Optiver - Graduate Quantitative Trader

  • 從 104 發現的(雖然不常用但還是感謝它)
  • 申請:履歷跟成績單,再加上一些基本的問答題(有打比賽的話可以在這邊秀出來)
  • 跟 WQ 幾乎一樣時間回覆我
第一關 - 算數學

本來以為不就算數學嗎,應該不會多難吧,但在做完測驗之後整個人都不對了,面對圖表找不出數字的恐懼還餘悸猶存,不得不說真的是跟他的待遇有一致性,第一關跟薪水的數字一樣讓人超級印象深刻。內容真的就蠻像 GRE 圖表題的考法,只是時間限制非常緊,有些 90 秒有些 75 秒,雖然可以用計算機但還是讓人手忙腳亂,而且我相信那些也不是能單靠普通心算就能做到的東西。

第二關 - 算機率 + 下注遊戲

星期五做完第一關之後下禮拜二(國慶連假結束)就寄信來說有下一關了,真的超級快。單純看信裡面的說明就像是要玩遊戲,類似交易等等的機率遊戲。

結果有一半是機率跟排列組合的問題,有一半是玩下賭注的遊戲,給定遊戲規則跟我們手上有的錢,你想要怎麼下注的問題,你決定好要怎麼下注之後還會問你為什麼要那樣下注,我覺得對我這種沒有接觸過的人就很硬,完全就是被電的份而已。做完這家的測試之後都有一樣的感覺,就是一種被電爛了但又覺得活該被電的感覺(他們薪水開那麼高,我被電爆也是應該的)。

第三關 - Behavior(線上 + 視訊)

有丟一個線上的適性測驗,總共 160 題小問題(做到後來有點累),也說要有一個階段的視訊面試,不會問到技術性的問題。老實說還有這一個階段我有點意外,我以為我在算機率跟下注遊戲的部份表現不足以到下一關。

在開始前的三十分鐘打電話跟我說今天有個澳洲的同事,所以會需要用英文講,真的是蠻突然的。本來以為會有很多人,結果只有澳洲的 manager(?)跟一個台灣的 HR,不過台灣的 HR 說自己剛加入沒多久,主要都是澳洲的 manager 在問問題。過程就真的沒有問到什麼技術性的問題,我用英文講的應該也都盡力了,希望還有機會可以到下一關。

四個工作天之後寄感謝信,哭啊,可能是英文太爛或是不夠正面積極?

WorldQuant - Quantitative Researcher

  • 之前有丟過實習所以有 follow,開學後沒多久有寄信到資工系的信箱
  • 申請:我有報說明會,所以就懶人申請法,直接把成績單跟履歷回信給發說明會通知的信箱
  • 回覆速度也是不遑多讓,一天半的工作天就回了
第一關 - 算數學(HackerRank)

限時三小時要完成 40 題的數學題,我覺得難度蠻不平均的,最一開始的題目蠻簡單的,到後面就沒那麼簡單了,有些真的要想一下才能想到要怎麼做。我之前嘗試過的是 Data Scientist 的實習,所以在流程上面有點不一樣,DS 實習的是四題程式題,限制我記得是半小時,體感真的是算數學的這種比較容易一點,不過累的程度是算數學比較累。

第二關 - 視訊面試

一開始是由 HR 來說明接下來的流程,也順便問了一下我有沒有要加速面試,還有我畢業時間的一些問題。我丟實習跟正職從頭到尾都是同一個 HR 負責的,感覺好像是同一個 HR 負責所有實習跟正職的事情?…如果是的話那真的蠻厲害的,連拒絕了也有感謝信,不像某些公司無聲卡當沒這回事。雖然職缺的名稱跟 Kronos 的一樣,但是我隱約感覺到兩家公司做的事情之間還是有不同,Kronos 的話我覺得就比較要求要有程式的能力,在 OA 也好,面試也好,都有要求要寫程式的部份,而且聽他們敘述的工作內容真的是要寫 code 改 code;而 WQ 給我的感覺是程式並非必要(到這關為止都沒有寫程式的部份),重要的比較是基礎的數學能力或是其他的背景(有提到 researcher 會有財金或是其他領域的人),然後工作內容的方向也會比較像是做研究的事情(他們應該講到研究這兩個字蠻多次的),如果會寫程式的話會是加分,但不會影響面試這個職位的勝率。

接下來的話是一個 VP Researcher(我也不太清楚這代表什麼意思,不過應該是很資深的 researcher 吧,他說他當 researcher 當了 6 年了),他在問了一些 behavioral 問題之後,就開始問一些益智遊戲的問題:第一題是問有 100 個硬幣,其中有 20 個是正面的,80 個是反面的,但是那些硬幣的正反面我無法得知,而且我可以去翻任意數量的硬幣,題目是問我要怎麼把硬幣分成兩堆,使得兩堆的「正面硬幣數目」一樣;第二題比較長就不紀錄了,總之想起來雖然很難,但是在知道答案之後都有種「哇,對喔」的感覺,雖然我第二題跟他要了很多提示,最後還是有靠自己講出正確答案(可是再把題目改一下我就不會了,然後時間就到了)。

再來是一個也是感覺有點資深(Regional Research Director)的面試官來面試,我有印象之前在參加他們說明會的時候有這個人,依稀記得他好像是表現超好之類的有被提出來說。這個面試官問的問題一開始比較機率一點,有一題是 uniform 的 X 跟 Y,問我 XY > 0.5 的機率,真的很久沒有算機率的積分了(儘管我才剛完成 Benson 的頑想學概率線上課程),我稍微卡了一下下就有發現要怎麼做才對;後面問了一個益智遊戲,大綱主要是問有一堆一模一樣的球,其中有一顆是壞掉的,可能是比較重或是比較輕,問我要怎麼用一個天平來用最少的次數找出壞掉的球;最後就是詢問關於深度學習的一些想法跟作法(有點像是之前面實習的時候被問到的),整體來說好像我都有答出來,所以應該結果還不錯吧?希望能到下一關面試。

過了三個工作天左右收到感謝信,看來是機智問答回答的太爛了。

ByteDance(Backend Engineer - Recommendation System)

  • 從他們官網丟的
  • 申請:填基本資料,丟履歷上去他會幫你 parse 出一些欄位蠻貼心的
  • 若干個禮拜之後終於回信了,說我可以開始 Recommendation System 的面試
第一關 - OA(HackerRank)

老實說這關有點讓我失望了,我沒想到他還會出選擇題跟麻煩的手刻題,兩題選擇我覺得都沒有出的很清楚,我在選答案的時候即使知道他想問什麼,有些條件沒有講清楚還是讓人有點迷茫。更失望的是因為徐維謙說他被考了 4 題 DP,我就想說「哇,等一下應該會出有趣的題目吧」,結果沒有,一題是考時間字串的相減(超機車手刻題,寫了不知道有沒有 100 行);一題是整理輸入的路徑(普通手刻題);最後一題是 Longest Increasing Subsequence,我花了一點時間回憶一下就順利的寫出來了。選擇題 + 後兩題大概40分鐘之類的就寫出來了,時間幾乎都是花在手刻機車時間題,不只要考慮閏年還會有輸出負值的情況,差點沒有寫到爆氣。(後來聽說同學用 python 有現成的套件可以用,難道是用 C++ 活該嗎…)

一兩個禮拜之後直接送我感謝信(據也有丟的同學說應該是大家都收到感謝信,畢竟他們已經在大規模裁員了)。

ByteDance(Backend Engineer - Computer Vision)

  • 一樣從官網丟的
  • 申請:也跟上面的一樣
  • 超久以前丟的,好像過了 2 個月以上才回,收到信的時候簡直是滿頭問號(後來知道是 11/30 截止,所以 12/1 收到通知也算正常)

一共有三題程式題,兩題選擇題,給我們兩個小時的時間寫,我本來以為應該是可以輕鬆應付的那種,結果寫到最後變成最狼狽的 OA 沒有之一。選擇題都蠻正常的,印象好像是 OS 還是資料結構的問題,但後面的三題程式就有點怪,其中一題我忘了,其他兩題都是測資沒有全對的情況,其中一題沒有全對的是在 1D array 裡面找出所有右邊元素都比自己小的 index,然後組成一個 vector 回傳,這個我也真的搞不太懂有哪裡可以錯,就只有一個測資是錯的,其他都對;另外一題是給一個 2D 平面的矩形範圍,還有若干顆星星,每一個星星都有自己的初始位置跟速度,其中速度保證都是平行 x 軸或是 y 軸的,而且都是單位速度,最後是要輸出能看到最多星星最早的時刻(星星跑到矩形範圍裡面就算是看得到),這題因為有不少要手刻的東西,所以當我看到測資我只對了兩個的時候真的是偏絕望,一直檢查,還把某些測資印出來看(HackerRank 的功能?漏洞?),我都覺得自己真的做的很對,最後就剩 10 分鐘的時候交出去,覺得已經沒希望了。最後我聽 Ethan 做的也是一樣的,儘管他 OA 的職位是我已經被 OA 刷掉的 recommendation system,但題目都一樣,他也是只對了兩個測資,前面那一題也是有一個測資錯,只能說不知道 BD 他們在幹嘛,似乎是出了什麼問題,浪費我不少時間。

Shopee

  • 從 Shopee career 丟的
  • 申請:填基本資料 + 履歷 + 成績單
  • 大概過了兩三天就寄一個 OA 的邀請給我
第一關 - OA

OA 的部份我覺得有一點小麻煩,他會要求開鏡頭跟錄聲音,而且規定不能戴耳機,如果剛好沒有要回家的話還真的不知道要去哪裡生一個沒人會經過的環境(除非要跟宿舍的室友溝通),雖然也是一個小時而已,也是為了慎重,只是就有點小小不方便。

OA 的內容是 10 題選擇題(有些多選)加上兩題程式。實際完成 OA 之後的感覺有點沒那麼舒適,明明是需要計算的題目,但我拿紙來計算的時候系統就警告我說我長時間視線沒有在正確的位置上,要心算算出各種 Cache 機制的 cache miss 次數也太沒必要了吧,拿紙寫不是很正常嗎?還有件事是我寫到程式題的時候超想上廁所,但礙於我不知道到底能不能中途離開,而且看著他紀錄的攝影畫面又想到我連用紙算個東西也被警告,就硬著頭皮繼續寫,寫到最後有一題程式還有一個隱藏測資沒過就直接交了:那題是把兩個已經排序過的陣列 merge 起來,我反覆看了好幾遍也搞不懂能錯在哪,最後我就盡力處理一下可能有其中一個陣列是空的情況,但還是錯,最後就直接放棄了直接提交,真的太想上廁所了。個人覺得要把 OA 弄的這麼慎重還不如出難一點的程式題(兩題我都是花時間在讀 input),感覺會更有鑑別度。最後還是希望可以順利到下一關。

第二關 - 視訊面試

過了一個禮拜多之後就寄信說還有下一關。是一個中國人面試官,一開始用英文說話,可是我直接用中文講了所以他就也說可以用中文。第一部份就是問一下履歷的東西,第二部份就是寫 code,這邊我必須說一下蝦皮的 coding 寫起來比較沒有壓力(跟 AICS 比),他說我可以自己跑然後自己 debug(一開始我還不太相信不敢自己跑那個程式),可以自己跑的話寫起來真的是舒適很多,也不用那麼害怕我有東西寫錯。這邊有個小插曲是我本來說要用 C++ 去寫,但題目有 dictionary 這個結構,我就直接換成 Python,真的是不想搞 unordered_map 那些的。因為題目並沒有到很難,因此我比較快就寫完了,接著他還有問一個 follow up,不過我似乎還是在規定的時間內(45 分鐘)寫完了。第三部份的話就是問一些計算機網路跟 DB 的問題,還好我有看一些 DB 的影片,還說的出一些東西來,而且面試官有時候也會幫我說出答案(不知道是不是網路不好所以他重複一遍,只是我講的都有點不一樣,而且他講的一副就是答案),感覺應該也還算順利。

最後就是我發問的時候了,那個面試官說他是中國人,然後也待過美國,現在在新加坡,他分享了一下中國、美國、新加坡三個地方的優缺點,如果是 work-life balance 的話一定是美國 > 新加坡 > 中國,這個蠻顯然的,然後在接觸到技術的部份他說了一個我沒有想過的問題,就是在美國工作的話,比較多都是用一個已經架好的 infrastructure,或是 platform,總之就是只要寫少少的 code 就可以讓機器動起來,但是這樣的問題會是因為那些服務都幫我們包好了,所以我們就會不知道他底層是怎麼實作的,是怎麼 load-balancing 等等的,這個部份的話就可以在蝦皮學到蠻多,他說蝦皮是用自己架起來的架構在做的,並不是用凡事都用 AWS,不過蝦皮的話也因為是自己架的,所以還有蠻多進步的空間,也代表可以在裡面學到很多。我也問了為什麼他會從美國到新加坡,他直接說了因為工作簽證沒有抽到(他是研究所到美國念),但他也說到蝦皮這邊來的話也不是一件壞事,能在蝦皮學到很多美國那邊沒辦法接觸到的東西。整體下來我覺得面試體驗還不錯,比他給的 OA 要好上很多,面試官也蠻會分享自己經歷的,也希望可以順利到下一關。

面試完之後一個小時 HR 就寄信說有下一關了,簡直是光速回覆,是我目前遇到最快速的回覆。

第三關 - 視訊面試

面試官也是一個中國人,一開始被問了一個 sort K sorted lists 的問題,我先給了一個 O(nk^2) 的解,但面試官就問有沒有更好的方法,好巧不巧的是我一開始選的是 Python,我就說 Python 裡面沒有 priority_queue,這時候就不妙了,面試官就直接問了 priority_queue 是什麼,然後說可以在 C++ 那邊實作一個嗎?我當下直接傻住,上一次還知道 heap 怎麼做應該是大一或大二的時候吧,所以我就硬是先寫了一個 class 拖一下時間,最後還是沒想出來。面試完之後就乖乖去複習了,直接學到教訓。

接著他問了 LRU 是什麼,請我實作一個吃 template 的 LRU cache,可能是因為信心大受打擊,既不會寫 template 也沒有好好思考過 LRU cache 的時間複雜度,所以就給了一個很爛的 O(log n) 作法,後來仔細想了一下顯然都是 O(1) 吧,完全不知道那時候自己在想什麼。問完了這個之後,他就開始問一些 OS 的問題,問我 thread 跟 process,還問到 python 跟 C++ 的 thread 有什麼不同,我是知道 python 有一個 global lock,但是詳細的也完全忘了,說不出個所以然,所以也答的不怎麼樣。這次面試完之後真的是蠻確定要下去了,果不其然隔天就寄感謝信,感謝信裡面還問我要不要改做 frontend 看看,我回覆先考慮一下,之後真的…想要直接轉跑道再說(還是比較想做後端)。

順帶一提,感覺上一次的面試官比較平易近人,倒也不是他問的問題比較簡單,而是他講話很清楚,最後問問題的時候也很願意分享,第二關這個面試官我常常聽不懂他在講什麼(講的有點快而且也不清楚),總結來說我還可以表現的更好,不過我已經盡力了QQ。

最後就當然是被刷掉了,HR 還給我一個前端的 position 問我有沒有興趣,看我的履歷好像也可以試試看,不過我當然是沒興趣,不然幹嘛一開始要丟那些後端的 position。

另外在遙遠的更久之後,HR 還又寄信跟我說有 Data engineer 的缺看我想不想面,不過那都是我已經決定 offer 而且簽下去之後了。

SEA

  • 從他們官網丟的
  • 申請:基本資料 + 履歷
  • 過了一陣子之後回信,但說因為我蝦皮也在同時進行,所以 SEA 這邊會先暫停
  • 最後我蝦皮下去了之後,回來面 SEA,在第一關人資面就被刷掉了,看來是覺得連蝦皮都拒絕我的話根本不用繼續面了

Stripe

  • 從他們官網丟履歷
  • 申請:基本資料 + 履歷 + 說明為何你適合這個職位(New Grad)
  • 一兩周之後寄感謝信,連 OA 都沒有,QQ。

ASUS AICS

  • 輾轉從鄭益昀那邊知道有可以內推的機會,就請曾鈺婷學姊幫忙內推(感謝學姊!)
  • 因為是內推所以馬上排定了下禮拜的面試
第一關 - 視訊面試

是一個也是台大資工畢業的學長來面試的,他第一個問我的問題是「你是 ADA 助教喔?」,馬上發現關鍵字,而且他也知道 aMMAI 是 Winston 開的課的簡稱(看我 github 的時候看到的),簡直是台大資工地頭蛇,什麼都知道(像我如果沒修的話一定不會知道),但因為他說畢業年份已經不可考了所以就沒繼續問下去了,總之是幫我內推的學姊的學長。一開始先問了一些履歷的問題,之後就進到 Leetcode interview 的功能開始寫 code。老實說我表現的普普,可能是因為沒辦法自己跑的關係,只能用眼睛看的 code 跑下去還是錯的結果,面試官還多給我一點時間讓我 debug,有找到一個 bug 但還是沒有找到最主要的 bug(我把數字顛倒過來了),多寫那行 reverse() 真的蠻可惜的。

學長說他是去新加坡的 site,所以就趁機問了幾個關於去新加坡工作的問題,發現其實也沒有想像中的那麼好(是不錯,不過不到保證最好),第一是稅率的部份,雖然台灣的稅比新加坡高一點點,可是實際上在台灣的稅還會有一些額外的扣除額(我也不清楚),但在新加坡的話就會是整包薪水拿去算稅,感受上可能不會那麼明顯;再來是新加坡的娛樂,學長說那邊會比想像中的還要枯燥,大家主要的娛樂就是出國,去東南亞其他國家玩,真的要待在新加坡裡面的話可能只有環球影城可以玩,可是因為疫情的關係也沒辦法隨便出國,等疫情結束了搞不好就會更好一些。我覺得這次面試應該是到目前為止的面試最親切的吧,雖然我答的不怎麼樣,不過同是台大資工的就有一種親切感,也聽到了不少關於去新加坡工作的事情。

兩個禮拜後的週末我寄信去問,結果無情的被刷掉了,哭阿。

群暉(台大快速媒合面試)

  • 在某一天被履歷拒,我就憤而用 csie mail 再丟一次
  • 在第一次被拒絕之後的下禮拜打電話給我,但我沒接到,沒再打過來的話我覺得就算了
  • 隔天有再打過來,但因為我那陣子時間很滿所以請他寄信提供幾個可以的時間
一面(Skype)

面試的一開始其實就蠻不順利的,一開始是他們那邊設定了大概 5 分鐘,後來他們要我分享螢幕寫 code 的時候,結果換我怎麼弄都弄不出畫面,最後只好用 google docs 來寫給他們看。他們考的主要分成兩部分,第一部分是寫程式,第二部分就是考 OS 和計網(跟那時候面 intern 被考過的題目有 87% 像)。他們考的程式題一向都沒有很難,畢竟在今年三月左右我也面過他們的 intern,感覺上題目應該都是 medium 左右的難度(那時候的我就能寫出來的東西),而今天也不例外,考了一個類似 topological sort 的東西,只不過簡化很多。這次和我面 intern 很不同的地方是在於這次的流程超快的,可能他們號稱快速媒合面試其實也包含了快速面試(快速媒合 + 快速面試),總共我才面了一個多小時(不包含我們弄 skype 的時間),最後主管進來聊個沒兩三下居然就發 offer 了…這是我史上第一個正職 offer(沒想到第一次面試是在群暉,第一個正職 offer 也是群暉的)。因為我有和同學(感謝高偉倫)偷偷打聽他拿到多少,所以我有在期望薪資上面多加 2k,結果還真的給了,讓我有點意外,一方面是居然討論個 10 幾分鐘就決定要發 offer 了,另一方面是面這種大公司居然只要一關。

最後我也問了能不能讓我先上班邊等兵單,他也說可以,因此各方面來看我覺得群暉都蠻不錯的,看起來像是一家有在持續成長的公司,聽面試官以及主管的描述也覺得不會學不到東西,我覺得會讓我不想去的阻力只有他們的獎金制度,得先做一年之後才會開始發獎金(不過也必須得說加上獎金之後給的待遇已經是台商的頂了)。其實真的蠻感謝群暉願意發給我 offer,那陣子我一個 offer 都沒有真的蠻挫敗的。

Appier(Software Engineer - Machine Learning)

  • 從官網丟履歷
  • 無聲卡

NetBase Quid(Full Stack Engineer)

  • 從 yourator 丟,要有一個 yourator 專門的格式(有點麻煩)
  • 無聲卡

Numbers 主張數據(Junior Backend Engineer)

  • 這家是阿閔實習的地方,做的是區塊鏈,公司規模非常新創,裡面的人也都很強
  • 透過官網投遞,要寫 cover letter
  • 大約一個禮拜之後回我,約個聊天時間,看到他們開給我的時間遲疑了一下,想說怎麼都晚上,原來是他們某些人的上班時間是 13:00 - 21:00 阿…
一面(聊聊天 + 簡單 coding)

之前就有聽阿閔說他們 coding 考的很簡單了,不過還真的沒有想到考的完全一模一樣,雖然我第一眼看起來不一樣,但看了之後就會心一笑,更有趣的是居然是要在 google slides 上面寫。簡單的寫完之後就開始聊聊天環節了,先問了一些 behavioral 問題,之後就是讓我發問的時間了,他們的回答都蠻用心的,感覺起來真的是蠻不錯的一間公司,如果有幸能進去的話應該也能學到很多,可以跟公司一同成長。不過我自己比較不確定的是我會不會喜歡這樣快速迭代的環境,可能真的要自己試過才知道。

隔天就寄信約下一次面試了,也是效率蠻高的。

二面(聊聊天)

這關也跟上一關差不多,主要都是聊天。一開始 HR 先請我做了個簡單的邏輯測驗跟 behavior 測驗,大概在 10 分鐘內就能寫完了,寫完之後就輪到團隊裡面的成員來跟我聊天,一開始先有針對了我的 behavior 測驗裡面的其中幾題問了一些問題,還真的是就聊一聊就結束了。如果說真的想要碰新東西的話,這家一定是首選,我現在是幾乎不太懂區塊鏈跟他們的應用,如果加入的話肯定就是能大學特學吧。目前他們是全遠端的模式,讓我有點不太確定自己會不會適應(上一次全遠端的時候是暑假實習,真的要老實講我比較喜歡去公司 onsite,才比較有在工作的氛圍),不過他們也說有些人會約在外面的咖啡廳一起工作,而且某些要上產品的時候也會大家一起找個地方一起 hackathon,總結下來似乎也不完全能算是遠端。不過如果真的全遠端的話好處就是有機會可以在台中工作,這樣算下來可以省蠻多錢(等於我是拿台北的薪水花台中的物價)。有個特別的地方是在跟 HR 聊的時候我第一次意識到正職可能是有試用期的(在他說之前我以為只要上了就是上了,不會再下去),這個應該也會是我之後考慮的重點之一吧(也要有得考慮…)。

如果他們真的有給 offer 的話,應該會榮登使用最少技術來面試所獲得的 offer。最後還真的給了,不過大概是因為面試比較沒有技術的成份,感覺 package 跟我想像中的差了一些(Given 實習生的待遇所想像的正職待遇)。

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