# 2023 年「[資訊科技產業專案設計](https://hackmd.io/@sysprog/info2023/https%3A%2F%2Fhackmd.io%2F%40sysprog%2FS11ooE4Rh)」課程第 3 次作業 --- ## 符合興趣與規劃的職缺、該職缺需要的能力 列出 [IC 產業結構和軟體工程師的機會和](https://hackmd.io/@sysprog/BkE4X5vvF)《[0 到 100 的軟體工程師面試之路](https://ithelp.ithome.com.tw/articles/10288192)》 ### 1.NVIDIA [AI Algorithms SW Engineer - New College Graduate](https://nvidia.wd5.myworkdayjobs.com/en-US/NVIDIAExternalCareerSite/job/AI-Algorithms-SW-Engineer---New-College-Graduate_JR1973032?locationHierarchy1=2fcb99c455831013ea52ed162d4932c0) **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. * 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 in Computer Science, Computer Engineering or Electrical Engineering or related field in Deep Learning, Machine Learning and Computer Vision. * Algorithm development experience data analytics, especially with LLM’s and Multi-Modal Foundation models * Experience working with deep learning frameworks like TensorFlow and pyTorch. * Strong communication skills. ### 2. Mediatek [Machine Learning and Computer Vision Algorithm Engineer (AI)](https://careers.mediatek.com/eREC/JobSearch/JobDetail/MTK120160906004?returnUrl=%2FeREC%2FJobSearch%3FsortBy%3D%26order%3D%26page%3D1%26searchKey%3D%26category%3D%26workExp%3D%26branch%3D0000009256%26program%3D50) **Job Description** 1. AI Vision Algorithm Development 2. AI Video Algorithm Development 3. Edge platform-aware Algorithm Development and Optimization 4. Advanced AI Algorithm Development (1) Neural network optimization (2) Neural network design automation (3) Self-supervised/unsupervised learning (4) Continuous learning 5. Edge AI SW platform development **Requirement** 1. Familiar with deep learning framework: Tensorflow, Pytorch, Caffe/Caffe2. 2. Familiar with on-device framework for mobile/embedding devices: TFLite, ANN. 3. Required programming language: Python, C/C++, Java. 4. 2+ years experience in deep learning algorithm/model development/optimization, model training methodology. 5. Have experience in developing deep learning algorithms for mobile/embedding devices. 6. Familiar with software development and software engineering, version control system ### 3.Synology [Software Developer (e-Commerce)](https://career.synology.com/zh-tw/HQ/position/184) **職務說明** 此職務專注於電商系統開發,此系統負責公司硬體線上販售。需與 PM、前端工程師及設計師進行跨部門溝通合作,你將與我們共同開發出高可用性、高擴展性且易於維護的服務,同時確保系統和資料的安全性 我們正在尋找能夠從不同領域引入新想法的工程師,擴大我們的開發團隊以打造更完善的系統服務 你將協助我們: - 以 OOP 和 MVC 概念來設計和開發與使用者互動的響應式網站服務 - 獨立使用後端框架開發系統,並規劃及實作 Database Schema 和 RESTful APIs - 與 IT 討論系統架構,並協助佈署和上線系統 - 與 QA 合作系統 debug 並修復問題 - 開發和維護能重複利用的模組 **職務需求** 我們期待你具備: - 熟悉 Python / Golang / PHP 至少一種語言 - 熟悉 MySQL / PostgreSQL 至少一種資料庫 - 獨立開發網站的能力, 會使用 MVC 架構或相關 framework - 與前端工程師討論 API 串接格式並實作經驗 - Git 版本控制系統使用經驗 - 個性認真、配合度高、溝通能力佳、企圖心強,並有強烈學習意願 加分條件: - 有雲端服務 AWS/Azure/GCP 佈署系統經驗 - 熟悉串接金流功能者 (E.g. Stripe) - 瞭解 Adobe Magento 的使用並串接其 API 或是將其原本功能做客製化 - 有網站前端的開發知識 --- ## 自身評估 --- - 學歷 - 國立成功大學 資訊工程所 碩士(在學) - 國立台灣海洋大學 資訊工程學系 學士 - 具備相關能力 - 熟悉python - 熟悉影像處理/電腦視覺 - 熟悉前後端開發 - 熟悉DL/ML相關開發 - leetcode 寫了138題(持續增加中) - 缺乏 相關能力 - 沒有實習經驗 - 沒有發表頂會 - 非純血電資:海大資工,成大資訊所 - 不熟悉CI/CD工具與自動化流程 - 不熟悉雲端服務 --- ## 模擬面試 [Synology Software Developer (e-Commerce)](https://career.synology.com/zh-tw/HQ/position/184) > 太陽🌞:interviewer 章魚🐙:interviewee 🌞: 你好,從我手上這份簡歷,我感受到您對程式設計的熱情和專業,但在我們談及工作內容前,可以先做一個簡單的自我介紹嗎? 🐙: 好的(用約2分鐘來自我介紹) 🌞:對於本公司你的印象是什麼? 🐙:貴公司是世界最大的NAS廠商,NAS是類似於私有雲的概念,一台機器只提供讀取與儲存及相關管理服務,並且通常使用RAID來提高安全性,同時即使網路伺服器掛掉也可以直接連NAS來讀存檔案,即不依賴網路環境 🌞:那你知道本公司的其他產品嗎? 🐙:我有先看過貴公司的官方網站,裡面還有監控裝置、備份裝置與路由器等等 🌞:你知道本部門是負責甚麼的嗎? 🐙:貴部門主要是負責電商系統開發,開發出線上販售相關網站,並且在開發過程中強調資料與系統安全性,資料安全性上主要是因為線上販售會涉及到用戶相關金融帳戶密碼,因此要防止不肖人士竊取用戶資料,系統安全性上主要是為了避免race condition問題,造成購買方的爭議 🌞:依照你剛剛提到的安全性問題,請問對於資料安全性的部分,您有甚麼初步的想法嗎? 🐙:在電商平台上駭客攻擊的最常見手段是DOS/DDOS或者SQL injection,前者可以利用升級設備或者使用無效封包清洗機制或者將流量分散等方式來解決,至於SQL injection 的部分則可以在撰寫程式碼的時候可以將SQL語句全部參數化,避免用拼接字串的形式來查詢即可。 🌞:那對於系統安全性的部分,假設今天有1000000筆下單請求,但是我們的服務器一次只能服務一筆請求,假如會發生race condition,能說說你的想法來解決嗎? 🐙:為了防止race condition 首先我們要先確認那些部分是cridical section,且同一時間只允許一筆請求進入cridical section,在來是用某個條件來判斷是否進入cridical section,但需要保證這個條件是atomic的,即他不會被中斷,只要判斷開始就把指令完全做完才可去做其他指令,取atomic不可分割的特性而命名,而在此前提下我們有很多種方法可以避免race condition,我想到的是可以用mutex lock 或者semaphores來實現,兩者都是透過atomic的變數增減來讓單一的請求進入,只是semaphores比mutex更自由,mutex 只能由lock的thread 來解鎖,但semaphores沒有限制 🌞:了解了,好的那現在進行白板題面試環節 接著Coding Interview...