Simera Sense logo

Systems Software Engineer

Hiring from
South Africa
Work type
Remote
Posted

615,878 remote jobs, straight from company career pages

100% free · New jobs every minute

Show job description

Simera Sense is a leading provider of Earth observation camera solutions for the global small satellite market. Committed to excellence and innovation, we deliver superior products and services to our worldwide customer base.

Are you passionate about developing high-performance software that powers cutting-edge technology? We are seeking a Systems Software Engineer to design, develop, and optimise robust software solutions for advanced engineering and mission-critical systems. If you enjoy solving complex technical challenges, collaborating across multidisciplinary teams, and delivering reliable, scalable software, we'd love to hear from you.

Position Type: Fulltime

Remote Opportunity: No

Report To: Group Systems Engineer Manager

Location: Somerset West, South Africa

Job Purpose:

Engineer and qualify secure, production-ready system software for real-time edge platforms by developing low-level operating system components, device drivers, boot software, concurrent applications and resilient communication solutions that optimise system performance, reliability and connectivity.


Responsibilities:

System Software Development on an Edge Platform

  • Design and implement system-level software on a powerful edge platform running on a real-time operating system, such as: QNX or VxWorks.
  • Work close to the OS: processes, threads, memory, filesystems, networking and security.
  • Implement operating system device drivers for on-chip devices as well as proprietary and standard on-board devices.
  • Develop boot software on a development kit and later for proprietary hardware using the same SoC.
  • Secure remote update of the operating system and proprietary services.
  • Debug and optimize performance, resource usage, and reliability.
  • Communicate with a central cloud-based system.
  • Build tools and services that run reliably in production environments.

Concurrency & Distributed Systems

  • Design and implement concurrent and parallel software.
  • Reason about synchronization, race conditions, deadlocks, and consistency.
  • Build distributed components that tolerate partial failure, latency and partition.
  • Apply formal reasoning to state machines and protocol design.

Networking & Communication

  • Develop software that communicates over unreliable, high-latency and intermittent networks.
  • Implement end-to-end cryptographic communication security.
  • Design and implement robust communication protocols and data pipelines.
  • Apply networking fundamentals to system design and troubleshooting.

Testing and Qualification

  • Perform component testing
  • Perform system testing
  • Perform system qualification against requirements
  • Produce test documentation

Required Qualifications:

  • Bachelor Honors Degree or Postgraduate Diploma in Computer Science, Electronic Engineering, or a closely related field

Minimum years of work experience:

  • 0-2 years of relevant experience.

Required Experience:

  • Strong foundation in computer science, including:

o Algorithms and data structures

o Automata and formal models of computation

o Computational complexity and trade-offs

o Concurrency and parallelism

o Communication networks

o Cryptographic security

  • Strong background in system software development, including:

o Real-time operating systems

o Fault-tolerant, unattended systems

o Distributed systems or message-based architectures

o Multithreaded and concurrent programming

o Reactive systems

o Device drivers

o System boot

o Secure remote update

  • Strong background in edge platforms.
  • Strong background in analysing, profiling and debugging systems.
  • Proficiency in at least two systems- or backend languages (e.g. C, Rust, Go)
  • Solid understanding of networking fundamentals
  • Solid understanding of communication security
  • Experience modelling software with automata

Recommendations:

  • Proficiency with systems programming in Rust.
  • Experience with QNX or VxWorks.
  • Experience with AMD Versal SoCs.
  • Familiarity with containers and orchestration (WASM, Docker, Kubernetes).
  • Exposure to formal specification, verification, or protocol design
  • Experience profiling and debugging production systems
  • Experience with C++
  • Interest in correctness, safety, and formal reasoning


What we offer:

  • The opportunity to work in the fast-growing space industry.
  • Niche global market for optical payloads for microsatellites.
  • Cutting-edge technology at your fingertips
  • A competitive salary
  • A friendly working environment.

Ready to make an impact?

  • Apply now by submitting your CV.

Similar jobs