# 資訊科技產業專案設計課程作業 3 ## Resume/CV >**簡單自介** >一名成大資工碩二生,在學時期有參與過學生app開發團隊(主要是後端和資料庫),碩一碩二都有實習經驗,目前主要研究方向為 Network、SDN、P4,程式以 C/C++、Python 為主。 [Resume](https://drive.google.com/file/d/16jvGQ6ks6ITDdfi6OxcxoqTFJs1QaAEp/view?usp=sharing) :::warning 尚未爬一些職位資訊(薪水、工時、氛圍、操不操)等等。 ::: ## Job Analysis > 分析 IC 設計公司和 FAANG/MAMAA 的職缺。 :::info **FAANG** 是 Facebook、Apple、Amazon、Netflix、Google 等5家公司合稱。 **MAMAA** 是 Meta (原FB)、Alphabet(Google母公司)、Microsoft、Amazon、Apple 的合稱。 ::: | 公司 | 職稱 | 研替 | 自評(滿分10) | | ---- | --- | --- | ---- | | Meta | Software Engineer, Infrastructure | x | 7.2 | | Meta | Software Engineer, Product | x | 7.1 | | Google | Software Engineer, Google Nest, Engineering Productivity | x | 8.9 | | Google | Software Engineer, Devices, Google Nest | x | 8.9 | | Google | Software Engineer, Embedded Software, Google Home Nest | x | 7.8 | | Microsoft | Software Engineer | x | 7.2 | | Amazon | Software Engineer - Connectivity, Ring | x | 5.9 | | Apple | Software Development Engineer | x | 6.9 | | 聯發科 | Embedded System software | o | 7.1 | | 聯發科 | AI&Computing Platform | o | 6.8 | | 聯發科 | SW engineering & automation Product security | o | 7.6 | | 聯發科 | IT Engineer | o | 8.0 | | 聯發科 | 5G 行動通訊 | o | 7.9 | | 達發 | 軟體/韌體工程師 | o | 7.4 | | 達發 | Switch自動化測試工程師 | o | 7.8 | | 台積電 | 2024 RDSS&AO 預聘暨研發替代役 IT | o | 7.6 | | Moxa | 自動化測試(高級)工程師 | - | 7.7 | | Moxa | 類比數位硬體研發工程師 | - | 7.3 | | 智邦 | 軟體自動測試工程師(B2500A) | x | 7.7 | | Cisco | Software Engineer - Taipei | x | 7.8 | | Edgecore | 自動化測試工程師 | x | 8.3 | --- ### Meta >[Meta all job opportunities](https://www.metacareers.com/jobs/) $143,000/year ~ $204,000/year + bonus + equity + benefits :::info Meta 好像有自己的一套[面試工具](https://www.metacareers.com/profile/trial/?redirect=job_details&chooseView=Hello+World)。 ::: :::spoiler [Software Engineer, Infrastructure (多處、含遠端)](https://www.metacareers.com/jobs/330470279471398/) - **Job description** - ++Minimum qualifications++: - 6+ years of programming experience in either C, C++, Java, C# or other relevant coding languages - 6+ years relevant experience building large-scale infrastructure applications or similar experience - Experience designing, analyzing and improving efficiency, scalability, and stability of various system resources - Experience owning a particular component, feature or system - Must obtain work authorization in country of employment at the time of hire, and maintain ongoing work authorization during employment - Bachelor's degree in Computer Science, Computer Engineering, relevant technical field, or equivalent practical experience. - ++Responsibilities++: - Design core, backend software components - Code using primarily C/C++, Java, PHP and Hack - Interface with other teams to incorporate their innovations and vice versa - Conduct design and code reviews - Analyze and improve efficiency, scalability, and stability of various system resources - Establish self as an owner of a particular component, feature or system with expert end-to-end understanding - Successfully completes projects at large scope while maintaining a consistent high level of productivity - **Self-assessment** - ++Advantage++ - 學歷符合。 - 本身在大學時期參與學生團隊 App 開發,期間有接觸 Docker、CI/CD、多平台( iOS, Android )整合,並有使用 Firebase、GCP 等雲端服務做 App 監測,和團隊協作撰寫API的經驗。 - App 開發/維護期間,基於原先架構獨立完成 Mobile Push Notification 的功能。 - 於智邦科技實習期間,協助開發軟韌體功能時,有使用過 C++ 撰寫 Unit test 的經驗。 - 於 Edgecore 實習期間,參與軟韌體自動化整合測試的開發與維護,整合測試結果後透過 Goolge 的 Looker studio 產生測試報告,協助團隊分析測試項目的 cause failure,獲得 ansible、jenkin、Looker studio 等自動化測試相關經驗。 - ++Disadvantage++ - 基本都需要6年經歷。 - 沒有大型程式開發架構經驗。 - Java 、Hack 不熟。 - 缺乏 High-Level Development 的觀念。 - work authorization :( 。 - **自我評分** - `7.2/10` - 感覺自我差距還是蠻大的,但仍可以試試看! ::: :::spoiler [Software Engineer, Product (Singapore)](https://www.metacareers.com/jobs/330470279471398/) > 看起來是新成立的 team。 - **Job description** - ++Minimum qualifications++: - Bachelor's degree in Computer Science, Computer Engineering, relevant technical field, or equivalent practical experience. - 7+ years of demonstrated experience driving change within an organization and leading complex technical projects - 7+ years of experience building large-scale infrastructure applications - 7+ years of experience building maintainable and testable code bases, including API design and unit testing techniques - 7+ years of experience working with relational databases and SQL - Experience with C, C++, Java, C# or other relevant coding languages - Experience improving stability through thoughtful code reviews, appropriate testing, proper rollout, monitoring, and proactive changes - ++Responsibilities++: - Full stack development with a variety of coding languages - Create consumer products and features using internal programming language Hack - Implement web or mobile interfaces using XHTML, CSS, and JavaScript - Work closely with our PM and design teams to define feature specifications and build products leveraging frameworks such as React & React Native - Work closely with operations and infrastructure to build and scale back-end services - Build report interfaces and data feeds - Sets direction and goals for the team regarding project impact, product quality and engineering efficiency - Leads major initiatives, projects, teams, rollouts and phased-releases - Helps to onboard new team members, provides mentorship and enables successful ramp up on your team's code bases - **Self-assessment** - ++Advantage++ - 學歷符合。 - 本身在大學時期參與學生團隊 App 開發,期間有接觸 Docker、CI/CD、多平台( iOS, Android )整合,並有使用 Firebase、GCP 等雲端服務做 App 監測,和團隊協作撰寫API的經驗。 - 團隊有獨立的 UI/UX team,有跨部門協作的經歷。 - App 維護期間,有使用 PHP、NodeJS、Golang 重構後端的經歷,前端 React Native 因為 Push Notification 功能開發緣故也接觸過一點。 - 於智邦科技實習期間,協助開發軟韌體功能時,有使用過 C++ 撰寫 Unit test 的經驗。 - 於 Edgecore 實習期間,參與軟韌體自動化整合測試的開發與維護,整合測試結果後透過 Goolge 的 Looker studio 產生測試報告,協助團隊分析測試項目的 cause failure,獲得 ansible、jenkin、Looker studio 等自動化測試相關經驗。 - ++Disadvantage++ - 基本都需要7年經歷。 - Java 不熟。 - Front-end 沒有太多經驗。 - 缺乏 High-Level Development 的觀念。 - **自我評分** - `7.1/10` - 感覺自我差距還是蠻大的,但仍可以試試看! ::: --- ### Google >[Google all job opportunities](https://www.google.com/about/careers/applications/jobs/results/) >(Taipei) NT$504K ~ NT$1M/yr [來源](https://www.glassdoor.com/Salary/Google-Software-Engineer-Salaries-E9079_D_KO7,24.htm?selectedLocationString=N%2C240&filter.jobTitleExact=Software+Engineer&employerId=9079&experienceLevel=LESS_THAN_ONE) :::spoiler [Software Engineer, Google Nest, Engineering Productivity](https://www.google.com/about/careers/applications/jobs/results/81445665319592646-software-engineer-google-nest-engineering-productivity) - **Job description** - ++Minimum qualifications++: - Bachelor's degree in Computer Science, Electrical Engineering, a related field, or equivalent practical experience. - 2 years of experience with software engineering. - Experience coding with Python and Java. - ++Preferred qualifications++: - Master's degree in Computer Science or related technical field. - Experience with hardware, platform, software integration, and test automation. - Passion for tools and infrastructure. - ++Responsibilities++: - Build a stable and reliable automated test suited to validate Google devices working together in a continuous integration system. - Develop virtualization and device simulators based automated feature validation and validate algorithms running on devices and validate improvements to ship high quality products. - Develop test hooks to monitor code health and system stability and identify key product indicators and build analytics that drive new features and improvements. - Root-cause failures and indicator changes, through automated analysis and metrics. Drive key performance indicators for performance and latency for devices. - Writing the tools that measure and give insight on performance bottlenecks in our devices and systems. - **Self-assessment** - ++Advantage++ - 學經歷符合 - 自大二開始就開始使用 python 開發程式。 - 樂於開發 tool 加速整體開發速度。 - 本身在大學時期參與學生團隊 App 開發,期間有接觸 Docker、CI/CD、多平台( iOS, Android )整合,並有使用 Firebase、GCP 等 Google Cloud services 做 App 監測的經驗。 - 於智邦科技實習期間,協助開發軟韌體功能時,有使用過 C++ 撰寫 Unit test 的經驗。 - 於 Edgecore 實習期間,參與軟韌體自動化整合測試的開發與維護,整合測試結果後透過 Goolge 的 Looker studio 產生測試報告,協助團隊分析測試項目的 cause failure,獲得 ansible、jenkin、Looker studio 等自動化測試相關經驗。 - ++Disadvantage++ - 部分服務沒有非常深入學習,專業知識可能仍不足。 - **自我評分** - `8.9/10` - 畢竟 Google 是我夢想的工作,看了一下上面的 requirement,覺得自己其實蠻符合的,可以試試看! ::: :::spoiler [Software Engineer, Devices, Google Nest](https://www.google.com/about/careers/applications/jobs/results/105714584184070854-software-engineer-devices-google-nest) >基本上和上一個一樣 - **Job description** - ++Minimum qualifications++: - Bachelor's degree in Computer Science, Electrical Engineering, a related field, or equivalent practical experience. - 2 years of experience with software engineering. - Experience coding with Python and Java. - ++Preferred qualifications++: - Master's degree in Computer Science or related technical field. - Experience with hardware, platform, software integration, and test automation. - Passion for tools and infrastructure. - ++Responsibilities++: - Build a stable and reliable automated test suited to validate Google devices working together in a continuous integration system. - Develop virtualization and device simulators based automated feature validation and validate algorithms running on devices and validate improvements to ship high quality products. - Develop test hooks to monitor code health and system stability and identify key product indicators and build analytics that drive new features and improvements. - Root-cause failures and indicator changes, through automated analysis and metrics. Drive key performance indicators for performance and latency for devices. - Writing the tools that measure and give insight on performance bottlenecks in our devices and systems. - **Self-assessment** - 同上 - **自我評分** - 同上 ::: :::spoiler [Software Engineer, Embedded Software, Google Home Nest](https://www.google.com/about/careers/applications/jobs/results/127645769529205446-software-engineer-embedded-software-google-home-nest) - **Job description** - ++Minimum qualifications++: - Bachelor's degree in Electrical Engineering, Computer Science, relevant technical field, or equivalent practical experience. - Experience with C/C++. - Experience with data structures or algorithms. - ++Preferred qualifications++: - Master's degree in Computer Science or related technical field. - Experience with hardware, platform, software integration, and test automation. - Passion for tools and infrastructure. - ++Responsibilities++: - Design and develop the device software stack for next generation Smart Home router and mesh networking software. Work across the entire stack from kernel, driver, cutting-edge wireless, and wired connectivity technologies all the way to future connectivity services in user space. - Work cross-functionally with adjacent Google Nest products and Google Cloud/App teams. - Write robust, performant, and maintainable code. - Contribute to device software architecture to enable future Nest Wifi product strategy. - Own full software cycle from prototype, design, development, testing, integration, debugging to product launch and collaborate with cross-functional teams including PM, UX, EngProd, and Partner Engineering. - **Self-assessment** - ++Advantage++ - 學經歷符合。 - 樂於學習,喜歡開發小 tool 優化生活,大學的計算理論期末專題開發防疫點名 line-bot 小幫手。 - 本身在大學時期參與學生團隊 App 開發,期間有接觸 Docker、CI/CD、多平台( iOS, Android )整合,並有使用 Firebase、GCP 等雲端服務做 App 監測的經驗。 - 在大學時有修習軟體工程,了解產品開發的 workflow。 - 於智邦科技實習期間,協助開發軟韌體功能時,有使用過 C++ 撰寫 Unit test 的經驗。 - 於 Edgecore 實習期間,參與軟韌體自動化整合測試的開發與維護,整合測試結果後透過 Goolge 的 Looker studio 產生測試報告,協助團隊分析測試項目的 cause failure,獲得 ansible、jenkin、Looker studio 等自動化測試相關經驗。 - 畢業專題、碩班研究方向和實習都是屬於 Networking 相關,也參加過 CTF、CYBERSEC、HITCON 等 Network Security 相關的活動。 - 有修習過成大 IoT 課程--物聯網核心網路技術。 - ++Disadvantage++ - IoT 領域沒有學到很深入,僅參與過應用層的開發,相關知識缺乏。 - **自我評分** - `7.8/10` - 自己對 IoT 沒有很興趣,但有 Google 加成。 ::: --- ### Microsoft >[Microsoft all job opportunities](https://jobs.careers.microsoft.com/global/en/search?rt=university) >(U.S. entry level) -- $94,300 ~ $182,600/year. >Up to 100% work from home :::spoiler [Software Engineer](https://jobs.careers.microsoft.com/global/en/share/1659306/?utm_source=Job Share&utm_campaign=Copy-job-share) - **Job description** - ++Minimum qualifications++: - Bachelor's Degree in Computer Science or related technical field AND 2+ years technical engineering experience with coding in languages including, but not limited to, C, C++, C#, Java, JavaScript, or Python OR equivalent experience. - 2+ years of experience debugging of application and infrastructure code - ++Preferred Qualifications++: - Bachelor's Degree in Computer Science, or related technical discipline AND 5+ years technical engineering experience with coding in languages including, but not limited to, C, C++, C#, Java, JavaScript, or Python OR equivalent experience. - 4+ years of experience debugging of application and infrastructure code - Design and development experience in database engines, distributed systems, cloud computing, container technology, and operating system internals - ++Responsibilities++: - Own the lifecycle of software products and services. Leads discussions for the architecture of products/solutions and creates proposals for architecture by testing design hypotheses and helping to refine code plans. - Drives identification of dependencies and the development of design documents for a product, application, service or platform. Identifies other teams and technologies that will be leveraged, how they will interact, and when one's own system may provide support to others. - Builds, enhances, reuses, contributes to, and identifies new software developer tools to support other programs and applications to create, debug, and maintain code for products. - **Self-assessment** - ++Advantage++ - 學經歷符合。 - 有修習過成大開設之分散式系統。 - 有利用 container 開發的經驗。 - 有開發工具的經驗。 - ++Disadvantage++ - Java 不熟。 - **自我評分** - `7.2/10` - 微軟的東西不熟,但大廠名稱加成,而且基本學經歷都還算符合,可以試試看! ::: --- ### Amazon :::spoiler [Software Engineer - Connectivity, Ring](https://amazon.jobs/en/jobs/2496775/software-engineer-connectivity-ring) - **Job description** - ++Minimum qualifications++: - 3+ years of non-internship professional software development experience - 2+ years of non-internship design or architecture (design patterns, reliability and scaling) of new and existing systems experience - Experience programming with at least one software programming language - ++Preferred Qualifications++: - 3+ years of full software development life cycle, including coding standards, code reviews, source control management, build processes, testing, and operations experience - Bachelor's degree in computer science or equivalent - Knowledge of wireless embedded systems or architecture - Experience with wireless networking hardware such as routers, wireless station, wireless access points - Knowledge of 802.11, 802.3, DHCP, TCP/IP stack of wireless technology or BLE protocol and stack. - Experience with Linux or RTOS development. - **Self-assessment** - ++Advantage++ - 學歷符合。 - ++Disadvantage++ - 經歷不符合。 - Wireless embedded system、wireless protocol、RTOS不熟。 - **自我評分** - `5.9/10` - 經歷的部分可能就沒辦法,如果確定要朝這放面應聘,其他的 Preferred Qualifications 是可以加強的目標。 ::: --- ### Apple :::spoiler [Software Development Engineer](https://jobs.apple.com/zh-tw/details/200510948/software-development-engineer?team=SFTWR) - **Job description** - ++Key qualifications++: - Master’s degree or foreign equivalent in Information Technology, Computer Science or related field and 2 years of experience in the job offered or related occupation. - Education and/or experience with each of the following skills is required: - Java Test Automation - Python Test Automation - Restful API framework for CI or CD - Create complex test plans based on code review of complex systems - UI and API test automation - AWS Cloud systems - JavaScript Test Automation - **Self-assessment** - ++Advantage++ - 學歷符合。 - 有寫過 Pytest、Javascript test。 - 在學和實習都有接觸到 CI/CD。 - 實習時團隊常以 test plan 進行討論,有相關經驗。 - ++Disadvantage++ - 沒有2年工作經歷。 - Java 不熟。 - AWS Cloud 不熟。 - 沒有接觸過 UI test。 - **自我評分** - `6.9/10` - 部分沒有開發經驗,但可以丟丟看。 ::: --- ### 聯發科 >[All job oppotunities](https://careers.mediatek.com/eREC/JobSearch?sortBy=&order=&page=1&searchKey=%E7%A0%94%E7%99%BC%E6%9B%BF%E4%BB%A3%E5%BD%B9&category=&workExp=&branch=&program=) >以研替為主搜尋 :::spoiler [2024校招/研發替代役/應屆預聘正職_軟韌體開發_ Embedded System software (新竹、台北)](https://careers.mediatek.com/eREC/JobSearch/JobDetail/MTK120230901008?returnUrl=%2FeREC%2FJobSearch%3FsortBy%3DExtJobCategoryName%26order%3Ddescending%26page%3D1%26searchKey%3D%25E7%25A0%2594%25E7%2599%25BC%25E6%259B%25BF%25E4%25BB%25A3%25E5%25BD%25B9%26category%3D%26workExp%3D%26branch%3D%26program%3D) - **Job description** - ++Minimum qualifications++: - 資工/資管/電機/電子/通訊相關研究所畢 - 嵌入式系統 (Embedded System) / Computer Organization & Architecture (計算機組織 & 結構) / 作業系統 (Operating System) / 資料結構 (Data Structure) / 程式語言 (Programming Language) - RTOS (Real-time Operating System) / Linux / Android - **Self-assessment** - ++Advantage++ - 學經歷符合。 - 在學期間修過相關課程。 - ++Disadvantage++ - 嵌入式系統不熟。 - RTOS不熟。 - **自我評分** - `7.1/10` ::: :::spoiler [2024校招/研發替代役/應屆預聘正職_軟韌體開發_ AI&amp;Computing Platform (新竹)](https://careers.mediatek.com/eREC/JobSearch/JobDetail/MTK120230901006?returnUrl=%2FeREC%2FJobSearch%3FsortBy%3DExtJobCategoryName%26order%3Ddescending%26page%3D1%26searchKey%3D%25E7%25A0%2594%25E7%2599%25BC%25E6%259B%25BF%25E4%25BB%25A3%25E5%25BD%25B9%26category%3D%26workExp%3D%26branch%3D%26program%3D) - **Job description** - ++Minimum qualifications++: - 具AI或機器學習(Reinforcement learning、Machine Learning、Deep Learning、NLP、Image Recognition, …etc)課程實作經驗 2. 或具資料探勘/資料科學/資料分析課程實作經驗 3. 熟悉Python / JavaScript / Java 語言 4. 具備解決問題的能力,及良好團隊合作與溝通能力 - **Self-assessment** - ++Advantage++ - 學經歷符合。 - 有修過相關課程。 - ++Disadvantage++ - 雖然有修過AI相關課程,但都沒有到很深入,也沒很有興趣。 - **自我評分** - `6.8/10` ::: :::spoiler [2024校招預聘_軟韌體開發_SW engineering & automation Product security (新竹、台北)](https://careers.mediatek.com/eREC/JobSearch/JobDetail/MTK120230901003?returnUrl=%2FeREC%2FJobSearch%3FsortBy%3DExtJobCategoryName%26order%3Ddescending%26page%3D1%26searchKey%3D%25E7%25A0%2594%25E7%2599%25BC%25E6%259B%25BF%25E4%25BB%25A3%25E5%25BD%25B9%26category%3D%26workExp%3D%26branch%3D%26program%3D) - **Job description** - ++Minimum qualifications++: - 熟悉 Android/Linux 行動安全或軟體漏洞開採技術 - Computer Organization & Architecture (計算機組織 & 結構) / 作業系統 (Operating System) - 具安全代碼審查、漏洞分析經驗 - 具安全測試經驗尤佳 (例如: 模糊測試和滲透測試) - 熟悉軟體工程或具著開發流程管理或自動化經驗者尤佳 - 曾發表過 CVE 者或參與資安競賽/Bug Bounty 者尤佳 - **Self-assessment** - ++Advantage++ - 修過相關課程。 - 有玩過CTF,學過逆向工程。 - 修習過軟體工程。 - 開發過自動化測試。 - 接觸過CI/CD。 - 參加過金盾獎。 - 對資安領域很有興趣,也會參與hitcon、cybersec等活動。 - ++Disadvantage++ - 資安領域有興趣但沒有很強 :( - 相關經驗缺乏。 - **自我評分** - `7.6/10` ::: :::spoiler [2024校招/研發替代役/應屆預聘正職_資訊(Information Technology)工程師 (新竹)](https://careers.mediatek.com/eREC/JobSearch/JobDetail/MTK120230901011?returnUrl=%2FeREC%2FJobSearch%3FsortBy%3DExtJobCategoryName%26order%3Ddescending%26page%3D1%26searchKey%3D%25E7%25A0%2594%25E7%2599%25BC%25E6%259B%25BF%25E4%25BB%25A3%25E5%25BD%25B9%26category%3D%26workExp%3D%26branch%3D%26program%3D) - **Job description** - ++Minimum qualifications++: - 具程式語言開發能力 (C / C++ / Java / Java Script / Shell Script / Python 擇一) - 有意願深入學習資訊相關領域科技, 電機資訊相關等工程系所尤佳 - 具備解決問題的能力,及良好團隊合作與溝通能力。 - **Self-assessment** - ++Advantage++ - 學經歷符合。 - ++Disadvantage++ - Java不熟。 - **自我評分** - `8.0/10` ::: :::spoiler [2024校招/研發替代役/應屆預聘正職_軟韌體開發_ 5G 行動通訊](https://careers.mediatek.com/eREC/JobSearch/JobDetail/MTK120230901004?returnUrl=%2FeREC%2FJobSearch%3FsortBy%3DExtJobCategoryName%26order%3Ddescending%26page%3D2%26searchKey%3D%25E7%25A0%2594%25E7%2599%25BC%25E6%259B%25BF%25E4%25BB%25A3%25E5%25BD%25B9%26category%3D%26workExp%3D%26branch%3D%26program%3D) - **Job description** - ++Minimum qualifications++: - 資訊/資管/電機/電子/通訊相關研究所畢,對於行動通訊產業有濃厚興趣 - 熟悉通訊原理、數位訊號處理、電腦網路、計算機組織、作業系統 - **Self-assessment** - ++Advantage++ - 學經歷符合。 - 有修過相關課程。 - 研究領域是網路。 - ++Disadvantage++ - 訊號處理沒有相關經歷。 - **自我評分** - `7.9/10` ::: --- ### 達發 :::spoiler [【2024 RDSS研發替代役】軟體/韌體工程師 ](https://www.104.com.tw/job/84axg?jobsource=job_same_b) - **Job description** - ++Minimum qualifications++: - Switch SDK with C-model integration and verification - Switch SDK auto testing framework development and maintenance - Switch IC verification - Switch/PHY IC driver development - Familiar with C/C++, Python, Tcl/TK and perl languages etc - Familiar with Linux, device driver, application and socket programming - With basic network knowledge (OSI 7 layer, ethernet, TCP/IP and network protocols) are preferred - **Self-assessment** - ++Advantage++ - 學經歷符合。 - 修過相關課程。 - 本身是網路研究領域。 - 有使用過 SONiC switch,並有撰寫switch功能自動測試經驗。 - ++Disadvantage++ - TCL/TK、perl不熟。 - Device driver經驗不多。 - **自我評分** - `7.4/10` ::: :::spoiler [【2024 RDSS研發替代役】Switch自動化測試工程師 ]() - **Job description** - ++Minimum qualifications++: - 依測試案例編寫自動化腳本並執行首次驗證 - 開發測試工具協助IC/FW之驗證 - 熟悉Python - 有TCP/IP程式經驗佳 - **Self-assessment** - ++Advantage++ - 學經歷符合。 - 有使用過 SONiC switch,並有撰寫switch功能自動化腳本測試經驗。 - ++Disadvantage++ - IC相關知識缺乏。 - **自我評分** - `7.8/10` ::: --- ### 台積電 :::spoiler [2024 RDSS&AO 預聘暨研發替代役](https://careers.tsmc.com/zh_TW/careers/JobDetail?jobId=559&source=104) - **Interested Job** - Taiwan_IT Engineer - **Job description** - ++Minimum qualifications++: - Major in IT, Computer Engineering, Software Engineering, Computer Science or related fields. - Familiar with development of C/C++ or JAVA Programming. - Familiar with Microservices Architecture Pattern, DevOps. - Familiar with Web Applications for PC and Mobiles.Familiar with Hadoop, Spark and Parallel Computing. - Candidates with multiple skill sets listed above is a plus - Experience in large-scale system integration, cloud computing, and social networking for factory automation is a plus. - Self-motivated, integrity, and result-oriented personality. - **Self-assessment** - ++Advantage++ - 學經歷符合。 - ++Disadvantage++ - GG很操(?)。 - **自我評分** - `7.6/10` ::: --- ### Moxa 404 >104有看到研替,但官網又沒看到,待進一步確認 :::spoiler [自動化測試(高級)工程師 (23006P)](https://www.104.com.tw/job/7w4gq?jobsource=company_job) - **Job description** - ++Minimum qualifications++: - 學歷:大學以上, 資工、電機、電子、機械工程相關科系畢業尤佳 - 經歷 : 大學畢2~4年以上,碩士畢0~2年以上,有相關工作經驗者尤佳 - 英文聽說讀寫中等,並且能用英語做基本對話(TOEIC600以上尤佳) - 功能測試(function test)、測試環境建置規劃、測試計劃及測試報告書撰寫 - **Self-assessment** - ++Advantage++ - 學經歷符合。 - ++Disadvantage++ - **自我評分** - `7.7/10` ::: :::spoiler [類比數位硬體研發工程師 [歡迎研發替代役] (ID: 23002V)](https://www.104.com.tw/job/7v9l1?jobsource=company_job) - **Job description** - ++Minimum qualifications++: - Education: 碩士以上,電機電子工程相關。 - Professional Certificates/Licenses: TOEIC 470以上 - Experience: 電子相關產業工作經驗-無經驗可。 - Language: 中文流利,英文聽說讀寫可 - **Self-assessment** - ++Advantage++ - 學經歷符合。 - ++Disadvantage++ - 內容與工業物聯網、硬體相關,興趣不大。 - **自我評分** - `7.3/10` - moxa 104只看到這個有研替... ::: --- ### 智邦 Accton >實習過,所以也順便看了一下 :::spoiler [軟體自動測試工程師(B2500A)](https://www.104.com.tw/job/7go21?jobsource=company_job) - **Job description** - ++Minimum qualifications++: - 執行自動化測試 - 自動化測試代碼實作 - 管理機架,依照測試需求變化機架內交換機與服務器配置內容與軟體安裝 - 維護與改善現有自動化軟體效能 - 與不同部門溝通合作,完成客戶需求 - **Self-assessment** - ++Advantage++ - 學經歷符合。 - requirement跟實習內容差不多。 - ++Disadvantage++ - TCL不熟。 - 薪水不高(?) - **自我評分** - `7.7/10` ::: --- ### 思科 Cisco :::spoiler [Software Engineer - Taipei](https://jobs.cisco.com/jobs/ProjectDetail/Software-Engineer-Full-time-Taipei-Sourcing/1409300?source=Cisco+Jobs+Career+Site&tags=CDC+Browse+all+jobs+careers) >Early in Career - **Job description** - ++Minimum qualifications++: - Collaborating with cross-functional teams to identify, analyze, and resolve software-related problems. - Participating in the entire software development lifecycle, from requirements gathering and design to development, testing, and deployment. - Writing clean, efficient, and maintainable code that adheres to best practices and industry standards. - Creating technical documentation, such as user manuals and system documentation, to ensure software applications are well-documented and easy to understand. - Testing software applications to ensure they are reliable, scalable, and meet user requirements. - Troubleshooting issues in software applications and providing technical support to users. - Staying up to date with emerging trends and technologies in software development and applying them to enhance software applications. - Requirements for a software engineer role may include degree in computer science or a related field, strong programming skills, experience with software development tools and platforms, and a solid understanding of software engineering best practices. Strong communication and problem-solving skills are also essential for success in this role. - **Self-assessment** - ++Advantage++ - 學經歷符合。 - ++Disadvantage++ - 。 - **自我評分** - `7.8/10` - 投投看就對了! ::: --- ### 鈺登 Edgecore :::spoiler [自動化測試工程師(ERC000)](https://www.104.com.tw/job/7z6sw?jobsource=company_job) - **Job description** - ++Minimum qualifications++: - 具基本 Networking 背景,如 L2/L3 相關通訊協定等 - Python, pytest, linux script 等程式語言能力 - 自動化測試腳本撰寫經驗 - 撰寫資料中心網路自動化測試程式 - 分析及重現客戶網路問題 - Testbed 維護 - Regression Test - Stress Test - 自動報表產生 - 測試結果分析 - **Self-assessment** - ++Advantage++ - 學經歷符合。 - 基本上就是實習的內容。 - ++Disadvantage++ - 在南科。 - **自我評分** - `8.3/10` ::: --- ## Interview :::info :male-office-worker: : Interviewer :male-student: : Interviewee ::: ### Common :male-office-worker: :請你自我介紹(中/英) :male-student: :...(自我介紹)... :male-office-worker: :為什麼想應聘我們公司 :male-student: :...(blabla)... :male-office-worker: :能否請你針對A實習內容進一步說明 :male-student: :...(說明實習內容)... :male-office-worker: :你在開發時有沒有遇到甚麼問題,最後怎麼解決的呢 :male-student: :...(說明)... ### Advanced ++**Algorithm/Data structure**++ :male-office-worker: :隨意寫一個 sort int array 的 function :male-student: : ``` # 沒準備的話就 Bubble sort function sort(array){ Loop i: 0~(n-1) Loop j: 0~(i前一個) 若 array[j] > array[j+1] swap(array[j], array[j+1]) } 每一次 Inner Loop 都會把當前最大的 element 推到最後面 O(n^2) # quick sort # Divide-and-Conquer Method function partition(array, pivot){ pivot = array[right] Loop i: 0~array if array[i] < pivot place it to left of pivot else place it to right of pivot return pivot } function quicksort(array, left, right){ p = partition(array, pivot) quicksort(left, p-1) quicksort(p+1, right) } quicksort(array, 0, n) WorstCase O(n^2) AverageCase O(nlogn) ``` :male-office-worker: :你所提出的 sort 是 stable 的嗎 :male-student: : stable的定義是當value相同時,排序前後順序不變,因此前述的(bubble)sort是 stable的;而 (quick)sort partition 中的 if-else 會導致原先右邊的 k2 移到 value 相同的 k1 的左方,因此是 unstable的。 :male-office-worker: :你能說明quicksort的time complexity你怎麼分析的嗎?以及導致這樣差異的原因為何 :male-student: :首先,導致 quick sort 時間不穩定的原因在於 pivot 的選擇,假設我們每次都挑最右邊作為 pivot,那麼 WorstCase 就會發生在本來就已經 sort 好的情況。因為每一次的 partition 只將 pivot 取出,第一次 partition 時左邊會剩 (n-1) 個,而下一次的 partition 會剩 (n-2) 個...,而每一次 partition 要跑一次 loop 掃過,因此總共是O(n^2);而改善的方式其實就是不要每次都挑最右邊的值當 pivot,用亂數去選還是會有極低的機率導致這種狀況。 ++**OS**++ :male-office-worker: :請你試著說明 Critical section :male-student: :指的是一個存取共用資源的程式片段,而這些共用資源(Shared resource)有無法同時被多個執行緒存取的特性,而不是臨界區段(Critical section) 的程式 ,稱為 剩餘區(remainder section) 簡稱RS。解決 critical-section 問題須滿足的三個條件:Mutual Exclusion (互斥)、Progress、Bounded Waiting。解決Critical Section的方法有兩種,分成硬體和軟體。 :male-student: : 硬體Synchronization Hardware,藉由 lock 來保護 critical section,可以利用 test memory word and set value (測試和設值) 或 swap contents of two memory words (交換內容)來做到 lock 的功能。 軟體則是Peterson’s Solution。 ![image](https://hackmd.io/_uploads/SJAT-Dg4p.png) ++**Programming**++ :male-office-worker: :Explain What’s function override and overload :male-student: :覆寫(Override)是指子類別可以覆寫父類別的方法內容,使該方法擁有不同於父類別的行為;多載(Overload)指在一個類別(class)中,定義多個名稱相同,但參數(Parameter)不同的方法(Method)。 ```cpp= // Override Class Parent(){ void print(){ ... } } Class Child(){ void print(){ ... // override parent.print() } } // Overload Class Child(){ func write(int a){ ... } func write(int a, int b){ ... } } ``` :male-office-worker: :Expalin constructor and destructor and when will it be used :male-student: :constructor 會在 class 建立時執行,而 destructor 會在該 class 被刪除/release時執行。 :male-office-worker:Explain what is call by reference, when to use it :male-student: : 共有 Call by value/address/reference 三種傳值方式。Call by value 會複製一份值相同的新記憶體區塊傳入,兩者獨立;而Call by address和Call by reference 基本類似,只是前者把記憶體位置傳到另一個記憶體位置的值上,另一個則是把記憶體位置傳到移到另一個記憶體位置上(可看作同一個物件) ```cpp= // call by value void foo(int a){} call func: foo(a) // call by address (pointer),傳入需使用 foo(&a) 取址,function 內使用時也需要使用 *a 從記憶體位置取得他的值。 void foo(int* a){} call func: foo(&a) // call 的時候可以找到 & 作為關鍵!!! // call by reference void foo(int& a){} call func: foo(a) ``` ++**網路領域**++ :male-office-worker: :TCP 和 UDP 的差別? :male-student: : TCP 有 handshake 建立連線、增加了可靠性,封包若丟失能重送;UDP 不具可靠性(可以應用層補足),也因此傳輸速率較快。 ![image](https://hackmd.io/_uploads/rkM4kPlNT.png) ![image](https://hackmd.io/_uploads/Bk94ywgNa.png) :male-office-worker: :請你根據上圖,若一封包source IP 是 30.168.3.22, 而destination IP 是 20.6.43.22,說明封包的傳送過程。 :male-student: : 假定是從 10.0.0.0 的網域送出,首先會流到 switch A -> Router A。Router A查表後 route 到 Router B,Router B 便會根據 Routing table 知道是 direct 便會 forward 到 match 的 interface 上。 :male-office-worker: :若Router B和Router C之間發生link down,說明會發生甚麼事情。 :male-student: :若發生 link down,傳統網路系統可能會重新計算路由(Re-route),選擇替代的路徑來避免使用故障的連接,或是作 failover 等等。而 SDN 網路則有提供 Fast Forward 功能,一當偵測到 link down,Switch 便能根據預先設置好的 backup path 進行 fast forward。 ## 需要加強的部分 - Programming Skill -> Keep Leet - Algorithm/Data structure -> More Leet - OS -> Review - Network -> Review/Learn - English oral -> Keep practice - Review all project & intern content ## Reference - [[心得] Google TW SWE 面試心得(下)](https://www.ptt.cc/bbs/Soft_Job/M.1625903945.A.52F.html) - [[ 2022 ] Test Engineer Interview — Google Nest, Taiwan](https://medium.com/drunk-wis/2022-test-engineer-interview-google-nest-taiwan-9247a3485eab) - [[心得] 研替面試心得 (M/R/P/Q/Google/Ring/NV) -2022](https://disp.cc/b/Tech_Job/eMRb) - [研發替代役面試心得 (聯發科)](https://medium.com/hungys-blog/mediatek-rdss-interview-562697e9fc03) - [2022 新鮮人 軟體工程師面試分享- 研替(Synology, Nvidia, Trend Micro)](https://www.technice.com.tw/experience/12718/) - [2023 年後面試分享(聯發科、群聯、群暉、知微科技)](https://www.dcard.tw/f/tech_job/p/241606966) - [[聘書] Offer請益(M/S/達發)](https://disp.cc/b/Tech_Job/ePls) - [[徵才] 智邦科技 誠徵 硬體工程師 (網路交換器) -2023](https://disp.cc/b/Tech_Job/g1sp) - [[徵才] 智邦科技 誠徵 硬體工程師 (網路交換器) -2022](https://www.ptt.cc/bbs/Tech_Job/M.1670346255.A.E4B.html)