等等,會看重 AI 工具的使用經驗
2. Coding + Basic knowledge (1hr)
- Coding Interview (40min): LRU cache,可以使用任何語言,遇到基本的問題可以用 AI 幫忙解決
- Knowledge: 電商平台的 SQL Table Design
- 時間不夠沒有考到的題目:印象中有如何處理 Double Booking,等等後端實務上會遇到的簡單問答
3. Onsite Interview (Behavioral + System Design)
- Behavioral: 與 Hiring Manager 面試,也是標準的 Behavioral Question
- System Design: 考 API usage Analytics,有準備相對詳細的 Requirement,面試中如果卡住也會有適當的引導,但盡量靠自己主導可能出問題的地方
面試問答
AI tool experience
沒有太多經驗
LRU cache
Reference Leetcode
System Design - API usage Analytics
我做得不好的地方
- 雖然需求很清楚,但可以在一開始先大概知道這個系統的具體數字,包含 (1) How many API calls per second, (2) How long is acceptable to be inconsistent(from “writing usage to database” to “reflect on Analytics range query”)
- SQL database 沒有區分 OLTA 以及 OLAP,這個問題因為需要 Aggregate 多個 row 的資料,OLAP 比較合適
- Identify bottleneck: 沒有主動告知系統的 bottleneck 在哪,實際上這是一個 Write Heavy 的情境,也因為需要 Read Multiple rows to aggregate,需要針對這兩個需求去考慮資料的儲存與處理
- Batch processing vs. Stream processing: 一種是使用 Cronjob Batch processing 一個時間區間的 API usage count,一種是 stream processing 即時的更新 window。我並沒有說清楚 Tradeoff 是什麼
- How to monitor this system? 這個系統最注重的 Metrics 是 API usage 花了多久才 Reflect 到 Analaytics platform 上,因為萬一太久導致某個需要成本的 API call 呼叫超過預算,就不好了。面試官提供的解法是:Smote test and query,因為你知道讀寫的時間,相減就可以知道 inconsistency time
面試建議
針對問題的建議大概都在上面。不過可以感受到這間公司非常看重 AI 工具的使用,也願意去嘗試使用 AI 到日常工作上提升 productivity。建議可以多了解 AI 工具,以及具體的嘗試經驗。雖然不會拒絕不熟悉 AI 的工程師,但感覺會是很加分的項目