快轉到主要內容
  1. Posts/

2022 台積電 TSMC IT 面試經驗 (BSID/TSID)

·300 字·2 分鐘
Justin Huang
作者
Justin Huang
Senior Software Engineer@Delta Energy

前言
#

最近收到台積電 IT 的招募宣傳信,在個人 IG 上分享了一下,沒想到有不少朋友詢問我有關台積電 IT 的面試經驗,所以想說乾脆寫成一篇文章來分享一下。不過我面試台積電 IT 已經是 2022 年的事情了,所以相關資訊可能已經過時,請讀者自己斟酌參考。

當時大概是 Covid 19 疫情中期,疫情還沒結束,但趨向穩定。我本來就有定期更新履歷的習慣,當時台積電 IT 有做一些招募的廣告宣傳,基於好奇心,我就去他們的網站點一點,註冊履歷。我想說自己才一年多經歷,應該不會被找去面試吧哈哈,沒想到不久後就收到了面試邀請。我面試了兩個不同的單位,都是遠端面試。

tsmc-hiring

台積電 IT 簡介
#

關於台積電 IT 在做什麼以及大概的組織架構,可直接看台積電官網的資訊,以及 iThome 2022 年的相關報導。

BSID / Application System Engineer
#

面試流程
#

  1. 填寫制式文件

    HR 會寄一份「應徵人員問卷」,用文字方式回答 BQ、culture fit 相關問題,例如為什麼想加入台積電、未來三年的規劃、對於最近工作喜歡跟不喜歡的地方、自己的優缺點等等。

  2. 考英文

    像是多益 TOEIC 一樣的考試,聽力 25 題、閱讀 25 題,考試時間 30 分鐘。要開視訊鏡頭讓 HR 監考。

  3. HackerRank 線上程式測驗

    HR 給 HackerRank 連結,有 5 題,大概是 1 題 easy、1 題 easy-medium、2 題 medium、1 題 hard。考試時間忘記了,大概是 60 或 90 分鐘。

  4. 一面:用人主管(50 分鐘)

    女性主管,沒開鏡頭,語氣聽起來平穩無太大起伏,在台積電工作約十年。口頭介紹 BSID 就是做 ERP、SCM、HR 等系統,以前沒有系統性的規劃,所以各個系統的 UI/UX 很差,現在要全部重新設計,有專門的 UI/UX team 負責,會需要跟他們協作。技術方面要會 Web 和 App 開發,Web 用 React,App 用 Flutter。但因為公司要開始推 MERN Stack,希望由一個工程師 E2E 開發一個完整 feature,所以之後招募的工程師都要會這套。

    之後就是自介、針對履歷和工作經驗提問,沒有技術問答,接著是 culture fit 問題如為什麼想加入台積電,對於台積電的了解。都是些常見的問題,最後就是提問環節。

  5. 二面:Director(30 分鐘)

    女性主管 (LinkedIn),有開鏡頭,語氣比較活潑,有一點口音,會中英文夾雜,感覺是有海外經驗。有用簡報介紹組織,大概 5 - 10 分鐘。接著是自介、針對履歷和工作經驗提問,沒有技術問答,核心問題是要做一個 3 - 5 分鐘的 elevator pitch ,讓她可以更認識我,感覺起來是告訴她為什麼要錄用我。最後一樣是提問環節。

  6. 三面: HR 面試

    女性 HR,沒開鏡頭,語氣聽起來平穩無太大起伏,基本上都是 BQ 跟 culture fit 問題。但其中有一個特別的問題是我從來沒有遇過的:

    你有曾經被主管相當嚴厲得斥責、責罵過的經驗嗎?如果有,你會怎麼處理?

    這問題挺妙的,某種程度可以看出台積電的管理風格。

    最後就是問目前的薪資待遇以及期望薪資。

  7. Reference check

    HR 會要求提供兩位推薦人,印象中是要主管,會打電話照會並發簡單的問卷給他們填寫,大概 5 - 10 分鐘可以完成。

整個面試流程走完大概是 2 - 3 週。

此次面試結果為無聲卡。

TSID / NTAD
#

