The focus of the job is on equipment control for the semiconductor business. The primary area of work is C# programming with Microsoft Visual Studio 2019, targeting Windows 10, Linux and Windows CE operating systems. Work also involves C++ programming for real time operating systems including NuttX, Linux, and VxWorks. The projects all involve embedded software control of robotic and other motion related hardware. In addition, machine vision and machine learning technologies are being incorporated into the system. The following specific tasks will be performed during the project life cycle.
· Gather requirements, write requirement specification, and get spec reviewed by team.
· Write design specification, and get spec reviewed by team.
· Implement the design with C#/C++ programming, and get code reviewed by team.
· Design test cases, and run unit testing over software emulation and on hardware.
· Integrate software component to overall system, and perform SQA testing.
· Work with rest of team, including ME, EE and SW engineers in system level integration.
· Document release features and application notes for customers.
· Support customers in their software integration, and in handling field escalations.
· Participate in team reviews on specs, on code, on documentation and on test-cases.
The following qualifications are required:
· Bachelor’s degree or equivalence of 2 years of work experience.
· Written and verbal communication skills to communicate design with rest of the team.
· 2 years of experience in professional software development.
· 2 years of experience in programming C# and/or C++.
· Fluency in using UML for Object Oriented Analysis/Design, including state machines.
· Experience in programming multi-threading, and network communication.
· Experience in working on software in instrumentation or equipment control.
· Experience in working with a small project team of 6 – 12 engineers.
Experience in some of the following areas are desired:
· Experience in customization of Linux operating system.
· Experience in software applications and algorithms using machine vision.
· Experience in software applications and algorithms using machine learning.
· Experience in software/firmware development on real-time operating system (RTOS).
· Experience in software/firmware development using Micro-Control-Unit (MCU) chips.
· Experience in working on robotics and motion control related software.
· Experience in C# based rich GUI development with Microsoft Windows FORMs and WPF.
· Experience in Python scripting.
· Experience using GIT source control such as Microsoft Team Foundation Server (TFS).
· Experience in the semiconductor or semiconductor equipment industry.
· Job Families for Job Profiles