loader image

C and C++ Software Engineer

Description of the Position

You will be joining the core team and will be responsible to develop applications and services which will run on our satellites. The work involves tight interaction with the satellite development team, mission operations, and production departments. The work can involve working on our kernel and drivers as well alongside the embedded software engineers.

Familiarity with unit testing and mocking is essential. Development work will require using Linux on a day-to-day basis. Experience working with kernels (e.g. Linux, FreeRTOS, etc), drivers, filesystems, and embedded platforms is a bonus.

Tasks and responsibilities


  • Architect, design, and implementation of high reliability and robust software solutions for our satellites and other products.

  • Responsible for planning and implementing agreed test strategies during development.

  • Conception and definition of test procedures, test plans and test strategies in alignment with design.

  • Creation and execution of tests on demand from analysis, requirements.

  • Provide design feedback according to testing results.

  • Provide feedback and support to the orbital operations team.



Skills, attitude, and experience


  • Experience with modern C++ (11 or newer) and C

  • Understanding of basic C++ features/idioms including RAII, STL, value categories, slicing, virtual inheritance, multiple inheritances, friends, smart pointers, templates, functors/lambdas, operator overloading, SFINAE, iterators, constexpr, static_assert, type_traits.

  • Competent with Git.

  • Understanding the means of and the value of extensive unit testing.



Nice to have


  • Familiarity with Boost.

  • Familiarity with ZeroMQ.

  • Familiarity with CMake, GoogleTest.

  • Experience with FreeRTOS.

  • Familiarity with CSP (Cubesat Space Protocol).

  • Familiarity with CCSDS communications protocols/frames (CLTU, CADU, etc).

  • Familiarity with immutable data structures and design/selection of allocators.

  • Understanding of basic coding theory, e.g. hash functions, forward error correction, Shannon-Hartley theorem.

  • Familiarity with Bash, Java, Python, C#

  • Experience with embedded systems/microcontrollers.  Boards running Linux with 100MB+ of available RAM (e.g. Raspberry Pi, BeagleBone) don’t count!

  • Experience developing hard real-time systems.



 


Must have Skills

  • C++

    Beginner

  • Git

    Beginner

  • Boost

    Beginner

Contract Base

Flexible Pricing

Fully Remote

Cancel
Cancel

Active

Skip

C and C++ Software Engineer

Description of the Position

You will be joining the core team and will be responsible to develop applications and services which will run on our satellites. The work involves tight interaction with the satellite development team, mission operations, and production departments. The work can involve working on our kernel and drivers as well alongside the embedded software engineers.

Familiarity with unit testing and mocking is essential. Development work will require using Linux on a day-to-day basis. Experience working with kernels (e.g. Linux, FreeRTOS, etc), drivers, filesystems, and embedded platforms is a bonus.

Tasks and responsibilities


  • Architect, design, and implementation of high reliability and robust software solutions for our satellites and other products.

  • Responsible for planning and implementing agreed test strategies during development.

  • Conception and definition of test procedures, test plans and test strategies in alignment with design.

  • Creation and execution of tests on demand from analysis, requirements.

  • Provide design feedback according to testing results.

  • Provide feedback and support to the orbital operations team.



Skills, attitude, and experience


  • Experience with modern C++ (11 or newer) and C

  • Understanding of basic C++ features/idioms including RAII, STL, value categories, slicing, virtual inheritance, multiple inheritances, friends, smart pointers, templates, functors/lambdas, operator overloading, SFINAE, iterators, constexpr, static_assert, type_traits.

  • Competent with Git.

  • Understanding the means of and the value of extensive unit testing.



Nice to have


  • Familiarity with Boost.

  • Familiarity with ZeroMQ.

  • Familiarity with CMake, GoogleTest.

  • Experience with FreeRTOS.

  • Familiarity with CSP (Cubesat Space Protocol).

  • Familiarity with CCSDS communications protocols/frames (CLTU, CADU, etc).

  • Familiarity with immutable data structures and design/selection of allocators.

  • Understanding of basic coding theory, e.g. hash functions, forward error correction, Shannon-Hartley theorem.

  • Familiarity with Bash, Java, Python, C#

  • Experience with embedded systems/microcontrollers.  Boards running Linux with 100MB+ of available RAM (e.g. Raspberry Pi, BeagleBone) don’t count!

  • Experience developing hard real-time systems.



 


Job Type

Contract Base


Must have Skills

  • C++

    Beginner

  • Git

    Beginner

  • Boost

    Beginner

Flexible Pricing  

Fully Remote

Skip

Eugene M

| United Kingdom