背景: 國立科大本科學士,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 先根據履歷問問題,再詢問導入新制度時若公司拒絕時,會怎麼反應以及什麼狀況 願意接受,同時詢問想換工作的原因 也問了有關未來規劃的問題 結果: 未錄取,原因如下 二面後五個工作天收到對方回覆,表示公司正在忙季,因此隔週才能回覆 隔週週三表示目前公司正在組織重組,也希望我能再與重組後的不同的團隊領導者三面, 因此希望我繼續等候 再隔隔週,發信詢問對方目前進度 再隔週,對方回信表示公司在組織重組後沒缺人,因此感謝函 心中頓時五味雜陳,嗯 -------------------- Pinkoi@第二次: (主動投遞) 數個月後,剛好看到 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 幣啊...) 有用手機修正一些文章錯字,結果文章炸掉了,希望推文沒有受到影響 -- ※ 發信站: 批踢踢實業坊(pttsite.org.tw), 來自: 101.139.195.254 (臺灣) ※ 文章網址: https://pttsite.org.tw/Soft_Job/M.1665588136.A.DBB ※ 編輯: yc0015139 (101.139.195.254 臺灣), 10/12/2022 23:26:06
xixian69: 推10/12 23:34
viper9709: 感謝分享10/12 23:46
abc0922001: KKBOX 原來開發的人這麼少,難怪app那麼難用10/12 23:47
now99: 感謝分享~10/12 23:56
NTHUlagka: 感覺大大很強 結果還是拿感謝函orz10/13 00:18
peoples: 有沒有富二代要包養10/13 00:18
ppc: push10/13 01:22
B0988698088: 現職哪間10/13 04:11
hakosaki: 推分享 感覺滿多公司職缺都算凍結了..10/13 08:11
MoonCode: 詳細推10/13 08:17
nathanlu: 加油,我也到處面,很多無聲卡跟罐頭感謝文10/13 08:28
wilmer: 身邊有朋友被包養10/13 08:28
fake01: 推分享10/13 08:41
htury: 沒想到cmoney這麼硬的考題,大概算錢是需要精確掌握數字運10/13 08:43
htury: 作10/13 08:43
BearFather: 幸好17沒上10/13 09:09
spicysushi: 推,感謝分享10/13 09:18
badlip: 亞洲最大包養平台上線了10/13 09:18
AoShenFengYu: 別氣餒,很多時候是人事的問題,但又不能表明,只好10/13 09:21
AoShenFengYu: 包裝成人選不適合婉拒面試者,原po加油!10/13 09:21
realbout: KKBOX真的難用,之前面試當場吐過....10/13 09:28
starburs: 推 不管有沒有上都不影響分享文的價值10/13 09:32
xevisu: 這篇實際多了,二年要百萬除非超級強,不然大概只能找不10/13 09:40
piggyoil: 這個包養網正妹好多 是真的嗎10/13 09:40
xevisu: 知道什麼能撐多久的新創10/13 09:40
littlebroken: 他看起來對最後拿到的offer挺滿意 應該>100?10/13 10:05
littlebroken: 看下來覺得多試幾間準沒錯10/13 10:05
NTUTM04: culture fit有時候標準很謎,不過還是恭喜上岸10/13 10:21
ohmylove347: 謝分享,想請教rxjava被問到的多嗎?只學coroutines10/13 10:48
TwixBar: 真的有這麼多人在找包養10/13 10:48
ohmylove347: 有點抖10/13 10:48
shieldsky: 好厲害!兩年經驗就突破百萬了,感謝分享面試經驗,恭10/13 11:55
shieldsky: 喜找到適合的工作!10/13 11:55
sck921: 推,恭喜10/13 12:05
aaa1234136: 感謝分享10/13 12:20
boggicer: 有人可以分析一下包養平台的差異嗎10/13 12:20
air4028: 感謝分享!10/13 13:00
hydradevil: 推分享10/13 13:38
hegemon: HR決定no hire的話應該不會核薪呀10/13 14:42
rabbitu04: 有核薪結果但不給offer是啥鬼...核開心的嗎???10/13 14:44
woow1225: 原po跟我面過的有不少間有重疊耶 還是恭喜找到工作10/13 16:04
Chiason: 那個包養網人最多XD10/13 16:04
touurtn: 不錄取你 但還是想在你身上貼個建議售價?10/13 16:34
robber1234: 不去這些公司才好,問一堆coroutine結果是給多少$10/13 17:55
robber1234: 還有早期某些安卓人最愛秋的rxJava, 現在誰還要用10/13 17:56
robber1234: 看到要會rx的公司直接略過,問我會不會rx直接說不會10/13 17:57
robber1234: 目前公司一堆爛code, 超過一半都是rx造成的10/13 17:58
Markell: 我妹上包養網被我發現= =10/13 17:58
Lhmstu: 感謝分享10/13 19:30
hellomotogg: culture fit真的很謎10/13 20:09
soarcat: 各產業人事凍結 下次會更好10/13 20:28
codepo: 強者學弟 推推 學弟10/13 23:04
rickykai: 推分享10/13 23:49
fuoya: 隔壁桌的人竟然在討論包養...10/13 23:49
anson26666: 感謝分享!10/14 00:46
touurtn: 遇過有些HR說你要接受offer才會發offer給你 真的白爛10/14 03:49
jobintan: 樓上,這很正常,估計是被人撕offer給撕怕了。 10/14 10:28
Alreadykiss: 推推,分享好多細節,努力終有回報~ 10/14 10:53
BearFather: 遠端影響你對工作的喜好,有人愛有人不愛。但整個文 10/14 12:30
Apasiri: 樓上是不是被包養 10/14 12:30
BearFather: 化跟面試時的感覺比較影響你工作的真實感受。文化差 10/14 12:30
BearFather: 的話遠端也一樣爛而效率更差 10/14 12:30
pkro12345: Noodoe不是拓連科技嗎?有改名? 10/14 12:41
Belieeve: 好奇culture fit都往哪個方向回答,其實沒和他人協作過 10/14 13:41
Belieeve: 的人這部分真的容易踩坑 10/14 13:41
litidi: 未看先猜這包養 10/14 13:41
baobomb: 樓上怎麼這麼氣Rx xD Rx造成爛code是寫的人的問題不是Rx 10/14 17:38
baobomb: 的問題xD 10/14 17:38
jay123peter: 分享推,謝謝你願意分享 10/14 22:31
YaXuan1997: 恭喜 10/15 00:49
fanatics5566: 感謝分享,合作過2個N家出來的工程師不論是開發上 10/15 07:13
Merzario: 一定又是這包養 10/15 07:13
fanatics5566: 還是溝通協調的能力我覺得都不錯,可惜敗在HR 10/15 07:13
angusyu: 有人說不是rx造成的,意思就跟java容易NPE不是它造成的是 10/15 13:15
angusyu: 寫的人的問題,科科 10/15 13:15
baobomb: 防NPE可以用Optional阿 所有語言,Framework,libs都有優 10/15 17:20
baobomb: 缺點吧 但往往對其不熟的人才會覺得很難用 RxJava的Learn 10/15 17:20
Muzaffer: 包養平台不意外 10/15 17:20
baobomb: ing curve的確很陡 但真的熟練的話在大型Mobile專案裡可 10/15 17:20
baobomb: 以帶來很大的好處 10/15 17:20
angusyu: 都2022就不用再吹rx了,不然為什麼面試的都在換coroutine 10/15 17:45
angusyu: 您要吹也是無妨,個人經驗確實就是個拉基,還好我不用深 10/15 17:48
angusyu: 入學 10/15 17:48
MIJice: 覺得包養網EY嗎 10/15 17:48
hicoy: 碰到coroutine之後 馬上棄坑rx 技術無限 時間有限 10/15 21:02
hicoy: 知道什麼東西要投時間去鑽研也是一門學問 10/15 21:02
baobomb: 我是不知道大大的環境是什麼 不過很大一部分人只是把Coro 10/15 21:13
baobomb: utine & RxJava拿來當作Threads switching的工具 那兩者 10/15 21:13
baobomb: 其實只是coding style的差別而已而且完全沒有真正利用到 10/15 21:13
SpyTime: 包養網站葉配啦 10/15 21:13
baobomb: 這兩者的益處 Rx真正的好處在於模組化跟React Programmin 10/15 21:13
baobomb: g 這點Coroutine其實也是用Flow給出一樣的解決方案 沒有 10/15 21:13
baobomb: 說Rx沒缺點 Coroutine的好處是學習曲線比較平衡 跟Rx相 10/15 21:13
baobomb: 比也是各有優缺 沒有必要踩到底啦xD 10/15 21:13
sharek: 重點還是reactive programming 的概念,就算用Coroutine 10/15 21:26
Toth: 記者收了包養網多少啦 10/15 21:26
sharek: 也是要學Flow。會因為用rx就把code弄得一團亂,改用Corou 10/15 21:26
sharek: tine不會好到哪裡去 10/15 21:26
baobomb: 當然兩者的效能有差 這點Coroutine 的確是贏過RxJava 而 10/15 21:26
baobomb: 且Coroutine如果Flow用的好 的確是可以寫出效能佳又Solid 10/15 21:26
baobomb: 的code 不過我體感上Coroutine 因為更好上手 反而造成很 10/15 21:26
Asterix: 包養真亂 10/15 21:26
baobomb: 容易被寫爛 當然這我個人感受啦 各有所好 :) 10/15 21:26
baobomb: sharek大大跟我想的一樣 沒錯 很多人用Coroutine 跟Rx 10/15 21:28
baobomb: 都沒有真正用到React/Flow programming 只是拿來切線程 10/15 21:28
baobomb: ... 10/15 21:28
baobomb: Style上來看 Rx因為強迫使用者一定要React programming 10/15 21:30
AdamShi: 演藝圈一堆包養好嗎 10/15 21:30
baobomb: 所以很多人覺得難用難學 Coroutine沒有強迫用Flow 所以 10/15 21:30
baobomb: 很多人覺得好用 但Coroutine不用Flow的話 那真的是暴殄 10/15 21:30
baobomb: 天物... 10/15 21:30
howhowyang: 1M/y的話… 某石頭店很缺人,而且上述主流技術通通不 10/19 22:39
howhowyang: 需要會… 10/19 22:39
lezabo: 政治圈一堆包養好嗎 10/19 22:39
shietsd: 所以看起來不要因為一時失敗而降低標準,最後總能遇見, 10/30 22:29
shietsd: 恭喜happy ending 10/30 22:29
vcidt: 謝謝分享 11/04 01:12