# 資訊科技產業專案設計課程作業 3
[resume](https://docs.google.com/document/d/1n3giL0okPb22HudO8lyfZjdQ6IJf1qHBQoNXhLvky_E/edit?tab=t.0)
## [Amazon: Software Dev Engineer Intern, eero, New Product Team](https://www.linkedin.com/jobs/view/4055832290)
工作內容
Basic Qualifications
1. Speak, write, and read fluently in Mandarin
2. Currently enrolled in pre-final year of Master or Bachelor Degree in Computer Science, Computer Engineering, Electrical Engineering, or related fields.
3. Proficiency in the C or C++ programming language.
4. Knowledge of Computer Science fundamentals such as algorithm design, data structures, problem solving, and complexity analysis.
## [Google Firmware Engineer, Battery and Charging, Google Pixel](https://www.linkedin.com/jobs/view/4055521917)
工作內容
Minimum qualifications:
1. Bachelor's degree in Computer Science, Electrical Engineering, Computer Engineering, a related technical field, or equivalent practical experience.
2. 5 years of experience in coding with a general purpose programming language (e.g., C/C++).
3. Experience with developing Firmware for embedded systems and Linux kernel drivers
## [NVIDIA: Server Firmware Developer ](https://nvidia.wd5.myworkdayjobs.com/en-US/NVIDIAExternalCareerSite/job/Taiwan-Taipei/Server-Firmware-Developer--RDSS-Intern-_JR1989649?q=RDSS&locationHierarchy1=2fcb99c455831013ea52ed162d4932c0)
工作內容
What you’ll be doing:
1. Working with a global team of BMC/SBIOS developers on NVIDIA server designs.
2. Designing and developing performance optimized active monitoring firmware solutions using DMTF Standards including MCTP, Redfish, SPDM and PLDM specifications.
3. Instrumenting code to ensure maximum code coverage, writing and automating unit tests for each implemented module and maintain detailed unit test case reports.
4. Providing software quality reports based on static analysis, code coverage, CPU load.
5. Working closely with hardware teams to influence hardware design and review HW architecture & schematics.
6. Collaborate with QA/Test architects to come up with proper test tools and automation for qualifying the whole system software and firmware stack.
## [MEDIATECK: 嵌入式系統Linux軟體工程師](https://careers.mediatek.com/eREC/JobSearch/JobDetail/MTK120190426003?returnUrl=%2FeREC%2FJobSearch%3FsortBy%3D%26order%3D%26page%3D1%26searchKey%3Dlinux%26category%3D%26workExp%3D%26branch%3D%26program%3D)
工作內容
1. 撰寫或移植裝置驅動程式
2. 撰寫硬體模組測試程式
3. 進行硬體模組測試及驗証
4. 分析系統問題
5. 分析及改善系統功粍或效能
## 模擬面試
C/C++ 程式語言相關問題
🧑:請解釋 #error 和 #warning 的用途及差異?
😧:#error 和 #warning 都是巨集指令,用於編譯時期產生特定訊息。
#error 用於停止編譯,並輸出錯誤訊息,通常在不合法的條件下使用。
#warning 則是輸出警告訊息,不會停止編譯,但提醒開發者注意可能的問題。
🧑:Struct 和 Union 有什麼差別?
😧:Struct 和 Union 的主要差異在記憶體的分配方式:
Struct:每個成員都有獨立的記憶體空間,總大小為所有成員大小的總和。
Union:所有成員共用同一塊記憶體,大小為最大成員的大小。
🧑:volatile 關鍵字的作用是什麼?能否與 const 一起使用?是否能修飾指標?
😧:volatile 告訴編譯器,變數的值可能隨時改變,禁止優化操作,每次存取直接從記憶體地址讀取或寫入。
volatile 可以與 const 一起使用,例如 const volatile int a;。
volatile 也可以修飾指標,例如 volatile int *ptr; 或 int *volatile ptr;。
🧑:請說明函數的 Call by Value、Call by Address 和 Call by Reference。
😧:
Call by Value:將實參的值複製給形參,函式內部的修改不影響實參。
Call by Address:傳遞實參的記憶體位址,函式可透過指標修改實參值。
Call by Reference:直接傳遞實參的位址,函式可對實參進行操作,效能優於 Call by Address。
## 自身條件
學歷:資訊工程相關碩士學位,符合學歷要求
程式語言:熟悉 C/C++。這部份還需要多實做專案慢慢努力。
嵌入式系統經驗:正在研究riscv hypervisor行為,這能夠讓我了解整個Boot流程, 以及虛擬化相關技術
硬體測試與分析:完全沒有相關經驗。目前還沒有具體方向該如何學習。
### Reference
[MEDIATECK面試](https://www.ptt.cc/bbs/Tech_Job/M.1501843612.A.732.html)
[面試整理](https://hackmd.io/@g9tdU4gDSTiEZrerd0g7-w/SyCXEfsSE?type=view)
[軟韌體工程師面試考題 - 程式碼考題](https://www.raind.blog/c&cpp-zh/c&cpp_interviewexam.html)
[軟韌體工程師面試考題 - 專有名詞解釋](https://www.raind.blog/c&cpp-zh/c&cpp_interviewexam.html)
## [Linux Kernel Engineer](https://www.104.com.tw/job/6nqa4?jobsource=m_joblist_bact_n)
工作內容
開發 RISC-V 的 Linux 系統以協助客戶順利導入及量產,包含:
1. U-Boot
2. Linux kernel
3. OpenSBI
4. Device drivers (SPI, SD card, Ethernet)
5. Build systems (Yocto Project, OpenWrt)
擅長工具
Linux、Git、C、ARM、Drivers、Firmware、USB技術
提升專業能力
工作技能
軟體程式設計、韌體程式設計
其他條件
應徵履歷請提供:
1. Linux kernel 或 RTOS 的開發經驗
2. 把事情做好,而不是做完的經驗
3. 自主學習一個陌生事物的經驗
4. 參與過規模最大的專案是什麼?在其中是什麼角色?
5. 上次在時間緊迫下要完成工作是什麼情況?當時怎麼做?
[Design Verification Infrastructure Engineer](https://www.linkedin.com/jobs/search/?currentJobId=4071911868&f_C=7579420&geoId=92000000&origin=COMPANY_PAGE_JOBS_CLUSTER_EXPANSION&originToLandingJobPostings=4061835724%2C4030705754%2C4061510563%2C4115271927%2C4071916066%2C4101595933%2C4109200739%2C4109099839%2C4119478780)