AI Engineer 求職紀錄 (2018)

Posted by Matt Wang on Monday, April 1, 2019

這是過去發在我自己 Medium 的一篇文章,最近又想寫求職心得才把這篇搬過來 blog。搬家的時候又重新讀了一遍,當初真是滿滿菜味XDD。 — Mar. 2022

前言

這篇文章紀錄我第一份工作面試之旅(2018 年 8~10 月)的過程和心得。

文章是自從入職以來斷斷續續寫的,到後來印象有些模糊,不過已盡量提供完整資訊了,大家加減看 XD。

個人背景

就讀台大機械期間,對機械領域知識並不討厭但總覺得沒什麼熱情,在大三、大四才發現自己寫程式比較快樂,不過覺得自己基礎不夠,所以並沒有打算報考電資相關碩士班。在台大機械所設計組期間做的是機構理論相關研究和專利分析,但組內修課自由,所以就選了一些電資相關或有 project 的課程來訓練自己實作能力,課外時間就去上一些線上課程、寫幾篇技術文章在個人網站上(已 deprecated XD)、參加 CNN 相關論文讀書會,後來成為讀書會負責人。

在碩一期間就有找軟體相關工作的想法,但只從網路上、和讀書會朋友們討論中獲得一些資訊,並不是很清楚自己實力在哪,不過畢業後來是決定空出兩個月面試軟體工作,反正沒上的話就回機械業(畢業前已有某廠設備工程師 offer,但我對這份工作完全沒興趣)。

面試紀錄

研究助理職缺

一開始因為覺得自己沒有相關學歷就直接轉領域應該是完全沒希望,所以想說畢業後先當研究助理一兩年練練功,但後來好幾位前輩與朋友勸退,建議我可以試試直接找公司職缺磨練,故後來決定在面試完公司職缺前不考慮 RA 職缺。

  1. 清大李祈均教授 BIIC 實驗室 : 在 PTT Tech_Job 上 po 出訊息,教授非常年輕,其中一個研究方向是血癌檢測相關,博士生已經發展出核心演算法也已經有合作醫院,覺得是個很有潛力的 lab,也可以在 FB 上看到他們的一些成果 。該職缺工作內容主要就是將演算法產品化,包含演算法優化、資料庫建置、寫醫師要用的介面。看到徵人訊息後寄信約面試時間,面試是到教授辦公室聊天,單純讓教授更進一步了解我的經歷,後來講好如果之後有確定加入再通知教授。
  2. 中研院陳昇瑋老師資料洞察實驗室 : 陳老師資歷顯赫,應該很多人聽過,中研院 RA 也是大家公認的留學/轉領域好跳板。陳老師約我在一家咖啡廳見面,主要就只是看看我的 CV、問問經歷,就說我應該沒問題可以加入。說未來要做醫療和工業上的影像辨識,但之前看實驗室網頁好像沒甚麼相關的論文產出,可能是要開始作新的主題。
  3. 清大某教授: 教授似乎想低調所以就不公佈太多東西,是做 fMRI / CT 影像辨識,也要碰前後端/專利/跑 TFDA /學 business plan,和新創有關而不是單純的研究助理,是個很好的職缺但實在覺得太神秘了就沒有繼續談下去XD。

[華碩] AI/ML 人工智慧工程師

面完才知道 ASUS 要念作"ㄝ速死"。在官方徵才網站 上投遞多個 DL 相關職缺,只有一個 team 有給面試機會。據面試主管說這個團隊是 mobile app team 在兩年前轉型而成的(有在看 PTT Tech_Job 版的話應該有看過 ASUS 內部改組的新聞 ),成員都是在轉型過後才開始自學 ML/DL,只有團隊主管是十幾年前就在台大做強化學習的研究,所以面試官說我的學習資歷可能也沒有比目前團隊成員差多少。工作內容聽起來是在公司內部導入ML/DL,例如為 PM 作筆電返修率預測、價格制定、為 camera team 作動作分析等,都是 project-based 形式,可以看到比較多種應用領域(但感覺也不夠專精)。

筆試: 只考邏輯、程式(可選 R 或 Python)兩項測驗,當初選 Python 但沒做紀錄所以內容不太記得。

