▲圖片來源:作者提供。
背景: 台大資工學士畢業,非技術宅或刷題大神(Leetcode花了一整年才刷200題而已),在日本工作5年,主要做遊戲backend以及網頁fullstack開發以及Android native開發,想轉golang backend或是support engineer。
此外因為剛好2020 2月開始COVID-19疫情日趨嚴重,這次的求職許多面試大都轉為線上面試。
▲圖片來源:翻攝自Appier臉書粉專。
兩組Tech support team(廣告組&Enterprise組)的主管
Enterprise組成員+CTO
Engineer VP
CEO&COO最終面試
跟某組的主管再次面試確定最終去的團隊
Support engineer跟普通的SWE相比面試算比較簡單,沒有考程式筆試。
然後因為面試前剛從日本回來,聽因武漢肺炎疫情Appier公司內部有建議最近出國員工要自主管理14天,所以有跟人資誠實申報,因此所有的面試都是以線上面試來進行。
首先面試官都還蠻友善的,尤其是諸位C*O們,面試過程算愉快,基本上就是用聊天方式進行。
面試前要先準備了解公司產品內容以及職缺需求。
像是我投的這個職缺是需要跟海外客戶互動的support engineer職缺,英文/日文N1程度是必須,但說真的語言只是個溝通工具,主要還是你對工作內容(跟顧客互動,幫顧客爬蟲抓錯等)要有熱誠。
個人背景和經歷
1–4面每次都有自我介紹此題,記得介紹個人背景經驗同時要跟應徵職缺的需求做到連結,並且根據面試官的背景著重不同面向
面對客戶的正式日文書信&與日本同事的對話能力
第一次面試的其中一位Enterprise組的面試官是日本人,面試的職缺是需要日文的support engineer,所以基本上面試是以日文來進行,自我介紹和一些人格特質問題之外,面試官有實際拿一封內部跟客戶合作的email,要我模擬另一方用正式日文書信回覆信內的問題。
> 對Appier/廣告業有興趣? 喜歡跟客戶接觸?
根據個人經歷回答
> 有app開發經驗? JS經驗? 前端爬蟲抓錯經驗?
根據個人經歷回答
> 反問提問
根據不同位置的面試官提出不同的反問提問。
▲圖片來源:翻攝自iKala臉書粉專。
首先一次面試會有工程師跟你視訊面試1小時,確認工作經驗和使用過的技術是否跟公司吻合。面試完後有回家功課要你花三天實作一個簡易golang restful api後台,用swagger設計API,用docker裝成container放到gcp或aws上面,設定CORS, CICD, SSL, Loadbalancing等功能
二次面試在公司面試2個半小時,首先做十分鐘的性向測試,接下來原本的一次面試官進來跟你討論你的作業進度,看你遇到的困難點以及對於你實作方式提出不少feedback。
接下來會考3題leetcode簡單的題目,主要為dp, linklist, hash table關聯題,每題解出來後會有中等等級的follow up衍伸問題,不用真的寫code,我是寫pseudocode跟面試官解釋自己的解題思緒和同時跟面試官討論實作方法。
之後開始反問問題時間。整體的面試過程算愉快,考的題目也不會太刁鑽但很靈活。
程式面試題目算是正常偏有挑戰性,新興團隊很有朝氣。
但公司產品疊代迅速,實際的軸心理念為何多少有點讓人擔心。
如果對網美自媒體社群分析這塊很有興趣的人可以嘗試看看。
不過backend engineer基本上不太會碰到數據分析部分,
聽面試官是說backend engineer主要是做爬資料以及給data science team分析後的資料給企業看的整合平台架設
> 程式題 (leetcode №70)
用dp實作紀錄步數組合
follow up題用2 dimension array儲存所有的步數組合
> 對公司的反問
自由發揮,我問了公司的主要產品一直變更的理由為和
新創公司在草創期經營產品目標轉換快速可理解,不過想問公司的軸心理念為何?
> 功課實作過程碰到的問題? 有沒有使用過swagger, docker, CI/CD部屬等等?
根據個人經驗回答
▲圖片來源:翻攝自Garena。
首先一次面試會有HR跟工程師跟你視訊面試2個半小時,跟HR互動偏向聊天方式,介紹自己以及對方介紹公司主要業務和產品為何。
第二階段的是由兩位後端工程師面試官來面試,確認你的工作經驗和技術是否跟公司要求吻合。然後問了許多資料結構/演算法/網路/DB/web相關的基礎問題例如:
TCP/IP 3 way handshake
DB index為何? Mysql如何實作index加快查找
quick sort & merge sort比較 等等基礎問題
然後會透過google doc面試三題程式題,兩題選擇題(DB,data structure相關)
一題實作題是台灣各大公司考很多次的Lc №42 Hard問題。(囧)
寫code前有解釋自己的解題思維,以及寫完後自己帶入測試資料和檢查端點測資,然後分析演算法的時間空間複雜度。
之後開始反問問題時間。整體的面試過程算愉快,考的題目算相對簡單。
面試完後三天內得到通過技術面試的結果,二面是透過視訊方式跟Garena台灣總經理面試一小時,主要談公司願景和台灣區技術團隊未來的方向。一個禮拜後知道結果。
程式面試題目簡單,應徵的Backend engineer職位不是直接的遊戲開發,聽面試官說主要工作內容是Garena各國各款遊戲的活動官網的更新與維護。
> 程式題 (leetcode №42)
請參閱Leetcode 42題的討論區
> 對公司的反問
自由發揮根據個人經驗回答
說實在的從我大學畢業後已經面過google(日本)兩次,每次都在phone interview階段就被刷掉,但他們人資隔一年又會自動聯絡我,真的很喜歡凌虐我的自尊(鬼畜公司)。所以面g社對我來講多少有點心理陰影(?),就只能豁達的安慰自己沒上正常有上有祖先保佑這樣。
之前兩次面試都是面日本的Technical Support Engineer職位,這次面台北的SWE職位所以難度就高了更多。
4/7 一面跟一位台灣google 的工程師透過電話面試,首先互相自我介紹三分鐘後,使用google doc寫了一題偏Data structure相關的程式題,Leetcode easy等級不難大概十分鐘解決,難的是後續的follow up被問到「該怎麼設計一個unit test測試 我寫的程式,可以自動生成Edge case或是各種資料,能夠讓測試覆蓋率到100%」。
聽到這題目瞬間傻眼,我以前只有用手動寫case和測試api時調整Jmeter產生自動生成測資來測試而已 (書到用時方恨少QQ),只好據實以告自己不是很熟,盡量把問題抽象/程式化,例如提出把各種可能的測資和答案的pair寫成Go的test class,用亂數去生成data structure的值等等方式。
過兩天後收到HR一面通過的消息,但同時也因為武漢肺炎(又是你QQ)的關係所以目前on-site招募進度非常緩慢,HR說可能會延到五月後才能排上我的面試,剛好給我刷題時間於是便欣然答應(這時只刷了210題),有後續再做更新。
▲圖片來源:翻攝自蝦皮臉書粉專。
4/10 線上跟HR討論後收到同集團Garena的offer,被HR說你先決定要不要去那裡再來面後續的tech 面試,後來就拒絕繼續面了。
對不起幫介紹的朋友們 =(
其他有投但無聲卡的還有 雷亞,Niantic 日本等,只能說能力不吻合他們的招人條件。
後續有更新會再補充,感謝收看!