# 2023 年「資訊科技產業專案設計」HW3 ## RESUME - [resume](https://drive.google.com/file/d/1pznxXm0bpuH8RoiA906ibwUe5SGBR8ji/view?usp=sharing) ## Google - [Software Engineer, Google Nest](https://tw.linkedin.com/jobs/view/software-engineer-google-nest-at-%E8%B0%B7%E6%AD%8C-3723997097?refId=NktgolKN6Rhy1ggQs1fyMA%3D%3D&trackingId=pYDCkGzIjhRNu%2ByFAwDvQg%3D%3D&position=11&pageNum=0&trk=public_jobs_jserp-result_search-card) :::spoiler Job Description #### Minimum qualifications: - Bachelor's degree in Computer Science, a related field, or equivalent practical experience. - 3 years of experience with software development in one or more programming languages (e.g., Python, C++, Java). - Experience working with one or more of the following: Unix/Linux environments, distributed and parallel systems, service development, machine learning. - Experience with object oriented languages. #### Preferred qualifications: - Experience in algorithms, data infrastructure, data analysis, and system evaluation and testing. - Excellent ownership, problem solving skills, and willingness to learn/grow. - Experience in driving product excellence through well-defined quality metrics and metrics-oriented optimization. - Interest in IoT and smart home technologies. #### About The Job The Whole Home Intelligence team develops artificial intelligence and sensor algorithms, coupled with Google Home's to create a truly helpful smart home. In this role, you will be responsible for developing and implementing systems and infrastructure to support intelligence features for the smart home. The Google Nest team focuses on hardware, software, and services for the home, ranging from Nest thermostats to Nest smart displays. The Google Nest team develops, designs, and develops new technologies and hardware to make users’ homes more helpful. Our mission is the helpful home: to create a home that cares for the people inside it and the world around it. #### Responsibilities - Design and implement a system to do end-to-end eval on Large Language Model (LLM) for the home using both simulate and historical data. - Build and incorporate new tools into our mission-critical pipelines for algorithm evaluation for home automation generation. - Build evaluation datasets, metrics, and infrastructure to understand and optimize the behavior of our features and algorithms for home insights. - Develop feedback systems to retrain algorithm on user input. Google is proud to be an equal opportunity workplace and is an affirmative action employer. We are committed to equal employment opportunity regardless of race, color, ancestry, religion, sex, national origin, sexual orientation, age, citizenship, marital status, disability, gender identity or Veteran status. We also consider qualified applicants regardless of criminal histories, consistent with legal requirements. See also Google's EEO Policy and EEO is the Law. If you have a disability or special need that requires accommodation, please let us know by completing our Accommodations for Applicants form . ::: ### 職缺所需能力: #### Minimum qualifications: - CS學士學位或相等實務經驗 - 成大資工學士&碩士 - 具備一種或多種程式語言(例如:Python, C++, Java)的3年軟體開發經驗 - 刷題跟開發多以C++為主,Python還不熟悉 - 具備以下一項或多項經驗:Unix/Linux environments, [distributed and parallel systems](https://www.geeksforgeeks.org/operating-system-difference-between-distributed-system-and-parallel-system/), service development, machine learning - distributed and parallel systems還沒有到很了解;service development沒有相關經驗 - 具備物件導向程式語言能力 - 除了C++之外,JavaScript也有兩三年的開發經驗 #### Preferred qualifications: - 具備以下經驗:algorithms, [data infrastructure](https://en.wikipedia.org/wiki/Data_infrastructure), data analysis, system evaluation and testing - 演算法及資料分析有修課經驗;data infrastructure跟系統評估與測試沒有相關經驗 ### 匹配度分析: 1. 這個職位跟我目前碰過的領域沒有很重疊,硬要說的話大概只有程式能力的要求有對上,以及對於演算法和資料分析有概念。 2. 目前在做的研究是演算法設計,會直接從數學上去證明演算法的理論上/下限在哪,會更精準的判斷這個演算法的優缺點及應用場景(但我不確定這種理論的東西在實際的產品開發到底有沒有用處)。 3. 這個職缺會希望有測試跟評估的能力,我缺乏對實際產品或大型專案做分析的經驗,如果要補這個能力的話,目前想到的方法是去實習or參與大型專案。 4. 總結來說,這份職缺是比較偏向自身興趣的(對於Google Nest這種跟使用者互動的智慧家居型產品有興趣),但如果要找這類的職缺,感覺這個領域的專業知識跟algorithm是個需要補好的洞。 ### 面試參考資料: - [[ 2022 ] Test Engineer Interview — Google Nest, Taiwan](https://medium.com/drunk-wis/2022-test-engineer-interview-google-nest-taiwan-9247a3485eab) - [[心得] Google TW SWE 面試心得](https://www.ptt.cc/bbs/Soft_Job/M.1625903945.A.52F.html) - [Google Software Engineer University Graduate 2022 面試心得](https://www.technice.com.tw/experience/12297/) - [面試心得 (Google/Qualcomm/Amazon/Yahoo/LINE)|面試經驗分享](https://www.1111.com.tw/1000w/fanshome/discussTopic.asp?cat=FANS&id=340913) - [Taiwan Google 面試過程](https://www.1111.com.tw/1000w/fanshome/discussTopic.asp?cat=FANS&id=301667) - [Google TW SWE 面試心得分享](https://www.pttweb.cc/bbs/Soft_Job/M.1660443104.A.231) ## NVIDIA - [System Software Engineer, GPU - New College Graduate](https://tw.linkedin.com/jobs/view/system-software-engineer-gpu-new-college-graduate-at-nvidia-3731790806?utm_campaign=google_jobs_apply&utm_source=google_jobs_apply&utm_medium=organic) :::spoiler Job Description NVIDIA is searching for a highly motivated, creative engineer with experience in system software to join the GPU Software team. As someone who is hardworking and passionate about their work, you will design key aspects of our production GPU kernel drivers and embedded SW. You should demonstrate the ability to excel in an environment with complex software and hardware designs. #### What You'll Be Doing - Define, design, develop and verify features for our next-gen GPUs ; collaborating with hardware engineers and fellow software engineers. - Follow the devices all the way through the development process to the customer desktops, notebooks, workstations, data centers, and gaming console products that are used throughout the world. - Be heavily involved with the early modeling and simulation required to produce our world-class products. Have multiple opportunities to collaborate and communicate effectively with teams across the globe. #### What We Need To See - BS, MS or PhD degree in Computer Engineering, Computer Science, or related degree , or equivalent experience. - NCG or less than 1 year of software development experience. - Strong C programming, C++, and low-level driver experience as well as having shown initiative in pursuing independent coding projects. - Familiarity with computer system architecture, microprocessor, and microcontroller fundamentals (caches, buses, memory controllers, DMA, etc ). - Kernel experience with Linux, Android, Chrome, or Windows systems. - Experience with complex system-level debugging is invaluable. #### Ways To Stand Out From The Crowd - Background and strength with complex AI & GPU computing system architecture design is invaluable . - Familiarity with kernel level security concepts . - RISCV, Display and Graphics SW stack understanding on SOC. - Deep understanding of memory management and virtualization concepts. - Experience with embedded system SW concepts, e.g.: RTOS and overlay programming models. - Experience in the security domain and understanding of concepts such as secure boot, code integrity and confidentiality, TEE, keys provisioning . NVIDIA is widely considered to be one of the technology world’s most desirable employers. We have some of the most forward-thinking and hardworking people on the planet working for us. If you're creative, passionate , and self-motivated, we want to hear from you! NVIDIA is leading the way in groundbreaking developments in Artificial Intelligence, High-Performance Computing and Visualization. The GPU, our invention, serves as the visual cortex of modern computers and is at the heart of our products and services. Our work opens up new universes to explore, enables amazing creativity and discovery, and powers what were once science fiction inventions from artificial intelligence to autonomous cars. NVIDIA is looking for great people like you to help us accelerate the next wave of artificial intelligence . ::: ### 職缺所需能力: - CS相關學位的學士、碩士或博士學位 - NCG或少於一年的軟體開發經驗 - 擁有C、C++以及low-level driver開發經驗,並積極參與independent coding projects - C和C++有經驗,對low-level driver沒有概念 - 熟悉計算機系統架構、微處理器和微控制器基礎知識 - 大學部有修過計組、OS和微算機,具備基礎知識 - 具有Linux、Android、Chrome或Windows系統的kernel經驗 - 沒有相關經驗 - 具有complex system-level debugging經驗 - 沒有相關經驗 ### 匹配度分析: 1. 要求的程式語言有開發經驗 2. 具備計算機系統架構、微處理器和微控制器基礎知識 3. 對於kernel或system-level的開發沒有相關經驗,且針對Ways To Stand Out From The Crowd中所提及的優勢概念薄弱,都不具備實作經驗 4. 匹配度大概只有要求的語言跟一些基礎知識有對到,其他提及的專有名詞雖然在閱讀研究領域的論文時會看到,但都不會有深入且完整的了解或實作 ### 面試參考資料: - [2022 新鮮人 軟體工程師面試分享- 研替(Synology, Nvidia, Trend Micro)](https://www.technice.com.tw/experience/12718/) - [Nvidia TW swe面試心得](https://www.ptt.cc/bbs/Soft_Job/M.1686934438.A.C24.html) - [研替面試心得 (M/R/P/Q/Google/Ring/NV)](https://disp.cc/b/Tech_Job/eMRb) ## 聯發科 - [校招/研發替代役/應屆預聘正職_軟韌體開發_ AI&Computing Platform](https://tw.linkedin.com/jobs/view/2024%E6%A0%A1%E6%8B%9B-%E7%A0%94%E7%99%BC%E6%9B%BF%E4%BB%A3%E5%BD%B9-%E6%87%89%E5%B1%86%E9%A0%90%E8%81%98%E6%AD%A3%E8%81%B7-%E8%BB%9F%E9%9F%8C%E9%AB%94%E9%96%8B%E7%99%BC-ai-computing-platform-%E6%96%B0%E7%AB%B9-at-%E8%81%AF%E7%99%BC%E7%A7%91-3710887195?refId=T2116ae4T%2BcWXxey6s2%2BbQ%3D%3D&trackingId=PkQSWrT12DQ7tqvIVa0G1g%3D%3D&trk=public_jobs_topcard-title) :::spoiler Job Description #### Job Description (請留意:為加快面試安排時間,2024校招僅限定投遞5個職缺)我們在找這樣的你: 資工/資管/電子/電機/電信/通訊/電控相關研究所背景,對行動通訊、無線及寛頻連結、家庭娛樂晶片解決方案有濃厚興趣的2024年應屆畢業生。 勇於表達意見,以團隊成功為目標,面對困難不輕易放棄,總是在想更好的做法,擁有創新及不斷學習的精神。 聯發科技邀請您,與全球最頂尖的菁英一同合作,彼此激盪最新的創意與解法,共同挑戰每一個不可能。 #### Requirement [2024年應屆碩士/博士畢業生適用,投遞履歷請附上大學/研究所成績單] 歡迎具備以下經驗及專長的你: 1. 具AI或機器學習(Reinforcement learning、Machine Learning、Deep Learning、NLP、Image Recognition, …etc)課程實作經驗;2. 或具資料探勘/資料科學/資料分析課程實作經驗;3. 熟悉Python / JavaScript / Java 語言;4. 具備解決問題的能力,及良好團隊合作與溝通能力 ::: ### 職缺所需能力: - 資工/資管/電子/電機/電信/通訊/電控相關研究所背景 - 具AI或機器學習(Reinforcement learning、Machine Learning、Deep Learning、NLP、Image Recognition, …etc)課程實作經驗 - 具備上述列舉內容(除了NLP)之課程實作經驗 - 具資料探勘/資料科學/資料分析課程實作經驗 - 具備上述列舉內容之課程實作經驗 - 熟悉Python / JavaScript / Java 語言 - JavaScript熟悉;Python尚可;Java不熟 - 具備解決問題的能力,及良好團隊合作與溝通能力 - 對於團隊合作及溝通能力有自信 ### 匹配度分析: 1. 這個職位要求的蠻多內容都跟我學過的東西有對到 2. Python還沒有很熟悉,需要加強 3. 資料分析相關能力還能再加強 4. 坦白講整個碩一都在修AI相關課程,實驗室meeting也是每週都會聽同學報AI的paper,對這個領域並沒有很感興趣,所以雖然職位要求蠻合適的,但自身興趣不高 ### 面試參考資料: - [【聯發科 MTK 面試心得】聯發科 3 大面試準備方向](https://www.1111.com.tw/1000w/fanshome/discussTopic.asp?cat=FANS&id=298305) - [2023 年後面試分享(聯發科、群聯、群暉、知微科技)](https://www.dcard.tw/f/tech_job/p/241606966) - [發哥(聯發科)上機考題目整理](https://hackmd.io/@Rance/SkSJL_5gX) - [2019面試經驗分享](https://hackmd.io/@FJZUEFh9RreTxniryYVM6w/HksUY8Lxr#2019%E9%9D%A2%E8%A9%A6%E7%B6%93%E9%A9%97%E5%88%86%E4%BA%AB) - [聯發科 面試心得分享](https://jaime-lin.medium.com/%E8%81%AF%E7%99%BC%E7%A7%91-%E9%9D%A2%E8%A9%A6%E5%BF%83%E5%BE%97%E5%88%86%E4%BA%AB-6ea005a8e9b9 ) ## 面試題目 ## 模擬面試 >interviewer: 🤖 >interviewee: 👀 🤖:請你先簡單的自我介紹一下 👀:我是XXX,畢業於成功大學資訊系,目前就讀成功大學資訊所碩二,預計明年8月會畢業。我在大二的時候在學校的計網中心打工,負責的內容是互動式網頁的功能維護及新增,使用到的程式語言有HTML, CSS和JavaScript。該互動式網頁主要功能為將JavaScript檔案中不同的模組、類別和函式建立圖形化的關聯。大三的專題是寫一套JavaScript文檔轉換閱讀系統,第一個介面會先將一份或多份的JavaScript檔案依照schema的定義轉換成MongoDB的物件形式並存入後端資料庫,然後另一個介面會把資料庫中指定文檔抓出來,並顯示成方便瀏覽的文件網站,以此大幅降低大型專案trace code的時間成本。使用到的技術有Node.js和MongoDB。大四在學習SQL的時候建立個一個簡易的遊戲查找系統,可以透過網頁內嵌按鈕或使用者自行輸入的方式使用MySQL去後端抓對應的資料出來顯示(例如遊戲上市日期、角色...等資訊)。碩一修了蠻多AI和機器學習的課,對於常見的任務類型跟常用的模型都有所了解。 🤖:聽起來你做過蠻多網頁前後端的開發,在這個過程有遇到什麼瓶頸嗎?遇到又是如何解決的? 👀:有,當初在做JavaScript文檔轉換閱讀系統時,因為還不熟悉系統設計流程,直接讓全部負責parsing的function都在網頁前端跑,這樣會讓網頁在轉換的時候卡住,而萬一轉換流程出現預期以外的錯誤也會導致網頁crash掉。當時是負責帶我的學長發現的,他建議我可以把負責轉換的function交給worker來執行,這樣它會在獨立的背景執行緒執行,不會跟網頁的JavaScript搶CPU。 🤖:好,那你的parser是怎麼運作的,可以簡單講一下他的原理嗎? 👀:沒問題,一開始我是透過JavaScript文檔的特性去抓關鍵字,例如應該被判斷成類別的class跟其他地方出現的class有什麼不同,因此當時的開發相當於遇到什麼就去改條件,等於說parser對於JavaScript文檔的限制多且容易出錯。後來學過編譯系統後,就運用所學去寫scanner去抓token,並透過gramma讓parser去轉換,以此讓轉換過程更穩定且不會出錯。 🤖:原來如此,那這邊想問你一些AI相關概念,可以請你解釋一下Semantic Segmentation和Instance Segmentation的差別嗎? 👀:Semantic Segmentation的重點在區分類別,所以假設圖片裡有三個人重疊在一起,他們會一起被分割成一個區塊,類別是人類。Instance Segmentation的重點是區分不同的物體,所以如果是上述的情況會將三個人分別切成不同區塊。 🤖:很好,那接著會需要考白板題... 👀:(REACTO...)