背景
先說一下背景。我是 113 工工+資管所,不是什麼在脆上很紅的人,只是之前找實習跟找工作時,在科技業版真的從前輩們的分享獲得很多資訊,所以也想回饋給大家。
LeetCode 累積 500 多題,週賽 rating 大約 1700~1800,穩定解三題但需要時間,第四題看 topic,通常解不掉
兩份實習,一份網通廠、一份 IC 廠,都跟 RAG Agent 相關
競賽部分有參加台積主辦的工作坊並得獎
修課以 AI 為主,另外有修台積開的雲原生
這次總共面了兩個部門,TSID 跟 AAID。
時程
D00 收到 TSID 面邀
D07 上午面試 TSID
D07 下午收到 AAID 面邀
D14 TSID 感謝信
D20 面試 AAID
D29 HR 確認意願與報到時程
D30 收到 e-offer
TSID
面邀是在 IC 廠實習時中午接到的,當下其實有點錯愕,因為那時候都在實習,沒有特別想找工作。只好利用下班時間把 IC 廠正在做的東西做成投影片,加進原本的面試簡報。
我的簡報主要分三塊:
1. 實習專案
2. 雲原生課程的專案。放這個純粹是想讓 IT 相關的主管知道我用過他們的技術,像 k8s、JMeter,對做系統有基本概念。想去 GGIT 的人蠻建議修一下,不難,但至少會知道這些工具大概在幹嘛
3. 競賽經驗,主要講自己負責哪一塊、對團隊的貢獻
不過這次時程太趕,我把競賽那段拿掉了,也沒有特別複習後端跟資料庫。
面試當天是一位資管所的學姊,沒有考技術,主要問專案,像前端架構、後端架構這類的。但我有說自己主要做後端跟 k8s,前端沒什麼碰。可能他們想找的是全端,後來就收到感謝信了。
AAID
兩位主管一起面,全程大約一個半小時。開場先跟我說明流程:簡單自我介紹+講專案,然後會有白板題。
我一開始專案講太細,花太多時間,中途被主管提醒要加速,自介加專案大概講了 30 分鐘。後面一個小時都圍繞在專案跟白板題。
我主要講 RAG 跟雲原生兩個專案,結果被問最多的是雲原生專案,白板題也是從這裡延伸出去的,這邊記錄一下我記得的題目給大家參考被問了很多不只這些,只是後來去日本玩之後才開始回想都忘了不好意思。
Q1:實習專案你的 retrieval 主要是怎麼做的?為什麼不是做embeddings的RAG?
我回答在實習的專案裡我們沒有做傳統的 embeddings,因為我的retrieval對象很多是 MATLAB 的描述,長得非常像,可能只差某個點的數值,直接算相似度很容易誤判。我的做法是對專案建 index,剩下的交給 LLM 推理,雖然 token 消耗比較多,但搜索品質比較能保證。
面試官表示理解。
Q2:雲原生系統的瓶頸在哪?資料庫那邊是不是可以優化?
我提到當初在做最大負載測試時,有幾支 API 是關鍵,主管就問我知不知道瓶頸出在哪裡。
我回答瓶頸主要在資料庫跟後端對接的地方,因為後來確實是在那邊加上 cache 就解決了。
另外也補充說,除了加快取應該還有其他做法,例如 CDN,或是把資料庫拆成讀寫分離。
Q3:有測出 HPA 的最大負荷嗎?理論上 HPA 可以負擔剛剛提到的流量問題
我的回答是,我後來認為這邊的 k8s 其實很難真的起到流量分配的作用,因為我們並不是部署在叢集式的環境裡面。
主管一開始沒聽懂,我就接著說明:我們是架在單一主機上,理論上 HPA 要能發揮作用,應該是會去多拉其他主機的資源,不然單一主機其實跟直接 run docker 沒什麼差別。後來由另一位主管補充說明。
Q4:白板題(系統設計)
開場我先問說很久沒寫資料庫了,可不可以寫成 OOP 的形式哈哈,有獲得主管同意。
設計 table:延續剛剛的系統開始 design 資料庫,看要有哪些 table。我表示主要就是顧客、購物車、商品三個。接著是比較 detail 的部分,講顧客的 column 有什麼、primary key 那些,然後購物車只靠 primary key 跟顧客相依,比較符合正規化原則。
主管問怎麼完成購物車結帳:我表示這要做成一個 transaction。先簡單介紹 ACID,說 A 是指一整個 transaction 需要被完整做完,流程是 select 顧客 → 購物車 → update,然後確定商品 table 的庫存。
主管接著問如果今天有兩個人同時遞交怎麼辦:我在記事本裡把 transaction 假定成一個 variable,裡面有一系列動作,然後說可以透過 queue 來處理,一個 transaction 被確定要跑的瞬間就丟進 queue,每次 pop 出最前面的來處理。
這題主要是在探討 ACID 裡面的 isolation,我覺得ACID觀念挺重要可以多複習。
後半段
後面就是問一些 behavior 題,就大家平常準備的那幾題。一樣照 STAR 原則結合自己的經歷準備就可以了。
推薦資源
分享一下自己面試前讀的東西。
後端
非常建議要面後端的人參考這份做複習:
k8s
k8s 我認為台積蠻在乎的,有好幾題問得很細,我其實答不出來。但我覺得至少觀念要有,能回答「可能可以從 service 或 ingress 那邊調整」之類的,讓面試官知道你是有概念的,而不是完全沒碰過。
刷題
我主要是刷靈神的題單。不過就白板題的難度來說,我覺得準備 1400 左右的題目就夠了。
Agent
之前實習面試有準備這塊,放給之後要面 AI/Agent 相關職缺的人參考。
最後也非常感謝科技版各位學長姐的照顧,我真的從版上收穫良多,謝謝大家。也希望這篇能幫到之後要面的人。



