Principal Software Design Engineer - Factory Automation
Initial 12 month contract, permanent position afterwards
Nijmegen, Netherlands (2 days/week remote)
About the role
You will be programming and developing the next-generation of connectivity software that drives the production in our client's back-end facilities in the APAC area. We aim for the lights-off factory where all machines are controlled in a fully automatic fashion so that they can operate in complete darkness. The first step on this journey is to connect the currently under-automated equipment types.
What you will do
- Requirements engineering and software design: Take the requirements and integrate them into the existing architectures.
- Software development: Our code base is more than 2M LoC and ranges from application software (Windows UI programming, custom compiler software, decision making engine), via Web server software (SOAP, REST, HTML/CSS/JS) so you will drive the integration with higher-level manufacturing systems such as (SOAP, JMS).
- Software testing and reviewing: Several safety-nets guarantee the quality of our software to match the requirements. Test and review software that controls equipment for the automotive industry.
- Documentation: Next to user manuals, can you write self-documenting code?
- Continuous improvement: 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 Bachelor degree in Computer Science or comparable.
- Solid C++ programing experience is required (Ada is a plus)
- Network-programming (OSI-model) SOAP (WSDL), JMS SECS/GEM 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.
- Willing to travel occasionally.
- Proven experience with semiconductor assembly equipment or high precision equipment is a plus.
- Intercultural awareness and ability to work in international teams.
Tools / technologies that we use
- Ada and C/C++ programming languages, several scripting languages like JavaScript and Python.
- 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.