這邊沒寫職稱是因為我忘記了,也找不到相關信件哈哈。當時剛升 Senior 不久,買了 PS5 每天下班狂玩,有一天晚上打得正起勁的時候收到面試邀請 XD

  1. 一面:部門主管 + 用人主管 + 兩位工程師(60 分鐘)

    這次是四位面試官,一位男性部門主管,一位男性用人主管 (技術社群分享),剩下兩位工程師是一男一女,都有開鏡頭,感覺氣氛比較嚴肅。由用人主管口頭介紹部門的職責,他的語氣比較溫和。這是一個靠近產線的單位,要做舊系統重寫,但也有新技術研究以及新人訓練的業務。技術方面就是 MERN Stack 全端開發,只有做 Web。

    先進行履歷問答,像我做過 PM 就有問用過哪些工具做專案管理和產品管理,因為這個部門有新人訓練的業務,所以也問了我在 ALPHA Camp 擔任助教的經驗。

    接著技術問答由部門主管主導,他的語氣比較強勢一些,感覺相當自信。要講一個最近做的的專案或是印象深刻的專案,介紹做過的一個 feature,最好是代表作。然後會開始問 spec 和技術細節,他會一直往下挖,或是水平延伸到相關的技術問題。

    像我說我做了一個無限滾動功能,部門主管就把 feature 問到很細,開始探討無限滾動為的是什麼?對 user 的好處是什麼?這個 feature 真的需要做無限滾動嗎?然後延伸到無限滾動怎麼實作的?怎麼處理 error handling?怎麼做效能調校?再到 JavaScript 的 Garbage Collection 機制是怎麼做的?有做過 system design 的經驗嗎?前後端要怎麼實作 cache?有用 TDD 或 DDD 開發嗎?怎麼確保程式碼品質?開發完成再寫測試會有什麼問題?

    整個過程他會不斷挑戰你的答案,回答只要稍微模糊或講錯一定會被打斷並且毫不留情的挑出來鞭,非常硬 XD,但都是就事論事,不會有人身攻擊。技術問答結束後來到提問環節,我問了更細節的組織架構,以及正在做的專案內容。

    最後用人主管說要寫一個作業,給兩週時間,用 MERN Stack 實作一個非常常見的入門小作品,你應該猜得到 XD。我想說這差異也太大了吧,剛剛被電個半死,結果作業卻很容易 @@?

    收到作業信件後,我發現這個小作品確實很單純,但他們有一些特別的要求,像是要用 DDD 開發方法 (Domain Modeling Made Functional - Scott Wlaschin - KanDDDinsky 2019 ),並使用 fp-ts 函式庫實作 Functional Programming。

    fp-ts 真的很難,我找了很多網路資料,也看了一些影片,還是無法領悟。由於很久沒寫 Node.js 後端了,所以我最後只有完成基本的 CRUD 功能,並沒有實作 DDD 和 fp-ts。交作業之後,他們還是希望我能夠完成 fp-ts 的部分。同時部門主管也提供了簡單的回饋,主要是說我的程式碼品質不夠好,希望我能夠更加嚴謹,並把這些問題修正後再交作業。

    我花了一個禮拜的時間還是只能勉強寫出來,只好不要臉的再次交卷了 XDD。很快我收到了部門主管 code review 的回饋,依舊犀利,點出我雖然有使用 fp-ts 提供的方法,但從程式碼中看不出來我理解 fp-ts 以及它的真正用途。他提議約一個 Q&A meeting,讓我更了解他們的品質標準,以及我應該如何改進。不過我回信之後就沒有後續了,真可惜,想說有機會可以學習一下的。如果有朋友懂 fp-ts 可以教我一下,感激不盡。

其它
#

當時面是的都是竹科的職缺,台積電去年有在南港經貿大樓設立 IT 辦公室了。之前 前端社群小聚 就辦在那邊,是 Kim Wong (LinkedIn) 主辦的,有兩個主題,上半場是前端社群的朋友講 Web Component。下半場是由台積電的 App 主管講大型企業內部的超級 App 應用架構設計,他們內部有將近 80 個 mobile App,因此每個選擇都要考量到整體的架構。

現場有提供小點心,最後還有發一個小小紀念品和貼紙,整體感覺很不錯。

BTW 我覺得他們的 slogan 取得很好。

Fab Runs On Code

tsmc-pack-sticker