在Jane Street面試,是種怎樣的體驗?
Interviewing At Jane Street :: Jane Street Tech Blogs
雖然是寫有關tech面試的文章,不過應該涵蓋了他們面試總體的要點。
面試形式的話,幾輪電面加on-site。內容包括心算,各式數學和邏輯問題,還有考驗對概率估計能力的小遊戲等等。有關on-site比較難的問題,引用剛才的blog的一段:「To that end, we try to avoid algorithm bingo and puzzles with clever 『aha』 solutions. We prefer more open-ended problems that have no single right answer, since they give us more freedom to work together, and to see how the candidates" thinking plays out.」
另外他們現在對簡歷上的畢業學校filtering應該比較嚴了吧。我在2016年2月(當時美本大三)面的Summer Trading Intern (NY office),三輪電面和一輪on-site後沒有拿到offer,所以經驗還算完整。
在此想寫一份比較詳細的面試經歷和部分個人感受分享給大家。主要動機之一是我個人覺得Jane Street的面試是可以通過針對性的大量訓練來攻克的,且非常想看到普通人通過努力也能爬上這個幾乎都是superstars(Target-school top students、Putnam top 100, IMO medalists, etc.)的平台。
(Jane Street 在我這個non-target school也發了很多trading一面,所以請大膽申)
接下來我會在第一部分講一講自己面試後的感受,包括個人心目中比較好的一個針對性準備面試的計劃。然後第二部分講一講自己的面試過程,包括每輪面試我個人覺得比較難/有意思的題目(所以會有點長)。
但這些終究都只是我這一個挑戰失敗者的想法和一個data point而已,大家謹慎參考、各取所需就好。
一.感想
個人覺得除了對職位、對概率的熱愛以外,想break into Jane Street(包括很多其他prop trading firms)需要的最重要的能力有三:
1. 對概率的深刻理解和熟練運用
2. 清晰、有邏輯性闡述自己想法的表達
3. 理性、科學地做每一個決定
簡單說一下原因就是:
Jane Street面試中我碰到的每一道題都是概率;
有題做不出來不要緊,讓面試官清楚地理解你的想法最重要,因為他也可能會讓你過/給你很多hints然後看你領悟然後看情況讓你過;
你能否非常理性、系統地做你的每一個決定直接關乎你的on-site表現好壞,因為on-site就是讓你在各種遊戲中賭上一天。
可以說上面三個能力都是很難在短期內有質的飛躍,尤其能力二需要在平常生活中積累(個人覺得當數學課Teaching assistant對這點非常有幫助)。所以我接下來就簡單說一個針對提高能力一、三的面試準備計劃(大概是按重要性排序):
1. 複習基礎概率
2. 刷《Heard on the Street》、 《A Practical Guide To Quantitative Finance Interviews》、(和《Quant Job Interview Questions and Answers》)的probability 和 brainteaser sections
3. 看glassdoor(和wallstreetoasis)上Jane Street的面經
4. 讀 《The Mathematics of Poker》by Bill Chen 中相關chapters並認真打上幾百局poker
5. 刷《Fifty Challenging Problems in Probability》by Mosteller, 《Intermediate Counting Probability》by Patrick
註: 括弧里的材料作用比較重複
簡單解釋一下就是:
基礎是一切;
2里是比較經典的面試書,裡面題目會讓你的能力一基本達標;
3會give you a sense of what to expect(非常非常重要);
4會提高你能力三;
5會增強你能力一。
我個人情況是一個月不到準備面試,只做到了123和5里的《Fifty …》然後止步於on-site
如果再讓我面一次且有超過兩個月的準備時間的話應該會按這個計劃把12345全部做完,然後面試表現應該也會有所提高。
個人感受就寫到這裡啦 (各種材料都是自己google和問前輩那找到的)
二. 面試流程
因為接下來對題目的描述有很主觀的形容詞(「難」、「簡單」),所以我嘗試著給一個我個人水平的參照: 只有小學受過系統的奧數訓練。最後一次接觸奧數是高中數學聯賽,一試能做60% - 70%,二試交白卷。大學USNEWS top 20樣子的文理學院里學的純數。
一月底官網投了簡歷後兩天收到回復,第一輪電面:
頭三題都是比較簡單的骰子遊戲問expected value, optimal strategy的題,和glassdoor上能找到的第一、二輪題目很像。但接下來的第四題是道沒見過的題目:
Person A has a 20-sided dice and person B has three 6-sided dice. They both roll their dice and whoever gets a bigger number/sum of numbers wins the game. Is it a fair game? Same game with one more player C who has a 20-sided dice. Is this new game fair? (all dice are fair; a 20-sided dice has number 1,2,…, 20 on each of its 20 sides)
第二小問有點struggle沒有自己完全做出來,但面試官人非常好在我說了我自己思路(解題進度50%左右)、碰到不會的地方後給了我提示,這樣前前後後給了我三個左右的提示我才完整做了出來。然後面試結束,當時我心想「卧槽第一輪都沒有自己全部做出來可能過不了了…」
但是第二天收到了二面的通知(覺得面試官好仁慈),然後殘酷的考驗就來了…
第一題是glassdoor上出現過的原題,我還記得答案於是立馬說這題我見過並報出了答案,面試官很appreciate(一開始他說過見過原題麻煩告知他)。接下來換了一題,還是我glassdoor上看過的,只是解題過程和答案記得不是很清楚加上覺得連續兩次說自己見過原題有點怪怪的,於是就照常開始做這一題一點點說出自己的思路並順利解出來了。(事後很愧疚因為覺得自己應該老實說見過這題的,做人最基本的原則應該嚴格遵守。所以對不住了當時的面試官 T T)
接下來終於見到boss級別的題目了:
Person A and B are going to play a coin toss game. There is an initial score 0, and whenever a head/tail appears, the score +1/-1. Repeating the coin toss until one wins, that is, when the score reaches +2/-2, A/B wins the game.
There is also an initial stake $1 for the game and person A has the option to double the stake every time before a coin toss. When one person wins the game, the other player needs to pay the amount of dollars on the stake to the winner.
The question is: if you are person A, what is your strategy and what is your highest expected payoff of the game?
和面試官討論這個討論了半個小時。模糊地記得一開始我嘗試用recursion做然後卡住了(好像卡在了一個很奇怪的contradiction),在面試官的開導下發現recursion並不適用於這題然後換了另一種方法才慢慢做出來。然後面試就結束了。當時覺得完了這麼重要的題自己思路完全錯的,在面試官把我引到正途上才做出來,下一輪肯定沒戲了…
接下來幾天郵箱毫無動靜於是覺得自己果然掛掉了,但兩周後突然收到通知第三輪電面 - - 這時我慢慢感到好像面試有題自己做不出來也是可以過的,好像更重要的是讓面試官了解你的思路,在幫助下有能力把題目做出來也是可以接受的。
與此同時我也收到了另一家prop trading的summer trading intern 的offer並需要5天內回復,告知了Jane Street後他們說第三輪過了的話就幫我加快面試進程。
然後迎來了第三輪:
頭兩題是關於poker的題目,不難但是問題的形式變成how much would you bet?(if you have $1000) 以及 how confident are you?
之後迎來了另一位大魔王(要求8分鐘給答案…):
Find a range [n,2n] such that it contains the smallest positive integer x such that x^x contains digits 「2016」 in a row (consecutively). How much would you bet on your choice and how confident are you?
聽到題目後 I was like …. WTF???? 這個真的是一點頭緒都沒有。
然後靠感覺猜了一個range和一個很低的confidence level,被問到為什麼猜這個range的時候我說了一點點自己的想法(雖然reasonable但是是一個非常minor、無關緊要的理由,完全不夠解這題..)
之後面試結束了,我問到最後這題怎麼找這個range怎麼確定你的confidence level?面試官給的一個hint是
(
你可以assume x^x 每一個digit會出現的number都是equally probable,然後根據x^x的長度可以算出這麼長的一列數包含2016的概率,再選一個range能讓你足夠confident。當時真心覺得領教了。雖然這麼說但知道了這個hint後感覺還是不會完整地做出來,這題應該就是考你靠邏輯各種估算的能力把 - -
)
之後一天得到通知可以去on-site了!非常激動因為依然覺得自己上一輪表現明明沒有很好以及「這可是Jane Street 的on-site卧槽!!」(我覺得 Jane Street很有可能看我拿了一個還可以的offer於是放水讓我過了想親自面面這貨 - -)
終於到了on-site了(dress code 是casual哦!),面試前一天收到了封Jane Street來的郵件,附件里有market making的簡單介紹,被告知on-site有market making games。(glassdoor也有人寫過on-site,是準確的,但沒有很詳細)
on-site共三輪(或三輪後覺得沒有再面我的價值了- -)
第一輪就是market making games(my favorite!!)。我和另一名candidate被兩名面試官帶到一個有一張類似於poker桌子的房間里,然後我們倆每人被發了100個chips用來接下來的面試里bet和make trades
一開始面試官用一個正常的骰子讓我們熱身、熟悉規則: 「I will roll this dice once. Please make a market on the number of dots that will show up.」
接下來,打個比方,我需要給一個market 比如「3 at 4」(bid price at ask price),並表明how
many shares I am willing to trade for each of these two sides 。然後面試官會問另外一個candidate的market是什麼樣的並決定和我們中誰trade。如果他決定從我這邊buy 5 shares,然後骰子的點數出現的是2。那麼從這個trade中我就賺了5*(4-2)=10個chips,我的財產變成了110個chips。
之後考核正式開始,他從簡單的一個正常骰子開始讓我們make markets,然後變成多個正常骰子、多個八面、多個十二面骰子等等然我們make markets(Jane Street奇怪的玩具超級多- -)時不時他也會親自make markets問我們要不要trade。以及經常面試官一輪只和我們中一個人trade,就看我們中誰給的market更快、更窄(bid-ask spread)了。目前為止都還簡單,每輪結束都會和我們結算chips。然後接下來開始玩真的了:
拿出了一副52張牌的標準撲克牌,任意抽了四張牌(face-down)一排放在桌面上,並告知我們接下來會一張一張翻開這四張牌。在翻開第一張之前問「Please make a market on the sum of the numbers on these 4 cards.」(J = 11, Q = 12, K = 13, A = 1)
我們給了markets並和面試官trade後他告訴我們現在開始每個人都要記下來自己做了什麼trade(有紙筆),chips會在最後結算。接下來翻開了第一張牌後又問了同樣一個問題,於是我們根據已知的一張牌的number後給了新的markets。接下來又有新的markets叫我們make,比如「Please make a market on the square of the sum of numbers on all red cards」, 「make a market on the max number on all black cards」等等等等。每翻一張新的卡片前都會問一些新的markets或再問一遍之前問過的markets。我們則會根據檯面上已知的牌的信息更新我們的markets。
這個遊戲還有些新的要素:
每一次翻牌前我們都可以bet四種下一張牌的outcome:紅色、黑色、number &<= 7、number &> 7 (假如我選擇bet 50 chips下一張牌是紅色,I get 100 chips back, if I am correct, or 0 chips back otherwise)
以及後來可以讓我們買一個可以重新翻一張牌的option。比如我買了後,在剛把第四張牌翻開後,我可以選擇使用這個option讓面試官把這張牌換掉,從牌堆里再拿一張牌代替。
所以個人覺得這個遊戲還是挺複雜的,可以做的選擇超級超級多。
最後四張牌翻完後也就知道各種sum是多少,之前自己做的trades(每個人做了20+ trades)最後的payoff怎麼樣,面試官就問我們你們最後的收益如何。
我…低頭看看紙上自己飄逸的字跡和很多記漏掉的地方(各種trades都做的比較快),然後抬頭對著面試官傻笑了一下後他就很無奈的把自己筆記拿出來跟我比對一下讓我回憶起來了 - -
之後結算chips後面試官稍微點評了一下我們的情況後第一輪就結束了。(會指出有哪些好的trade你怎麼不做;你在一個點 bet很少,卻在另外一個winning chance更低的點bet了很多,你如何解釋等等)
我就不說自己犯得這種傻了,總之這是我經歷過最有趣的面試沒有之一!
On-site第二輪和兩個面試官主要討論了一個下注的問題,他們說
I will roll a fair dice. You make a bet on whether the outcome is even or odd. You have a 3:2 odds for odd, and 4:5 for even. How would you bet? Please make up your mind in 3 minutes.
簡單解釋下就是三分鐘之內我要在odd和even這兩個outcomes上bet一定數量chips,兩種outcomes可以都bet。打個比方,如果我odd上bet 了2個chips,even上bet了5個chips,所以總共下注了7個chips的話:
1. 如果最後骰子點數是odd,我odd那邊會拿回來 2 + 3 = 5 chips, even那邊我下注的5個chips拿不回來了。本金7 chips,最後有5 chips, 虧2 chips。
2. 如果最後骰子點數是even,我odd下注的2個chips拿不回來了, even那邊我會拿回來5
+ 4 = 9 chips。本金7 chips,最後有9 chips, 賺2 chips。
想了三分鐘後我第一次用了自己20%的chips在odd和even各下注了一些。然後面試官要我解釋下我這麼下注的原因後問我 「Is there another strategy that strictly dominates yours?」
我想了想、算了算後意識到自己一開始果然還是太天真了… 在面試官引導下討論好久我才逐漸更了解這一題。最後面試官又問了一遍再給你一次機會的話你會如何下注,然後看我第二次下注質量的如何。
(hint是
我肯定得把自己所有chips都用來下注。至於odd和even兩邊下注的ratio嘛又是另一個難題了- - 模糊的印象中面試官告訴我 「 There isn』t an optimal ratio.」
)
接下來on-site第三輪是一個撲克牌猜牌下注的遊戲,因為沒有前兩輪好玩我就懶得寫了。面完後被告知了沒有offer。
稍微總結一下on-site:
跟電面相比,我覺得on-site考核到的東西多了很多,除了依然對概率的理解及高熟練度以外,面試者想要表現好還得有很好的反應速度,mental
math,記筆記等能力。On-site題目也更加open-ended,給了面試者很多做選擇的地方(做什麼trades、如何下注、下多少)
我覺得我on-site失敗就在於太多選擇都是靠感覺做的了。覺得什麼outcome大一點就bet那一邊,bet多少也是靠感覺選的,腦子裡並沒有做任何運算。甚至還因此做了一些非常傻的irrational
decisions。就像平常打升級不算牌、打poker不算概率只靠感覺瞎打一樣,是打不好的。
所以我覺得攻克on-site最重要的是要能夠保證自己做的每一個decision背後都是有邏輯、計算支撐著的。
————————————————————————————————————
結尾:
也是沒想到自己會寫這麼多,也不知道會不會有人看,這個幫助會有多大。至少我覺得當時的自己看到這樣一篇文章會很開心的,再就是自己真的非常喜歡並想分享這段經歷,畢竟Jane
Street是曾經最嚮往的公司哈哈哈
祝大家各種面試順利咯
電話面的HK Office的 Trader Intern。之前在Campus Recruitment時候有過交流,過了筆試。拿到邀請和他們的quant trader在悉尼洲際吃了一頓飯,當時一起吃飯的有一個我們學校的物理系的,IPHO金………。他們的意思是不在乎你數學學的是不是很深,不在乎你的專業,只要你夠聰明。(那肯定不是我了唄。。。。)。
幾周後我網上交了簡歷,第二天就給了面試機會。幾輪之後掛了,問的題目感覺像高中數學聯賽二式或者CMO難度。
感覺自己在面試的時候表現很糟糕,也不知道會不會被拉黑。。。。。
當然我還是非常非常感謝Jane Street能夠給我這次面試機會並且請我吃了一頓很不錯的牛排。。。
想了想還是放一張拒信吧。。唉。。。。
利益相關:澳洲本科二年級… Jane Street今年似乎從莫納什簽了一個正式員工
去年面過jane street實習(software engineering)。
總體經歷大概是這樣的,在網上投了個簡歷,過了大概一周收到hr的郵件要求電話面試(11月),電話面試兩輪以後收到郵件讓我去香港onsite(12月),onsite一共面了三輪,每輪兩三個面試官,一個主要交流,其他的旁觀,有的面試官是從倫敦打視頻過來的。整個過程大概一個月。
面試題目難度是我面過的所有公司里最高的,我覺得比google,facebook,hulu都高一個等級。他們的面試題很多都設計成需要好幾個小時才能解完,面試官會帶你一步一步深入這個題(一步步加強難度),對我來說在janestreet的面試大部分都很愉快,因為題目本身和這種解題的過程都非常有意思。
和面試官還有hr交流有在google里一樣隨意的感覺,大家看上去都很nice,可以猜想工作環境不錯,還認識了幾位非常牛的學長~。onsite就像去香港旅遊一樣,住中環豪華酒店,hr還推薦了附近的好吃的。
我當時因為有其他挺滿意的offer所以抱著去看一看的心態也沒準備這邊的面試,onsite一二面都很一般,三面遇到一個倫敦腔的英國人,花了十分鐘才聽懂題目,最後慘跪。現在覺得非常遺憾,如果能去jane street這樣的公司看看是很好的機會~當時只是找一個 winter intern,就投了 Jane Street… 幾個星期里電話面試了四輪,然後 on-site 面試了三輪,最後把我拒了。
問的主要就是演算法、數據結構以及概率統計的東西。可能因為我只是投 intern 的緣故,問的題其實都不難(依稀記得第一輪 on-site 就是白板寫了個雙向鏈表,最後一輪就是白板寫大整數加減法),可惜我表現實在太差…
有一個值得吐槽的點是,Jane Street 當時在我們學校的 info session 完全就是從頭到尾在安利 FP 和 OCaml(你見過哪個公司的宣講會上來第一件事是科普 Church encoding,然後到最後也沒說自己公司究竟都幹啥),然而各輪面試並沒有什麼相關內容…
感覺被拒的主要原因其一是對基礎演算法寫得不夠熟練,其二是回答概率相關的問題的時候非常不自信。
雖然被拒了不過面試算是領了點紀念品走,而且拒信並不是模板生成的,顯得很誠懇。
於是那個寒假我最終就去知乎實習了…先佔坑。。。下周一第一輪電面回來再填
總之先把目前的情況說一下吧:
我現在是亞利桑那州立大學數學系大三在讀
簡歷里寫了兩個項目,一個是我開腦洞出來的靜態強類型 Lisp 方言,一個是用 Common Lisp 寫的實現了衛生宏的 JS 編譯器(編譯到 JS)
申請的暑假實習 Software Development
投了簡歷第二天就回復說要安排電面,感覺效率好高(
現在正在刷數據結構和 OCaml(主要是 Purely Functional Data Structure,Let Over Lambda 和 Real World OCaml,面試時候準備用 Common Lisp 和/或 OCaml)
大概就這樣吧,剩下的等周一電面完了再說
剛電面完更新一發。。。
我等了十分鐘電話沒響直接給他們紐約的辦公室打過去了(
聊了一個小時的二分查找
從基本的二分查找到有其他條件的二分查找(只考慮偶數 index 的情況和只考慮完全平方數的情況)
然後讓求時間複雜度(早知道多看兩眼蒜搗了
最後讓用喜歡的語言擼一遍最後那個
然後我寫了 15 行 Lisp (
(感覺 Purely Functional Data Structure 和 Real World OCaml 白刷了)
大概就這樣吧,等結果出來了再說(大概下周出?)提供一個offer情況的數據吧。
能拿到首次interview的大概1/4.
拿到首次interview的人中最後收穫offer的大概1/100.
我從來不理解面這麼多輪有什麼意義,我就面了兩輪然後拿到別的offer,聽說了他家BT的面試,於是就withdraw了。我覺得假如一個公司不能用2-3輪迅速的選出有實力的人,那他們該改改面試流程了。當然人家給的工資高,可以左挑挑右挑挑,難道員工不累啊卧槽?
知乎首答就給jane street吧。。
從我自己找工作面試和朋友找工作面試的情況來看,jane street面試難度最高。。
我自己的話,onsite final round主要面過two sigma(quant analyst),amazon,quora的data scientist(都跪了,ts其實我覺得答得還行。amazon說是表現不錯但這職位是社招。。quora主要注重產品metrics,我準備的都是machine learning和概率題,這方面沒準備。。) jane street我投了quant researcher,面了一輪就跪了,兩道概率期望題,40分鐘,第一題還行,第二題很難。。當時磕磕絆絆只能靠找規律得出答案應該是調和級數到100項的和,然後面試官還要我心算其具體值的範圍。。然後我竟然還記得本科學的歐拉常數是0.577。。但是我ln100估計的有點偏,結果大概差了0.2。。然後我在去amazon的飛機上想了2小時終於知道這題如果要具體證明的話該怎麼做。。其他公司的概率題(包括two sigma)基本就是10秒內就能做出的難度。。
我一個朋友面過jane street的trader,面了3輪也跪了。。題也難,數量也多,要反應快
我另一個朋友拿到citadel的quant offer,聽他的題目感覺沒有jane street難,但也絕非簡單。。估計綜合來說和two sigma差不多或者難一點點。
感覺js在出題方面很有創意,很想以後再投一次,不知道還給不給機會體驗這麼刺激的面試。剛掛了tech intern面試,來答一發。
某二流院校美本大三,因為有其他公司的ddl所以提前給了phone interview,就一輪,讓寫了一個帶hash validation的節點不可變的樹,然後伺服器上存了部分節點,問怎麼最小化詢問次數來得知整個樹在伺服器的存儲狀況....一開始沒想到hash的某些性質結果胡寫了一通,不過手速還算快,經過他提示以後才反應過來,只說了思路,然後沒想到就給onsite了..
On-site 一共兩輪,每輪兩個人進來看你live coding, 小錯糾得很嚴,c++ 忘寫reference被直接指出了好幾次...一題是給你個csv,裡面有幾個類別的東西混在一起,定義相等為兩個log里同類條目必須按序逐一相同,問兩個csv是否相等,有些小錯,不過還是按時寫出來了,覺得還不錯,結果第二輪就悲劇了...讓Implement某拼字遊戲的最優求解器,莫名其妙地在白板上算了一通複雜度,寫著寫著就發現interface設計的不好,interviewer的意見也沒有聽,導致後面沒寫完,寫到最後十分鐘就知道自己已經掛了..
Anyway,他們標榜的clean and concise coding真的對手速和思維的要求還是很高的,不犯錯確實是他們的哲學,另外tech和trading真的分的很開,tech不需要知道什麼trading的東西,直接按需求做就可以。
面完第一輪答一個,面的quantitative researcher intern, 感覺面試的人挺放鬆的,雖然我還是蠻緊張==。
一道概率題一道博弈論一道有點像演算法題。概率題挺簡單的,博弈論就讓大概解釋了下怎麼求最優解法,然後問了knight"s tour,之前完全沒聽過。。。連怎麼走的設定都跟他確認了三次,問題又確認了兩次感覺面試官也是要失去耐心了。然後讓猜一下一個4乘4的棋盤上能不能用15步覆蓋16格,如果能的話給出演算法不能的話證明一下。剛開始覺得不能實現,但是給不出證法,面試官就給了hint,然後往下推了兩步時間就到了== 心塞。不過感覺如果是對這種問題比較熟悉的人的話估計還是能很快答出來的吧。可能是第一輪的原因所以並不是太難,所以不要覺得沒有希望啊(雖然我肯定要跪了)。希望畢業的時候能再面一次他家。
問了下他家的招人標準就說能快速學習,數學和統計比較好的人,也招頂級碼農23333之前面的時候掛在了第三輪. 以下是這三輪的體驗:
- 完全不關心你過去的工作經歷, 一上來就直接問數學和Brain teaser. 覆蓋的範圍很廣,但是題目都挺有意思, 很值得思考
- 筆試的Case material是從FINRA的publication里直接截取的, very practical
- 心算能力真的很重要, 很重要, 很重要
p.s. 如果未來有幸能自己單幹 我想把這個HR挖過來 哈哈
朋友的另一半在jane street,了解完這公司的員工和待遇之後我只能說一句,漲姿勢。。
兩年前面過三輪,人生中第一個面的金融公司,一直很關注他們(因為一些小怨念吧,哈哈)。面的是trading的職位,只考brainteaser,每輪難度遞增。面試有些運氣成分,但能過五六輪的的確要有些實力。知道去那裡的人確實都很厲害。聽說最後一輪會玩遊戲,很好奇 :p
推薦閱讀:
※畢業季前夕,參加面試多次失敗後自信心嚴重受挫,嚴重懷疑自己價值,怎麼辦?
※如何看待面試問題回答不上來,面試官全程一副你不行的表情,但是最後又讓入職?
TAG:求職 | 面試 | IT行業 | 面試經歷 | JaneStreet |