2023/2024 軟體實習/正職面試心得
由於一些 quant 實習薪水可以跟正職比,所以也有投一些 quant 的實習,這篇文會有 Google、Kronos Research、WorldQuant、Quantrend、Tomofun、Nvidia 的心得。
選公司沒什麼原則,一開始的想法是我愛錢錢,錢錢愛我,後來的想法比較偏向 WLB
quant 類
Kronos Research
這家投的是實習。
D: 官網投遞履歷
D+18: 收到 coding test,有五題 coding 兩小時,我寫出 (3 + 0.5 + 0.5),題型包含線段樹、dp、greedy、math、bitwise。
D+46: 收到過 coding test 的通知要去團體面試
D+56: 團體面試,超級有趣。分為個人遊戲、團體遊戲、問問題環節。遊戲部份下收。問問題環節可以問很多問題,我感覺自己有多深入了解 quant 產業一點,真的很感謝早上場的面試官(Trader/HR們),如果有進 Group Interview 真的推推大家不管有沒有其他實習/正職了都來,收穫良多
- 個人遊戲:每個人手上都有1、2、3 三種牌各三張(總共9張),玩法就是捉對手去裁判桌亮牌,數字大者勝(或者平手、敗),不可棄牌、偷竊搶劫其餘參賽者的牌,最後勝場最多者贏,若時間到手上還有牌者勝場計為零場
- 團體遊戲:link
- 問問題環節(節錄一些我還記得的)
- WQ/Kronos 差在哪:WQ 偏找 Alpha,Kronos 偏找 quant 演算法
- Trader 的日常:有興趣的人就會一直工作 or 做相關的交易
- 演算法跟數學什麼重要:不好說,看 team,有些 team 只需要高中數學但演算法要強,有些 team 需要用到 PDE 等等但是演算法寫的比較簡單
- 撇除工作型態差異,覺得 Kronos 跟 Google 比的優點是什麼:公司比較小,可以容納/接受比較多創意想法
- 怎麼知道策略是運氣不好還是策略有誤:會認為運氣不好可能是沒有處理到 edge case -> 修策略
題外話,這次面試的場女生比例直接抽高好多,開心 xD (聽說下午場一個女生都沒有 xD
D+61: 收到三面邀請,同時收到 Google HC 過,最後寄信拒絕
WorldQuant
這家投的是實習,因為我以為正職要有 MS degree,結果面到三面面試官跟我說其實不用…完全就是我在搞
D: 官網投遞履歷
D+9: 跟我要成績單+簽 NDA
D+10: 收到 online math test,40 題 180 分鐘,數學超級難。當天做完。
D+29: 一面,online 跟 HR 以及兩位 researcher 面試,內容就是益智問答 (brainteaser) 跟數學。當天下午就收到過的通知。
中間因為大地震所以取消一次過。
D+48: 二面,onsite 跟一位 researcher 面試,談履歷、問金融、數學、益智問答。金融問題我很誠實的說我什麼都不會,數學也面的稀巴爛,結果
D+55: 三面,onsite 跟一位 researcher 面試,談履歷、問數學、益智問答。這個面試官人很好,知道我沒上過金融的課就不問金融的問題了 xD 這次的數學有面的好一些。
QuantTrend
D: 104 投遞
D+7: HR 電話訪談,內容如下(公司在做什麼、福利、薪水)
- 我投的 team 在做什麼
- 做的事情: Crypto 加密貨幣 ML 優化系統
- 主要語言 Rust Python(模型)
- 福利
- 9.30 ~ 6.30 下班(10. 前到公司
- 第一年入職 12 天年假(通過試用期之後
- 端午中秋禮金 5000 (第一年)-> 10000
- 生日假、生日禮金 2000
- 員工旅遊
- 每個月 team building
- 午餐供餐
- 薪水:給薪會看預期薪資,新鮮人 100 ~ 150
- 線上測驗 2小時 coding 6個半小時 ML
D+14: HR後來與主管確認後,測驗的部分只需要做 coding test
D+28: 收到 coding test(這邊可以跟 HR 說你哪一週比較有空,他可以那週再給你,因為只有一週的效期,真的好好 > <),收到當天完成。這邊其實沒有那麼久,完全就是我在搞,所以原本的 link 逾期了,HR 也人很好的再重開讓我寫。
結果:無聲卡
software 類
萬里大長征(x)
2023/6 的時候學長幫我內推,當時因為說如果我現在就開始面,我的面試結果只能用到 6 月,所以就跟他說先不面。
2023/9 的時候 HR 很好心的還記得我,問我要不要開始面試,我就說好,從這裡開始算 D。約了一個月後 HR 先簡單 interview
D+41: 問一些非常基礎的 DS/Algo 問題,順便預約了兩個禮拜後模擬面試
D+56: 模擬面試就是會請一位 Googler 幫你像真的面試一樣計時面試,不同的點只有差在面完之後你可以問面試官覺得我哪裡做得好,哪裡做得不好,這邊得到的評價是我思路講解得很清楚,coding 也不錯。
D+62: phone interview,這關其實體感只有 easy ~ medium(遞迴大便實作題),但是我因為超級緊張面的稀巴爛,面完正在緊張的當天就收到 HR 來信說恭喜過關!就馬上約了剩下的 3 場 coding interview + 1 場 googleyness/leadership,事後得知這場我拿到 lean hire。
D+69/D+74/D+75: 原定是 D+69 兩場,D+74 兩場,但這邊有一場我的 interviewer 沒有出現,緊急寄信之後,被重新安排了一場,感謝 HR 的高效率。題型分別是 greedy + sort、 prefix sum + priority_queue 、三維 dp,難度體感上是 medium、hard、hard,我自認自己面的不錯,事後得知得到 hire、strong hire、strong hire。
D+82: 馬上就安排好 team match,不過我原定一月畢業的計畫取消了,所以沒有 team match 成功,這時候 HR 因為私人的因素也換人了。
D+110: 這邊因為變成六月才畢業,所以就約了 phone call 討論接下來的計畫,說是正式畢業前一個月開始幫我媒合
D+203: 結果離畢業還好久 HR 寄信來說開始幫我媒合了 > < ,真是非常感謝。
D+203 ~ D+215: 這期間被邀約了 3 個 fit-talk,類型都差蠻多的,最後一個 talk 完,HR 馬上高效率的問我可不可以給他 team 的志願序
D+217: 確認其中一個 team 要我,給英文成績單,預約之後談薪水跟 onboard date 的日期。
D+229: 談薪水跟 onboard date,因為學校行政效率很差,所以 onboard date 先壓比較後面,HR 聽起來有嚇到,我跟他說我會盡量加速。
D+258: 確定過 HC!
下面我想要分享一些我在跟 HR 談我的面試表現的時候他跟我說的一些評分標準,reddit 上也找得到所以應該是可公開資訊?
coding 部分
等級:Outstanding -> Solid -> burdened one -> poor
評分項目:
- Programming
- outstanding: recognize 且使用語言中特定功能,可讀且結構良好,想法轉代碼沒問題,主動測試代碼並修改
- DSA
- outstanding: 提出各種 DSA 並識別複雜度,可以想到優化,分析和解釋時間複雜度,不一定熟悉最佳的,但可以實作出來
- solid: 提出各種 DSA 並識別複雜度即使不完全正確,嘗試優化,熟悉常見 DSA,正確分析時間複雜度,要實作出來
- Debugging, Analysis, Diagnose
- outstanding: 沒有 or 很少邏輯錯誤,主動描述 testing scenario,主動描述 code,想 edge case,想 input/output range
- Coding comprehension
- outstanding: STL 要用好,multithreading,識別 logic / structural 的缺陷
- Growth mind set
- outstanding: 獨立取得進步,考慮 pit falls/tradeoff,能夠接受 feedback 並整合到自己的 code
重視 code quality
behavioral 部分
- 學到什麼很重要
- STAR 法則
- Hypothetical question
- 不要著急表現自己,想好再講!
- 不要 focus 在 detail
- 問原因,目的 -> 考慮每種情況 -> 結果
- Leadership
- manage task(管理 project 考慮事情有優先度)
- ork as team(知識分享 / 利用每個人的優勢)
- get things down how to lead a result
- how to lead yourself (利用自己的優勢 / 提升劣勢)
- Googlyness:
- 模凌兩可中好好發展(對於挑戰感到興奮,有快速適應能力,可以快速理解)
- 確保所有人的想法都有考慮
- 保持挑戰的狀態
- 用戶至上(消除用戶 concern)
- 政治正確(不搞歧視)
- 幫助他人,主動增加 team 的活力(team build / 幫他人 debug)
Nvidia
D: 收到 HR 來電詢問職缺意願(應該是看到我在 LinkedIn 的 opentowork),當天 HR 問我有沒有興趣,我說有但我覺得自己沒有相關經歷不敢投,如果主管看了履歷覺得我可以面我就試試看,當天就把履歷寄給 HR 了
D+20: 完成 online test,印象中有 33 題選擇 + 7 題 coding,選擇跟 C/C++、OS 有關,coding 演算法跟數學都有,我最後剩下兩題選擇題空著,coding 有寫完
D+21: 收到面試邀約說通過 test 了,於是就約了兩小時面試(這裡簡稱一面)
D+30: 一面,Leetcode 只被考了一題 Linked List Medium。其餘我記得是有關 segmentation fault、debug、structure、class、page fault 等等的問題,總之是網路上查 OS、 C/C++ 就應該會出現的面試考題!(除了第一個面試官問的閱讀 code 題目,印象中是有關列印 char 陣列跟 char pointer 的差別)
D+57: 二面是三個面試官各一個小時。二面的時候因為我怎麼查都查不到第三個面試官的 LinkedIn,完全不知道問題可以問什麼(有同學跟我說過,如果 HR 有給你面試官名字,可以去 LinkedIn 上查一下他是什麼 team,可能會比較知道可以問什麼問題 & 會被問什麼,所以我一面二面都有查)結果第三個面試官是主管
這邊幾乎就是履歷,要對自己的履歷 & 技能點非常熟,我的所有 project 都被細問,也要我提出有哪些事後覺得需要改進的部分。
主管關的話,我反而沒有被問履歷,而是被問最想分享做過的 project、益智問答(一題偏數學一題邏輯思考,有點像 quant 會問的 brainteaser)、還有因為我當過演算法助教所以被問了 NP-Complete ,講完後主管馬上就問了我預期薪資。
D+59: 收到過了的面試通知,速度超級快的,這邊就是給國籍證明&安排體檢,我大概三天後處理完安排體檢+簽名
D+70:收到電子 offer
Tomofun
D: 收到 coding test invitation,90 mins 印象中兩題~三題,有實作 class 也有演算法題
D+8: 收到 phone interview invitation,跟 HR 聊聊,主要是聊履歷跟過去合作經驗
結果:無聲卡