Posted 4w ago

Senior Software Engineer

@ ST Engineering iDirect
Ottawa, Ontario, Canada
OnsiteFull Time
Responsibilities:designing software, developing modules, testing systems
Requirements Summary:5+ years C++/Linux experience; RTOS/Embedded Linux; TCP/IP networking; multi-threaded/multi-process software; strong communication and documentation; satellite comms know-how
Technical Tools Mentioned:C++, C, Linux, Real-Time Operating System, Embedded Linux, TCP/IP, Networking, ARM Cortex-M, PIC, AVR, GDB, Valgrind, Git, Python, Shell scripting, JTAG, SWD
Save
Mark Applied
Hide Job
Report & Hide
Job Description
Overview:

We are seeking a talented Senior Software Engineer with a strong background in software design and development to work in a team that will implement next generation features for iDirect satellite communication products. This engineer will work with an outstanding team of engineers with the goal of delivering a premier IP-based satellite communication product making it possible to deliver voice, video and data connectivity anywhere in the world.

Our teams use Scrum for Agile software development, and as such we work in diverse teams where thoughts and ideas are shared and collaboration is actively encouraged. This gives team members the opportunity to work across products, getting to understand exactly how products operates, and how it fits within the larger iDirect communication solution.



Qualifications:

EDUCATION:

Bachelor’s or Master’s Degree in Computer Science or a related engineering discipline is preferred.

PROFESSIONAL QUALITIES:

  • Strong problem solving and communications skills.
  • Must be a self-motivated individual with technical leadership potential and proven success in a structured development environment.
  • Possess the ability to proactively drive technical solutions in a collaborative environment.
  • Good software design skills using proven and best practice design methodologies & related principles; Strong command of Object Oriented Design and Object Oriented Programming techniques.
  • Demonstrated experience in developing quality and maintainable software.
  • Hands-on experience developing, designing and testing multi-threaded and multi-process applications on Linux, with strong working knowledge of C++.
  • Good understanding of networking and network protocols (TCP/IP)
  • Strong documentation and writing skills.

POSITION SPECIFIC REQUIREMENTS:

  • 5+ years of experience designing and developing C++ software applications.
  • 5+ years of experience programming in Linux
  • Strong knowledge with Real-Time Operating Systems (e.g., FreeRTOS) for multitasking, or Embedded Linux for complex systems.
  • Strong knowledge of C, C++, OOD/OOP
  • Knowledge of TCP/IP, and sockets programming
  • Knowledge of networking protocols
  • Microcontrollers & Microprocessors: Familiarity with ARM Cortex-M, PIC, or AVR architectures.
  • Communication Protocols: Understanding I2C, SPI, UART, CAN, USB, or Ethernet protocols.
  • Memory Management: Optimizing code for constrained RAM, ROM, and flash resources.
  • Drivers & Hardware Integration: Writing peripheral drivers and navigating data sheets to interface with hardware

 

ADDITIONAL SKILLS:

 

  • Excellent presentation skills required
  • A solid working knowledge of UML is strongly desirable.
  • Must be able to work in a fast paced development environment
  • Experience in satellite communications systems is strongly desired
  • Working experience with tools such as GDB and Valgrind.
  • Git experience is strongly desired.
  • Scripting using shell scripting or Python.
  • Hardware Debugging: Using tools like debuggers (JTAG, SWD) and oscilloscopes to troubleshoot systems.
  • Understanding 5G NR (New Radio), 5G Core (5GC), SA/NSA models, and 3GPP protocols.