2023/2024 軟體實習/正職面試心得

16 minute read

由於一些 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 電話訪談,內容如下(公司在做什麼、福利、薪水)

  1. 我投的 team 在做什麼
    • 做的事情: Crypto 加密貨幣 ML 優化系統
    • 主要語言 Rust Python(模型)
  2. 福利
    • 9.30 ~ 6.30 下班(10. 前到公司
    • 第一年入職 12 天年假(通過試用期之後
    • 端午中秋禮金 5000 (第一年)-> 10000
    • 生日假、生日禮金 2000
    • 員工旅遊
    • 每個月 team building
    • 午餐供餐
  3. 薪水:給薪會看預期薪資,新鮮人 100 ~ 150
  4. 線上測驗 2小時 coding 6個半小時 ML

D+14: HR後來與主管確認後,測驗的部分只需要做 coding test

D+28: 收到 coding test(這邊可以跟 HR 說你哪一週比較有空,他可以那週再給你,因為只有一週的效期,真的好好 > <),收到當天完成。這邊其實沒有那麼久,完全就是我在搞,所以原本的 link 逾期了,HR 也人很好的再重開讓我寫。

結果:無聲卡

software 類

Google

萬里大長征(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
評分項目:

  1. Programming
    • outstanding: recognize 且使用語言中特定功能,可讀且結構良好,想法轉代碼沒問題,主動測試代碼並修改
  2. DSA
    • outstanding: 提出各種 DSA 並識別複雜度,可以想到優化,分析和解釋時間複雜度,不一定熟悉最佳的,但可以實作出來
    • solid: 提出各種 DSA 並識別複雜度即使不完全正確,嘗試優化,熟悉常見 DSA,正確分析時間複雜度,要實作出來
  3. Debugging, Analysis, Diagnose
    • outstanding: 沒有 or 很少邏輯錯誤,主動描述 testing scenario,主動描述 code,想 edge case,想 input/output range
  4. Coding comprehension
    • outstanding: STL 要用好,multithreading,識別 logic / structural 的缺陷
  5. 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 聊聊,主要是聊履歷跟過去合作經驗

結果:無聲卡