面試: 第一次面試位於奇岩大樓,只有面試官一名,就是用人團隊的主管,看起來很憨厚友善,非常仔細的看我的履歷和成績單再問問題,最後直接說想錄用我,應該隔周就會通知。 第二次面試是在遠的要命關渡 HQ,據說面試的團隊之後是搬到關渡 HQ 隔壁、目前正在興建的大樓中辦公,面試官是一位厲害的 HR 哥哥,主要是問人格特質、個性和團隊合作能力,並介紹公司方向(主要朝向 AI 發展)。 如同 ptt 眾多心得文所述,ASUS 的面試流程頗糟,筆試過程一直有人打擾,筆試後等了面試官半小時才開始,但卻因為沒有會議室而在餐廳進行,而且兩次面試是整整隔了一個月才通知(說好的隔周通知呢?)。

結果: 無聲卡,第一次面試說要收但之後卻無消無息。

[由田新技] 影像深度學習工程師

位於中和,做產線上光學檢測的公司,已成立二十幾年。104 上寄面試邀約給我,工作內容聽起來主要就是讀論文、改 model,一直強調很自由,每天工時 7 hr,train model 可放著自己讀書去,極少出差。

筆試: 有邏輯測驗(e.g.甲乙丙丁互相指控,問誰說謊)和 C/C++(ptr, i++/++i, sort, private / protected / public,不難但不少名詞解釋)。

面試: 第一位面試官是 AI leader,問大概經歷、問 Conv layer 和 FC layer 優缺點比較,然後就沒其他技術相關問題了,開始問機械系好不好玩、聊和主管修過同一門電機系機器人課的教授笑話很難笑,最後主管才承認也是台大機械系畢業,技術題算是有回答出來且聊天過程也蠻愉快的。 第二位面試官則是感覺不太想認真面試我,問完經歷就草草結束。

結果:感謝函, 自覺面試和筆試都還算順利,面完兩週後無聲,寄信問才得到感謝函回覆。

[HTC Vive] 演算法開發工程師

HTC 的 VR 部門,位於新店的大樓非常氣派。是團隊主管主動電話聯絡我,說目前產品只靠 IMU/GPS 訊號定位,想為產品加入類似 motion capture 的相關技術,說是看到我有做過人體動作分析的 project 才發面試邀約,屬於軟硬整合的工作,與 ML/DL 技術應該較無直接相關。據說部門成員很多是機械系背景,有打聽到台大機械控制組林沛群教授(機器人研究) 和設計組陳湘鳳教授(AR/VR 研究) 的實驗室出了不少碩畢生加入該部門。

筆試: 三項考試考了 110 分鐘,邏輯 100 分、英文 91 分、C++ 84 分,有被面試官稱讚還考得不錯。邏輯考試共 20 題,前半部是四格圖形選下一個出現的是哪個、後半部是找出數列中多餘的數字,看 ptt 心得文好像沒人錯超過三題。英文有聽力、文法測驗,據說很像多益但我沒考過不知道,ptt 上心得文&回覆均分大概 70。C++ 考了非常多的 pointer、一些記憶體位置概念和 bitwise operation、幾題手寫 function(字串反轉、移除字串中空白),ptt 上回報均分約 60。

面試: 第一次面試和筆試同一天,是用人部門的面試,有三位面試官(一位主管、兩位工程師),只聊履歷上寫的經歷但幾乎是每一項都問到了。 第二次面試是由其他部門 comment 給用人主管參考,面試官一位(來自軟體部門),自我介紹、簡單聊天之後幾乎都是主管給我一些新人初入職場的忠告,全程40分鐘而已,沒有問到技術問題。

結果:無聲卡, 原本以為得到 offer 機會應該不低,但後來收到其他 offer 所以沒再寄信問。

[鴻海] AI 人才訓練班

我碩士班還在學(約 2018 五、六月)時,鴻海宣布成立 AI 人才訓練班並開始寄信給畢業生,PTT 上有不少相關文章(招募網站上亦有相關消息),是我最早面試的職位之一。於土城舉辦團體面試,有好幾個梯次可以選擇。集合後的面談會是人資主管向大家介紹這個訓練班,若有通過面試就會把大家丟到一個位於深圳的訓練營六周,每周皆有考試,最後被刷掉的人可以回台灣當新幹班,留下的人會幫忙做職缺媒合,待遇方面聲稱學碩博年薪分別是 100, 150, 180 萬以上。人資經理不斷告訴大家不要害怕到中國工作,想必這個訓練班的職缺應該多半不在台灣。

