背景:
國立科大本科學士,Android 開發經驗約 2y
前一份工作在一間進入尾聲的新創獨立開發,800K/y
技能樹:
Kotlin, MVVM, MAD Skills, Clean architecture, Android TDD, DI
寫在心得前:
感謝幫我 mock interview 以及花時間 code review 的 Alreadykiss,還有常找我喇賽
Android 問題的 SamThunder,以及其他 Android 社群上的大神們,希望自己哪一天
也可以像大家一樣幫助更多人,因此在新工作 onboard 一陣子後分享面試紀錄
求職目標:
因為感覺到獨自開發的視野有限,且導入了協作模式但公司卻沒有新人進來,因此希望
加入有一定人數且跟隨開發趨勢的 Android 團隊,避免陷入技術自滿導致進步緩慢的狀態
面試時間跨 2021 - 2022,有些是在職面試,有些是離職後面試,不依據面試時間排序
全都是中文面試,現職不在心得內
都談年薪 > 1000K/y
--------------------
17 Live (Wave):
(Hunter 投遞)
面試前有作業,難度不高,主要是看你會不會 call api,以及 MVVM + 架構 + RxJava/Cor
頂多有 recyclerView 的進階使用方法,比如 load more,個人是用 paging3 解決
面試 (Google meet)
三關都在同一天,技術討論 > Tech leader > HR
第一關
技術討論問了有關 Coroutines 的問題,以及一些技術上的情境題,也有 MVP 與 MVVM
比較的基本問題,對方會用引導式回答的方式詢問,剩下大多是閒聊,因此可以放輕鬆
回答
第二關
Tech leader 問了有關團隊合作的問題、個人優缺點、前一份工作導入 scrum 後的優
缺點,基本上是問團隊適應性
第三關
HR 主要根據你職涯生涯問問題,並說明公司福利
結果:
因為對方希望有 rxjava 改 coroutines 的人選,而個人只會 coroutines,因此
感謝函
--------------------
Funnow:
(Hunter 投遞職缺)
(實體面試)
這間應該是所有面試裡技術關卡最硬的
也是一天三關,總時間約 3.5hrs,技術 > 團隊技術與工作實戰經驗 > 介紹公司與問答
技術關卡
Android Staff + Android Senior
考很細,包含但不限於 kotlin 基本觀念、collection、design pattern、
sealed class、data class 的特性、coroutinesScope 等
Android 的部分包含 activity lifecycle、onStart v.s. onCreate、用過哪些
architecture components、Paging3 的組成與實作原理、memory leak 與成因等,
有印象的問答題約 30 題以上
團隊技術與工作實戰經驗
Android Staff + Android Senior + iOS Staff
詢問履歷上有關的現職經驗,以及工作時會遇到的實戰問題,大多是實作上花時間討論
其中包含了 CI/CD 相關經驗、實作某需求的思考邏輯與如何讓需求完成的更好、
寫出 livedata 的 unit test 等
介紹公司與問答
Android Staff
顧名思義,就是介紹公司與讓你問問題
結果:
透過 Hunter 得知公司目前希望更資深的人選,因此感謝函
--------------------
Digifinex:
(PTT 網友內推)
這間剛好沒寫到紀錄,是剛來台灣設立據點的數位貨幣交易所
面試是線上面試,透過 Lark 視訊面試
一面 (Lark)
有印象的是面試官是在新加坡的兩位中國人,問 Android 相關問題
自我介紹完後,對方要求解釋關於 Android 事件的了解程度,以及對於 memory leak 的
處理經驗,由於當時對前者完全一片空白,因此面試上有點尷尬,面試官也坦率的表示他
覺得我表現不太好,但還是可以往下作筆試
筆試 (Lark)
筆試還真的是紙筆測驗,對方派了 HR 在我方便的時間填寫 docx 上的 java 問答題,
以及一些邏輯測驗、數學計算測驗(??)、排列組合計算(???)與簡體中文的用語邏輯
分析(????)
至於線上面試的前後,當時工作上的空降零經驗 PM 一直問工作上的問題,導致沒辦法
好好準備面試又是一個故事(笑)
結果:
不意外的無聲卡
--------------------
Noodoe 拓廣科技:
(PTT 網友內推)
面試前先做作業,一週內完成
作業要求:Kotlin + Single Activity architecture + MVVM + RxJava(or
Coroutines) + Repository Pattern
個人再加了 navigation 與 手動 DI,繳交作業的隔週收到一面通知
一面 (Google meet)
與 Android team 討論自我介紹內容、Android 問題、Kotlin coroutines 特性、履歷問
題、作業內容
整體而言很舒服,回答有誤的地方對方會告知
四個工作天後得到二面通知
二面 (Google meet)
這邊剛好沒寫紀錄,印象中是跟主管與 HR 聊一些人格問題
二面後隔週 HR 打電話討論薪資與福利
結果:
HR 覺得不合適,因此以電話告知核薪結果 900K/y 但不給 offer,有點無奈
--------------------
Pinkoi:
(HR 於 CakeResume 邀約面試)
HR 在 CakeResume 訊息上表示可以在面試前介紹公司
剛好 WFH 時有空擋,因此在 Google meet 上聽了對方約 30 分鐘的介紹與閒聊,隨後敲
定面試日期
面試前對方要求回答三個問題
1. 自己的 side project
2. 分享過去遇過的技術難題以及技術難點
3. 為什麼良好的技術可以給使用者更好的體驗,以及平時自己在意的使用者體驗
大概回覆自己的想法就好
一面 (技術面試) (Google meet) (共 2.5 hrs)
與 Android team leader 與 Android senior engineer 面試
自我介紹 > 根據自我介紹內容延伸問題 > 延伸到架構問題,看 Code >
介紹架構與自己的想法 > 對方提問 Android 問題 > 給予面試者提
有趣的是,面試官和我也有聽矽谷輕鬆談的 podcast,因此有做為話題小聊一下
當天下午收到二面邀請
二面 (人格特質面試) (Google meet) (共 1.5 hrs)
第一關,CTO
討論有關喜歡這間公司的原因、詢問未來規劃,以及現職同事對自己的看法
接著是開放提問
第二關,HR Leader
先根據履歷問問題,再詢問導入新制度時若公司拒絕時,會怎麼反應以及什麼狀況
願意接受,同時詢問想換工作的原因
也問了有關未來規劃的問題
結果:
未錄取,原因如下
二面後五個工作天收到對方回覆,表示公司正在忙季,因此隔週才能回覆
隔週週三表示目前公司正在組織重組,也希望我能再與重組後的不同的團隊領導者三面,
因此希望我繼續等候
再隔隔週,發信詢問對方目前進度
再隔週,對方回信表示公司在組織重組後沒缺人,因此感謝函
心中頓時五味雜陳,嗯
--------------------
[email protected]第二次:
(主動投遞)
數個月後,剛好看到 Pinkoi 在相關社群上有團隊成員表示有缺,因此將履歷交給對方,
同時也要繳交上一段提到的三個題目
幾天後收到 Coderbyte 線上測驗邀約
原先以為線上測驗會考 leetcode 題目,但實際上考了有關 Android 相關的問答題
有印象的有 Kotlin 基礎、activity livecycle、android app architecture、測試的
3A 原則、process/thread/coroutines 差異等,其他忘了
幾天後收到面試邀請
一面 (Google meet) (2.5 hrs)
第一階段,與兩個不同 squad 的 Android 成員面試
先自我介紹再根據自我介紹提問
隨後檢討面試時寫的基本概念考卷,不確定的地方對方也會告知
同時也問了多一點有關 coroutines 的問題,比如 dispatcher、flow 的相關 methods
後面討論 Android data layer 時自己主動開 side project 讓對方看 code,藉此討論
DI
第二階段,與 team leader 面試
印象中討論有關團隊合作相關的問題
隔天收到二面邀約
二面(Google meet) (共 2 hrs)
第一階段,與 Engineer Lead、CPO 面試
印象中也是討論團隊合作相關的問題
第二階段與 HR 面試
討論優缺點(指名要個性上的優缺點)、團隊與公司遇到衝突時的解決方法(聚焦很多在這
部分),由於雙方都知道彼此面試過,因此提問時自己沒有問太多
結果:
六個工作天(兩週)後收到罐頭感謝函,詢問先前協助投遞的團隊成員後,隔幾天後得知
技術需要更深入外,還有 culture fit 沒通過,看來真的沒有緣分
--------------------
趨勢:
(對方邀請面試)
職稱很特別,叫 Blockchain Security Sr. Android Engineer
當時看職缺敘述是和 Web3 的 mobile app 資安有關
這個應該是最快收到感謝函的面試,面試前於 Codility 寫三題 leetcode 題目,可用
C/C++, Java, Python or PHP, C#, or GO (實際上還有 swift)
(明明有 swift 可以用,為什麼沒有 kotlin,抗議)
最後使用 Java 答題,三題大約介於 easy-medium 之間
結果:
由於只成功答出一題,因此幾分鐘後收到感謝函,沒有後續面試
--------------------
KKCOMPANY
(對方邀請)
有 Codility 線上測驗三題,以 kotlin 實作
第一題是密碼的 filter 實作
第二題是依據需求實作 viewModel 的 function
第三題寫有關 RxJava 的功能,但個人只有使用過 coroutines flow,因此寫下相關註解
後留白
最後好像只拿到 50 分,沒想到還是得到面試邀請
HR 安排了兩個 team,分別是 KKBOX 與 KKTV
KKBOX Android engineer
面試官是 Android team leader (Google meet)
一樣先從自我介紹開始,再根據履歷詢問問題
問了有關團隊合作的問題,也要求我打開 github 詢問我某個專案的架構
同時也詢問了與測試有關的問題,由於專案沒寫測試,因此對方詢問我能否當場寫相關的
測試 (live coding)
在對方同意我 google 的狀況下,當場針對使用 kotlin coroutines flow 的架構寫了簡
單驗證 api 功能的測試
後面對方介紹目前自己團隊的架構,並表明二面會有需要放上投影片介紹的技術面試
結果:
KKBOX 需要的技能樹是 testing 能力比較強的人選,因此 fail
(不過也因此,個人在後面努力補了不少有關 coroutines flow + viewModel unit test 的
,算是有收穫)
KKTV Android engineer
Team leader (backend engineer) 與 HR 一起加入面試 (Google meet)
單純介紹自己,對方根據我的介紹提出問題,比較現職狀況與針對團隊合作的部分提問,
技術部分頂多看你懂不懂 git flow
team leader 表示他是 backend 的,也不曉得要怎麼問 Android 相關技術,只提到後面
這個職缺需要不排斥寫 flutter,可以進來再慢慢學
至於測試的部分,team leader 表示有聽上一關的面試官介紹我的技術能力,不過目前
KKTV 這裡的測試還不用太完善,也可以再慢慢學
團隊人數 10 人,有點像大公司裡的小新創
團隊喜歡在公司裡噴垃圾話,讓同事之間有更多交流
目前僅一名 Android 工程師,太過分身乏術而開缺
後面 HR 問了有關職涯方向有關的問題,結束了面試
結果:
五個工作天後詢問 HR,得到罐頭感謝函
--------------------
CMoney
一面:
自我介紹 > 技術面試 > 提供詢問
先自我介紹,面試官(RD)根據自我介紹內容詢問,再進入技術面試
技術面試,考類似課本題目的問答題,不看 code
程式基礎題:
1. 解釋什麼是時間複雜度、空間複雜度
2. call by value, call by reference 的差異
3. 為何電腦的浮點數會有誤差
4. BigDecimal 的使用方式
5. 對於 WeakReference 的了解
6. kotlin var val 的差異
7. kotlin 中修改 mutableList 時,新增與刪除需要呼叫哪兩個功能
8. abstract class 與 interface 的使用時機
9. 解釋併發、併行、同步、非同步
10. Lifecycle of kotlin coroutine job
Android 相關:
1. Lifecycle of Activity
2. Lifecycle of Fragment
3. fragment 的 viewLifecycleowner 的執行週期
4. Activity 傳遞數值的 Bundle,若要傳遞 data class,需要繼承哪兩種資料型態
,兩者的差異為何
後面都在問團隊相關的問題,比如平時 follow Google 官方新政策的方式
結果:
感謝函,信中指出需要對 coroutines 的運作規則再更加熟悉
--------------------
TutorABC
(Hunter 推薦面試)
有名的線上教學平台,聽說目前高層已有大幅改動,因此答應面試
面試前先於線上填寫有點繁瑣的制式履歷
一面(Google meet)
兩名面試官,Backend、Android 的 RD 各一名
java、kotlin 基本能力面試(包含根據 side project 提問) > 根據履歷詢問 > 團隊介
紹 > Q&A
基本能力面試考一些 java 與 kotlin 的基本問題,面試官也會在中途引導你不會的點,
因此整體面起來很愉快
中間有問到 MVVM 在我專案中的架構講解,因此我開了 side project 講解我的架構,讓
人意外的是面試官有問到我對 jetpack compose 的想法,看來他們也有 follow 新技術
不過他們會因為隕石開發而加班,這點比較無奈
面試結果:
從 hunter 得知他們想看更資深一點,及有寫 JNI 經驗的人選,因此感謝函
--------------------
心得差不多到這裡告一段落,其中沒有寫面試紀錄的就不放上來了
寫了這麼多,應該會有人想
欸不是,怎麼都是感謝函,是不是開太高,以及該補強一下自己的實力?
我也這麼想,尤其是幾間 culture fit 沒過的部分讓自己挺失落的,
除了感覺到這陣子不好找工作外,身為前 hunter 的朋友(剛轉職 HR)也建議不要找
太 senior 的缺,以及薪資可以開低一點
正當這麼打算的時候,意外收到現職的 offer,而且團隊規模與薪資都比期望好,也不是
灰色產業,團隊成員也非常有實力
最後在 onboard date 前結束了最後一輪的面試,就職現在的公司,目前對現職非常滿意
緣分這種東西,感覺真是奇妙
希望這篇能幫到有需要的人
(寫完才發現暫存檔會被當作貼上,我的 P 幣啊...)
有用手機修正一些文章錯字,結果文章炸掉了,希望推文沒有受到影響
--