Enable job alerts via email!

Staff Embedded Software Engineer

Nokia

Ottawa

On-site

CAD 80,000 - 100,000

Full time

Today
Be an early applicant

Job summary

A multinational technology corporation based in Ottawa seeks a skilled software engineer to develop firmware for embedded systems. The ideal candidate will have over 5 years of experience in real-time programming with C/C++, solid knowledge of Linux environments, and communication expertise. The role involves collaboration with hardware and optical engineers, focusing on developing control algorithms and accurate design estimates for products. This position requires adaptability to changing tasks and a strong problem-solving mindset.

Qualifications

  • 5 years of industry experience in real-time programming using C/C++ in embedded environments.
  • Solid experience with low-level device interfaces.
  • Proficient in using lab equipment like oscilloscopes.

Responsibilities

  • Develop firmware for hardware supporting controls.
  • Define optical control requirements and develop algorithms.
  • Communicate with system controller through gRPC.

Skills

Real-time programming using C/C++
Embedded Linux
Low-level device interfaces (UART, SPI, I2C)
Lab equipment proficiency
Linux kernel understanding
CMAKE build system
gRPC and protobuf design
Communication skills

Education

Bachelor or higher degree in Computer Engineering/Electrical Engineering
Job description
Family Description

Applied R&D (AR) consists of target-oriented research either with the goal of solving a particular problem / answering a specific question or for multi-discipline design, development, and implementation of hardware, software, and systems including maintenance support. Supplies techno-economic consulting to clients. AR work is characterised by its detailed and complex nature in order to systematically combine existing knowledge and practices to further developing and incrementally improving products, operational processes, and customer-specific feature development.

Subfamily Description

Software (SWA) comprises the definition, specification, and allocation of requirements from different sources utilising knowledge of systems engineering processes (specification & architecture). Contains processing of use case and feature requirements into conceptual models, operational scenarios, technical requirements, and functional description. Covers specification, design, implementation, and unit testing of Software (e.g. device drivers, microcode, hardware-related software & firmware) according to the requirements and architecture defined in the systems engineering process. Covers establishment and maintenance of Software Configuration Management (SCM) practices into software development projects, continuously building and integrating infrastructure tools and systems.

Qualifications

You have:

  • Bachelor or higher degree in Computer Engineering/Electrical Engineering, or equivalent education.
  • Minimum 5 years of industry experience in real-time programming using C/C++ in embedded Linux and/or RTOS environments
  • Solid experience with low-level device interfaces, including UART, SPI, and I2C.
  • Proficient in using lab equipment, such as oscilloscopes and power meters.
  • Strong understanding of SOC controller/processor architecture, Linux kernel, and real-time OS operations.
  • Experience with CMAKE build system
  • Working knowledge in gRPC and protobuf design and implementation
  • Proven ability to quickly grasp new technical concepts.
  • Excellent written and verbal communication and presentation skills.

It would be nice if you also had:

  • Experience with optical networking communication systems, particularly optical transceivers or fiber optics modules.
  • Experience with Xilinx Zynq/Ultrascale.
  • Understanding of digital signal processing principles or PID control algorithms.
  • Knowledge of Petalinux and its build environment.
Responsibilities
  • Work closely with hardware/FPGA engineers to understand HW control architecture including CPU architecture, memory access and control of various peripherals. Be able to independently develop firmware that supports the designed hardware, e.g. driving DACs, reading ADCs and control flash devices through low level device interfaces or FPGA interfaces.
  • Work closely with optical engineers to define optical control requirements and develop control algorithms. Implement the control algorithms on top of Linux and FreeRTOS operating systems.
  • Work on software interface layer that communicates with system controller on a different card through gRPC interface over Ethernet.
  • Provide to management team accurate design estimates for planning purposes.
  • Follow development processes to ensure delivery of quality products on time.
  • Flexible and adapt to changing tasks when needed.
Get your free, confidential resume review.
or drag and drop a PDF, DOC, DOCX, ODT, or PAGES file up to 5MB.

Similar jobs