參與創世:AILabs.tw 實習紀錄
一直以來都很想記錄一下在AILabs.tw(台灣人工智慧實驗室)實習的日子,不過實習期間都沒有時間停下來好好做一些紀錄,於是趁最近前陣子日本實習之餘慢慢地寫了一些心得與分享的草稿。
在這篇,我會再不提及公司營業秘密的前提下,專注於分享這幾個部分:
(1)面試流程、(2)主觀公司文化、(3)我的工作、(4)整體工作心得。
在開始前,概括一下在這邊的感受:
極富工作熱忱、廣泛領域、高度知識交流、敏捷開發。
加入AILabs.tw
投遞履歷
我從2017年底準備開始找實習,那時候其實沒有限定要找在AI領域的公司,不過剛好在LinkedIn上看到這個職缺(Intern)後,將個人的resume(1頁英式standard resume+2頁supplementary information)寄到AILabs.tw的招募信箱,信中也用中文稍微自我介紹自己。我在一個禮拜內就收到了面試邀約信,信中提醒了一些面試注意事項,還有可能會問的問題範圍以及很多的參考資料,整體上很貼心,讓人準備起來比較有方向。不過最後敲定面試日期是一周內,而且是跨年隔天,我也就幾乎沒有準備地上場裸考了。
面試
第一關面試是網路上的一位名人,我大學時線性代數沒好好學,後來很多時候不懂的都是在他的網站上找到解答。這關面試感覺比較high level,沒有被問到什麼白板題,主要是針對我的履歷表上的資料提出細節詢問,再從我的對答中觀察我,不過也是有一些以閒聊方式包裝的問題,記得有兩題是跟模型訓練的情境相關。整體上我覺得比較偏向人格特質跟思考邏輯,對談中可以得到很多不錯的啟發。
第二關是一個感覺比較技術的工程師,一進來就直接丟了一題演算法的白板題給我,我算蠻快(應該)地推導出一個遞迴的解法。但後來被要求要把遞迴拿掉時,由於腦袋已經卡在遞迴裡了,最後還是沒有成功把遞迴拿掉。接下來又被問了兩三題跟影像處理和機器學習有關的觀念後,面試官把我寫在白板上的答案拍下來後結束第二關。整體上面試感受蠻好的,面試官會跟你一起討論他提出的問題,也很願意給一些跟解答無直接關聯的意見,有種一起解題的感覺。
面試前有爬了一下網路上的心得文,原本預期會有第三關,但第二關的面試官離開後不久,就回來跟我說實習生不用再面了。當時我以為八成是GG了,但後來隔一兩天還是有收到錄取通知。我自己覺得面試的時候有被公司強者雲集的氣場震懾到,難得地有緊張的感覺,表現也因此比較保守一些,不過幸好最後結果是好的。
在AILabs.tw的日子
我在2018/1/5簽約加入AILabs.tw,從1/15開始上班,到6/25交接離職,前後總共待了大概六個月。不過由於學期間是Part-time,實際總共上班約五百多個小時,若以一周40個小時來換算,大約算是全職三個月左右。
把大家拉在一起的Scrum
AILabs.tw的開發流程偏向敏捷式開發。每天早上都會有一個固定的Scrum,團隊的每個人會用一分鐘左右的時間,快速的解釋三件事:昨天做了什麼、今天要做什麼、遇到什麼困難。我個人蠻喜歡這個過程,除了可以藉由每天的報告清楚地規劃自己的進度外,也可以了解其他夥伴正在做什麼事情,並可以從中得到一些靈感或避免走相似的冤枉路。
除了每天的Scrum外,每個月會有一次的Sprint Review。團隊的每個人會準備投影片,用約十分鐘的時間,向大家介紹這個月自己開發了什麼。這個報告目前沒有什麼明顯的規範,所以每個人的報告模式都各有特色。有些人可能覺得是公司會議,會偏向報告的感覺;有些人則會因為有時有外賓,所以會偏向Showcase的感覺。
另外、關於敏捷式(Agile)開發這個名詞,雖然我也沒有待過其他敏捷式開發公司,不過我感覺公司是符合這個名詞的描述的,我也就姑且在這邊使用這個名詞。如果對敏捷式開發有興趣的可以參考這篇文章。
沒有多而冗的開會
由於每天有Scrum、每個月有Sprint Review,所以公司沒有什麼多餘的例行開會,工程師也因此獲得了更多的開發時間。有趣的是,雖然沒有固定的會議、討論,但是這也不會造成大家各做各的事情。基本上大家都是有問題、有事情需要討論就約到牆邊白板或是會議室討論。由於彼此都蠻清楚對方的開發內容,所以也不太需要做什麼介紹,可以直接單刀直入地討論議題。也因為如此,常常做不同事情的人也會互相加入討論,提供不同的觀點或是解決方法。
自由的低度管理
基本上在AILabs.tw除非有一些很明顯的Deadline(跟外部有關的會議、Showcase或是Demo),只要你的開發內容與進度是合理的,每位工程師都可以自己安排開發進度。我想這很大一部分應該是因為在這裡的每個人都對自己做的東西或是整個團隊的方向有很高的熱忱,所以就算沒有人管理,也不會有人想要偷懶。我自己在公司是感受到很自由,沒有一種自己的工作是被管理的感覺。
超越零食櫃的福利
在今日,零食櫃好像是新創的軟體公司必備的一項技能。但我覺得其實有沒有零食櫃是一檔事,真正重要的是工作環境的氣氛,大家能不能自在地晃過去吃才是真的。AILabs.tw的有一區不大但精緻的零食區,在零食、飲料之外,現切的水果是三不五時都可以刷的,對於自己住外面的人真的可以省下很多買水果的錢與麻煩。咖啡機方面,有雙鍋爐的半自動義式咖啡機搭配楊家900N磨豆機,手沖部分也有準備對應的單品豆與動物系列磨豆機。對我這個喝咖啡挺挑的人,大概是一個無法取代的福利。
工作環境氣氛好,零食櫃才是真的零食櫃。
我的工作
我在這邊的第一份工作是負責車流輛估測系統的建立,一開始從標註工具與快速標註方法的建立開始,到後續的模型的調教與分析。第二份工作是無人機系統的開發,這部份很幸運地從問題的發想到開發都有參與到,工程方面我當時負責無人機GPS-free定位系統的Visual-SLAM跟嵌入式系統開發(Nvidia Jetson)。這兩個議題都是我個人非常喜歡的,預計之後會再寫文章介紹這兩個議題。
整體上這邊的實習生跟一般大公司的實習生蠻不一樣的,通常到大公司實習都會被給一些比較獨立的開發或研究工作,實習生的進度不太會影響到公司的營運。但在AILabs.tw這邊的實習生大部分都會被帶入Pipeline之中,可以真心地感受到自己與公司的方向緊密結合,也會推動自己走得快一些。當然隨之而來的就是要對自己的工作負責任,兩者之間孰優孰劣就端看個人喜好了。
另外,公司常常會有新聞記者來採訪,所以其實只要有做出一些成果,很容易就會看到新聞稿,某種程度會帶來一定的成就感。我也在這邊附上一些跟我有相關的報導。不過新聞嘛~摁~
AILabs.tw官方部落格、Nvidia官方部落格、硬塞Insider。
簡單做個小結
總地來說,雖然自己的工作也並非都是完美的達成,但在AILabs.tw的這六個月帶給了我許多珍貴的事情。在AILabs.tw的每個員工都在自己的領域有蠻深的熱情與鑽研,如果保持積極,在公司上班的時間可以耳濡目染地學到很多額外的東西。除了認識了很多多元且厲害的人之外,我也在這邊補足了很多知識與技術,包含一些非本科系比較少碰到的東西(像是Docker、UI Mock-up、資料庫等等),以及一些機器學習的重要觀點。
有一群對知識充滿熱情的同事,是工作最幸福的事。
隨著AILabs.tw實習的結束,我也從臺大畢業了。現在回頭一看,在求學的最後在這邊實習,把學校學到的知識更加地與實務、工程細節結合,對我來說才真真正正完整了這個學位。
本來只是想寫個簡單記錄一下,不過可能下筆後感觸良多,不知不覺就寫了很多。但還是要強調一下,以上言論、心得均無法代表AILabs.tw的立場與實際情況,畢竟每個人的感受都不同,我也只是一個短期的實習生,所以請不要依照這篇的描述去完全定義AILabs.tw。我的文字沒有這種能力與權力,但我能做的就是以我的觀點提供一些分享。我也盡量在文章中不提及一些公司未公開的內容(照片也盡量挑網路上已公開的),不過其實我們公司真的很符合開源精神啦,大部分的事情應該都可以從各大新聞媒體得知一二。
不免俗套地,必須感謝
在這邊想特別感謝Ethan,對於我未來規劃上給了諸多建議、關心與選項;感謝周老師在做事方法的啟發;感謝Hao Kai在研究與開發上的帶領以及職場上的分享;感謝Bruce各種全能解Bug還有職涯上的建議;感謝子軒跟孝軒,一起開拓了無人機戰隊的方向。感謝其他夥伴們每天的各種交流,讓我學到很多來自不同地方的經驗。
謝謝你們!