# 2024 年「資訊科技產業專案設計」第三次作業 ## [MediaTek Inc.](https://www.104.com.tw/job/7dojg?jobsource=index_job_c) ### 影像處理演算法工程師 ::: spoiler Job Descriptions & Requirement ### 工作內容 1. 智慧型手機相機演算法開發 2. 影像處理演算法開發 3. 電腦視覺演算法開發 ### 條件要求 * 工作經歷 : 不拘 * 學歷要求 : 碩士以上 * 科系要求 : 電機電子工程相關、資訊工程相關 * 語文條件 : 不拘 * 擅長工具 : C++ * 工作技能 : 不拘 * 其他條件 1. 熟悉影像處理演算法 2. 熟悉電腦視覺演算法 3. 熟悉相機功能及演算法 4. 熟悉訊號處理 5. 熟悉 C/C++ 語言程式設計 ::: #### 自身評估 :::danger * 主要開發語言是python,對C++開發不算熟悉 * 不太確定熟悉相機功能是甚麼意思 ::: :::success * 電機所碩士畢業(預計) * 有電腦視覺相關實作經驗 ::: --- ## [Google](https://www.google.com/about/careers/applications/jobs/results/137721392706527942-software-engineer-university-graduate-2025?q=%22Software%20Engineer%22&location=Taiwan&src=Online/House%20Ads/BKWS_LOC5&gad_source=1&gbraid=0AAAAA-TINRHMhVpqithGicLhpq9lbbtig&gclid=Cj0KCQiAi_G5BhDXARIsAN5SX7qw-1JwBhDZFeR3uXFZabahTNQq6Wu2qDZVBNb5Pb5VIEMbq94RXBIaAv2SEALw_wcB) ### Software Engineer ::: spoiler Job Descriptions & Requirement ### Minimum qualifications: Bachelor's degree in Computer Science, related technical field, or equivalent practical experience. Experience in computer science, data structures, algorithms, and software design. Experience in Software Development and coding in a general purpose programming language. ### Preferred qualifications: Master's degree or PhD in Computer Science or a related technical field. Experience programming in C, C++, Java, or Python. Experience with Unix/Linux or Windows environments, distributed systems, machine learning, information retrieval, and TCP/IP. ### About the job Google's software engineers develop the next-generation technologies that change how billions of users connect, explore, and interact with information and one another. Our products need to handle information at massive scale, and extend well beyond web search. We're looking for engineers who bring fresh ideas from all areas, including information retrieval, distributed computing, large-scale system design, networking and data storage, security, artificial intelligence, natural language processing, UI design and mobile; the list goes on and is growing every day. As a software engineer, you will work on a specific project critical to Google’s needs with opportunities to switch teams and projects as you and our fast-paced business grow and evolve. We need our engineers to be versatile, display leadership qualities and be enthusiastic to take on new problems across the full-stack as we continue to push technology forward. As a key member of a small and versatile team, you design, test, deploy and maintain software solutions. Due to business needs, we are prioritizing candidates that are available to start this position before the end of 2025. This role is eligible for visa sponsorship. Google is an engineering company at heart. We hire people with a broad set of technical skills who are ready to take on some of technology's greatest challenges and make an impact on users around the world. At Google, engineers not only revolutionize search, they routinely work on scalability and storage solutions, large-scale applications and entirely new platforms for developers around the world. From Google Ads to Chrome, Android to YouTube, social to local, Google engineers are changing the world one technological achievement after another. ### Responsibilities Build our platforms, systems, and networking infrastructure using experience with distributed systems, OS/kernel, network system design, and large-scale storage systems. Build internal systems used by Googlers globally. Mitigate reliability failures in a component or system. Create and support a productive and innovative team, including working with peers, managers, and teams. ::: #### 自身評估 :::danger * 對資料結構、演算法不精通 * 沒有分散式系統的實作經驗 * 對TCP/IP僅止於基本理論 ::: :::success * 電機所碩士畢業(預計) * 有機器學習/深度學習背景及經驗 * 有python, C++程式開發經驗 * 有軟體設計經驗 ::: --- ## [Nvidia](https://nvidia.wd5.myworkdayjobs.com/en-US/NVIDIAExternalCareerSite/details/AI-Algorithms-Software-Engineer--RDSS-Intern-_JR1989914-1?q=AI+Algorithms+Software+Engineer) ### AI Algorithms Software Engineer ::: spoiler Job Descriptions & Requirement NVIDIA is searching for Deep Learning algorithms architect to develop artificial intelligence (AI), computer vision algorithms and applications for our Metropolis for Factories and Manufacturing platforms. Artificial Intelligence is transforming how we collect, inspect, and analyze different kinds of sensor data that impacts everything from manufacturing automation, warehouse management, product inspections to safety workflows. NVIDIA Metropolis is leading this AI revolution, providing the tools, technologies, and expertise to meet every challenge with smarter, faster applications. This challenging role will require someone who deeply understands and can architect algorithms with Large Language and Multi-modal (LLM/LMM) Foundation models to advance the application of artificial intelligence and machine learning to the Manufacturing AI market. Practical experience in the use and the building of Computer Vision algorithms, models and tools will be critical. ### What You’ll Be Doing: * You will be a key member of a growing software team that can architect, analyze, develop and prototype key deep learning algorithms and solutions. * Work and collaborate with different software, research, and hardware teams across geographies for solving critical problems. * * Develop algorithms, such as zero/few-shot learning and unsupervised learning, to address challenges related to data scarcity and collection. * Optimize deep learning models for deployment using techniques like model distillation, quantization, pruning, and others to ensure the highest efficiency across platforms * Understand and analyze the interplay of hardware and software architectures on future applications. * Support engagements with customers and their third-party software providers, collaboration with Product Managements, Marketing, and Developer Technology teams. ### What We Need To See: * MS or PhD candidate graduating in 2025, with expertise in Computer Science, Computer Engineering, Electrical Engineering, or a related field with a focus on Deep Learning, Machine Learning, and Computer Vision. * Strong algorithm development experience, particularly in data analytics, with a focus on large language models (LLMs) and multi-modal foundation models. * Experience with advanced algorithms, including zero/few-shot learning, self-supervised and unsupervised learning, as well as domain adaptation methods like PEFT (Parameter-Efficient Fine-Tuning) and generative AI models for synthetic data creation. * Expertise in deep learning model optimization techniques, such as model distillation, quantization, pruning, and other methods that improve computational efficiency.. * Hands-on experience with deep learning frameworks like TensorFlow and PyTorch. * Strong communication skills. ::: #### 自身評估 :::danger * 沒有model distillation, quantization, pruning等對運算效率的實作及研究 ::: :::success * 電機所碩士畢業(預計) * 有機器學習/深度學習背景及經驗,pytorch與tensorflow皆有涉略,也有zero/few-shot, supervised and unsupervised learning的經驗,對LLM也有些許開發經驗 * 常常進行分組任務,有一定溝通能力 ::: ## [Resume](https://drive.google.com/file/d/1h-epPemtMb64anJWsMPr3mB1XFyaYjiW/view?usp=sharing) ## Mock interview > :eyeglasses: intervewer > :lemon: intervewee :eyeglasses: : 你好,我是負責主持今天面試的馬ㄍㄧㄚˋㄗㄨㄚˊ,檸檬先生,可以先簡單的介紹自己嗎? :lemon: : 你好,我是檸檬,目前就讀於成功大學電機所碩二。我的專業領域是機器學習,碩士論文主題聚焦於利用深度學習網路對肽鏈進行分類。我個性易於相處,擅長用風趣的方式化解壓力,並以自信的態度面對挑戰。在學術與專案中,我積累了豐富的合作經驗,無論是與夥伴分工還是共同解決問題,都能游刃有餘。期待未來能將所學應用於實際,持續成長並創造價值! :eyeglasses: : 聽起來你有一些專案實作經驗,那你可以分享一下嗎? :lemon: : 我最印象深刻的專案是簡歷中提到的"Element War",其中在Xavier這樣有限資源的載體上執行專案,對模型的選用尤為重要,由於期末周的壓力,我們整組在必須在相當有限的時間內完成這項挑戰,這個專案被要求需要用到生成式網路,而眾所周知,比較有名的生成式網路如GAN、Chatgpt都是很大的模型,在Xavier上運作是窒礙難行的。故我們選擇了tiny diffusion作為生成圖形的模型,並為其設計了一個有遊戲性的運用場景。我從這個專案學到了Xavier這樣的有限資源平台上,如何挑選適合的模型並進行優化,這加深了你對硬體和模型架構需求的理解,並學會如何平衡性能和資源消耗,也鍛煉了與團隊合作的能力,包括如何在有限時間內分工合作、高效解決問題,以及如何管理和應對壓力,更增強了你在創意設計和實際應用場景中進行系統設計的能力。 :eyeglasses: : 那你可以簡單說明一下diffusion model的原理嗎? :lemon: : 我認為Diffusion簡單來說,就是將逐步加噪的一系列圖片,透過模型逐步還原的這些照片,這個模型便擁有從雜訊生成圖片的能力。加噪過程通常是利用高斯分布將圖片加噪,最後成為白噪音,由此可以得到數張隨時間軸被不同程度高斯模糊化的圖片,而已Diffusion的ddpm方法舉例,輸入是t時段的圖片,而輸出結果應該是t-1時段的圖片,模型的輸出再與t-1時段的圖片越相似越好,以此達成訓練模型的目的。 :eyeglasses: : 那有甚麼是你覺得在這次專案中比較可惜的,沒有被解決掉的問題呢?你有沒有甚麼改善方案? :lemon: : 由於deadline比較緊迫,我與組員是接力撰寫程式的,而在coding type的不統一導致了很多時間是浪費在摸索其他人的code,我認為改善的方法包誇但不限於:將函式分類並額外寫成其他檔案、函數及變數命名格式統一、詳細撰寫註解。由於日後一定會有很多team project有分工的機會,我認為這是非常需要重視的問題。 :eyeglasses: : 我很認同,那謝謝妳參加這次面試,之後的資訊我們會再跟你聯繫,謝謝。 ## Reference 1. By 已經錄取Nvidia的高中同學 2. [在你面試前一定要做的事](https://ithelp.ithome.com.tw/articles/10304813) 3. [在你面試前一定要做的事2](https://ithelp.ithome.com.tw/articles/10305711)