Embedded Software Development Engineer - Leusden

The Embedded Software Engineer’s role is to develop, create, upgrade, and maintain software applications that fully exercise features of the INTEGRITY-178 operating system to verify the functionality and correctness of the software. As a Software Engineer, you will be responsible for ensuring Green Hills Software safety-critical products are safe for our customers to build vehicles, medical devices, and industrial control systems that people's lives depend on every day.
The Embedded Software Engineer will develop a detailed knowledge of operating system internals, while using the latest in compiler and debugger technology from Green Hills. As a Software Engineer, you will have the opportunity to work with real-time operating system (RTOS) components ranging from board support packages and device drivers (Serial, Ethernet, Flash), architecture support packages (PowerPC, ARM, x86), networking stacks, file systems, language libraries (C, C++, Ada), and the core kernel itself.
After demonstrating proficiency and domain expertise in the above products, Software Engineers may have the opportunity for the design and implementation of safety and security-critical RTOS components.
Duties
- Assessing and ensuring the high safety standards for our products
- Creating validation tests for requirements functionality, robustness, boundary values, and equivalence classes
- Analyzing, improving, and reporting on system code coverage
- Participating in requirement, design, and code reviews for changes to safety-critical products
- Attaining proficiency with operating system internals:
- Kernel/Virtual Address Spaces
- Memory management
- Task management / Scheduling
- Connections / Semaphores
- Clocks / Timers
- Analyzing multi-core processor issues:
- Inter-processor interference
- Shared resource contention
- Timing and throughput
Requirements
The ideal candidate will have the following skills and experiences:
- Bachelors or Masters of Science degree (Computer Science, Electrical/Computer Engineering, Math)
- Strong C / C++ programming skills
- Understanding of the concepts of real-time operating systems
- Ability to learn and understand how complex software systems work
- Excellent communication (both written and verbal) and organization skills
- Willingness and ability to work independently and with little supervision
Benefits
- Competitive pay
- Excellent secondary benefits
- Casual work environment
- Hybrid work