註:因為有NDA的關係(就算沒有也是保護一下公司)
面試篇每一篇都不會把確切的題目打出來
(我看每個人的心得文都有提到題目類型,感覺分享題目類型還是ok的)
難度不會用Easy Medium Hard表示,請見你可能不知道的 Leetcode 小知識
(HR看到這篇覺得有什麼東西不希望被分享的話請寄到gmail信箱sendmefkingspammail)
不知道是不是BQ問題的摧殘
筆者很多面試的內容沒有記得很清楚也請見諒
今年亞麻在台灣算是大舉擴招(?)
開了很多組一起開的招募說明會(eero/Lab126/Ring)
筆者第一次面試亞麻
相較於Google的面試各種雷都踩到過
亞麻給我的面試經驗整題我是非常非常滿意的
一個跟Google比較不一樣的是他們的HR認識會先告訴你題目會考的方向
因為我面試的是Ring的嵌入式組
HR有說會focus on
Array
Bit Manipulation
Linked list/reverse link list
Embedded programming
等等的topic
而且HR的存在感很高,又友善又好聯絡又會給很多提醒
先跟你講說會是誰來面試你(就可以先去LinkedIn上認識未來可能的同事(?))
還會時不時問你feedback
內推丟完會最先收到OA
筆者有點忘記題目細節了...好像有三題,兩個半小時或是一個半小時要寫完
一題1400以下的充數題
一題1600~1800的PQ greedy題
一題1700~1900的經典Array/Ordered Set的題目
印象中題目出得非常不錯,尤其第三題比大部分後來VO面試官準備的題目都難
我是三題全部都有寫完也都全部AC,所以我不確定第三題partial AC會不會有後續
如同之前文章提過的
筆者當初同時在網站上丟了Amazon的eero, Lab126, Ring都沒有回應
後來在求職說明會結束之後想說再不找認識的內推他們又要被履歷海淹沒了
之後請朋友的朋友幫忙丟,是一個Ring的HR回我信,因為我沒有特別的偏好,去哪個Team都可以,所以繼續跟Ring面試下去
我比較雷的部分是我是一直以為我面試的職缺是(一律用Google的職等稱呼) L4,但其實是L3 (不過他們後來給的數字也有比我現職高),到面試一半Meeting Title上的職等跟我想的不一樣才發現
想特別補充的是從第一天到最後一天HR都會一直提醒你他們很重視BQ問題(14 LP)會問的很深很細,問很久,問不只一個問題,所以這方面是真的要好好準備一個excel,
把12個會被問到的LP(Hire and Develop the Best, Frugaity聽說工程師比較不會被考到),都準備一系列可以回答問題的故事,而且把要回答的英文句子都打好,而且常常被問到的那些問題最好不要只有一個故事可以回答,因為到時候所有面試官會一起交換故事
筆者當初是準備了大概20個故事左右
詳見BQ - Behavioral Questions Interview
某個大主管負責面試,全中文,
亞麻的BQ就是不太好回答,被問了很久,問的深很很細,問了不只一題...
演算法題目很簡單(經典Medium)而且是Leetcode題號前三百題的....
不用刷到100題可能就知道演算法是什麼,
所以默默的就把這題秒殺了...
但是被問到是怎麼樣想出這個解法的,
我也是很想要沒看過這題然後靠自己想出來,
但因為前三百題的題目太熟了...
只好講說遇到這種Array題通常我的想法會是什麼,
有什麼樣的觀察,所以自然而然會想到怎樣怎樣
因為Amazon是VO四關都由你要去的組的人+Hire你的主管+一些相關組的人+一個完全跟你不相關的Bar raiser一起當面試官,所以全部都是台灣人
因為筆者是換領域的面試,中間臨時安插了一個考OS跟Networking知識的關卡
HR很好心地打電話過來說就是考OS跟Networking知識
也很好理解因為以他們要做的工作內容而言要是有些
基礎的OS和Networking知識不會他們應該會很困擾
全中文,是要Hire我的主管直接跟我視訊面試,
在所有面試裡面筆者覺得這個主管最友善而且很喜歡他的氣場,
題目不會特別分享但是如果有準備OS跟Networking一定會準備到的題目
而且還被問了一些“一問就知道有沒有在常用Linux跟解決實務問題”的問題
覺得這次面試暨聊天充滿收穫
全中文,又是那個要Hire的主管直接跟我面試,
一樣BQ被問了很久,問的深很很細,問了不只一題...
演算法題目部分是一題(難度1400-1600)
Leetcode沒有原題的字串+Array題,
筆者覺得這題題目非常好(不是出Leetcode原題就給讚),
如果是完全沒有刷題經驗的人應該也是答的出來
同時也是一個需要好好考慮邊界條件的題目
這關好像是全英文,有點忘記
這關好像是唯一BQ沒有問很久的,但是還是有問,
沒記錯出了兩題,
第一題是一個常見的數學題(難度1400-1600 (?))
第二題是一個都是01的字串題(果然很嵌入式切題)
題目也是出得非常好,對於刷題不是很熟悉的人也一定解的出來
感覺用複雜度比較高的方法也是可以獲得面試官的青睞
我直接端上(我認為的最佳解)
用了一個Leetcode競賽常用的加速技巧解了這題,
根據複雜度要求不同,難度可以說1400-2000都可以(?)
面試官也有問我為什麼要這樣做,解釋了一下就結束了
過程中可以感受到面試官對於code有特別針對嵌入式開發的一些特性做要求
(這題講到特性或演算法跟技巧的話就洩題了XD 保密一下)
全中文,一樣BQ被問了很久,問的深很很細,問了不只一題...
然後這關還問了非常非常多嵌入式開發以及作業系統的實務題
因為HR很早就講過會考的題目的方向,
大概惡補了一個禮拜jserv大神的linux講座知識
(跪拜jserv大神 <(_ _)>)
雖然那種課本上的東西筆者都有答出來,
但實務上的東西可能就真的要這個領域的人才懂
被電的體無完膚,最後還出了一題演算法題目
就跟HR指定的方向一樣,
一題是非常簡單的linked list題(難度1200-1400)
暴力解就是最佳解,
所以也沒什麼困擾的寫完了
(奇怪這關有發生這麼多事嗎Orz 可能BQ沒有問很多題(?))
全中文,一樣BQ被問了很久,問的深很很細,問了不只一題...
演算法題目部分是一個跟Networking有關,比較像Design tag的leetcode題目,
演算法的難易度非常簡單,其實可以說不需要什麼演算法的知識也能完成,但是是筆者覺得題目出得非常好的一題,
寫code的style,該考慮的trade off考量,
edge case考慮等等等等都很容易從這題寫code的過程看出來
題目唯一有點扣分的是,這題光是確認input output跟討論各種trade off就會花很久,要完成面試官講的所有功能,code可能要打到150行左右,以面試剩下的時間來說算是蠻趕的
加上筆者被Google的面試train到會很急著把code打完不要留屍體,一直被面試官說放輕鬆沒有全部功能都實作完也沒關係
最後應該算是,因為是要去的組的工程師,所以問問題時間被我問了很多問題,對方人也很好時間到了也繼續讓我問問題,後來好像多拖了半個小時
跟HR一開始亞麻面試真的可以說最難的是BQ的部分,
不過筆者的準備也還算是充分,沒有被問到故事說乾
(一直被問resolve conflict之類的問題,是不是內部常常有衝突(?))
另外筆者當初面試面試的那個Ring的組,整組的氣氛感受讓我的體驗都非常好,
至少就面試的溝通過程覺得沒有像PTT講得那麼不堪,
筆者原本面試完之後對這個Team蠻心動的,
但總之最後因為他們公司policy的關係,不能給沒有任何嵌入式經驗的轉職仔(統一為Google的等級的)L4 offer,所以TC還是被Google比下去了 (聽HR和我在美國的同學都說Level同級的話不管在美國還是台灣薪水都是把Google按在地上摩擦的)
如果不是很想花那麼多時間刷題,我覺得亞麻面試的演算法題目難度也是非常適中,
無論是有在刷題還是沒有在刷題的(但是寫code的速度可能還是要快一點,
因為BQ真的問的蠻久的),應該都可以寫得很好,而且他們問的實務問題也是蠻有水準的
(但是OA還算蠻難的.....)
(還有一點很酷的是亞麻的RSU是給股數,
不像Google是按照簽約那年談得價格來發,
所以要是進去過一年之後股價翻倍那薪水就翻倍了...)
好像大致上就這樣了,公司在堤頂大道,感覺上下班可能會有點塞車
讀者如果有想到什麼問題可以再留言分享~