Skip to content

Commit

Permalink
feat: add 2024-06-01-2022-tsmc-it-interview
Browse files Browse the repository at this point in the history
  • Loading branch information
ShihTingJustin committed Jun 1, 2024
1 parent c9878bb commit 2ccf1f8
Show file tree
Hide file tree
Showing 37 changed files with 190 additions and 30 deletions.
3 changes: 2 additions & 1 deletion .vscode/settings.json
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
{
"editor.wordWrap": "on"
"editor.wordWrap": "on",
"cSpell.words": ["tsmc"]
}
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
99 changes: 99 additions & 0 deletions content/zh/posts/2024-06-01-2022-tsmc-it-interview/index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,99 @@
---
title: "2022 台積電 TSMC IT 面試經驗 (BSID/TSID)"
summary: "這兩年的時間,我在工作上有了一些轉變,和新的體會,這篇文章就來分享一下。"
categories: ["blog"]
tags: ["Interview", "SoftwareEngineer", "TSMC", "IT"]
#externalUrl: ""
# showSummary: true
date: 2024-06-01
draft: false
---

## 前言

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

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

![tsmc-hiring](https://i.imgur.com/NCtdjLf.png)

## 台積電 IT 簡介

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

- [TSMC IT Careers](https://www.tsmc.com/static/chinese/careers/it_career/index.html)
- [【獨家披露】2022 台積 IT 發展重點(上):從自動化製造到智能化製造,全球化營運是台積 IT 新挑戰](https://www.ithome.com.tw/news/149123)
- [【獨家披露】2022 台積 IT 發展重點(下):新任 CIO 帶頭,台積 IT 展開 2 大變革支援全球營運](https://www.ithome.com.tw/news/149124)

## 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)](https://www.linkedin.com/in/winnie-lu-818aa1),有開鏡頭,語氣比較活潑,有一點口音,會中英文夾雜,感覺是有海外經驗。有用簡報介紹組織,大概 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 分鐘)

這次是四位面試官,一位男性部門主管,一位男性用人主管[(技術社群分享)](https://www.youtube.com/watch?v=JVlEiGJ1ueA),剩下兩位工程師是一男一女。由用人主管口頭介紹部門的職責,這是一個靠近產線的單位,要做舊系統重寫,但也有新技術研究以及新人訓練的業務。技術方面就是 MERN Stack 全端開發,只有做 Web。

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

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

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

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

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

收到作業信件後,我發現這個小作品確實很單純,但他們有一些特別的要求,像是要用 DDD 開發方法[(Domain Modeling Made Functional - Scott Wlaschin - KanDDDinsky 2019
)](https://www.youtube.com/watch?v=2JB1_e5wZmU),並使用 [fp-ts](https://gcanti.github.io/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 辦公室了,之前[前端社群小聚](https://www.facebook.com/share/p/mwER5RgrutY8b917/) 就辦在那邊,感覺很不錯。
2 changes: 1 addition & 1 deletion public/categories/blog/index.html

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion public/categories/blog/index.xml

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion public/categories/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
</span></button>
<button id=appearance-switcher-mobile aria-label="Dark mode switcher" type=button class="text-base hover:text-primary-600 dark:hover:text-primary-400" style=margin-right:5px><div class="flex items-center justify-center dark:hidden"><span class="relative block icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentcolor" d="M32 256C32 132.2 132.3 32 255.8 32c11.36.0 29.7 1.668 40.9 3.746 9.616 1.777 11.75 14.63 3.279 19.44C245 86.5 211.2 144.6 211.2 207.8c0 109.7 99.71 193 208.3 172.3 9.561-1.805 16.28 9.324 10.11 16.95C387.9 448.6 324.8 480 255.8 480 132.1 480 32 379.6 32 256z"/></svg></span></div><div class="items-center justify-center hidden dark:flex"><span class="relative block icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentcolor" d="M256 159.1c-53.02.0-95.1 42.98-95.1 95.1s41.2 96.9 95.1 96.9 95.1-42.98 95.1-95.1S309 159.1 256 159.1zM509.3 347l-63.2-91.9 63.15-91.01c6.332-9.125 1.104-21.74-9.826-23.72l-109-19.7-19.7-109c-1.975-10.93-14.59-16.16-23.72-9.824L256 65.89 164.1 2.736c-9.125-6.332-21.74-1.107-23.72 9.824L121.6 121.6 12.56 141.3C1.633 143.2-3.596 155.9 2.736 164.1L65.89 256 2.74 347.01c-6.332 9.125-1.105 21.74 9.824 23.72l109 19.7 19.7 109c1.975 10.93 14.59 16.16 23.72 9.824L256 446.1l91.01 63.15c9.127 6.334 21.75 1.107 23.72-9.822l19.7-109 109-19.7C510.4 368.8 515.6 356.1 509.3 347zM256 383.1c-70.69.0-127.1-57.31-127.1-127.1.0-70.69 57.31-127.1 127.1-127.1S383.1 186.2 383.1 256c0 70.7-56.4 127.1-127.1 127.1z"/></svg></span></div></button></div></div><div class="-my-2 -mr-2 md:hidden"><label id=menu-button for=menu-controller class=block><input type=checkbox id=menu-controller class=hidden><div class="cursor-pointer hover:text-primary-600 dark:hover:text-primary-400"><span class="relative block icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path fill="currentcolor" d="M0 96C0 78.33 14.33 64 32 64H416c17.7.0 32 14.33 32 32 0 17.7-14.3 32-32 32H32C14.33 128 0 113.7.0 96zM0 256c0-17.7 14.33-32 32-32H416c17.7.0 32 14.3 32 32s-14.3 32-32 32H32c-17.67.0-32-14.3-32-32zM416 448H32c-17.67.0-32-14.3-32-32s14.33-32 32-32H416c17.7.0 32 14.3 32 32s-14.3 32-32 32z"/></svg></span></div><div id=menu-wrapper style=padding-top:5px class="fixed inset-0 z-30 invisible w-screen h-screen m-0 overflow-auto transition-opacity opacity-0 cursor-default bg-neutral-100/50 backdrop-blur-sm dark:bg-neutral-900/50"><ul class="flex space-y-2 mt-3 flex-col items-end w-full px-6 py-6 mx-auto overflow-visible list-none ltr:text-right rtl:text-left max-w-7xl"><li><span class="cursor-pointer inline-block align-text-bottom hover:text-primary-600 dark:hover:text-primary-400"><span class="relative block icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 320 512"><path fill="currentcolor" d="M310.6 361.4c12.5 12.5 12.5 32.75.0 45.25C304.4 412.9 296.2 416 288 416s-16.38-3.125-22.62-9.375L160 301.3 54.63 406.6C48.38 412.9 40.19 416 32 416S15.63 412.9 9.375 406.6c-12.5-12.5-12.5-32.75.0-45.25l105.4-105.4L9.375 150.6c-12.5-12.5-12.5-32.75.0-45.25s32.75-12.5 45.25.0L160 210.8l105.4-105.4c12.5-12.5 32.75-12.5 45.25.0s12.5 32.75.0 45.25l-105.4 105.4L310.6 361.4z"/></svg></span></span></li><li class=mt-1><a href=/posts/ class="flex items-center text-gray-500 hover:text-primary-600 dark:hover:text-primary-400"><p class="text-bg font-bg" title>Posts</p></a></li><li class=mt-1><a href=/notes/ class="flex items-center text-gray-500 hover:text-primary-600 dark:hover:text-primary-400"><p class="text-bg font-bg" title>Notes</p></a></li><li class=mt-1><a href=/tags/ class="flex items-center text-gray-500 hover:text-primary-600 dark:hover:text-primary-400"><p class="text-bg font-bg" title>Tags</p></a></li><li class=mt-1><a href=https://www.linkedin.com/in/justinhuang777 target=_blank class="flex items-center text-gray-500 hover:text-primary-600 dark:hover:text-primary-400"><div><span class="relative block icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path fill="currentcolor" d="M416 32H31.9C14.3 32 0 46.5.0 64.3v383.4C0 465.5 14.3 480 31.9 480H416c17.6.0 32-14.5 32-32.3V64.3c0-17.8-14.4-32.3-32-32.3zM135.4 416H69V202.2h66.5V416zm-33.2-243c-21.3.0-38.5-17.3-38.5-38.5S80.9 96 102.2 96c21.2.0 38.5 17.3 38.5 38.5.0 21.3-17.2 38.5-38.5 38.5zm282.1 243h-66.4V312c0-24.8-.5-56.7-34.5-56.7-34.6.0-39.9 27-39.9 54.9V416h-66.4V202.2h63.7v29.2h.9c8.9-16.8 30.6-34.5 62.9-34.5 67.2.0 79.7 44.3 79.7 101.9V416z"/></svg></span></div><p class="text-bg font-bg" title></p></a></li><li class=mt-1><a href=https://github.com/ShihTingJustin target=_blank class="flex items-center text-gray-500 hover:text-primary-600 dark:hover:text-primary-400"><div><span class="relative block icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 496 512"><path fill="currentcolor" d="M165.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6.0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6zm-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6.0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3zm44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9zM244.8 8C106.1 8 0 113.3.0 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1.0-6.2-.3-40.4-.3-61.4.0.0-70 15-84.7-29.8.0.0-11.4-29.1-27.8-36.6.0.0-22.9-15.7 1.6-15.4.0.0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5.0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9.0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4.0 33.7-.3 75.4-.3 83.6.0 6.5 4.6 14.4 17.3 12.1C428.2 457.8 496 362.9 496 252 496 113.3 383.5 8 244.8 8zM97.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1zm-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7zm32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1zm-11.4-14.7c-1.6 1-1.6 3.6.0 5.9 1.6 2.3 4.3 3.3 5.6 2.3 1.6-1.3 1.6-3.9.0-6.2-1.4-2.3-4-3.3-5.6-2z"/></svg></span></div><p class="text-bg font-bg" title></p></a></li></ul></div></label></div></div></div></div><script>window.addEventListener("scroll",function(){var t=window.pageYOffset||document.documentElement.scrollTop||document.body.scrollTop||0,n=document.getElementById("menu-blur");n.style.opacity=t/300})</script><div class="relative flex flex-col grow"><main id=main-content class=grow><header><h1 class="mt-5 text-4xl font-extrabold text-neutral-900 dark:text-neutral">Categories</h1><div class="mt-1 mb-2 text-base text-neutral-500 dark:text-neutral-400 print:hidden"><div class="flex flex-row flex-wrap items-center"></div></div></header><script>var oid="views_taxonomy_categories",oid_likes="likes_taxonomy_categories"</script><script type=text/javascript src=/js/page.min.0860cf4e04fa2d72cc33ddba263083464d48f67de06114529043cb4623319efed4f484fd7f1730df5abea0e2da6f3538855634081d02f2d6e920b956f063e823.js integrity="sha512-CGDPTgT6LXLMM926JjCDRk1I9n3gYRRSkEPLRiMxnv7U9IT9fxcw31q+oOLabzU4hVY0CB0C8tbpILlW8GPoIw=="></script><section class="flex flex-wrap max-w-prose -mx-2 overflow-hidden"><article class="w-full px-2 my-3 overflow-hidden sm:w-1/2 md:w-1/3 lg:w-1/4 xl:w-1/4"><h2 class="flex items-center"><a class="text-xl font-medium decoration-primary-500 hover:underline hover:underline-offset-2" href=/categories/blog/>Blog</a>
<span class="px-2 text-base text-primary-500">&#183;</span>
<span class="text-base text-neutral-400">15</span></h2></article><article class="w-full px-2 my-3 overflow-hidden sm:w-1/2 md:w-1/3 lg:w-1/4 xl:w-1/4"><h2 class="flex items-center"><a class="text-xl font-medium decoration-primary-500 hover:underline hover:underline-offset-2" href=/categories/note/>Note</a>
<span class="text-base text-neutral-400">16</span></h2></article><article class="w-full px-2 my-3 overflow-hidden sm:w-1/2 md:w-1/3 lg:w-1/4 xl:w-1/4"><h2 class="flex items-center"><a class="text-xl font-medium decoration-primary-500 hover:underline hover:underline-offset-2" href=/categories/note/>Note</a>
<span class="px-2 text-base text-primary-500">&#183;</span>
<span class="text-base text-neutral-400">7</span></h2></article></section></main><footer id=site-footer class="py-10 print:hidden"><div class="flex items-center justify-between"><p class="text-sm text-neutral-500 dark:text-neutral-400">&copy;
2024
Expand Down
2 changes: 1 addition & 1 deletion public/categories/index.xml
Original file line number Diff line number Diff line change
@@ -1 +1 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Categories on Renderer</title><link>//localhost:1313/categories/</link><description>Recent content in Categories on Renderer</description><generator>Hugo -- gohugo.io</generator><language>zh-tw</language><copyright>© 2024 Justin Huang</copyright><lastBuildDate>Sun, 05 May 2024 00:00:00 +0000</lastBuildDate><atom:link href="//localhost:1313/categories/index.xml" rel="self" type="application/rss+xml"/><item><title>Blog</title><link>//localhost:1313/categories/blog/</link><pubDate>Sun, 05 May 2024 00:00:00 +0000</pubDate><guid>//localhost:1313/categories/blog/</guid><description/></item><item><title>Note</title><link>//localhost:1313/categories/note/</link><pubDate>Thu, 17 Aug 2023 00:00:00 +0000</pubDate><guid>//localhost:1313/categories/note/</guid><description/></item></channel></rss>
<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Categories on Renderer</title><link>//localhost:1313/categories/</link><description>Recent content in Categories on Renderer</description><generator>Hugo -- gohugo.io</generator><language>zh-tw</language><copyright>© 2024 Justin Huang</copyright><lastBuildDate>Sat, 01 Jun 2024 00:00:00 +0000</lastBuildDate><atom:link href="//localhost:1313/categories/index.xml" rel="self" type="application/rss+xml"/><item><title>Blog</title><link>//localhost:1313/categories/blog/</link><pubDate>Sat, 01 Jun 2024 00:00:00 +0000</pubDate><guid>//localhost:1313/categories/blog/</guid><description/></item><item><title>Note</title><link>//localhost:1313/categories/note/</link><pubDate>Thu, 17 Aug 2023 00:00:00 +0000</pubDate><guid>//localhost:1313/categories/note/</guid><description/></item></channel></rss>
2 changes: 1 addition & 1 deletion public/en/index.json

Large diffs are not rendered by default.

Loading

0 comments on commit 2ccf1f8

Please sign in to comment.