fbpx

如何在面試中找到對的資料工程師:從技術到軟技能的評估

先找對人,再決定要做什麼

在企業管理中,找對人是最重要的事情,正如《 A 到 A+ 》一開始就開宗明義地說:

先找對人,再決定要做什麼 — Good to Great

然而,要如何找到對的人,我想是每個企業和主管都在思考的問題。

如何在面試中找到對的資料工程師

在 PTT 軟體板裡面有個討論串:
https://www.ptt.cc/bbs/Soft_Job/M.1529841865.A.A5C.html

討論如何在面試中認出優質的工程師?這引發了我對於這個議題的思考。如果把工程師換成 Data Engineer 會怎麼判斷呢?就我而言,可以歸納為兩個點:

  1. 這個人能不能放心交辦工作
  2. 會不會想跟這個人一起工作

Data Engineer 硬技能方面

  • 會不會用 version control 工具
    對於資深的軟體工程師可能是個基本題,但是對於從其他行業轉過來、剛畢業的學生來說,就不見得那麼容易。會問這題原因有幾個:
    1. 有沒有版本控管的習慣
    2. 有沒有和其他人一起工作的習慣
    3. commit 訊息寫得如何等等

  • SQL 能力(有個簡單的表格,如何組出想要看的 feature):
    SQL 算是資料工程師/資料科學家的基本功了。使用簡單的表格,透過對資料的觀察以及 SQL 組成 Feature 是做 Feature Engineering 的基本。進階一點還可以請面試者解釋可以用這樣的資料做什麼樣的圖表或統計觀察。

  • 如何管理 pipeline 或熟悉的 pipeline 工具
    以 Batch Job 來說,有好的排程工具是必要的,不管商業軟體還是 Open Source 都有很多選擇。進階一點可以問,如何管理互相 Dependency 的 Job ,怎麼判斷一個 job 的成功來進入下一個 Job。

  • 如何 monitor pipeline 狀態,怎樣判斷當日 ETL 成功與否
    延續上一題,監控是絕對必要的,而且 ETL 成功不見得是可以 Run 就好。有時候還需要監控結果的值正不正確,有沒有在適當範圍內;是不是資料來源的問題而導致結果錯誤;或出現新的異常值是之前的程式沒有抓出來的等等奇怪的問題。

  • ETL 發生問題時如何 roll back
    結合以上問題,當一天的 batch job 結束,但是在使用資料時發現問題時,是用什麼機制回溯、重新跑 pipeline,主要也是想問問經驗和處理事情的經驗。

Data Engineer 軟技能方面

  • 溝通能力
    之前的職位除了我,整個 Team 都是不是中文語系,每天要跟印度老闆溝通,每週需要與其他美國組員開會,偶爾甚至還需跟俄羅斯的 Team 一起工作,所以溝通能力特別重要,除了語言之外,更重要的是能不能把事情和想法表達清楚

  • 自主工作能力
    主要也是因為該職位需要自主管理、自主地完成大部分工作,所以自己處理問題、找資源的能力滿重要。這個問題蠻難問的,想不到什麼太好的問題 XD

  • 對於技術的熱情
    在抓交替的情況下,老實說熱情不會是最重要的考量點 XD,但如果平常就有經營社群媒體,或是參與 Open Source 專案等工作外的活動,還是滿吸睛的。

以上是我根據個人經驗歸納出來的面試評估方式,當然實際上還需要依照產業、需求以及公司文化來做出適當的調整。有興趣討論或分享經驗的歡迎留言 🙂

最新活動

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

內容索引