2026年3月13日 星期五

【Agoda職缺】 Agoda Backend 後端工程師 面試經驗 Surasak


首先要說的是,你接下來要閱讀的內容是我個人的親身經歷。為了保持客觀,且不過度洩漏內部機密,請容許我不深入探討具體的考題細節(例如:題目要求做什麼、答案是什麼),我不會講述這些細節,而是以整體概況來分享。

我嘗試直接透過 Agoda 的官方網站,申請了 Back End Team — Engineer (後端工程師) 的職位。

送出申請大約一週後,我收到了面試邀請的電子郵件。

我的面試是一次性的面對面 (face-to-face) 面試,三天內就知道結果了,總面試時間為 3 小時。

  • 第一輪 (1 小時):與 Full Stack Senior Software Engineer (全端資深軟體工程師)

  • 第二輪 (1 小時):與 Lead Software Engineer (首席軟體工程師)

  • 最終輪 (1 小時):與 Development Manager (開發經理)

前 2 個小時都是由外籍面試官以全英文進行面試。

第一輪 與 Full Stack Senior Software Engineer 面試

  • 自我介紹,目前從事什麼工作、職位是什麼。

  • 介紹目前任職的公司,公司主要業務是什麼。

  • 解釋我們在公司裡的職責和角色,並分享一些讓我們感到自豪的專案成果。

  • 技術 (Technical) 和基礎架構 (Infrastructure) 相關的問答。

  • 根據他給的 3 道題目,在白板上現場寫程式碼 (演算法測試)。

  • 第一輪的 Q & A。

第二輪 與 Lead Software Engineer 面試

  • 自我介紹。

  • 針對履歷上寫的內容進行問答。也就是說,履歷上寫了「會什麼」,他就會每一項都問。必須解釋那是什麼、如何運作,以及在我們的工作中是如何應用的。如果解釋後他還是不清楚,我們就必須在白板上畫圖並解釋給他聽。

  • 他會挑選 Agoda 使用的工具 (Tools),與我們曾經用過的工具進行比較,並詢問我們是否認識這個工具。如果回答認識,我們必須能說出它與我們用過的工具有何異同,以及為什麼我們選擇使用它。

  • 他會給一道大型的情境題,讓我們進行系統設計 (System Design)。必須從與使用者互動的 Layer 一路設計到 Database Layer。這題必須在白板上畫出基礎架構 (Infrastructure)、指定合適的 Endpoint URL、設計商業邏輯 (Business Logic),並設計出初步的 Database Schema。此外,還必須根據他給的題目選擇合適的資料庫 (Database)。他會問選擇的理由,為什麼選這個種類的資料庫?我們必須能夠反駁他,因為他會不斷嘗試提出其他替代方案。

  • 對剛才設計的系統的理解程度。他會非常看重高可用性 (High Availability)、擴展性 (Scalability) 和安全性 (Security)。他會針對基礎架構的每一個點提問:這裡我們如何應對龐大的流量 (Traffic)?有哪些我們該重視的安全問題?

  • 設計模式 (Design Pattern):我們認識哪些概念?曾經將哪些概念實際應用在工作中?解釋給他聽。

  • SOLID 原則 (SOLID Principles):我們必須對這些原則有一定程度的基礎了解,因為他問得非常細。

  • 深入的技術問答,著重於資料結構 (Data Structure) 的根本 (如 Stack, Queue, List, ArrayList 等)、OOP 概念、IOC Container、依賴注入 (Dependency Injection)、Stateless vs Stateful Session。

  • 深入探討 Elasticsearch(針對我個人)。他會要求解釋 Elasticsearch 的運作流程、比較 Linear Search vs Binary Search vs Index / Hashing 的優缺點,並詢問 Elasticsearch 內部的演算法:為什麼搜尋需要計分 (Score)?有哪些情況是不會把 Score 算進去的?

  • 根據他給的 1 道題目,在白板上現場寫程式碼 (演算法測試)。

  • 第二輪的 Q & A。

熬過這兩個小時,我只能說「腦漿都快流出來了」。由於我的英文並不是頂尖好,加上緊張,讓我深刻覺得這裡的面試實在太殘酷了(這是熬過頭兩個小時後的想法)。

最終輪 與 Development Manager 面試

這一輪就比較輕鬆了。是跟泰國面試官面試,氣氛很放鬆,完全不需要擔心溝通問題。

  • 簡單分享個人經歷。

  • 白板題,共 3 題。這 3 題是互相關聯的,我們使用的每一個演算法,他都會找出漏洞,然後改變題目條件製造新問題,導致我們原本寫的演算法無法使用。我們必須修改原本寫好的程式碼,並告訴他需要改哪裡才能讓程式運作,並得出他想要的結果。

  • 關於我們用過的技術的一般性技術問答,例如:.NET Framework vs .NET Core,解釋兩者的差異和優缺點等。

  • 結尾的 Q & A。


綜上所述,我堅信「事前準備」非常重要。因為工作能力強、每天都在接觸這些技術,並不能保證我們真的理解它的核心本質。因此,千萬別忽略了理論和原則。如果忘記了,請趕快補齊並理解它們。


公司裡還滿多外籍工程師的,也就是說若你不是泰國人但是有工程相關背景

喵南覺得對各位人才來說不會太難~

如果讀者有興趣的話,請準備好你精美的履歷,喵南樂意免費幫忙大家健檢履歷和內推~([email protected])


大家讀到最後,我們下次見啦!

沒有留言:

張貼留言