About the role
You will be developing the software for the next-generation of semiconductor test systems. You will work on embedded software for systems control, develop software for process automation and in the end your software will connect our systems with your end customer’s systems.
This test system is the quality gate in (multiple devices)for wafer testing, process control module devices and final testing before mass production.
Next to the quality aspects, super-fast computing performance is key to the platform. Even though the software runs on a standard Intel Windows machine, knowledge in writing fast and responsive programs is required (“its like programming a computer gaming without the graphics”).
What you will do
- Requirements engineering: Our strong point is that we have deep relations with our customers using our machines.
- Software design: Taking the requirements and integrating them into the existing architectures.
- Software development: Our code base is more than 2M LoC and ranges from low-level, real-time, Windows-based equipment control, via application software (Windows UI programming, custom compiler software, decision making engine), to the integration with higher-level manufacturing systems
- Software testing and reviewing: Several safety-nets guarantee the quality of our software to match the requirements for a semiconductor tester that tests automotive products.
- Documentation: Next to user manuals, can you write self-documenting code?
- Support improvements in the way of working for software, i.e. introduction of new tools (like moving from SVN to Git) or methods (e.g. pair-programming).
What you will need
- Minimum of master degree in (Technical) Computer Science or comparable.
- Solid experience in (embedded) software engineering to include - Procedural and Object-Oriented programming, Ada programming language is a plus. Solid experience in unit-, system-, and integration testing, Knowledge in an xUnit-based framework, Aunit is a plus, TMMi is a plus.
- Experience with software code quality analysis, like test coverage, static analyzers (linters) Basic knowledge in statistics and control systems.
Experience in one of more of the following areas:
- Embedded software - memory access patterns / containers like vectors or linked lists, Win32 API, Driver development is a plus). Experience with Linux is a plus.- memory access patterns / containers like vectors or linked lists, Win32 API, Driver development is a plus). Experience with Linux is a plus.
- Application Development (Threading, UI, Networking).
- Customer integration - Interprocess communication on multiple levels, e.g. SOAP (WSDL).
- Proven experience with electronic (test) equipment is nice to have but not essential, this can be learned.
- Intercultural awareness and ability to work in international teams.
Tools / technologies that we use
- Make / GCC based build procedure
- SVN and Git for revision control
- Jenkins for build and test automation
- JIRA for issue tracking
- Confluence for documentation
- Crucible / FishEye for code reviews
- Sonarqube / Neo4j for code analysis
- MASTER in Technical Informatics, Embedded Systems, Computer Systems, etc.
- Experience with embedded programming