筆試: 面談會後有統一的筆試,發下平板給大家作答,包含性格測驗、模擬多益、專業測驗,只有模擬多益有公佈分數(我得 89X 分)。專業測驗考的東西頗雜,個人覺得很多答案模稜兩可,沒甚麼鑑別度(?)。

面試: 面試階段看起來是以面試者科系做分類,和我一起面試的另外兩位都是同校同系(一位應屆學畢、一位和我同屆的卷哥)。面試官共三位,推測一位軟體背景、兩位機械背景,主要問過去經歷而已,不過三位面試者裡面只有我有DL相關實作/修課經驗,故覺得自己這階段樂勝。最後我有問若是通過訓練班審核,媒合職缺工作內容是甚麼,只說有可能是 AOI 或工具機內感測器訊號分析,似乎不太願意透露。

結果:Offer get 但海邊跑步文名聲遠播,身邊好友又極力勸退(含一位鴻海工業設計師),加上鴻海把我排在隔年二月的梯次,所以決定不去。

[博晶醫電] ML Algorithm Engineer

在104上發面試邀約,是一家非常有潛力的年輕小新創,做個人運動模式分析與導引(專業運動員或ㄧ般民眾都有),主打產品是能夠量化體力與疲勞程度的運動手環 ,也有針對老年人照護的相關產品。工程師們據說進公司之後都還有再研讀生理學與運動科學相關知識,公司內部也有聘用具有運動科學博士學位的專業訓練員。員工們都是產品測試員,下班會相約去跑步同時為產品收集資料(所以 JD 裡就明白寫說希望面試者熱愛運動)。福利方面,員工參與運動賽事全額補助,每個月參與運動課程或健身房補助兩千,公司的訓練員也會幫忙量身制定訓練菜單。聽起來最大的目標是以 AI 產品來取代運動教練,要面對的問題其實非常多,牽涉多個領域的專業知識。

上機考試: 寄一份心跳率資料( JSON 檔,只有時間與心跳率),要我在 20分鐘內寫一份分析(用自己筆電、語言與形式不限),最後沒有完成太多事情但 R&D 面試時還有問問想做些什麼事情,感覺並沒有很刁難。

面試: 原訂面試只有一個下午,但當時 CEO 在忙所以拆成兩天。

  • Day 1: 面試官是 R&D 主管,問經歷和上機考題後大部分時間在介紹公司情況和說明給我面試邀約的原因,雖然 JD 都是寫 ML/DL 相關,但因為我的背景的關係,他們希望如果我加入的話也去碰 sensor fusion,從中拉出可以用的資料再做後續建模。
  • Day 2: 是 CEO 面試,有再更詳盡的介紹了公司所面臨的課題,CEO 為了瞭解我的思考能力,直接請我和他討論我碩士班的機構設計研究,很不幸的我的碩士研究基本上鬼打牆了兩年,雖然講得出一套東西但明顯沒有達到他心中標準,建議我當時應該要把深度學習的技巧用於機構研究上(我當然有想過但覺得有很多不合宜的地方,有說明理由但是最後並沒有說服他),不過思考邏輯與談吐非常清晰,感覺是位能夠令人信服的長官。

結果:無聲卡, 自覺實力還沒達到他們對這個職缺的要求,所以也不再寄信問了。

[Viscovery] Computer Vision Engineer

中文名稱為創意引晴,台灣 AI 相關新創圈中相當有名的一家公司,104 上聯繫得到面試機會,面試官電話中說明公司業務有無人商店和廣告投放兩個大方向,沒做太多介紹(或是我忘了囧),有簡單問我最近讀過的論文內容,然後就和我約 onsite 時間並要求我做一份自我介紹用簡報。

面試: 面試官三人,自我介紹和簡述我的經歷後就只問一題技術問題:說明物件辨識實務上的運作流程和除錯方法。過程中面試官有一直問一些相關問題來引導我回答,但我一直沒有理解他們想表達的事囧,所以回答得不太流暢。

結果:面試過後當面說明不予錄取, 其實我覺得這樣很好,不用浪費彼此時間。面試官還給了一些建議,希望我除了懂理論還要更加增進實務經驗,如果可以的話花個幾萬添購簡單硬體就可以去嘗試處理更貼近現實的工程問題。

