2020年5月30日 星期六

[紀錄] 2018秋季台積電(TSMC)IT部門校園徵才面試心得

大家好啊~~
面試心得繼續發

這次的主角是號稱
十萬青年十萬肝,GG輪班救台灣的台積電
張忠謀大大可以把一間公司弄到全球第一
不僅他厲害
也感謝眾多青年新鮮肝的貢獻

回到正題

這次投遞履歷的方式是在台積電來學校做校園徵才座談會後
要大家上GG的徵才系統去填履歷資料
再統一分配面試職缺與時間場次
沒辦法自己選要ICSD/BSID或TSID

流程:
線上投履歷→性向測驗→英文測驗→主管面試→人資面試→面試結果通知

進去GG內因為資安問題不能帶手機
因此如果騎車/開車來的可以放車上少點麻煩

首先進行性向測驗
每個人用電腦填寫大概一百題左右的題目
大概是測試抗壓性的其中一環
不少題目仔細想一下可以感覺出來要看你面對壓力時的反應

當初因為已經拿到多益金色證書
因此直接免考英文測驗
這段期間在旁邊納涼(X,準備面試(O
聽其他面試者的分享說考起來有夠痛苦
說英文聽力講很快
閱讀題還要一直盯著電腦看很累
真是萬幸

再來就是重頭戲了
由人資帶到小會議室
看到主管發覺他的臉色滿冷淡的
雖然是打了個招呼
但氣氛很凝重
過程跟大多數面試一樣
先讓你自我介紹
然後主管再問專業&你的經歷相關問題
並且說明職缺工作內容
最後再提問

我覺得面試過程讓人心驚膽跳
因為在自我介紹的時候有被主管打斷
說我講太久了
(可是其他間的都沒這麼認為啊)
於是快速帶過一些內容
結束這一部分
然後在提問的部分
我覺得回答的問題已經夠明確了
但主管卻一直說你的回答不夠好
像是SDN是什麼
我已經把它的定義跟架構和運作原理都講給他聽了
但就一直說這樣回答還不夠
心裡是滿傻眼&緊張的
(後來才發覺這應該就是網路上說的抗壓性測試吧)

再來是工作內容描述
說這是ICSD的職缺
要負責管理廠內的網路設備
需要輪班&On call

最後提問
主管問我:你未來的規劃是什麼
我:在這裡工作個XX年後,存一筆錢出去開甜點店
他就很不解地看我
最後跟我說:
你今天的面試狀況不太好
講太多職涯的東西了
(我覺得這方面我甚麼都沒有講啊Σ( ° △ °|||))
跟你要手機號碼
我過幾天打電話給你
再給你一次機會

終於結束掉這個充滿壓力的一關

再來就是人資面試的部分
我覺得對於善良的人來說
直覺回答問題就可以了
像是你有沒有說過謊

面試完之後覺得被主管嫌成這樣
要上的機會感覺渺茫
過了九天
沒想到錄取了Σ(⊙▽⊙")
當時還在吃火鍋想著下禮拜的面試的說XDDD

以上

同場加映

2020年5月28日 星期四

[教學] DPDK EAL parameter使用方式

大家好啊~~
官方的範例看得有夠久
在執行程式的時候實在很納悶指令的參數該怎麼下

-c <core mask>
用十六進位表示法決定要用哪些lcore去執行
如果要用core0&core1→-c 0x3
如果要用core1&core2→-c 0x6

-l <core list>
用直覺的表法決定要用哪些lcore去執行
如果要用core0&core1→-l 0,1
如果要用core0&core1&core3→-l 0,1,3

※上述兩種描述法在同行指令中互斥(只能二選一啦)

--master-lcore <core ID>
決定使用哪個lcore當作master
如果要用core3→--master-lcore 3

-s <service core mask>
決定使用哪些lcore當作service core
假定我有4個core,如果我只想要讓core1&core2執行→ -l 0,1,2,3 -s 0x9
以Helloworld當作範例,會得到
-------------------------------------------------------
hello from core 1
hello from core 2
in master lcore 0
hello from core 0
-------------------------------------------------------

到這裡你可能會問為什麼core0還會執行((-s表示:當我塑膠?
這是因為預設情況會使用core0當作master core
只要某一個core被指定為master core
不管core mask為何都會執行

所以如果要完全符合你所期望的結果
結合上面--master-lcore的指令指定master core給1(或2)
就會得到
-------------------------------------------------------
hello from core 2
in master lcore 1
hello from core 1
-------------------------------------------------------

2020年5月25日 星期一

[教學] DPDK在Ubuntu虛擬機上編譯方式

大家好啊~~
最近在研究DPDK的套件
想了解這些範例程式跑起來的樣子是什麼
但手邊沒有支援DPDK的實體網卡
後來看到網路上說
可以使用虛擬機模擬出支援的網卡!!!
於是手刀部建虛擬機&編譯環境了

以下是整理過的筆記
以DPDK-18.11.6版本+Ubuntu 16.04.3 with 4.4.0-87-generic+VMware Workstation 15當作範例

撰寫日期:2020.05.20

1. 首先建立好虛擬機並安裝好作業系統

2. 把虛擬機關機,再去設定檔這邊添加2張網卡(mode設NAT即可)

3. 修改.vmx,把你要設定網卡的"virtualDev"的值,設定為"e1000"
(否則網卡會無法給DPDK使用)

4. 開機後去官網下載dpdk的原始碼,並解壓縮出來後,進入該資料夾

5. 使用指令
sudo apt-get install make gcc python libpcap-dev libnuma-dev pkg-config -y
安裝這幾個dpdk編譯會用到的套件
./usertools/dpdk-devbind.py --status
去看網卡類型是否變為
drv=e1000
有的話就成功模擬出支援的網卡囉

6. 環境變數DESTDIR指定程式build出來的位置(名字位置任意,本範例會在dpdk目錄底下的myinstall資料夾內,建立所有範例的binary)
還有DPDK編譯相關的環境變數
export DESTDIR=myinstall
export RTE_SDK=/home/john/dpdk-stable-18.11.6/ export RTE_TARGET=x86_64-native-linuxapp-gcc

7. 執行官方設置腳本,包含載入igb_uio模組以及綁定網卡給DPDK使用
./usertools/dpdk-setup.sh
依序選擇
[15] x86_64-native-linuxapp-gcc(根據作業系統、使用的編譯器決定)
[18] Insert IGB UIO module
[24] Bind Ethernet/Crypto device to IGB UIO module(綁定指定網卡給DPDK)
[21/22] Setup hugepage mappings for (non-)NUMA systems(設定Hugeopage給DPDK使用)

8. 手動編譯範例make test,發現ImportError: No module named pexpect
補上解法
sudo apt-get install python-setuptools
sudo easy_install pip
sudo -E pip install pexpect
9. 因為在虛擬機上面執行程式,虛擬出來的網卡會有一些問題
如圖所示

要去修改library的程式碼解決問題
vim kernel/linux/igb_uio/igb_uio.c : 259
修改完畢後要重新編譯DPDK,並且重新載入igb_uio模組

10. 再去執行範例程式,以Helloworld來說存在於myinstall/share/dpdk/examples/helloworld/build/app底下

我的虛擬機有4顆Core,3張網卡(後兩張有綁給DPDK)
使用sudo ./helloworld執行範例
執行結果如下
-------------------------------------------------------------------------
john@ubuntu:~/dpdk-stable-18.11.6/myinstall/share/dpdk/examples/helloworld/build/app$ sudo ./helloworld
EAL: Detected 4 lcore(s)
EAL: Detected 1 NUMA nodes
EAL: Multi-process socket /var/run/dpdk/rte/mp_socket
EAL: No free hugepages reported in hugepages-1048576kB
EAL: Probing VFIO support...
EAL: PCI device 0000:02:01.0 on NUMA socket -1
EAL:   Invalid NUMA socket, default to 0
EAL:   probe driver: 8086:100f net_e1000_em
EAL: PCI device 0000:02:06.0 on NUMA socket -1
EAL:   Invalid NUMA socket, default to 0
EAL:   probe driver: 8086:100f net_e1000_em
EAL: PCI device 0000:02:07.0 on NUMA socket -1
EAL:   Invalid NUMA socket, default to 0
EAL:   probe driver: 8086:100f net_e1000_em
hello from core 1
hello from core 2
hello from core 3
hello from core 0
john@ubuntu:~/dpdk-stable-18.11.6/myinstall/share/dpdk/examples/helloworld/build/app$
-------------------------------------------------------------------------

以上!
有問題歡迎留言討論
後續再來寫命令列參數的使用

2020年5月15日 星期五

[紀錄] 2018秋季瑞昱(Realtek)面試心得

大家好啊~~
面試心得分享馬不停蹄
這回來說說面試第一個錄取的公司瑞昱
又稱螃蟹🦀(現在已經被奉為帝王蟹🤣)

流程:
一面→二面→口頭offer→正式offer
履歷投遞是被人資
親臨小弟的實驗室而邀請投履歷
(有種備受重視的感覺啊)

當時有填一些可能比較有興趣的職缺&可能面試的時間
主要和通訊相關

過個幾天後就收到面試邀請
看到面試職缺的名義還滿神奇的
108年度非研替優秀應屆畢業生-系統設計工程師職務
說這麼長
就是預聘兩個字啦XD

光是一面的部分總共被8個部門邀請面試
裡面包含
藍芽*2
WIFI*4
LTE*1
電視螢幕*1
SSD*1

面試流程大致如下
先讓你自我介紹
主管再針對內容提問
並且考專業問題(白板題/考卷)
發現有個共通點
他們很喜歡考Linked-list類型的問題
可以從這部分去著手準備

再來會問關於人格特質的問題
滿常被問到的是
就學過程中遇過什麼困難
怎麼解決的
感覺他們可能壓力不小

總共花了2天把一面全部消化完
如果是外地的各位要面試
可以跟人資講盡量安排同一天
不然時間可能會分散

一面結束後過個4天以後就有二面的邀請
分別是藍芽、SSD
(沒想到竟然沒有LTE的...)

面試流程跟一面一樣
就不贅述了
比較特別的是SSD那邊有被問到bitwise operation
這個算是我比較不熟悉的
雖然現場最後有推出來
不過主管貌似沒有很滿意

二面結束後過了一個多禮拜
接到主管的電話告知口頭offer
詢問是否有意願接受核薪結果
有的話將進行書面offer流程

再過兩個星期就接到通知可至公司領取正式offer
感謝上帝

2020年5月10日 星期日

[紀錄] 2018秋季群聯(Phison)面試心得

大家好啊~~

已經在中華工作快五個月了
有被學弟問到之前面試經驗
突然想到還沒有分享以前其他公司面試的過程
給大家參考參考

讓我們回溯到一年半前(2018/09).....

流程:
學長姊內推投履歷→一面→二面→背景審查→面試結果通知
投履歷的途徑是由實驗室的學長姐內推
在9月底的時候寄給給學長
過個3天就接到人資的面試邀請函
要提供你兩周內可以面試的時間
人資說整體面試的時間預計2-3小時
所以請抓比較悠閒的時候

一面包含C語言測驗+人資面試+主管面試
C語言測驗總共一小時的時間給你寫
採筆試方式手寫程式碼
考的題目並不難
基本上寫對很容易
不過要寫得好又是另一回事
當時寫了大概40分鐘

接下來是人資面試
基本上是一般網路上都會看到的那些問題
並說明公司薪資、福利等等
還有提到員工宿舍的部分
不過空間並不多
而且只能住三個月
所以我建議大家如果是外地來的可以考慮租房子

接著是主管面試
主要是針對你的經歷去問
像是
為何你要來這裡面試?
做過最有印象的專案?
對公司的了解有多少?
諸如此類
並不會像螃蟹和發哥的面試充滿專業問題

結果不到一小時就面完一面
主管說本來要直接讓你二面
但因為大主管有會要開
這次就先讓我回去

果不其然隔天馬上接到二面通知

二面進行速度很快
不到半小時就結束了
他主要問的一個問題就是
我之前印象深刻的專案實作的整體經歷
還有喜歡上的課
跟專業內容沒啥關係

過了兩天後
就接到背景審查的部分
要你提供兩個同事做訪談
新鮮人就寫指導老師和實驗室博班學長就可以

兩個星期後詢問人資
卻接到感謝函....

經與主管確認,他覺得您不錯
但因為內部工作組織分配原因,將先不錄取您

只能說無緣QQ