從系統廠BSP RD到豬屎屋Firmware engineer - 工程師
By Oscar
at 2020-10-16T08:58
at 2020-10-16T08:58
Table of Contents
網誌好讀版:
https://reurl.cc/k0oyxb
(with自製解說圖XD)
整理目前從系統廠擔任BSP RD轉職到IC design house擔任Firmware engineer
一年半以來的心得...
希望透過由淺入深的介紹,說明我們這個行業是在做什麼...
更希望給有心想要轉職到firmware engineer的朋友或是新人們,
給予一個很基本的概念分享~
以下正文開始:
會想寫這篇文章是因為最近有人問我擔任系統廠的BSP RD,
後來能不能到Design house擔任firmware engineer的這個問題...XD
目前我從系統廠換到design house已經超過1年半...
想說也可以整理一下這期間我自己的心得為何
也想說順便介紹一下IC設計的大概流程,
以及到底之前在系統廠擔任BSP學習到的什麼能力,
可以應用在design house的firmware engineer
首先最一開始,先了解一下IC到底在我們的日常生活中,會在什麼地方出現
從下圖可知道,其實目前想像得到的電子產品,基本上都會有IC的存在...
"IC is everywhere..."
因此,我認為就工作機會的角度看來,從事IC設計的行業是一個不錯的選擇
好的,接下來就進入正題了~
IC有非常多種,而現在目前市面上的主流,就是所謂的SoC (system on chip) IC
意思是說,一顆IC可以被看作是一個擁有多種功能的系統
如下圖舉例,這顆SoC IC可能同時支援有display,audio,bluetooth等等的能力,
甚至是這幾年很紅的AI,也可以被嵌入在一個SoC裡面
這邊特別提到一下到底軟體工程師在SoC IC的開發之中,到底扮演著什麼樣的角色?
由下圖當作一個範例,假設SoC中有支援speaker(喇叭)跟recorder(錄音)這兩個硬體元件
那麼這兩個硬體元件如何才能夠起作用呢?
答案就是需要SW firmware engineer根據HW designer的設計
透過軟體的方式,產生相對應的程式碼,去達到能夠啟動speaker跟recorder的目的
這樣的程式碼,我們稱之為driver(驅動)。
上述所提到的程式碼,最後會被build成一個檔案,也就是我們俗稱的firmware(韌體)
而這個韌體最後會在SoC中被執行。
有了HW component跟SW driver的存在,這樣我們就可以開發一些我們熟知的軟體應用
舉例來說,音樂播放器中可以透過speaker driver去使用speaker
而錄音機可以透過recorder driver去使用recorder
接下來就我目前所知的,來描述一下一顆IC從無到有的流程...如下圖所示
(可能會有不完善的地方.. 請多包涵.. 小弟目前在design house資歷尚淺XD)
(1) 訂定spec
通常要做一顆IC,或著說要做IC中的某一個元件,或著功能(又稱作IP)
第一件事情就是需要了解到底要做什麼,以及如何去做
這樣的過程,我們可以稱之為叫做spec的定義
Designer必須要在這個過程把spec規格開出來,
並且詳細地寫成一份文件讓相關人員review
(2) RTL coding
接著,就是進入到所謂RTL coding的階段
也就是digital designer撰寫程式的階段
(3) FPGA verification
當RTL寫到一個程度,通常就會透過FPGA (Field Programmable Gate Array)這樣的平台,進行相關的驗證
來驗證自己寫的RTL code是否正確
通常在實際的FPGA上面跑RTL code之前,會經過一個叫做跑simulation(模擬)的動作
來驗證function上面是否work
舉例來說,硬體預期2乘以3要等於6
那麼在simulation stage上,就必須要得到6才行
(4) FPGA validation
FPGA verification基本上是以驗證功能性為主
但是它畢竟是一個模擬的環境,而且速度很慢
執行同樣的程式碼,在IC執行1秒鐘,有可能在simulation會跑好幾個小時
實際在FPGA平台上面run code,基本上就是在做FPGA validation
這時候驗證的流程會越來越偏向軟體,因此firmware engineer從這個stage開始
參與開發的比重也會越來越高
基本上就是寫一些測試的程式碼,盡可能地壓力測試硬體的功能
以上(2)~(4),我覺得應該是數位設計主要的範疇
(5) Placement layout
當數位設計的部分已經被驗的差不多了
在請晶圓代工廠幫忙生產IC前
接下來會針對physical design的部分,進行一些優化的動作
這時候通常會請APR部門幫忙
因為像是IC的timing, performance等等的調整,都可以在這個stage做調整
(6) Tapeout
這個階段就是真正請晶圓代工公司 (ex: UMC/TSMC)
根據我們開出來的製程(28奈米, 14奈米, 7奈米...)去真正將IC給生產出來
這樣的IC,通常稱之為ASIC (Application Specific Integrated Circuit)
每一次的tapeout,動輒都是花幾千萬,甚至上億
而且如果IC生產之後才發現有硬體上的bug,也回不去了...
因此,在tapeout之前,每家IC設計公司都會盡可能的做很詳盡的驗證
(7) Packing & testing
生產完IC後,接下來通常會經過封裝測試相關的公司
來幫忙驗證說這顆生產出來的IC是否有什麼問題,以及將它給封裝好
最後再回到原廠,或是客戶手上
介紹完生產一顆IC的流程之後,接下來針對firmware engineer的部分
自問自答三個問題,當作這篇的收尾:
1. Firmware engineer在IC design house要做的事情是什麼?
2. Firmware engineer會學習到的東西是什麼?
3. 踏入IC design house前的軟體工程師(or新人)可以做什麼準備?
1. Firmware engineer在IC design house要做的事情是什麼?
如果要一言以敝之...我認為是...
"能夠協助一顆IC開發所有可能的軟體行為"
應該就是firmware engineer要做的事情
這可能包含:
a. 協助硬體在訂定spec過程中的一些evaluation
假設有3種方法可以做,但是透過軟體像是寫Python, C++等程式語言幫忙分析
會比較迅速, 這時候軟體工程師可以幫忙跟designer co-work來幫忙做評估
b. 寫driver來驅動硬體
這部分當然算是firmware工程師的主菜
Driver我認為又可以分作是:
*without OS的driver
*with OS的driver
這邊的OS,近年來最為人所知的,就是Linux kernel
一旦涉略到OS,通常需要follow這個OS的rule
像是driver init的方式,memory management的方式,interrupt的註冊...等等
c. 整合軟體的環境
在開發過程中,可能會有tool A, tool B, tool C
會有機會為了方便,需要將ABC三種tool整合成一個tool
因此,system integration的需求也是很有可能的
2. Firmware engineer會學習到的東西是什麼?
這部分我認為每個人因應不同的職責,而會有所不同
因此可能會就我目前所學所看到的,比較主觀的敘述這個part
*Knowledge of boot sequence
對我而言,一直以來是比較偏向負責系統整合的部分
所以我看到的範圍,會相對比較廣一些
用下圖舉例來說,我會看到晶片開機過程的行為
上電Power on之後,被燒死在晶片裡面的某一塊記憶體上面的開機程式
(稱之為boot rom),就會開始運行了
接著它可能會帶起第二個bootloader,進而把OS帶起來,
最後變成我們熟知的user使用環境
用Android手機來舉例的話,就是:
按電源鍵 --> power on --> boot rom --> bootloader --> Linux kernel
--> Android OS --> Framework & Application
上面是我所認為的基本開機順序
必須每個關卡都順利,才能開機成功
在這之中,如果有硬體任何元件有錯誤
(像是UART, sd card, timer, interrupt controller...etc)
都有可能會造成開機失敗
這時候有可能要去查看log以及相對應的spec,才能找出root cause
*程式碼的整合
如同上一個part所提到的,firmware engineer很有可能會涉略到軟體方面系統整合的工作
這可能會牽涉到:
如何去build code
了解到如何撰寫makefile,使得可以build出想要的firmware
了解到cross compiler的使用
如何maintain code base
和同事間一起開發/分工的過程
git的使用 (我自己主要是用git)
*和designer的合作
這應該是我覺得比較難得的部分
通常designer會出一份programming guide請軟體按照上面的spec
撰寫出HW元件相對應的driver
但有時候不一定會按照上面所寫的運作
這時就需要請designer拉訊號出來做debugging的動作
軟體幫忙找出好複製的方式試著模擬情境,讓HW的人方便找到root cause
因為需要密切合作,其實firmware engineer也會比更上層的軟體工程師了解硬體運作的原理
像是軟硬體之間的溝通方式,interrupt需要怎麼設定,register如何填寫等等的
是我覺得最核心關鍵的地方
3. 踏入IC design house前的軟體工程師(or新人)可以做什麼準備?
如果有心想要往IC設計公司的firmware engineer發展的話
我認為可以做以下這些準備:
純技術部份:
*將C語言練得更熟一些
通常在寫driver的時候,程式語言都是用C
因此,我覺得將C練得更滾瓜爛熟,是有幫助的
重點其實也是常常面試考題會考的部分 (pointer, structure, function call, ... etc)
*作業系統的概念
這也是要做嵌入式系統方面的工作,必定要複習的部分了...
重點一樣也是面試常考的那些 (interrupt, synchronization的處理...etc)
*如何在Linux kernel系統中撰寫一個driver
雖然我覺得這可以進公司再學,不過事先學好也是很不錯
重點在於dts, platform driver, interrupt handler (又稱ISR)...etc
其他輔助部分:
*Presentation的能力
跟之前在系統廠時相比,在IC設計公司工程師開會討論spec或是問題的頻率高非常多
為了降低來回溝通的次數,我覺得清楚表達的能力很重要
這裡指的清楚表達,不僅僅是口頭上的清楚
有的時候可能是透過一張架構圖,抑或是一張投影片讓對方了解自己的想法
尤其是設計初期,在如何做之前,
常常會有一個brainstorming的階段,
需要尋找靈感,也就是要做什麼。
*英文
這應該...就不用多做說明了XD
雖然目前沒什麼用到英聽跟口說的機會
但是至少reading跟writing的部分能有加強也是建議加強~
目前以來的心得:
相較於之前在系統廠擔任BSP RD,我覺得在IC設計裡面擔任firmware engineer,
最大的差別,應該是在於有更多事情需要靠自己去study,trace code
看原廠spec,看網路相關的論壇 (ex: stackoverflow),才能夠去解決
跨部門的同事都很忙,其實不一定能夠幫你,凡事靠自己,覺得是練功的好所在。
之前在系統廠,還能夠開issue問vendor
但是現在自己就是vendor,很多know-how都需要自己去發掘了
因此,到現在,我都還是常常覺得東西永遠學習不完,
每天都有新的東西要學的感覺... 但,目前我還是享受這種感覺的。
如果是為了賺更多錢,確實,來IC設計薪水會比台灣的系統廠高上一個level
但對於未來生涯規劃,想持續精進自己的技術力
我認為這也才是IC設計公司的一大賣點~
以上
--
https://reurl.cc/k0oyxb
(with自製解說圖XD)
整理目前從系統廠擔任BSP RD轉職到IC design house擔任Firmware engineer
一年半以來的心得...
希望透過由淺入深的介紹,說明我們這個行業是在做什麼...
更希望給有心想要轉職到firmware engineer的朋友或是新人們,
給予一個很基本的概念分享~
以下正文開始:
會想寫這篇文章是因為最近有人問我擔任系統廠的BSP RD,
後來能不能到Design house擔任firmware engineer的這個問題...XD
目前我從系統廠換到design house已經超過1年半...
想說也可以整理一下這期間我自己的心得為何
也想說順便介紹一下IC設計的大概流程,
以及到底之前在系統廠擔任BSP學習到的什麼能力,
可以應用在design house的firmware engineer
首先最一開始,先了解一下IC到底在我們的日常生活中,會在什麼地方出現
從下圖可知道,其實目前想像得到的電子產品,基本上都會有IC的存在...
"IC is everywhere..."
因此,我認為就工作機會的角度看來,從事IC設計的行業是一個不錯的選擇
好的,接下來就進入正題了~
IC有非常多種,而現在目前市面上的主流,就是所謂的SoC (system on chip) IC
意思是說,一顆IC可以被看作是一個擁有多種功能的系統
如下圖舉例,這顆SoC IC可能同時支援有display,audio,bluetooth等等的能力,
甚至是這幾年很紅的AI,也可以被嵌入在一個SoC裡面
這邊特別提到一下到底軟體工程師在SoC IC的開發之中,到底扮演著什麼樣的角色?
由下圖當作一個範例,假設SoC中有支援speaker(喇叭)跟recorder(錄音)這兩個硬體元件
那麼這兩個硬體元件如何才能夠起作用呢?
答案就是需要SW firmware engineer根據HW designer的設計
透過軟體的方式,產生相對應的程式碼,去達到能夠啟動speaker跟recorder的目的
這樣的程式碼,我們稱之為driver(驅動)。
上述所提到的程式碼,最後會被build成一個檔案,也就是我們俗稱的firmware(韌體)
而這個韌體最後會在SoC中被執行。
有了HW component跟SW driver的存在,這樣我們就可以開發一些我們熟知的軟體應用
舉例來說,音樂播放器中可以透過speaker driver去使用speaker
而錄音機可以透過recorder driver去使用recorder
接下來就我目前所知的,來描述一下一顆IC從無到有的流程...如下圖所示
(可能會有不完善的地方.. 請多包涵.. 小弟目前在design house資歷尚淺XD)
(1) 訂定spec
通常要做一顆IC,或著說要做IC中的某一個元件,或著功能(又稱作IP)
第一件事情就是需要了解到底要做什麼,以及如何去做
這樣的過程,我們可以稱之為叫做spec的定義
Designer必須要在這個過程把spec規格開出來,
並且詳細地寫成一份文件讓相關人員review
(2) RTL coding
接著,就是進入到所謂RTL coding的階段
也就是digital designer撰寫程式的階段
(3) FPGA verification
當RTL寫到一個程度,通常就會透過FPGA (Field Programmable Gate Array)這樣的平台,進行相關的驗證
來驗證自己寫的RTL code是否正確
通常在實際的FPGA上面跑RTL code之前,會經過一個叫做跑simulation(模擬)的動作
來驗證function上面是否work
舉例來說,硬體預期2乘以3要等於6
那麼在simulation stage上,就必須要得到6才行
(4) FPGA validation
FPGA verification基本上是以驗證功能性為主
但是它畢竟是一個模擬的環境,而且速度很慢
執行同樣的程式碼,在IC執行1秒鐘,有可能在simulation會跑好幾個小時
實際在FPGA平台上面run code,基本上就是在做FPGA validation
這時候驗證的流程會越來越偏向軟體,因此firmware engineer從這個stage開始
參與開發的比重也會越來越高
基本上就是寫一些測試的程式碼,盡可能地壓力測試硬體的功能
以上(2)~(4),我覺得應該是數位設計主要的範疇
(5) Placement layout
當數位設計的部分已經被驗的差不多了
在請晶圓代工廠幫忙生產IC前
接下來會針對physical design的部分,進行一些優化的動作
這時候通常會請APR部門幫忙
因為像是IC的timing, performance等等的調整,都可以在這個stage做調整
(6) Tapeout
這個階段就是真正請晶圓代工公司 (ex: UMC/TSMC)
根據我們開出來的製程(28奈米, 14奈米, 7奈米...)去真正將IC給生產出來
這樣的IC,通常稱之為ASIC (Application Specific Integrated Circuit)
每一次的tapeout,動輒都是花幾千萬,甚至上億
而且如果IC生產之後才發現有硬體上的bug,也回不去了...
因此,在tapeout之前,每家IC設計公司都會盡可能的做很詳盡的驗證
(7) Packing & testing
生產完IC後,接下來通常會經過封裝測試相關的公司
來幫忙驗證說這顆生產出來的IC是否有什麼問題,以及將它給封裝好
最後再回到原廠,或是客戶手上
介紹完生產一顆IC的流程之後,接下來針對firmware engineer的部分
自問自答三個問題,當作這篇的收尾:
1. Firmware engineer在IC design house要做的事情是什麼?
2. Firmware engineer會學習到的東西是什麼?
3. 踏入IC design house前的軟體工程師(or新人)可以做什麼準備?
1. Firmware engineer在IC design house要做的事情是什麼?
如果要一言以敝之...我認為是...
"能夠協助一顆IC開發所有可能的軟體行為"
應該就是firmware engineer要做的事情
這可能包含:
a. 協助硬體在訂定spec過程中的一些evaluation
假設有3種方法可以做,但是透過軟體像是寫Python, C++等程式語言幫忙分析
會比較迅速, 這時候軟體工程師可以幫忙跟designer co-work來幫忙做評估
b. 寫driver來驅動硬體
這部分當然算是firmware工程師的主菜
Driver我認為又可以分作是:
*without OS的driver
*with OS的driver
這邊的OS,近年來最為人所知的,就是Linux kernel
一旦涉略到OS,通常需要follow這個OS的rule
像是driver init的方式,memory management的方式,interrupt的註冊...等等
c. 整合軟體的環境
在開發過程中,可能會有tool A, tool B, tool C
會有機會為了方便,需要將ABC三種tool整合成一個tool
因此,system integration的需求也是很有可能的
2. Firmware engineer會學習到的東西是什麼?
這部分我認為每個人因應不同的職責,而會有所不同
因此可能會就我目前所學所看到的,比較主觀的敘述這個part
*Knowledge of boot sequence
對我而言,一直以來是比較偏向負責系統整合的部分
所以我看到的範圍,會相對比較廣一些
用下圖舉例來說,我會看到晶片開機過程的行為
上電Power on之後,被燒死在晶片裡面的某一塊記憶體上面的開機程式
(稱之為boot rom),就會開始運行了
接著它可能會帶起第二個bootloader,進而把OS帶起來,
最後變成我們熟知的user使用環境
用Android手機來舉例的話,就是:
按電源鍵 --> power on --> boot rom --> bootloader --> Linux kernel
--> Android OS --> Framework & Application
上面是我所認為的基本開機順序
必須每個關卡都順利,才能開機成功
在這之中,如果有硬體任何元件有錯誤
(像是UART, sd card, timer, interrupt controller...etc)
都有可能會造成開機失敗
這時候有可能要去查看log以及相對應的spec,才能找出root cause
*程式碼的整合
如同上一個part所提到的,firmware engineer很有可能會涉略到軟體方面系統整合的工作
這可能會牽涉到:
如何去build code
了解到如何撰寫makefile,使得可以build出想要的firmware
了解到cross compiler的使用
如何maintain code base
和同事間一起開發/分工的過程
git的使用 (我自己主要是用git)
*和designer的合作
這應該是我覺得比較難得的部分
通常designer會出一份programming guide請軟體按照上面的spec
撰寫出HW元件相對應的driver
但有時候不一定會按照上面所寫的運作
這時就需要請designer拉訊號出來做debugging的動作
軟體幫忙找出好複製的方式試著模擬情境,讓HW的人方便找到root cause
因為需要密切合作,其實firmware engineer也會比更上層的軟體工程師了解硬體運作的原理
像是軟硬體之間的溝通方式,interrupt需要怎麼設定,register如何填寫等等的
是我覺得最核心關鍵的地方
3. 踏入IC design house前的軟體工程師(or新人)可以做什麼準備?
如果有心想要往IC設計公司的firmware engineer發展的話
我認為可以做以下這些準備:
純技術部份:
*將C語言練得更熟一些
通常在寫driver的時候,程式語言都是用C
因此,我覺得將C練得更滾瓜爛熟,是有幫助的
重點其實也是常常面試考題會考的部分 (pointer, structure, function call, ... etc)
*作業系統的概念
這也是要做嵌入式系統方面的工作,必定要複習的部分了...
重點一樣也是面試常考的那些 (interrupt, synchronization的處理...etc)
*如何在Linux kernel系統中撰寫一個driver
雖然我覺得這可以進公司再學,不過事先學好也是很不錯
重點在於dts, platform driver, interrupt handler (又稱ISR)...etc
其他輔助部分:
*Presentation的能力
跟之前在系統廠時相比,在IC設計公司工程師開會討論spec或是問題的頻率高非常多
為了降低來回溝通的次數,我覺得清楚表達的能力很重要
這裡指的清楚表達,不僅僅是口頭上的清楚
有的時候可能是透過一張架構圖,抑或是一張投影片讓對方了解自己的想法
尤其是設計初期,在如何做之前,
常常會有一個brainstorming的階段,
需要尋找靈感,也就是要做什麼。
*英文
這應該...就不用多做說明了XD
雖然目前沒什麼用到英聽跟口說的機會
但是至少reading跟writing的部分能有加強也是建議加強~
目前以來的心得:
相較於之前在系統廠擔任BSP RD,我覺得在IC設計裡面擔任firmware engineer,
最大的差別,應該是在於有更多事情需要靠自己去study,trace code
看原廠spec,看網路相關的論壇 (ex: stackoverflow),才能夠去解決
跨部門的同事都很忙,其實不一定能夠幫你,凡事靠自己,覺得是練功的好所在。
之前在系統廠,還能夠開issue問vendor
但是現在自己就是vendor,很多know-how都需要自己去發掘了
因此,到現在,我都還是常常覺得東西永遠學習不完,
每天都有新的東西要學的感覺... 但,目前我還是享受這種感覺的。
如果是為了賺更多錢,確實,來IC設計薪水會比台灣的系統廠高上一個level
但對於未來生涯規劃,想持續精進自己的技術力
我認為這也才是IC設計公司的一大賣點~
以上
--
All Comments
By Puput
at 2020-10-18T13:34
at 2020-10-18T13:34
By Anthony
at 2020-10-19T06:15
at 2020-10-19T06:15
By Quanna
at 2020-10-21T16:00
at 2020-10-21T16:00
By Dorothy
at 2020-10-25T19:35
at 2020-10-25T19:35
By Enid
at 2020-10-30T14:08
at 2020-10-30T14:08
By Connor
at 2020-10-30T15:55
at 2020-10-30T15:55
By Una
at 2020-11-03T13:35
at 2020-11-03T13:35
By Victoria
at 2020-11-04T22:06
at 2020-11-04T22:06
By Christine
at 2020-11-07T07:31
at 2020-11-07T07:31
By Bethany
at 2020-11-07T23:59
at 2020-11-07T23:59
By Jacky
at 2020-11-11T15:29
at 2020-11-11T15:29
By Carol
at 2020-11-12T10:12
at 2020-11-12T10:12
By Ula
at 2020-11-14T15:31
at 2020-11-14T15:31
By Linda
at 2020-11-18T01:13
at 2020-11-18T01:13
By Zora
at 2020-11-20T14:23
at 2020-11-20T14:23
By Rae
at 2020-11-24T08:24
at 2020-11-24T08:24
By John
at 2020-11-26T08:45
at 2020-11-26T08:45
By Steve
at 2020-11-29T02:28
at 2020-11-29T02:28
By Wallis
at 2020-12-02T18:19
at 2020-12-02T18:19
By Liam
at 2020-12-03T09:09
at 2020-12-03T09:09
By Blanche
at 2020-12-05T08:26
at 2020-12-05T08:26
By Quintina
at 2020-12-06T22:43
at 2020-12-06T22:43
By Blanche
at 2020-12-07T09:16
at 2020-12-07T09:16
By Frederic
at 2020-12-09T03:24
at 2020-12-09T03:24
By Rebecca
at 2020-12-13T01:45
at 2020-12-13T01:45
By Dinah
at 2020-12-14T02:35
at 2020-12-14T02:35
By Dorothy
at 2020-12-15T11:04
at 2020-12-15T11:04
By Dinah
at 2020-12-15T14:01
at 2020-12-15T14:01
By Aaliyah
at 2020-12-20T03:38
at 2020-12-20T03:38
By Lydia
at 2020-12-22T15:20
at 2020-12-22T15:20
By Harry
at 2020-12-23T18:14
at 2020-12-23T18:14
By Edith
at 2020-12-28T00:25
at 2020-12-28T00:25
By Callum
at 2020-12-31T16:23
at 2020-12-31T16:23
By Hardy
at 2021-01-05T14:43
at 2021-01-05T14:43
By David
at 2021-01-08T02:39
at 2021-01-08T02:39
By Elizabeth
at 2021-01-08T14:09
at 2021-01-08T14:09
By Skylar DavisLinda
at 2021-01-13T13:45
at 2021-01-13T13:45
By Doris
at 2021-01-14T09:12
at 2021-01-14T09:12
By Ursula
at 2021-01-16T02:44
at 2021-01-16T02:44
By Lily
at 2021-01-18T19:05
at 2021-01-18T19:05
By Puput
at 2021-01-21T02:41
at 2021-01-21T02:41
By Genevieve
at 2021-01-24T19:40
at 2021-01-24T19:40
By Joe
at 2021-01-26T08:52
at 2021-01-26T08:52
By Sierra Rose
at 2021-01-31T02:11
at 2021-01-31T02:11
By Andrew
at 2021-02-02T14:36
at 2021-02-02T14:36
By Andrew
at 2021-02-06T03:38
at 2021-02-06T03:38
By Emma
at 2021-02-10T06:08
at 2021-02-10T06:08
By Joe
at 2021-02-15T05:35
at 2021-02-15T05:35
By Tom
at 2021-02-19T08:46
at 2021-02-19T08:46
By Sierra Rose
at 2021-02-20T20:08
at 2021-02-20T20:08
By Kama
at 2021-02-25T14:34
at 2021-02-25T14:34
By David
at 2021-02-28T01:01
at 2021-02-28T01:01
By Sandy
at 2021-03-03T21:47
at 2021-03-03T21:47
By Ina
at 2021-03-07T00:37
at 2021-03-07T00:37
By Joseph
at 2021-03-07T22:12
at 2021-03-07T22:12
By Elma
at 2021-03-09T00:51
at 2021-03-09T00:51
By Zenobia
at 2021-03-10T20:17
at 2021-03-10T20:17
By John
at 2021-03-14T01:54
at 2021-03-14T01:54
By Tom
at 2021-03-16T22:54
at 2021-03-16T22:54
By Steve
at 2021-03-19T00:24
at 2021-03-19T00:24
By Oliver
at 2021-03-23T07:50
at 2021-03-23T07:50
By Rebecca
at 2021-03-27T20:40
at 2021-03-27T20:40
By Tracy
at 2021-03-29T05:35
at 2021-03-29T05:35
By Delia
at 2021-03-30T10:28
at 2021-03-30T10:28
By Jacky
at 2021-03-31T14:42
at 2021-03-31T14:42
By Enid
at 2021-04-04T03:18
at 2021-04-04T03:18
By Ethan
at 2021-04-05T19:09
at 2021-04-05T19:09
By Caroline
at 2021-04-08T17:10
at 2021-04-08T17:10
By Sandy
at 2021-04-13T11:19
at 2021-04-13T11:19
By Caitlin
at 2021-04-17T15:12
at 2021-04-17T15:12
By Hamiltion
at 2021-04-20T12:50
at 2021-04-20T12:50
By Irma
at 2021-04-23T12:36
at 2021-04-23T12:36
By Hedy
at 2021-04-24T21:06
at 2021-04-24T21:06
By Belly
at 2021-04-28T09:48
at 2021-04-28T09:48
By Queena
at 2021-05-02T00:13
at 2021-05-02T00:13
By Emily
at 2021-05-06T12:27
at 2021-05-06T12:27
By Madame
at 2021-05-09T16:51
at 2021-05-09T16:51
By Ingrid
at 2021-05-11T22:17
at 2021-05-11T22:17
By Christine
at 2021-05-14T01:29
at 2021-05-14T01:29
By Ingrid
at 2021-05-16T16:07
at 2021-05-16T16:07
By Carolina Franco
at 2021-05-17T04:51
at 2021-05-17T04:51
By Genevieve
at 2021-05-18T15:42
at 2021-05-18T15:42
By Hedda
at 2021-05-21T05:27
at 2021-05-21T05:27
By Kelly
at 2021-05-25T22:33
at 2021-05-25T22:33
By Bethany
at 2021-05-26T11:52
at 2021-05-26T11:52
By Isla
at 2021-05-27T15:45
at 2021-05-27T15:45
By Xanthe
at 2021-05-28T00:50
at 2021-05-28T00:50
By Mia
at 2021-06-01T02:03
at 2021-06-01T02:03
By Ophelia
at 2021-06-01T19:37
at 2021-06-01T19:37
By William
at 2021-06-02T15:39
at 2021-06-02T15:39
By Gilbert
at 2021-06-04T14:07
at 2021-06-04T14:07
By Kristin
at 2021-06-06T17:46
at 2021-06-06T17:46
By Edith
at 2021-06-09T12:24
at 2021-06-09T12:24
By Quintina
at 2021-06-11T16:00
at 2021-06-11T16:00
By Genevieve
at 2021-06-14T07:26
at 2021-06-14T07:26
By Elvira
at 2021-06-15T01:09
at 2021-06-15T01:09
By Donna
at 2021-06-17T02:01
at 2021-06-17T02:01
By George
at 2021-06-17T22:57
at 2021-06-17T22:57
By Elvira
at 2021-06-19T14:00
at 2021-06-19T14:00
By Eartha
at 2021-06-20T19:25
at 2021-06-20T19:25
By Jake
at 2021-06-23T23:58
at 2021-06-23T23:58
By Cara
at 2021-06-27T08:28
at 2021-06-27T08:28
By Annie
at 2021-07-01T04:02
at 2021-07-01T04:02
By Ula
at 2021-07-03T12:37
at 2021-07-03T12:37
By John
at 2021-07-06T08:58
at 2021-07-06T08:58
By Ula
at 2021-07-09T05:03
at 2021-07-09T05:03
By Annie
at 2021-07-11T18:58
at 2021-07-11T18:58
By Odelette
at 2021-07-13T14:00
at 2021-07-13T14:00
By Elma
at 2021-07-17T12:07
at 2021-07-17T12:07
By Eartha
at 2021-07-19T20:26
at 2021-07-19T20:26
By Delia
at 2021-07-20T03:26
at 2021-07-20T03:26
By Brianna
at 2021-07-24T04:40
at 2021-07-24T04:40
By Tracy
at 2021-07-28T03:08
at 2021-07-28T03:08
By Connor
at 2021-08-01T16:43
at 2021-08-01T16:43
By Odelette
at 2021-08-06T02:20
at 2021-08-06T02:20
By Gilbert
at 2021-08-08T15:32
at 2021-08-08T15:32
By Puput
at 2021-08-10T02:08
at 2021-08-10T02:08
By Hedwig
at 2021-08-13T21:23
at 2021-08-13T21:23
By Todd Johnson
at 2021-08-17T09:52
at 2021-08-17T09:52
By Charlotte
at 2021-08-18T08:56
at 2021-08-18T08:56
By Rebecca
at 2021-08-20T13:06
at 2021-08-20T13:06
By Megan
at 2021-08-22T19:26
at 2021-08-22T19:26
By Blanche
at 2021-08-25T01:25
at 2021-08-25T01:25
By Todd Johnson
at 2021-08-25T13:24
at 2021-08-25T13:24
By Quintina
at 2021-08-28T11:43
at 2021-08-28T11:43
By Quintina
at 2021-08-31T18:46
at 2021-08-31T18:46
By Lucy
at 2021-09-04T08:01
at 2021-09-04T08:01
By Una
at 2021-09-07T09:58
at 2021-09-07T09:58
By Wallis
at 2021-09-11T20:39
at 2021-09-11T20:39
By Michael
at 2021-09-12T09:55
at 2021-09-12T09:55
By Vanessa
at 2021-09-16T16:40
at 2021-09-16T16:40
By Sandy
at 2021-09-19T16:52
at 2021-09-19T16:52
By Quanna
at 2021-09-23T16:04
at 2021-09-23T16:04
By Ingrid
at 2021-09-23T18:49
at 2021-09-23T18:49
By George
at 2021-09-28T11:22
at 2021-09-28T11:22
By Irma
at 2021-09-29T04:26
at 2021-09-29T04:26
By Jack
at 2021-09-29T18:06
at 2021-09-29T18:06
By Thomas
at 2021-10-03T21:50
at 2021-10-03T21:50
By Sandy
at 2021-10-05T15:20
at 2021-10-05T15:20
By Aaliyah
at 2021-10-09T05:15
at 2021-10-09T05:15
By Ursula
at 2021-10-11T20:10
at 2021-10-11T20:10
By Ida
at 2021-10-15T19:06
at 2021-10-15T19:06
By Genevieve
at 2021-10-17T15:23
at 2021-10-17T15:23
By Edwina
at 2021-10-20T08:58
at 2021-10-20T08:58
By Isla
at 2021-10-24T15:27
at 2021-10-24T15:27
By Dora
at 2021-10-26T15:45
at 2021-10-26T15:45
By Ivy
at 2021-10-28T23:10
at 2021-10-28T23:10
By Edith
at 2021-10-31T03:25
at 2021-10-31T03:25
By Ida
at 2021-11-02T12:45
at 2021-11-02T12:45
By Aaliyah
at 2021-11-03T15:05
at 2021-11-03T15:05
By Eden
at 2021-11-08T07:54
at 2021-11-08T07:54
By Suhail Hany
at 2021-11-12T07:40
at 2021-11-12T07:40
By Jacob
at 2021-11-16T20:44
at 2021-11-16T20:44
By Rachel
at 2021-11-18T03:58
at 2021-11-18T03:58
By Hazel
at 2021-11-22T17:20
at 2021-11-22T17:20
By Eden
at 2021-11-25T09:43
at 2021-11-25T09:43
By Suhail Hany
at 2021-11-28T18:28
at 2021-11-28T18:28
By Tom
at 2021-11-29T05:34
at 2021-11-29T05:34
By Emma
at 2021-11-30T03:34
at 2021-11-30T03:34
By Tracy
at 2021-12-04T01:52
at 2021-12-04T01:52
By Elvira
at 2021-12-07T04:18
at 2021-12-07T04:18
By Blanche
at 2021-12-11T11:49
at 2021-12-11T11:49
By Ula
at 2021-12-11T15:10
at 2021-12-11T15:10
By Kama
at 2021-12-11T20:37
at 2021-12-11T20:37
By Victoria
at 2021-12-13T08:06
at 2021-12-13T08:06
By Andrew
at 2021-12-16T21:46
at 2021-12-16T21:46
By Oscar
at 2021-12-19T19:27
at 2021-12-19T19:27
By Anonymous
at 2021-12-20T09:46
at 2021-12-20T09:46
By Charlie
at 2021-12-24T17:14
at 2021-12-24T17:14
By Joseph
at 2021-12-25T10:36
at 2021-12-25T10:36
By Heather
at 2021-12-28T16:53
at 2021-12-28T16:53
By Faithe
at 2022-01-02T12:08
at 2022-01-02T12:08
By Agnes
at 2022-01-06T14:23
at 2022-01-06T14:23
By Zora
at 2022-01-06T23:35
at 2022-01-06T23:35
By Connor
at 2022-01-07T08:04
at 2022-01-07T08:04
By Leila
at 2022-01-08T20:47
at 2022-01-08T20:47
By Skylar Davis
at 2022-01-13T04:36
at 2022-01-13T04:36
By Connor
at 2022-01-17T11:13
at 2022-01-17T11:13
By Emily
at 2022-01-18T08:36
at 2022-01-18T08:36
By Jacky
at 2022-01-18T12:54
at 2022-01-18T12:54
By Suhail Hany
at 2022-01-22T23:35
at 2022-01-22T23:35
Related Posts
活動宣傳_線上模擬面試教戰講座
By Tracy
at 2020-10-16T05:40
at 2020-10-16T05:40
年薪已破百該去考公務員?
By Andy
at 2020-10-16T00:43
at 2020-10-16T00:43
面試 AWS/趨勢/發哥/啟碁/創發
By Dorothy
at 2020-10-16T00:14
at 2020-10-16T00:14
Offer請益 天鈺/新唐/海馬
By Iris
at 2020-10-16T00:07
at 2020-10-16T00:07
類比IC領域選擇
By Sierra Rose
at 2020-10-16T00:03
at 2020-10-16T00:03