[IBM] Data Engineer

高大上公司不多作介紹。在 LinkedIn 上和獵頭聯繫得到面試機會。面試部門聽起來像是近幾年比較不受內部重用,所以開始接外面案子,獵頭說該職位大部分時間在客戶端駐點,每週開會回辦公室幾次而已,常需要和國外工程師聯絡合作。

面試: 在 onsite 前 HR 有約時間電話面試,但主要只是說明工作內容概況和要求用英文回答幾個問題來確認英文能力。 onsite 面試分為兩個階段,各有三位面試官。

  • 第一階段,面試官有工程師也有非工程類的主管,問人格特質、履歷上一些他們感到好奇的經歷,再加上一段簡單的英文問答,完全沒有技術問題。
  • 第二階段是技術面試,有兩份考卷:第一份有演算法、資料庫相關題目,第二份是 ML/DL 相關,有不少名詞解釋、情境敘述題。寫完之後都有一題一題討論我的想法,自覺回答得的不是很順。

最後該部門 Manager 有再來和我聊聊天,聊部門概況、該工作要求、問我 IBM 是不是並非我的第一志願 XD,然後也針對我提出的幾個問題做了很詳盡的回答。

結果:Rejected, 似乎希望有 Java 能力但 JD 沒寫、我也完全沒碰過,工程面試階段又表現的不是很好,面完就覺得不會上。兩週後獵頭再透過 LinkedIn 說該職缺已經找到人,問我要不要再面另一個職位,但我已經答應目前公司的 offer 了所以婉拒。

[傑騰智能] 數據分析師

是靠讀書會認識的前輩(為 CEO 友人)所介紹的職缺,當時並沒有開放招募(說之前遇過很雷的求職者所以只希望透過介紹來找人)。做工廠產線上 defect 偵測的公司,辦公室在敦南誠品附近,成立三年但產品已經上線、並成為 Microsoft & Cisco 的 partner,感覺也是有遠景有規劃的好公司。雖然職稱是數據分析師但工作內容偏 CV model training+full-stack,主管們希望這個職缺能夠有一定比例的時間或是長期在中國據點工作,但並不強制。

面試: 其實兩個階段都比較像在聊天。第一次面試的面試官是一位 28, 9 歲、和藹可親的主管,有看過我的個人網站並說他知道我有一些實作基礎了,直接拿他們過去實務上所遇到的難題(model training 相關)來問如果是我會怎麼做,一起討論、學習,是很棒的一次面試。 第二次面試是 CEO 面試,主要是更仔細的闡述公司的規劃,之後也有和一位在中國的主管視訊聊天,可能是怕我之後還想問問題,也讓我加一位在中國的工程師 wechat,讓我也跟他約時間聊聊。

結果:Offer get, 第二次面試結束前 CEO 就有口頭 offer 了(並在兩週後寄來書面版本),但我明確告訴他我還想面試更多公司,大概再一個月後才能給答覆,而對方也答應會等。

[Umbo CV] AI Engineer

面試前就有聽過,當時透過官網寄信投遞履歷。中文為盾心科技,2014 成立,辦公室位於內湖(在倫敦、舊金山亦有據點),AI 新創圈中頗有名氣的公司,將 CV 技術運用於安控產業,也有開發自己的 IP cam。網路上查得到許多新聞,但卻很少看到面試心得,而且還有幾篇發在薪資查詢網的黑特文,不過從幾位前輩打聽到的都是好評,後來也才得知黑特文是面試落選者發的黑函。

