今年年中轉職心得
已經有點時間了,但應該有參考價值
這次投遞的都是software engineer職缺
* shopee新加坡
1. 投遞職缺
直接在shopee的job網站上投遞後
收到email通知他們已經收到並且盡快會review你的檔案
如果覺得合適的話兩周內會聯繫你
2. 安排初次電話面試
收到信件通知安排與新加坡的人進行30分鐘的phone interview
3. 進行初次電話面試(skype電話, 英文)
進行一些例行的問題像是前一份工作經驗、為什麼想加入蝦皮、
如果被錄取的話多久可以on board、需要帶家人過來新加坡還是一個人等等。
最後可以問問題,網路上有很多範例,可以找幾個經典的備用。
然後要記得問接下來的面試流程。
面試完後效率很高,當天收到通知接下來會有三次的技術面試。
(前提是第一次過才會有第二次,依此類推)
4. 進行初次technical面試(skype視訊, 中文, codebunk寫code)
coding problem:
給你一堆磚頭,一次只能搬一塊或兩塊,問有多少種方法可以把磚頭搬完。
延伸題,限制改為一次可以搬{n1,n2,n3...}塊,問有多少種方法 (用DP解)
system design:
規劃一個SMS 系統的資料庫,需要哪些表格,包含欄位、類型等。
另外給某些條件查詢問怎麼寫SQL。
另外還有零零總總的延伸問題像是怎麼避免兩筆交易同時寫入造成金額錯誤等等 (dirty
write, lost update相關)
還有一些https問題,公鑰密鑰,會問certificate怎麼運作,要了解PKI以及CA機制
(下面是我建議閱讀的資料:
2PL, isolation level, deadlock provention mechanism wait-die, wound-wait
MySql的MyISAM和Innodb的比較
Index怎麼做的,Secondary Index和Primary Index差在哪
除了RDBMS之外,document database, graph database其他的database最好有些了解
更進一步可以看有哪些storage engine, 像是LSM-tree, Btree內部長甚麼樣子)
另外換我問問題時,問了中國工程師到新加坡的生活如何
他跟我說新加坡環境不錯,人也友善,空氣也好........
基本上人都很和善
5. 進行第二次techinical面試(skype視訊, 中文, codebunk寫code)
coding problem: (下面英文是我寫的,原來是interviewer口述)
Given a list of list of string, and an integer K.
You need to pick one string a time from K list.
Print all the possible combinations.
解題方式:permutation的題目不外乎是DFS或BFS
example
input:
list = {
{"ptt","abc"},
{"I"},
{"no"},
}
k=2
output:
ptt I
ptt no
abc I
abc no
I no
sytem design: 設計一個縮網址服務,這題 hiredintech 就有了,方法大概差不多。
但是實際要求會因 interviewer 而異,這邊就看個人造化了。
另外又問了些 process、thread、tcp、udp、瀏覽網頁後發生的流程
(tcp/ip stack的封包傳遞、網頁中的資源怎麼取回、permanent connection等等)
反正題目大概脫離不了這些範疇,只是說要問多細。
6. 進行第三次techinical面試(skype視訊, 中文, codebunk)
這次沒有寫code
都在問系統架構的問題
比較像是在討論,所以我回答他就會問為什麼,這樣會有甚麼問題之類的
範圍不外乎是qps很高的處理方式
最後問期望薪水
心得:
因為整個面試流程耗時頗久,又已經有其他offer了,後來我就主動取消後續面試。
推薦閱讀:
High Performance MySQL
* tomtom台北
1. 透過linkedin投遞職缺
2. 接到信件通知initial phone interview的日期
3. 進行phone interview,對方是菲律賓人,做例行性問題過去經驗、為什麼想加入
tomtom等等
4. 收到codility test,總共3題,通過後收到onsite面試
5. 到台北公司進行一輪coding test,給一台筆電和紙本題目
也是3題,1.5hr作答時間
結束後工程師進來面試約30分
6. 收到信件告知 we’ve already filled the... 其實就是被打槍了
* marvell
這個應徵比較特殊,是由recruiter問我有沒有意願
單純為了練經驗,這個職缺是FW simulation Engineer跟我的背景差比較多
這個面試沒有技術測驗上的資訊可以分享
1. 通知安排和中國主管視訊
2. 第一輪中文,問resume上面東西而已
3. 第二輪和在美國的主管視訊,英文
被問了很多resume上面的detail
通常是軟問題,著重在開發過程遇到甚麼事情,怎麼解決
至於我問他背景問題,他說這個讀spec就可以了
所以想應徵類似職務的人或許可以大膽一點衝看看,有衝有機會
沒成功也獲得經驗
* carousell
1. 通過carousell網站投遞
2. 幾天後收到新加坡人資來電會寄hackerrank題目到信箱(英文)
3. 解完題後送出幾天後,通知要和新加坡人資視訊
4. 與新加坡人資視訊(英文),當作聊經驗,很快得到通知到台北onsite
5. 台北辦公室面試兩輪(英文,到台北辦公室與台灣RD和新加坡RD視訊(英文))
#1 coding problem: 一道設計題目
先在白板上講解自己的設計思維、資料結構演算法,時間空間複雜度
和兩位工程師進行問答,如果都沒問題了就開始coding
coding是帶自己筆電去,用hangout分享畫面給所有人看
#2 system design: 設計一個購物頁面的API,取回商品的資訊
會給一個doc在筆電上寫出需要的資料
然後上白板畫架構,load balancer、end point server、cache、database等
接著規劃database的table
結束後工程師帶著瀏覽一下辦公室。
基本上就是規劃裡面一塊給員工包含行銷、行政、RD。
其他是開放式的空間,沒規定一定要在座位上。
空間不大,但是人數其實也不多,相對來說算是舒適。
6. 收到台北人資電話敲定日期和manager視訊。
7. 在約定日期和國外的manager視訊(英文),主要聊經驗,以及一些 behavioral
question。
8. 收到台北人資通知結果正面,詢問希望年薪
並安排最後和另一位manager以及CTO視訊。
9. 已經有offer了故婉拒。