如何找到可靠的軟體工程師?三個標準篩選出蘋果、Google 等級的優秀 coder

原文: I don’t care what tools a developer uses. I hire based on fundamentals.

人們常說香港是一片科技荒漠。 頂尖的開發工程師都外流至矽谷,而香港則受困於人才流失。事實真是如此嗎?

我們團隊曾開發過榮登App Sore內過百萬下載次數的精選項目,我們在努力研發我們的開源產品Skygear,開發地正是這片「荒漠」。

比起薪水、像Googleplex那樣華麗的工作環境或灣區技客的夢幻生活,有沒有機會讓工程師發揮所長才是吸引人才的重點。

當然,我們也為一些後來轉戰到蘋果或谷歌的同事感到驕傲。但回歸到問題的根本,我們最初是怎樣發掘出這些人才的呢?

這篇文章裡,我會以我的公司為例(三位共同創辦人均為技術背景出身),分享我們如何進行招聘並在九年間發展出駐點在香港及台北超過50人的開發團隊。

在一個軟體工程師身上首要發掘的特質

要招募一個優秀的軟體工程師意味著你先要清楚你正在找尋什麼。你想找一個全端開發者? 還是一個前台 / 後台工程師?你是否需要一些特殊技能,比如要求他擁有AI、blockchain或big data相關知識?

請不要以專門技術來作為招聘的準則(除非你有特殊原因)。相反,請以基礎知識作為評定的標準。

Photo by Faustin Tuyambaze on Unsplash

每年面試五百多位應徵者的累積經驗中,我的心得是:不要對人有任何的假設。我曾經面試過一位計算機科學碩士,他卻無法編寫一個簡單的迴圈(for-loop);或是小有名氣的軟體開發講者,卻無法解決實際應用上的問題。

所以招聘的第一誡是:(寧可)聘請具有基礎知識、富編程經驗、並願意恆常學習新程式語言與科技的人。

我們的招聘過程

科技日新月,我們的招聘過程只重點測試三件事情:

  • 他能寫出簡潔的編碼嗎?
  • 他對技術層面有穩固的基礎認識嗎?
  • 他能配合團隊開發、並運用解決問題的能力在iOS、Android、網頁或任何指定平台之上嗎?

簡單初試

為了減省面試的工作量,我們先要確定應徵者具有基本編寫程式能力。我們也不希望因為冗長的招聘過程而與優秀工程師擦身而過,所以我們首先會進行快速的簡單初試。

技術問題

我們將技術問題分為四部份:

  • 演算法(Algorithm)及數據結構 (data structures)
  • 網絡及網頁(Network and web)
  • 伺服器層面知識(Server side knowledge)
  • 應徵者背景相關的專長

我們主力開發的是手機及網頁應用程式,所以在演算法與數據結構方面,我們其實不在意應徵者是否能做出最優化的演算。我們強調的是對常見數據結構背後概念的認識。

我們避免發問教科書中的題目。我們期待的是應徵者對複雜性(complexity)有正確的理解。

有關網絡和網頁,我們會發問一些常見於Frameworks 已經解決好的問題,這樣我們才能確定應徵者有正確理解HTTP Protocol和DOM結構工作這類東西。

至於伺服器層面我們會提問架構性有關架構或設計的問題來了解他富有多少經驗、是否能有效溝通技術性的設計。

最後,我們會根據應徵者的背景提問一至兩個專門語言或平台相關的問題。資歷相對較淺的應徵者如果表現出對應用科技(application technologies)略有不足也是可以接受的,但這些問題應足以反映他們上一份工作裡是否認真對待自己應用的技術,譬如我們期望一位具有三年經驗的Javascript開發工程師能在處理常見的連結問題(the binding problem)時游刃有餘。

如果應徵者在首三個範疇都有經驗,那他們應在第四個範疇裡展現出相關能力。即使某些範疇可能並非他們的專長,我們仍然希望他能表達其他優化應用的見解。例如,我們樂見一位後台工程師能展示一些前台知識,因為這些知識將有助他往後優化API。

結對編程(Pair-programming)與作業(Take-home exercises)

我想這是產業滿常見的標準流程。在應徵者通過所有技術測驗的前提下,我們會觀察這位工程師如何實際跟一個團隊合作。他能跟其他隊員溝通良好、合作愉快嗎?他有優秀的解決問題能力嗎?

如果在辦公室安排結對編程有資源上的壓力,你可以提供一份作業給應徵者。嘗試制訂盡可能仔細的題目,並解釋你將如何評估這份作業。

以下是我們一般檢視作業時使用的標準:

  • UI的準確度,尤其針對設計細節(適用於前端工程師)
  • 方便使用的互動元件的可能性(適用於前端工程師)
  • 易讀的編碼
  • 合邏輯和容易理解的Git commit messages

為何能力出眾的開發工程師會捨棄蘋果或谷歌而選擇來跟我們共事?

實際上,最主要的原因是我們總部在香港和台灣,而很多來Oursky面試的工程師都希望留在家鄉;也有很多工程師更傾向於在小巧精緻的機構裡工作,建立具特色的產品。

當然,無可避免也會有些人決定尋找更大的舞台,我們同樣支持他們的選擇。Oursky跟其他團隊成員一樣,一直希望對開源項目能作出更多貢獻。

透過強調綜合能力多於專門技術知識的招聘過程,我們發掘到很多具天賦的人才,這一切都歸功於面試時發問正確的問題。

我們從招聘中反覆試驗和練習,創造出鮮明的公司文化,得以留住很多本來可能出國發展、最後卻選擇留在香港或台灣的優秀工程師。

Building an app? Our free developer tools and open source backend will make your job easier.

Leave a Reply