# 資訊科技產業專案設計課程作業 3
## 職缺
### Amazon [Software Dev Engineer](https://www.amazon.jobs/en/jobs/2813491/software-dev-engineer)
:::spoiler
#### 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.
#### About the team
- Bachelor’s or Master’s Degree in Computer Science, Computer Engineering, or related field at time of application.
- Graduate between 2024/08 - 2025/08.
- Knowledge of the syntax of languages such as C/C++, Java, Python.
- Knowledge of Computer Science fundamentals such as object-oriented design, algorithm design, data structures, problem solving, and complexity analysis.
#### 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.
:::
#### 優勢
- 熟悉 C/C++/Python 等程式語言
- 有網路、OOP、演算法、資料結構與複雜度分析等知識
#### 劣勢
- 對 embedded systems 沒有經驗
- 對 IoT 產品的開發生態沒有概念
### Appier [Software Engineer, Backend Development (Graduate)](https://www.104.com.tw/job/8dmz2?jobsource=google)
:::spoiler
#### Responsibilities
- Backend Development: Collaborate with the development team to design, implement, and test software applications that meet customer needs and industry standards. Use your creativity and technical expertise to develop robust and efficient code.
- Problem-solving: Analyze complex technical challenges and develop effective solutions. Embrace a proactive approach to tackle issues and continuously improve the software development process.
- Innovation: Stay up-to-date with the latest industry trends and technologies. Contribute ideas and suggestions to improve existing projects and develop new features.
- Collaboration: Work closely with cross-functional teams, including internal users, product managers, and quality assurance, to deliver high-quality software products.
#### Minimum qualifications
- Fluently in any programming language.(prefer python)
- Enthusiasm for learning and staying updated with emerging technologies.
- Proactive, good interpersonal and problem-solving skills.
- Understand what happens when you type a URL in the browser and press enter.
- Familiar with git.
#### Preferred qualifications
- MS degree in Computer Science or related field.
- Experience with infrastructure-as-code tools (Terraform / Ansible)
- Experience with any CNCF project.
- Good understanding of any SQL/NoSQL database (Clickhouse / MongoDB / Redis / etc.)
- Internships, projects, or personal coding experience are a plus.
:::
#### 優勢
- 熟悉 Python
- 使用過 MySQL 作為資料庫來開發
- 在 CNCF project 中,有使用過 containerd 與 Kubernetes
#### 劣勢
- 對 AWS 等雲端工具,只有接觸過,沒有到很熟悉
- 在使用 CNCF project 的工具中,只有將他們當作工具使用,對內部的實做細節並沒有到很熟悉
- 沒有使用 Terraform/Ansible/Clickhouse/MongoDB/Redis 等開發的經驗
- 資料庫的一些操作,像 MapReduce 沒有實際開發經驗
### Shopee [Backend Engineer, Marketplace Buyer (Campus Recruitment 2025)](https://careers.shopee.tw/job-detail/J00355783/1?channel=10001)
:::spoiler
#### 職務內容:
- Design, develop and maintain backend services
- Collaborate with the product team and provide technical inputs to support product decision making
- Participate in technical design discussions and contribute to the end solution
- Execute and implement technical designs
- Troubleshoot issues related to business logic or performance
#### 職位要求:
- Recent graduates with a Bachelor's degree or above in Computer Science, Engineering, or related fields
- Familiar with at least one backend programming language such as Java, Python, Golang or C++
- Strong in logical thinking and problem solving skills, actively seeking challenges
- Strong ownership, good communication skills, having teamwork spirit and capable of working independently under pressure
- Passionate about coding and programming, innovation, and solving challenging problems
- In-depth understanding of computer science fundamentals (data structures and algorithms, operating systems, networks, databases, etc)
#### Good To Have
- Hands-on experience with Golang
- Familiar with Linux operating system
- Familiar with relational databases such as MySQL
- Exposure to performance tuning of high load systems
:::
#### 優勢
- 有使用 Python/Golang 當作後端開發的經驗
- 有 relational databases 的概念,並有使用 MySQL 作為開發工具的經驗
#### 劣勢
- 對於系統效能的調校沒有經驗
## Resume
[link](https://drive.google.com/file/d/1PIEgmETgQ-FsIupcY4sUh66NrvC5bWp1/view?usp=sharing)
## 模擬面試
> Interviewer: 👴
> Interviewee: 🧒
👴: 在你的自我介紹中有使用到 Kubernetes 來做 load balancing,那你是使用 Google 或 AWS 等雲端服務架起來的嘛
🧒: 我沒有使用雲端的環境,而是在自己的環境透過 Kubeadm 建立起來的,並使用 MetalLB 來讓我本地的 Kubernetes 能做到 load balancing。他的實做方法是把我指定的 external IP 指派到 Kubernetes 群集中的某個 node 上,所以當有流量到達某個 external IP 時,封包會先到達那個 node 上,然後那個 node 再去 load balancing
👴: 物件導向中,封裝、繼承與多型的特性是什麼
🧒: 封裝可以透過 public 和 private 等,來控制物件的存取權限。繼承則可以讓一個子物件繼承父物件,以減少重複的程式碼。多型則可分為 override 與 overload,override可以在子物件中改寫父物件的 function。Overload 則可在相同的 function name 傳入型態的參數,並定義不同的實做方法
## Reference
[物件導向的三大特性 : 封裝,繼承,多型](https://hackmd.io/@metal35x/r14R56nXU)
[appier面試問題總整理 20161011](https://hackmd.io/@qLxNks6ASZ2KEO9G_CSJ6Q/ryc9fXiC?type=view)