# 資訊科技產業專案設計課程作業 3
## 職缺規劃 & 評估
### [Google, Software Engineer, Storage Technologies](https://www.google.com/about/careers/applications/jobs/results/120458778561651398-software-engineer-storage-technologies)
:::spoiler Job Description
**Minimum qualifications:**
- Bachelor's degree in Computer Science, a related technical field, or equivalent practical experience.
- 5 years of experience in system software development (e.g., firmware, BIOS, BSP, Linux kernel, BMC, device drivers, and system libraries).
- Experience in Unix/Linux environments.
- Experience coding in C/C++.
**Preferred qualifications:**
- Master's degree or PhD in Computer Science, or a related technical field.
- Experience in Solid-State Drive (SSD)/NAND or Hard Disk Drive (HDD) based storage technologies, interfaces (e.g., NVMe, SATA/SAS), and security standards (TCG).
- Experience in developer operations, release management, integration testing, and open source development.
- Experience in storage software stack with Linux or firmware in storage controllers (e.g., RAID/AFA/NAS).
- Experience in large-scale and secure fleet management of servers and components.
- Experience in Python and scripting languages (e.g., shell).
**Responsibilities**
- Design and implement the system software for storage systems to maximize the performance, reliability, security, and capacity.
- Create and implement tools for automating diagnostics, performance evaluation, and reliability assurance for storage components and systems.
- Develop and implement solutions for collecting and analyzing metrics for storage products in the cloud infrastructure to derive actionable insights.
- Collaborate with internal and external partners to plan and execute the engineering programs, including product development and productivity improvements.
- Contribute innovative ideas and skills to the team.
:::
#### 自身評估
- 符合條件
- 相關學歷
- 於Linux環境撰寫C/C++以及script的開發經驗
- RAID & LVM (storage middleware)相關經驗
- 不足
- 缺乏storage底層/device drivers相關經驗
- 大型伺服器開發經驗不足
### [Amazon, Software Dev Engineer](https://www.amazon.jobs/en/jobs/2813491/software-dev-engineer)
:::spoiler Job Description
**BASIC QUALIFICATIONS**
- Speak, write, and read fluently in Mandarin
- Master or Bachelor Degree in Computer Science, Computer Engineering, Electrical Engineering, or related fields.
- Will graduate between 2024/08 to 2025/08.
- Proficiency in the C/C++/Python programming language.
- Knowledge of Computer Science fundamentals such as algorithm design, data structures, problem solving, and complexity analysis.
**PREFERRED QUALIFICATIONS**
- Good English listening and speaking skills.
- Experiences with Linux or other embedded systems is a plus.
- Understanding in computer network and/or wireless network is a plus.
**Key job responsibilities**
- Support the development of the Ring and Blink FW and work with the SDET team to support the building up of the test framework with the QA team.
- Collaborate with experienced cross-disciplinary Amazonians to conceive, design, and bring innovative products and services to market.
- Design and build innovative technologies in a large distributed computing environment, and help lead fundamental changes in the industry.
- Create solutions to run predictions on distributed systems with exposure to innovative technologies at incredible scale and speed.
- Build distributed storage, index, and query systems that are scalable, fault-tolerant, low cost, and easy to manage/use.
- Ability to design and code the right solutions starting with broadly defined problems.
- Work in an agile environment to deliver high-quality software.
#auta-twn
:::
#### 自身評估
- 符合條件
- 相關學歷
- 於Linux環境撰寫C/C++以及script的開發經驗
- 不足
- 缺乏嵌入系系統相關經驗
- 對網路或無線網路的開發經驗不足
### [Cadence, Software Engineer II](https://www.linkedin.com/jobs/search/?currentJobId=4067689653)
:::spoiler Job Description
**Requirements**
- Master's degree or PhD in Computer Science, Electrical Engineering or relevant field
- Familiar with Linux developing environment
- Ability to develop software in C/C++
- Experience developing software under Unix/Linux environment
**Preferred qualifications**
- Experience developing physical design tool or applications
- Experience with IC implementation tools
- Proficiency in software engineering tools
- Knowledge of software developing flow
**Key responsibilities**
- Develop routing engine and relevant applications
- Maintain functionality
- Troubleshoot and debug
:::
#### 自身評估
- 符合條件
- 相關學歷
- 於Linux環境撰寫C/C++以及script的開發經驗
- 不足
- 缺乏EDA相關知識及經驗
## 面試資料整理
- [年薪三百萬軟體工程師的歷程 第一集 白板面試](https://www.dcard.tw/f/job/p/236764787)
- [年薪三百萬軟體工程師的歷程 第二集 物件導向面試](https://www.dcard.tw/f/job/p/236780509)
- [年薪三百萬軟體工程師的歷程 第三集 系統設計面試](https://www.dcard.tw/f/job/p/236880383)
### 模擬面試
R: 如何確保資料在儲存系統的完整性?
E: 確認儲存系統是否有備份或冗餘機制並且使用checksums來檢查檔案是否毀損
例如使用RAID1來儲存資料避免硬碟損壞導致資料遺失,但相對應的代價是可儲存容量的減半。