申請職缺
R0006775:【新鮮人募集!】 Software Engineer
Codility
最早是透過 104 投履歷,印象中隔一週後收到回覆,並提供 Codility 的測試連結。
因為之前沒有用過 Codility, 所以先到平台上寫測試題。印象中比較特別的是,可以寫自己的測資,也支援一些常用的文字編輯器功能(像是 Find/Replace)。
實際考題有三題,共2小時。我選用的測試語言是 Python, 題目大致如下
- 針對既有的程式碼除錯,改成符合描述的功能。
- 忘記了 😭 不過印象中不難,比第三題還簡單。
- 二維地圖的問題,基本上就是用 DFS 掃過一遍,根據要求更改提供的 Array.
面試流程
- 預定面試時間:1.5小時
- 流程:
- 自我介紹:5 min
- 專案經驗提問:40min
- 白板題:30min
- 職缺說明 + QA: 20 分鐘
- 人資說明後續流程
- 備註:有提早約10分鐘抵達,先在櫃檯旁的座位區休息。到面試前10分鐘時,被請到會議室。
專案經驗提問
面試官有兩位,一位經理、一位 Senior。專案經驗提問前,有先給自我介紹。因為先前有說明可以 demo,所以就有做投影片自我介紹。不過我去到的會議室沒有網路,要自己開熱點。直接打開筆電裡的簡報分享。
詢問面試官要中文還是英文,面試官說還是中文好了。
(以下問題盡可能按照主題分類,但沒有依據問題順序)
API
- 請解釋什麼是 RESTful
- 請挑選一個你自己的 Backend Project 中,有用到 RESTful API 的專案,說明怎麼切你的 endpoints
- 你有提到會有 token, 請問你的 token 是用 JWT 嗎?請解釋 JWT
- JWT 有分成三個部分,可以分別解是一下嗎?以及如何拿到你的資料?
Database
- 請選一個專案,說明一下你的 Database Schema 設計
- 說明 Primary Key 的選擇,以及如何使用 Index
Architecture
- 請選一個比較複雜的 Backend Architecture, 並說明
- 整個 Backend 都是單體?還是有一些 Services?
- 有用 multi-threads 嗎?
- 有學過物件導向嗎?
Cloud & DevOps
- 我看你有用過 AWS, 用過什麼,以及為什麼用?
- 我看你有用過 terraform, 可以跟我說 terraform plan 和 terraform apply 的差別嗎?
- terraform 的 state file 主要是做什麼?
- terraform state file 你存地端還是放雲端?
- 我看你有用過 Docker, container, 有用過 k8s 嗎?
- 你用 Ansible 做什麼?幫助了你什麼?
- 你架自己的 Homelab, 花了一個月嗎?
- 測試的部分,我看你用 pytest. 是用 Unittest 嗎?還是有用其他 features?
Collaboration
- 有跟其他人合作專案的經驗嗎?
- 合作專案經驗過程中,主要遇到什麼挑戰?不一定要是軟體專案。
- 剛剛提到有遇到壓死線問題,請問為何會卡在 demo 前才在趕呢?
Others
- 碩論做什麼?
- 剛剛所說的 Techstack, 若你是非本科,且碩論非相關,則哪些是課堂所學,哪些為自學?
- 如何自學?
- 為何去印度交換?
- 剛剛在印度做課堂作業,會遇到文化差異的適應挑戰,請展開說明。
- 除了前述挑戰,還有遇到哪些挑戰嗎?
- 為何從化工轉來做軟體?
白板題
Q1: Python Function
- 題目描述:給一個 Python function, 問可能出現問題為何?
- 該 function 是透過給一個 list, 以及一個 index_list, 並將所有有出現在 index_list 裡頭的 index 指向的元素,都從 list 移除
- 指出問題後,詢問如何修改?
- 因為第一次沒有答出來,所以後續又多說明一些內容(ex. 若保證 index_list 裡的 index 不重複且從大到小排列,會如何),來得出期待的答案
Q2: OOP 系統設計
對方先詢問我要我用物件導向設計架構,畫在白板上,行嗎?我回應物件導向的圖我都沒記熟,不過可以試著畫畫看,所以對方就提問了。
- 題目描述:設計一個停車場繳費系統
- 後續提問補充:
- 類別分兩種:汽車、機車
- 繳費方式一種:現金
- 目前只管理一個停車場
職缺說明 + QA
職缺說明
- 公司正在開發 Trend Vision One 資安平台,主要與職缺相關的有
- 透過 Python, Go 等語言撰寫微服務
- 透過 Terraform, kubernetes 等工具部署 container 到 AWS, Azure, GCP 等雲端
- 團隊裡通常會有:QA, OPS, Backend, Frontend
- Cloud Engineer 主要想找
- 有 Python, Go 等相關經驗
- 有 Terraform, kubernetes, AWS, Azure 等相關經驗者
QA
Q1: 請說明公司團隊協作方式,是以部門 or 專案團隊為主
要看各專案不同,通常是 PM 開需求,由各單位評估分派工作出人後,再一起完成。不過 OPS 通常不會參與到團隊內。
Q2: 請說明對新人工程師期待
- 剛開始會先磨合,看能力到哪。
- 主要會希望和 Mentor 有良好合作溝通,以及能和同事間合作順暢。有問題可以丟出來討論。
- 職能比較廣,後續不一定只碰 Backend, 前端等等也可能會碰到。
Q3: 根據我剛剛的回答,提供建議
Senior:
- 會建議自己用過的 stack 可以多熟悉。有一半的面試者,自己列的東西,自己也答不太出來。
- 另外,基本功要扎穩,Python 的白板題基礎,以及物件導向設計,這應該類似職缺其他公司也會問,建議多掌握。
Manager: 會建議可以多看 Terraform 啦!
Q4: 想問 Terraform, Cloudformation, 或是其他 IaC tools, 主要公司用哪些比較多?
主要是 Terraform, 很少 Cloudformation(只限定 AWS 用,比較不適合;用過的同事覺得寫起來麻煩)
如果是擔心 license 的問題,公司法務會處理。由公司法務評估是否要繼續使用 terraform (以及支付可能的衍生授權費用),或是切換到其他的 IaC
Q5: 想問在寫微服務部分,各語言分配比多少?
主要是 Python 和 Go, Node.js 也有,但比較少。
Q6: 為何會開「新鮮人限定」的職缺
其實就看成 junior 吧。也有工作經驗 1 - 3 年的來投,也有在學就來投。
遇到好人才,就會想趕快把對方留下來。
整體觀察
- 面試安排蠻嚴謹的,許多說明也都是使用英文。當天進入公司大樓,發現幾乎整棟都是趨勢的辦公室,也需要換證才能進去,算是把關比較嚴謹的公司。
- 人資和兩位面試官都算蠻親切的,回答問題感覺也都很實在,問什麼答什麼,給人誠懇的感覺。
面試結果
進到下一關