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
Skip


Refer a friend for this role and earn
25 USD
Use the share options below Learn More
Refer a friend for this role and earn 25 USD
Don’t forget to share your referral URL
Flexible Pricing
Flexible Pricing
Up to 140 K/Year USD (Annual salary)
Fully Remote
Eugene M