With respect to space software engineering I gained experience in both, ground segment and space segment. Some references are for
Ground Segment:
- antenna control software for ZDBS,
- multi mission control software for GSOC,
- inter-agency communication software DLR/MSCC-NASA
Space Segment:
- on-board software of satellite laser terminals,
- Software System Specification for Meteosat Third Generation,
- satellite telemetry replay visualization.
My technical expertise covers standards:
- ESA ECSS standards, in particular E40 for software engineering, Q80 for software quality
- ECSS Paket Utilization Standards for ground-space communication
Onboard software function groups, e.g.
- telecommand processing
- telemetry collection
- FDIR (failure detection, isolation & recovery)
- system state management
- software upload
- application specific functionality
- intra-application communication
Software Engineering Processes & Tools:
- requirements engineering, using DOORS and other RM tools
- architecture & design, procedural and object-oriented, using modelling tools, e.g. EA, Paradigm
- implementation in C (in space rarely also in C++), using all common tool,s like make/cmake, gdb, git, ...
- network programming, multi-tasking, real-time algorithms
- real-time operation systems, e.g. VxWorks, FreeRTOS, RTEMS
- computing platforms: FPGAs, microprocessors, SBCs
- verification & validation
And as a physicist with a space & astronomy focus there is background knowledge about
- orbital mechanics, trajectories, dynamics
- coordinate frames and transformations
- general spaceflight technology