# 資訊科技產業專案設計課程 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,那我們面試到這邊告一個段落,感謝你今天的參與。