首次面試有以下幾個關卡:
1. HR
自我介紹, HR 詢問為什麼離職和對產品的理解, 了解工作期待.
2. Team leader & CTO
自我介紹, 中間會穿插詢問, 詢問方向以高負載系統, 團隊管理以及系統資源競爭之處理為主, 並會詢問你對前端架構的技術選型, git flow 的熟悉度, 以及對雲端服務的熟悉程度和應用能力, 尤其是資料庫系統的使用, 會很注重你對資料庫使用上的經驗和深度, 這邊問得還蠻細蠻專業的, 整個團隊真不愧是由菁英組成的.
3. CEO(要過關才會到這關)
等待中, 以當天面試情況估計應該是沒什麼機會 XD
面試問答
這邊處理 race condition 是用 transaction 的方式嗎?
是的.
請問 SQL atomic 實際上在多個 connection request 進來時是怎麼去確保先後順序?
這邊回答得不太好 (應該要回答 table 鎖住和解鎖之類的).
請問在多個請求要存取服務器, 要怎麼處理高併發?
Gunicorn, gevent, 面試官問有沒有更簡單的方式, 我回答讓這些請求做 scheduling. 面試官感覺回答不是很滿意. (後來想想其實他可能只是要問 multi-threading 或 k8s 的 replicaset 彈性擴展之類的...)
為什麼 A 產品你們選用 Angular, B 產品你們選用 Vue?
A 產品開發時人力匱乏想直接使用比較完整的框架來開發, 並且頁面渲染不是那麼頻繁, 所以選用 Angular; B 產品選用 Vue 是因為原本的框架要重構不容易, 用 Vue 可以漸進式導入.
要怎麼使用你熟悉的 AWS 服務去處理 race condition 問題?
這邊回答得不好, 其實是要用 RDB 服務去做, 但事實上我們的框架使用 RDB 會增加額外的成本.
面試建議
準備上必須著重在怎麼開發維護一個大型的系統,
這邊考驗的是過去開發和維護大型系統的經驗和能力,
面試官技術能力很強,
就算被他們電爆了心裡也很踏實.