- 自 IC 產業結構和軟體工程師的機會和《0 到 100 的軟體工程師面試之路》所及的公司對應的官方網站中,找出較符合自身興趣/規劃的職務描述 (即 JD [Job Description],至少找出 3 份)
- 分析上述職缺所需要的能力,探討自己在專業上匹配的程度
- 嘗試列出上述職缺 (或類似的職缺) 的面試題目,可以是網路搜尋整理,也可以自行改寫。針對職缺,應包含自身條件的分析,諸如匹配的程度和羅列自認的優勢項目。
- 撰寫 resume
Bachelor's degree in Computer Science, related technical field, or equivalent practical experience.
Experience in computer science, data structures, algorithms, and software design.
Experience in Software Development and coding in a general purpose programming language.
Master's degree or PhD in Computer Science or a related technical field.
Experience programming in C, C++, Java, or Python.
Experience with Unix/Linux or Windows environments, distributed systems, machine learning, information retrieval, and TCP/IP.
Build our platforms, systems, and networking infrastructure using experience with distributed systems, OS/kernel, network system design, and large-scale storage systems.
Build internal systems used by Googlers globally.
Mitigate reliability failures in a component or system.
Create and support a productive and innovative team, including working with peers, managers, and teams.
Be involved in the definition, architectural design, and development of security firmware for NVIDIA DGX products with an opportunity to craft its future.
Assist with defining and making sure software development process meeting security standards.
Perform security threat modelling for our software.
Design and/or make recommendations for security solutions that apply to the software to satisfy DGX/GPU server security guidelines and requirements.
Bachelors or higher in electrical engineering, computer science, or computer engineering (or equivalent experience).
Have software design, development, analysis or equivalent experiences.
Experience in building and implementing secure software. Familiar with DMTF PLDM, MCTP, SPDM standards is a plus.
Background in embedded software development in Linux environment. Background with FreeRTOS. Background with security technologies: Root of Trust, etc.
Experience in threat modeling and modeling attack-vectors.
Background with SBIOS and BMC firmware is a plus. Strong programming skills in Ada/Spark, C/C++, algorithms, and data structures.
Strength being hands-on with development in addition to experience in software security. Deep understanding of computer architecture, operating system fundamentals.
A strong teammate; self-motivated with positive attitude with a motivation to learn, grow and build.
Ways to stand out from the crowd:
A successful candidate should be able to work independently and highly self-motivated. He or she should drive issues with little or no supervision.
A key success for this position is not only a thorough understanding of system architecture, security and software, but also solid grasp of system design, use case requirements and software stacks.
Excellent communication skills, flexible in task assignments and working under pressures are also indispensable for this candidate.
[2025年應屆碩士/博士畢業生適用,投遞履歷請附上大學/研究所成績單]
Synology's product developers create cutting-edge products used by millions of users around the world. Our portfolio of data storage, networking, and surveillance products are powered by our own software solutions, giving us a unique edge in today's crowded market. We are looking for engineers that can make an impact, bringing in fresh ideas from different areas to help expand our team of high-energy developers.
Video surveillance solutions are ubiquitous and vital in maintaining accountability in our society today. They can serve as silent witnesses to a scene, act as a deterrent, and often simply serve as a means to reassure a property owner. Synology has been consistently innovating in the field of video surveillance, leveraging our storage expertise to built robust, feature-rich, and cost-effective solutions that are overseeing countless locations today. You’ll be joining an experienced team to build our next generation products.
You will:
You are expected to have:
We're targeting candidates with:
Interviewer: 您好,歡迎參加今天的面試。首先,請您簡單自我介紹,並分享一下您在軟韌體開發方面的經驗。
Interviewee: 您好,我是XXX,畢業於成功大學資訊工程所。在學期間,我參與了多項軟體開發專案,主要使用C和C++語言。此外,我也修習了計算機組織與作業系統等相關課程,對系統軟體有相當的了解。
Interviewer: 很好。接下來,我們討論一些技術問題。首先,您能解釋一下什麼是Race Condition嗎?在多執行緒環境下,如何避免Race Condition的發生?
Interviewee: Race Condition是指多個執行緒同時存取共享資源,且至少有一個執行緒對該資源進行修改,導致結果不一致的情況。為了避免Race Condition,可以使用互斥鎖(Mutex)或信號量(Semaphore)來確保同一時間只有一個執行緒能存取共享資源。
Interviewer: 很好。那麼,您能說明一下Mutex和Semaphore之間的差異嗎?
Interviewee:當然。Mutex是一種鎖機制,用於確保一次只有一個執行緒能進入臨界區,適合用於保護單一資源的存取。Semaphore則是一種計數器,可用於控制對多個資源的存取,分為計數型信號量和二元信號量。計數型信號量允許多個執行緒同時存取資源,而二元信號量的行為類似於Mutex。
Interviewer: 了解。接下來,我們進行 code interview…