Work collaboratively as a member of an Embedded Software Engineering team to perform diverse work tasks in software development for embedded systems. This development may involve Programmable Automation, Visualization, Communications, I/O systems or Industrial Automation Software. This will include modern embedded operating systems applied to custom in-house hardware.
Responsibilities typically include:
- Design, develop, troubleshoot and debug software programs for software enhancements or new products. Determine hardware compatibility and/or influence of hardware design.
- Utilize wide-ranging experience of area of specialization; resolves wide range of issues in creative ways and effective ways.
- Lead or participate in creation of or reviews of; documents, designs, code, test cases and user documentation.
- Perform unit or functional testing of developed software to ensure correct operation per functional requirements and compatibility with other components in the system.
- Contribute to software development capability by keeping abreast of current trends in the areas of software development practices, technology utilization and development tools.
- Frequently interact with peers and customers to gain cooperation of others or conduct presentations of technical information/project activities. Establish operational objectives and work plans. Network with senior internal/external personnel in own area of expertise.
- Strong accountability to assignments, keeping in mind the guiding principles; Customer Focus, Sense of Urgency, Performance to schedule and Quality.
Who we're looking for?
- Minimum of a completed Bachelor of Science Degree in Electrical Engineering, Computer Engineering or similar Engineering discipline with a concentration in software.
- Minimum of 5 years of relevant work experience.
- Proven development experience with embedded systems involving software operating systems and digital hardware.
- Programming and development experience involving C and C++ is required.
- Proficiency in English language, both written and spoken.
- Programming and development experience with multiple contemporary embedded operating systems is desired, such as; Microsoft Windows 10 kernel and driver development, Windows CE and embedded Linux (experience involving Linux kernel development, the Yocto Project/OpenEmbedded environment, Linux filesystems, Linux security hardening, and package management).
- Experience with the use of tools such as In-Circuit Emulators, Logic Analyzers, embedded monitors, Build tools (gcc, make, cmake, bitbake) and other such development tools.
- Board Support Package (BSP) development level experience with Intel x86 technologies and interfaces such as SPI, I2C, PCI/PCIe.
- DevOps experience, understanding of Jenkins and containers, Git source control proficiency, standard scripting languages (Python, Powershell, Bash, etc).
- Experience with Bootloader, PC-BIOS, ACPI, and UEFI development.
- Experience with Agile software development methodology.
- Advanced courses in engineering or computer science would be beneficial. Course work covering software requirements analysis, software design, software engineering and software testing is desired.
- Healthcare package
- Healthcare package for families
- Leisure package
- Leisure package for families
- Financial bonus
- Cold beverages
- Hot beverages
- Car parking
- Bicycle parking