面試: 共三輪面試,其中第二輪又有數個關卡。

  • 第一輪 CTO 視訊面試:大部分時間是介紹公司業務方向與內部組成,有問了一下履歷內容和幾篇知名 CNN 論文的比較。明確告知這個職缺比較想要 Senior 等級,但也不排除招 Junior 重頭訓練。
  • 第二輪是 onsite 面試:
    • 第一關面試官是 QA team 主管,是一位會一點中文的華裔美國人,要我試著用英文描述我履歷上有提到的專有名詞、用英文寫一封電子郵件(情境是和國外同事討論問題)。
    • 第二關單純是和 CV team 主管聊天非面試,更進一步介紹公司和該職缺的工作內容、聊聊我比較想要什麼樣的工作。
    • 第三關是 dev/infra team 三位工程師面試,考 LeetCode Easy 等級的 Python coding 數題(palindrome, 如何用 stack 實作 queue 等題),解出來之後會問時間、空間複雜度、有沒有更好解法。作答時筆電畫面同步到會議室大螢幕讓面試官看,有點卡住的地方面試官還會拆解題目引導我作答。
    • 第四關 CV team 三位工程師面試,問履歷上的經歷和過去實作經驗遇到的問題(e.g. 聊到在我參與 hackathon 中遇到 overfitting 時採取了哪些手段)。
  • 最後一輪 CEO 面試:全程英文,感覺比較像聊天,例如問平常休閒時間在幹嘛,我也藉機問了一下關於公司的問題。最後有問一題邏輯相關題目但我沒回答出來。

結果:條件式 offer get, 因為工作技能不足,成為正職之前需要先度過總長七個月的試用期( QA team 四個月、 CV team 三個月),之後視情況決定是否繼續錄用。

後來接受了 Umbo 的 offer,主要是覺得風氣自由、重視知識分享,在這裡能夠學到更多樣的技術(而不是只有 DL 相關知識),同事也是各種強者(國內外名校、各大社群講者),進來之後也沒有覺得被歸類為「試用期」的新人,因為連實習生都會接到會真正影響產品的任務。

值得一提的,Umbo 的 AI engineer 可能和許多人心目中 AI engineer 的工作內容有點差異:因為公司有 research team(a.k.a. AI scientist,幾乎都是 Ph.D.)負責研究與改進演算法,AI engineer 的工作就比較偏向將研究成果產品化所需的 effort。

目前在 Umbo 的七個月真的算是人生當中很充實又快樂的一段時光,之後有空再找時間寫工作心得,若有人想進一步了解 Umbo 的話可以來找我聊聊,也可以先看看有什麼職缺(angelList、104)XD,或是看看幾篇強者同事們的心得文:

But Why?

只看軟體相關工作的話,我投了至少 2, 30 家公司,獲得約 15 家公司的面試機會,面試了約 10 家,最後只上了 3 家,覺得應該還可以再更好。不過從公司的角度來說,要從幾次面試就決定要收非電資相關學歷也沒實務經驗的應徵者,也算是做出一個賭注,我覺得我自己大概是有做到以下幾件事才能夠讓幾位面試官願意這樣當賭徒(?):

  • 面試資料準備: 當初準備的面試資料有英文履歷、中文自傳、個人網站、LinkedIn、104。履歷是自己先寫了幾個版本後還有給專業機構修編過,之後再改幾版覺得比較能看才敢投出去,LinkedIn 上有許多獵頭會提供資訊所以也花了許多時間和朋友討論怎麼寫。個人網站(有放一些技術文章)和 GitHub 有不少面試官會看,平常就逼自己慢慢累積一點東西。中文自傳只是拿來填 104 和交給想看的幾間大公司,所以只花兩三個晚上撰寫。
  • 參與社群: 一開始是為了尋找學習資源才參加社群,的確因此學到很多東西,也建立了一些很棒的人脈,後來才發現許多公司/獵頭都蠻重視社群經驗的,許多面試都會更近一步提問這項經歷相關的問題。
  • 參與過多個不同領域的 project: 做過機構理論研究、專利分析計畫,參與電動車、機構設計專題,做過嵌入式系統、生醫相關project等。其實是為了找到更符合自己興趣的方向而一直嘗試的結果,只是在履歷上包裝成比較好看的樣子。(不過同時也是缺點:沒有特別專精的一個領域)

另外,我也花了不少心力在隱藏自己的缺點 XDD:

  • 大學成績不突出: 與其準備一套說詞解釋為何成績不理想,我覺得多花一點時間找出成績單上哪裡值得寫進履歷更值得做,例如說我修了十幾門碩士班的課、哪個領域的平均 GPA 特別高等等。
  • 無面試經驗: 在安排面試時間時,我故意把心儀的公司往後期排,讓我在去面試這些公司之前能有更多準備時間和練習用的面試。另外,我限制一天只能有一次面試,除為了讓自己保持清醒,也不會有為了趕場而要面試官加快的問題(不夠禮貌)或趕不上第二場。