這算是真外商初體驗,可以感受到公司內部的氣氛真的還不錯 🤸♂️
++
Some information
+-
+
- Intern Period - Jan. 2025 ~ Jun. 2025 +
-
+
- Location - Linkuo +
-
+
- Position - Software Engineer Intern +
+
Table of contents
++ +
Application
+我大概是在 10 月底申請的,差不多在 Linkedin 職缺 post 之後 10 天。主要面試流程有
+-
+
- HR 電話 - 告知一些事項&跟你用英文聊一聊 +
-
+
- Online test - 主要考 OOP 和一些程式基本常識,有一題 coding 題,我那時候拿的是 O(n) 就可以的 Fibonacci +
-
+
- Onsite 面 - 主要分兩場,一場是 team lead Jerry 先來聊一些非技術話題,另外一場是 team member Jeff & Randy 聊一些技術 (做過哪些東西,OOP 觀念,design pattern) 和一題白板題 (簡單的那種) +
大概 D20 就 offer get,在眾多公司中算是效率派
+Team
+On-board 之後可以看到 Teams 上有一串部門名稱,我的是 BL-Apps MPC D&E PWD PS ACE ,其中 BL-Apps = Business Level Apps,D&E = Development & Engineering,其他都不確定是什麼意思。跟其他部門溝通的時候,通常就說 D&E 他們就知道了 (他們也不會知道你後面那串是啥)。
下面的訊息是我理解的,不保證全對 😅
+D&E 內部也有很多部門,我接觸的到的有 YieldStar 相關的部門 *3、VCP (Virtual Computing Platform)、Litho Insight (我的 team,以下簡稱 Litho),平常都跟他們換再一起坐,所以認識了一些他們的人 (Link: 我們的大老闆 Charles)。我的 team 做的是機台上執行的程式,可以想像成是機台按一個按鈕後,機台就會跑我們寫的一些 function,他們把這些 function 稱為 job,台灣 team own 大概 8 個 job。Team 內有在敏捷開發,大概是三個月(not sure),屬於 PI (Program Increment),每天早上 10. 固定 daily scrum (10 min),大概講一下昨天做了什麼和今天打算做什麼,是一個可以了解誰跟誰在合作&在做的好機會。
+ +Team member 有 (照順序) Jerry, Jimmy, Ethan, Randy, Jeff, (me), Pei-Yi, Pei-Yi, Bart, York。
+
他們都是我的 role model,工作認真溝通效率高,氣氛歡樂又持續有產出,也給了我很多職涯、學業、生活 (這個最多,吃飯常聽他們的帶娃日常) 的建議。
+Mentor
+我的 mentor 有兩個 - Jerry & Jeff。兩位 mentor 平常都挺忙,不是在開會就是要準備開會了,我有問題的話都是問 Jeff,每次打開 teams 的時候他幾乎都是紅圈圈 XD。
+一開始剛進來的時候真的非常感謝 Jeff 給了很多支援,不管是 maven settings 不 work 或是遇到各種 compilation or VDI error 他都會陪我一起找問題,總之 Jeff 給人一種 so polite so patience 的感覺,如果以後有機會跟他一起工作一定很快樂 😂
+Jerry 是 Litho team 的 group lead + scrum master,感謝他常常來非常慈祥的來關心我的身心健康,然後每次聚餐完他都會很 man 的跟我說學生不用付錢,嗚嗚嗚 Jerry 你是懂窮學生的ㄚㄚㄚㄚ謝謝老闆🤧
+Tasks
+大概講一下我做了什麼,純 tech 區,但由於一些 privacy issue,我好像也不能寫太 detail,就大概寫吧~
+Java Migration
+會有這個 task 是因為 Java 8 LTS 只到 2030,公司一直有在說要從 Java 8 到 Java 11,但畢竟這件事真的很麻煩,也怕會出現一些預料之外的 impact,所以到現在都還沒做。我主要做的是研究 OpenRewrite 和遷 Java 11 的 possible effect。
+OpenRewrite 算是很好的 refactor 工具,有 support maven,也有負責做 migration 到 Java 11 的 recipe。實際把他裝上去 & 跑下去之後發現有很多 dependency 的東西沒有處理好,最主要的問題是這個 recipe 只會改一些 public & well-known 的 package,但公司內很多的 package 都是公司自己 build 的,如果真的要用的話,需要從最底層的 function 開始遷,遷完還要順便把更新好的部分加進 recipe,總之不是我一個小小 intern 能做到的,最後研究 migration 這件事就交給其他部門了。
+這邊要感謝 Jeff for all the support,我在試著 compile src code 的時候平均 1hr 就去 ping 他一次問他該怎麼辦,最後也成功 compile 了 🥂
+Performance Tool
+這部分有點複雜,簡單來說我做了一個讓測試流程更加快速的工具。一個 job 從編譯到測試的流程有以下幾步
+-
+
- trigger build with bamboo +
-
+
- pull, retag, and push the image to the correct repository on repo node +
-
+
- change running image on management node +
-
+
- trigger the job with http requests and several documents as input +
-
+
- query log in splunk +
當更新新的版本的 image 時,其他 team 會做 performance test,分析這次更新有沒有造成哪個部分變慢或用超過限制的 cpu/mem。
+這邊先介紹三個 tool
+-
+
-
+ Automated Job Testing Framework (AJTF) (for step 4)
+
這是其他 team 測試我們的時候用的工具,透過設定要跑的 image,提供自動設定 input documents & trigger job 的功能
+
+
-
+
-
+ Performance Analysis (for step 5)
+
Litho team 做的工具,可以用來撈 log 並 compare 兩個 image 跑的結果
+
+
-
+
-
+ Performance Runner (for step 4 (partial))
+
Litho team 做的工具,用來自動 trigger job,但要先把 document 設定好
+
+
我的目標是要把 step 3, 4, 5 串成一個工具
+最後成品的功能有
+-
+
- run images given a list [image 1, image 2, image 3…] +
-
+
- run two images & compare with Performance Analysis (tool 2) +
Technical detail 不敢多說,放個圖自己體悟
+ + +這份主要對接人是 Pei-Yi & Jeff,感謝 Pei-Yi 在裝 AJTF 時候給了很多幫助,也感謝其他給了很多 tool enhancement 的建議 or feature request。
+Disclaimer - 這圖是我用自己電腦畫完傳進公司電腦的,希望沒有 privacy issue。
+Graph Creation
+我老闆給我了一個 request - 希望可以有一個 platform 可以透過拉 block 畫流程圖,並讓 block 有某些功能 (點下去執行 code / 打 HTTP request)。參考了 KNIME 和 JavaFX w. Springboot,結論是做得到但很麻煩要自己刻,所以最後沒有做。
+心得
+Company Culture
+-
+
-
+ Speak up
+
ASML 是荷蘭商,作為一個注重人權的歐洲商,他們非常鼓勵 “Speak up”。我覺得這件事真的是很難在其他一些公司見到,我有夢到過在一些公司只要 speak up 後員工第二天馬上被搞,主管 HR 什麼的全部關心你,所以能真的看到有些人 speak up 對我來說其實真的很酷。在我入職的第一天,我收到了 ~10 封相同 title 的信,內容是關於一個討論串 “Why is it so hard for you guys to clean up after lunch”,就是一個外國人看不下去有人不收盤子直接在公開討論群理性討論 (開嗆),下面其他人也開始跟著討論 (陰陽怪氣),或許在某些公司這些行為會被認為太出風頭,但在 ASML 他們真的會 respect 敢於發表自己想法的人 (其他人不知道但高層會 & 我會),雖然有些東西 speak up 可能不會有人理,但一定不會有人因為你發表了自己的看法就搞你。
+
+
-
+
-
+ Working style
+
這東西其實跟公司 & team 的風氣有很大的關係,在事情都做完的時候,工程師們會
+-
+
- 硬要裝忙怕被其他人講閒話 +
-
+
- 聊天吃餅乾喝茶,想做啥就做啥 +
ASML 很明顯的是 2,可能是因為有 daily scrum 所以每個人每天做啥大家都心裡有數,知道每個人做了啥就不會覺得其他人過太爽 …?
+我其實很喜歡我的 team 的工作狀態,該認真的時候超級認真,該放鬆的時候超級放鬆,每天都過的還算快樂,Jira 上的 task 每天會都往前移,工作累了就請個假去放鬆一下,這樣的狀態大概是我心中最有效率的工程師的狀態吧~
+
+
Shuttle Bus
+因為公司在林口,然後我住新竹 or 台北,所以去上班都搭交通車。平均一趟要 2hr,所以當天來會大概就要花 4hr。我通常在新竹的話都會搭 6. 的車,在台北搭 8. 的車,然後固定都搭 5. 的車回家。這個經驗告訴我絕對要選離家近的公司,either 換公司 or 換房子,不要再挑戰自己的睡眠極限了, 😡 ← 這我的肝
+Job Description = 計畫趕不上變化
+當時在 apply 這個 position 的時候,JD 寫說需要會 Python + TypeScript,HR 甚至跑來確認我會,但我其實根本沒自己寫過 TypeScript (大概是一個只 trace 過別人的 code 的程度,所以我大概花了 30 分鐘看了 TypeScript crash course,然後回 HR 說我看過但沒寫過,然後 HR: OK 你跟 engineer 們聊吧~ 大概到實體關的時候,正職們就說其實他們還沒進入 planning 階段所以也還沒想好要讓 intern 做啥,結果 TypeScript 最後根本沒出現過 XD。
+Key takeaways
+-
+
- 看到 JD 不要怕,不管會或不會,都可以試著投投看,畢竟有些東西只是經驗而已,來了就會了,小 intern 就是來學東西的~ +
-
+
- 公司真的很忙,task 有時候做一做上面的人算一算會發現這事不該做,簡單來說就是 … 計畫趕不上變化 +
-
+
-
+ 面試小技巧
+
-
+
-
+ HR 問
+
-
+
- 我很熟 → 我做這個 … 年 +
-
+
- 我會 → 我有很多經驗 +
-
+
- 會一點 → 我會 +
-
+
- 聽過但不會→ 我聽過,是 … 嗎,我有碰過一點 +
-
+
- 完全沒聽過 → 說掰掰 +
+
-
+
-
+ Engineer 問
+
-
+
- 會 → 拿 project 出來 +
-
+
- 不會 → 想一些類似的經驗拿出來講 +
-
+
- 完全沒聽過 → 開問 +
+
+ -
+ HR 問
+
Disclaimer for 3.❗
+講這個不是說鼓勵大家欺負 HR 不懂所以開始膨脹,主要是因為
+-
+
- 你的競爭對手也會膨脹 … 而且 HR 不會問 detail 所以也聽不出來,這些回答有時候會給面試者一種高下立判的感覺 +
-
+
- 其實這種會不會的自我認知因人而異。當我升大學時,有人問我會不會 Python 的時候,我會毫不猶豫的跟他說我會,現在我 Python 用的很多,但我發現自己競程題目用 Python 打還需要查 reference,所以有人問我會不會我反而只會說會一點點。這個就類似 Dunning-Kruger effect,有興趣的可以自己 google 一下~ 所以會不會這種事就交給專業的去 evaluate 吧,HR 那種只是單純問會不會的就自信的說會吧~ +
Special Thanks
+Esther
+感謝你讓我想起還有 ASML 這個公司可以投,感謝 apply 時的各種幫助,感謝 ASML 大前輩帶我們去打桌球,總之感謝 all the support!
+Johnny
+感謝你每天都陪我打桌球 (其實是 Esther 走之後才每天打的),感謝平常陪我聊天講屁話抱怨 (我講真 ASML 少了 Johnny 我真的會無聊死)。我跟 Johnny 算是校友,但我是真的沒想到跑去林口還是能遇到陽明的 bro,總之很高興認識你,我下次依舊會用桌球打爆你,祝 everything 一切順利!
+Henry
+感謝你會在要搭車的時候等我,感謝你在 ASML 認出我 (btw 我一開始真的沒認出他,應該說我根本不知道這人 … 我以為我在實驗室是個小透明),總之跟這人的緣分挺奇妙的,祝你接下來一切順利嘍~ (2025 Fall 繼續交大見)
+


