# 資訊科技產業專案設計課程 HW3
## 工作職缺
### [Test Engineer, Engineering Productivity, Google TV](https://www.google.com/about/careers/applications/jobs/results/83414427191124678-test-engineer-engineering-productivity-google-tv?%2F&q=Software%20Engineer)
:::spoiler
:::success
Minimum qualifications:
* Bachelor’s degree in Computer Science, Electrical Engineering, related technical field, or equivalent practical experience.
* 5 years of experience in developing test automation solutions in Java, C++, or Python.
Preferred qualifications:
* Experience working on low power, low memory devices, and device validation techniques.
* Experience in consumer electronics or home automation.
* Passion for quality and automation, with experience helping deliver software product features/consumer devices.
* Understanding of sensor technologies, filtering/sensing algorithms, and validation techniques.
* Driven and detail-oriented with excellent problem-solving and organizational skills.
Responsibilities
* Develop test strategy for smart home products/features, as well as develop virtualization and device simulators based automated feature validation.
* Build a stable and reliable automated test suited to validate Google devices working together in a continuous integration system. Validate algorithms running on devices and validate improvements to ship high quality products.
* Develop test hooks to monitor code health and system stability.
* Identify key product indicators and build analytics that drive new features and improvements.
* Assist with root-cause failures and indicator changes, through automated analysis.
:::
### [Software Development Engineer](https://www.amazon.jobs/en/jobs/2484813/software-development-engineer)
:::spoiler
:::success
Minimum qualifications:
- 3+ years of non-internship professional software development experience
- 3+ 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:
- Exposure to building large-scale web sites using JavaScript, AJAX, & HTML5.
- Strong sense of ownership, urgency, and drive, and a track record of delivery.
- Solid coding practices including unit testing, peer code reviews, and a preference for agile methods.
- Sharp analytical abilities, proven design skills, excellent communication skills.
- Passion for building new products in a fast paced, team-oriented environment.
- 2+ years of industry experience
:::
### [Software Development Engineer](https://www.metacareers.com/jobs/906834291008825/)
:::spoiler
:::success
Preferred qualifications:
- Master’s degree in Computer Science, Engineering, Applied Sciences, Mathematics, Physics, or related field and 24 months of experience in the job offered or in a related occupation. Experience must include 24 months involving the following:
- C, C++, C#, or Java
- Software development tools: Code editors (VIM or Emacs), and revision control systems (Subversion, GIT, or Perforce)
- Linux, UNIX, or other *nix-like OS as evidenced by file manipulation, advanced commands, and shell scripting
- Data processing, programming languages, databases, networking, operating systems, computer graphics, or human-computer interaction
Responsibilities
- Help build the next generation of systems behind Meta's products, create web and/or mobile applications that reach over two billion people, and build high volume servers to support content
- Harness passion for technology and graduate-level knowledge, and help build highly scalable performant solutions
- Develop graduate-level knowledge of algorithms and core computer science concepts and ability to apply that knowledge to real world systems with support and guidance from direct supervisor
- With solutions provided by a supervisor utilize ability to apply them to production problems and contribute to architectural decisions
- Employ specialty knowledge across the following areas: data processing, programming languages, databases, networking, and operating systems
- Utilize knowledge of data base management system software, development environment software, object oriented development software, program testing software, operating system software, and various programming languages
- Utilize knowledge of computer hardware and software, including applications and programming, and of systems architecture and components, including networking and storage
:::
### 相關能力要求
- 3年以上開發經驗
- 接觸過使用 JavaScript、AJAX 和 HTML5 建立大型網站
- Python 開發測試自動化解決方案的經驗
- Linux, UNIX, or other *nix-like OS
### 自我評估
- 學歷
* 高雄第一科技 電腦與通訊工程學系 學士
* 成功大學 AI在職碩士
- Skills
* Programming Language : C# / C++ / JAVA / VB / VBA / Python / Android / Swift
* Web Development : Java Script / JQuery / Html / CSS / PHP / Bootstrap
* Database and Network Communication : MySQL / AJAX / Flask
- 4年工作經驗
- 系統開發實作經驗
- 具備全端開發相關能力
* 以Python Flask作為框架,透過Html/JavaScript/MySQL結合,開發出公司內部報表網站
- 缺乏相關經驗與能力
* 缺乏團隊合作經驗
* 缺乏C / C++實際開發經驗
* 缺乏Linux, UNIX, or other *nix-like OS 相關經驗
* 英文不好
## 模擬面試
🧔:你好,我是Tom,是今天這場面試的主持人,請你簡單自我介紹一下。
👶:您好我是XXX,畢業於成功大學人工智慧與資訊系統在職碩士,曾在XX公司擔任四年自動化組長,主要內容是優化生產線上User和OffLine人員的Loading,將人員的行為藉由開發系統達到完全自動化分析,任職期間有許多專案成效,有過許多的開發經驗,以VBA程式取代人員耗時的分析行為,建立UI介面達到人機合一的效果,以及全端開發網頁報表系統結合Trend Chart進行長期趨勢分析警示等效果,解省許多以往無法分析或耗時的工作行為,達到5分鐘內就能及時掌握許多訊息下達多項決策的建樹。
🧔:你有提到你進行全端開發網頁,那你主要是如何與同事分工,並達到Git版本控制流程。
👶:我主要是獨立開發,所以全端部分都是我一手包辦,從利用python爬蟲落地資料至SQL裡,到使用Flask框架操做AJAX,以及前端HTML/JavaScript等都是我獨自開發出來的。
🧔:好的,那既然你說你有使用過SQL,那我想問你 SQL 和 NoSQL 的優缺點。
👶:SQL 的特點是有 table 的概念,在同一個 table 裡面的資料都要有相同的 attribute。NoSQL 則是偏向 json 檔的概念,資料是用 key - value 的方式儲存,好處是更有彈性,不浪費空間。
🧔:那今天我們網頁的流量很大,一天可能會有上千萬上億的流量,你的資料在放入SQL之中可能會遇到塞車等問題,你會怎麼解決?
👶:我想我會先把資料先暫存於虛擬記憶體中,再將其移至SQL資料庫儲存,使用虛擬記憶體作為緩衝可以幫助平滑和分散這些寫入操作的壓力,就不會造成SQL的負擔,確保系統穩定且高效運行
🧔:OK,那我們面試到這邊告一個段落,感謝你今天的參與。