Embedded Software Developer – Packet Processing

Engineering · Full-time · Global

Job description

Are you ready to be part of a leading global engineering design house specializing in the design and development of embedded software/hardware, electronics, and electro-mechanics?

What we’re looking for

• Highly motivated and dynamic professionals • Motivated designers with broad backgrounds and service mindset to be a consultant • Professionals with ability to work both with in-house projects and on-site assignments at our customer’s locations What you'll do

  • Collaborate with experienced engineers in the design, coding, testing, and maintenance of software applications.
  • Develop and maintain embedded software modules using programming languages like C++ and Python.
  • Assist in the implementation of networking solutions, ensuring seamless communication between software components.
  • Contribute to the development of software tools, libraries, and frameworks to enhance overall product quality and efficiency.
  • Participate in code reviews, providing constructive feedback to enhance code quality and adherence to coding standards.
  • Collaborate with the team to troubleshoot and resolve software defects and technical issues.
  • Support the integration of software components on Linux operating systems.
  • Assist in the testing and validation of software features, ensuring functionality and performance meet specified requirements.
  • Utilize cloud technologies to enhance software deployment and management.
  • Collaborate with cross-functional teams, including product managers and designers, to understand requirements and contribute to technical discussions.
  • Maintain clear and organized documentation of software designs, processes, and development tasks.
  • Demonstrate effective teamwork and communication skills, both orally and in writing. Lead the design, development, and implementation of advanced satellite ground segment software systems, ensuring high performance, scalability, and reliability.

What you'll need to get the job done

  • Bachelor’s or master’s degree in computer science, Electrical Engineering, or a related field.
  • Experience in software development, focusing on embedded systems.
  • Basic understanding of networking concepts and protocols.
  • Proficiency in using the Linux operating system.
  • Cloud technology familiarity is a plus.
  • Strong analytical and problem-solving skills.
  • Team player with the ability to collaborate effectively within a diverse team.
  • Good oral and written communication skills.
  • Enthusiasm for learning new technologies and tools.
  • Detail-oriented with a commitment to producing high-quality software.
  • Ability to design software with consideration for hardware resource constraints.
  • The successful candidate must be able to work in Canada and obtain clearance under the Canadian Controlled Goods program (CGP).

What will make us REALLY love you

  • Knowledge and practical experience using modern C++ (standard v20 and later) and STL.
  • Experience designing complex multithreaded, multiprocess applications.
  • Expert knowledge of packet processing frameworks (i.e. DPDK)
  • Experience implementing and integrating network protocols.
  • Good handle on L2 MPLS and Ethernet protocols.
  • Familiarity with SR-MPLS, MEF protocols, SDN.
  • Experience in telecom and/or satellite communications is mandatory.
  • Experience working with ARM architecture.

Peers

View in org chart