Developer, Embedded Software Engineer
General Dynamics Mission Systems–Canada has new opportunities for Junior Software Engineering Developers to join our Ottawa Vetronics team. In this role you will focus on low-level Intel x86 architecture tools but will also support a variety of other devices. These devices are integrated into our products and fielded in armoured vehicles around the world. Our military customers use our products to navigate, examine maps, and communicate with each other. Our Video products run an embedded Linux on a powerful ARM processor. These products use Video over Ethernet connections to distribute compressed video for presentation and recording to other vehicle systems.
The Opportunity & Working Environment:
One important aspect of this job will be to support the development and debug of the entire x86 ecosystem in our products, from Intel Management Engine and BIOS bootstrapping to operating system configuration and initialization. Another role will be to develop microprocessor firmware or embedded Linux applications on ARM platforms.
The Vetronics team’s software runs close to the hardware. We measure our boot time in milliseconds. There is no huge Java VM or Apache web server backend framework running our code – in some cases there is an embedded Linux kernel, in some cases a thin embedded operating system, and in some cases there is no operating system at all. We write code for ARM processors and microprocessors. Instead of object-oriented design, our reference materials tend to be the register maps and data sheets of chips. Think: code that’s written for an Odroid, Arduino or Raspberry Pi, but take it to the next level.
We provide a true hybrid working environment, where time is split between using a laptop from home, and using that same laptop in cubicles in the building and on benches in our electronics lab. Wednesdays are in-building, and flexibility is available to schedule other days as fits the work.
Work with OS: Linux (Ubuntu, shell), Windows
Development Languages: C/C++, python3, Bourne shell scripts
Interfaces: I2C, SPI, JTAG, USB, Ethernet (TCP/IP networking, SSH), CAN bus
SW Tools: Git and GitLab CI/CD (continuous integration and automated test), Visual Studio Code, Docker, Confluence
Interest in debugging computers and operating systems
Interest in developing embedded application software for devices and computers
Interest in micro-controllers and video processors
Creative with excellent communication and teamwork skills, ability to multi-task and prioritize
Exposure to software/hardware integration and test, and working from digital schematics
Currently enrolled in or completed Bachelor’s degree program in Computer Science, Software Engineering, Electrical Engineering, or Computer Engineering.
Must be able to obtain and maintain Canadian Security Clearance and a positive Controlled Goods Assessment. Eligibility to work in Canada either as a Canadian Citizen or Permanent Resident.
How to Apply
Application Deadline: 11/02/2023
We will work with you around any workplace accommodation required during our application process. If you require accommodation or have questions, please contact Human Resources via [email protected]