Software engineer interview experience in 2025.
前言
嗨,大家好,我是Ting,是一名全端工程師。 這篇文是寫給想要轉職工程師的你,希望透過我的經驗分享能對你有幫助。
我原本在智電系統工作,是一個新創能源公司,除了web相關開發以外,我也投入非常多時間在能源相關的業務邏輯研究與開發,但在工作一年半以後,我認為我對能源相關的業務邏輯已經沒有太大的興趣,工作內容也漸漸被甲方的客製化需求給淹沒,所以我決定離職。
做這個決定主要有以下考量
目標
- 更明確的職涯目標
- 更高的薪資成長(或是說更穩定)
- WFH或自由的工作時間
- 未來有規劃國外工作
離職的好處
- 可以挑選公司,讓工作內容更集中在開發
- 學習新技術,使用一樣的時間來學習更多東西
- 作為通往國外工作的敲門磚,必須提升履歷價值,至少到一間有聽過的公司
- 更有機會WFH,自由安排自己的時間,原本需要耗費大量通勤時間
離職的壞處
- 原公司是正在IPO階段,離職後需要放棄RSU,算是一筆不小的機會成本
- 離開舒適圈,其實原本的工作環境除了需要每日通勤以外,工作內容不太會有人管
準備
1. 程人頻道Ted 協助
首先這篇文章必須 S/O 給程人頻道的Ted,可以說這個計劃沒有他的話就不會這麼順利。 原本就有在聽Ted的Podcast,他也一直有在提供想要轉換跑道的工程師協助,剛好在我下定決心要轉職以後, 他上一期的諮詢服務剛結束一陣子,在招下一期的工程師,我把我的履歷與動機整理一下以後提供,就這麼被選上了。
這個計劃主要包含每週一小時的諮詢時間直到轉職成功,內容主要有
- 履歷健檢
- 模擬面試 (BQ / Leetcode / System Design)
- 檢視準備方向是否正確
其實Ted的協助不僅僅是單純轉職而已,我們幾乎花了一樣多的時間在討論與探索“我真正想要的職涯規劃”,透過他的經驗,與整個計劃的進行,我也更聚焦我的職涯目標。
2. 專案實作 - Moniit
延續上一點,除了每週一小時的諮詢以外,程人頻道也一直有在經營社群開發的項目,剛好他們近期規劃的資產管理App - Moniit正在開發早期階段,透過這個機會我也幾乎參與了這個產品從0開始的開發過程,
我主要參與了後端開發,第一次使用FastAPI作為主要框架,且實戰了System Design,如何根據實際狀況來取捨設計,怎麼樣算是好的設計,怎麼樣算是Over Design。
並且這個專案有非常完善的K8s設計,包括但不限於helm, hpa, IaC框架等,這些都是我第一次接觸,透過實戰我對於k8s以及gcp相關雲生態系有更深入的了解。
3. leetcode
我leetcode只寫了166題 (E:72/M:82/H:12),主要參考Blind 75跟Neetcode 150,如果對該演算法不熟,我會先把Hello Algo相關的文章看完,然後練習,最後再找Neetcode的影片來複習以及參考他的解題思路,慢慢把整個解題思維培養起來。
但相較於大部分的工程師,我覺得我在Leetcode的投入相對較少,一部分是因為瞄準公司的是台商居多,而不是Fang等一線外商,另一部分則是我花了更多時間在實際開發專案來獲取實務經驗。
我認為台商的OA的題目好像沒有遇到真的很難的,以及面試過程也很少遇到演算法題目,基本上都是履歷相關的問答,但若是要以更高水準的公司為目標的話,我認爲還需要投入更多的時間與精力。
4. 履歷
可以參考標準的Latex模板,基本上是分成Work Experience、Side Projects、Education、Technical Skills四個部分。
各個部分我認為的重點
- General
- 根據職位寫公版的履歷,再根據投遞目標的JD來微調
- Work Experience
- 強調技術相關的經驗,並且盡量量化指標(ex: rps, qps, 節省多少時間, 節省多少成本等等)
- 若有PM相關經驗,我覺得是個加分
- Education: 簡單即可,基本上只看畢業校系,除非你的專案或論文與JD高度相關,不然我感覺放了只是佔版面而已
- Technical Skills: 盡量跟JD上提到的技術棧相同或高度相關
以現今的web相關工作來看,除了前後端與資料庫技術棧以外,Docker與K8s基本上一定會出現在JD的Preferred Skills中,面試中如果可以帶一下或是有被問到並且回答的不錯是個大加分,所以可以的話一定要補一下相關知識。
面試
1. Cardlytics Full Stack Engineer
時程
- D+0: 投遞履歷
- D+2: Quick chat with Manager
心得
這是我第一個獲得投遞履歷有後續的公司,但這間對我來說實在是越級打怪,需要的職位要求以及語言我都還無法勝任,但也很趕謝Manager還是跟我聊了30分鐘,且知道我的狀況後給了我一些方向與建議,也不吝於分享Cardlytics的產品。
2. 捷思科技 - Full Stack Engineer (偏前端)
時程
- D+0: 投遞履歷
- D+7: 現場上機測驗 + 面試
- D+14: Reject
心得
Pair Programming 題目:
- 寫一個翻牌互動介面 (HTML/CSS hover 翻轉效果)
- 不使用
Promise.all實作一個PromiseAllLikefunction
Behavior Question:
- 目前工作遇過最困難的難題以及如何解決
- 如果接手 co-workers 的程式很糟的話,會怎麼處理
- 若工作上遇到某個流程很冗長很麻煩的話,會怎麼處理
總結: 一間小公司,要找偏前端的,覺得我的技術棧並不符合,算是個面試經驗。
3. Trend Micro
時程
- D+0: 投遞履歷
- D+5: 收到 Online Assignment 邀請
- D+11: 完成 Online Assignment
- D+14: 一面
- D+32: 收到二面邀請
- D+39: 二面
- D+46: 寄信詢問未回,無聲卡
心得
一面內容:
自我介紹:
- 學經歷
- 工作經驗
- Side Project
技術問題:
- RESTful API 用過哪些 Method? (GET, POST, PUT, DELETE)
- 前端或後端有無 test 相關經驗?
- 協作相關經驗
- Skillset 應用經驗
- 開發遇到最大的困難
二面:
- 一樣是根據履歷問答居多,還有畫參與過的專案的架構圖
總結
隔那麼久是因為中間家人生病需要照顧,所以耽誤了一些時間,趨勢那邊也表示體諒,配合我改期。 趨勢應該是我原本目標的其中一間,雖然薪水可能開不高,但是WFH政策以及公司地理位置非常加分。
4. GilaCloud Backend / 集雅科技
時程
- D+0: 獵頭連繫
- D+3: 確認投遞
- D+8: 完成 OA
- D+49: 一面
- D+66: Reject
心得
Coderbyte OA:
- 難度約 Easy ~ Medium
一面 (Online Interview):
技術主管提問:
- 履歷相關題目(內容沒印象了)
人資提問:
- 基本 BQ
- 詢問公司內是否有讀書會等進修機制,被洗臉
總結: 中間隔那麼久應該是因為我OA分數勉勉強強過關而已,所以等前面的人都面完了才輪的到我。 技術主管雖然對能源領域不懂,但問的還蠻深入的,整體感覺不錯,但人資面試給我蠻扣分的印象。
5. Crescendo Lab
時程
- D+0: 投遞履歷
- D+1: 收到一面邀請
- D+7: 一面 (CTO / HR quick call)
- D+10: Reject
面試過程
Tech Lead 主要詢問了我目前公司的業務內容與產品細節,以及在專案中遇到的挑戰和我的解決經驗。技術面則聚焦於過往處理大數據、API 效能優化(例如如何調整資料庫 index)、與太陽能管理系統相關的技術細節(如數據量、QPS、缺值補償等)。也有探討到專案部署、監控、以及是否運用 AI 工具提升效率等經驗,整體問題偏重於實務經驗及技術應用。
HR HR 主要詢問了一些基本背景與求職動機,像是過去的經歷、為何想換工作、對公司的了解與興趣,以及對未來工作環境和待遇的期待,同時也有聊到目前是否有使用 AI 工具和如果錄取後的交接安排等。
整體感覺:
- 遇到最困難/最挫折的工作經驗,可以再想好一點的故事
- DB Indexing 相關知識需補齊
- PostgreSQL 相關語法與知識需補齊
- 錄取機會不高,就算錄取,薪水應該也會蠻低
6. BlockRiver
時程
- D+0: HR Quick Call
心得
HR Quick Call 問題:
- Introduce yourself
- Technique questions:
- List 3 methods to communicate between two processes
- 答案參考:Pipes、Shared Memory、Message Queues、Sockets、Signals、Redis (in-memory, web-based)
- List 6 data containers in STL
- 參考:vector, list, deque, set, map, unordered_map 等
- Insert and find time complexity for set
- 答案:O(log n), O(log n)(註:回答 O(1), O(1) 可能不正確,set 是紅黑樹實作)
- List 3 methods to communicate between two processes
總結
全英文面試,但我英文講感覺不太順,HR應該是香港或是中國人,直接問我要不要說中文... 感覺是透過HR快速篩選履歷,照著問題問,我想要請他多敘述一下問題(STL是啥真的沒聽過)都不理睬。
總結
細算下來這半年以來我投了大概接近200個履歷(中間因為家人生病有暫停一個月),有後續的大概只佔不到10%,但一部分是因為我認為我需要累積面試經驗才有辦法在我真正想去的公司的面試中表現得更好,所以基本上職位技術棧有對到我就投了,不管薪資待遇等其他事項,若是你認為你的面試經驗已經充足,也可以指投你想去的公司就好。
建議
- 一定要嘗試將目前有參與過的專案,或是Side Projects嘗試繪製成架構圖,並且有辦法在面試的時候從0開始邊畫邊講解為何要選用這個,以及這個設計的優缺點或是取捨等。
- 一直投履歷就對了,累積面試過程的經驗我覺得是一條必經之路,可以檢視目前的準備是否充足,也可以調整自己在面試過程中的問答表現。
- 面試趣以及LinkedIn Premiere都可以直接課,在密集投遞履歷的階段幫助很大。
- 從面試官的角度來思考他們想要怎麼樣特色的人,切記面試的時候需要給面試官”你是來提供價值,是來輸出的“的印象,若有機會的話可以自己延伸一些技術話題, 只是單純問答的話蠻可惜的,因為一方面對方也是在看未來是否可以跟你順利的合作。
- 常見的BQ問題一定要先想好一個故事,不要現場遇到問題才想,通常會講到爆掉,或是不那麼適合的回覆。
