Satlabs Space Systems
Website:
satlabs.space
Job details:
Role overview
We are looking for an Embedded Systems Engineer with 3-5 years of experience to design, implement, and verify robust firmware for mission‑ and safety‑critical embedded control systems. The role focuses on high‑reliability embedded C development, rigorous coding standards, fault detection/handling, and failure recovery in redundant architectures.
Location: Satlabs Facility in IIT Madras Research Park, Chennai.
Key responsibilities
- Design, implement, and maintain embedded firmware in C (and C++) for real‑time microcontroller‑based systems.
- Develop and integrate low‑level drivers, board support packages, and hardware abstraction layers for peripherals such as timers, GPIO, ADC/DAC, UART, SPI, I²C, and CAN.
- Apply safe and secure coding standards (e.g., MISRA C or equivalent) and follow established guidelines for safety‑critical embedded software.
- Design and implement mechanisms for redundancy management (e.g., dual‑redundant controllers, hot/cold standby, watchdogs, failover logic).
- Implement health monitoring, fault detection, isolation, and recovery (FDIR) strategies, including graceful degradation and controlled reset/restart schemes.
- Contribute to system‑level fault‑management concepts, including error budgets, timeouts, and safe‑state definitions, in collaboration with systems and hardware engineers.
- Develop and maintain unit tests, integration tests, and hardware‑in‑the‑loop (HIL) test setups; support automated and regression testing of firmware.
- Perform code reviews, participate in safety and design reviews, and contribute to continuous improvement of development processes and toolchains.
- Analyze critical issues from field and test data, perform root‑cause analysis, and implement corrective and preventive actions.
- Produce clear design documentation, interface specifications, and test reports suitable for safety‑critical certification or customer audits.
Required qualifications
- Bachelor’s or Master’s degree in Electronics, Electrical, Computer Engineering, or related discipline.
- Strong experience in embedded C for bare‑metal and/or RTOS‑based systems, with solid understanding of memory management, interrupts, and timing constraints.
- Hands‑on experience bringing up new hardware, reading schematics/datasheets, and working closely with hardware teams.
- Demonstrated use of structured coding standards (e.g., MISRA C) and static analysis tools in a safety‑ or security‑critical context.
- Experience with fault‑tolerant embedded designs, including redundancy concepts, watchdog supervision, and safe‑state strategies.
- Strong debugging skills using tools such as JTAG/SWD debuggers, logic analyzers, and oscilloscopes.
- Familiarity with configuration management and version control systems (e.g., Git) and structured build systems/CI.
- Clear written and verbal communication skills, with the ability to document and discuss design trade‑offs and safety considerations.
Preferred experience
- Experience with safety‑critical or high‑reliability domains (e.g., aerospace, automotive, industrial control, medical devices) and relevant standards (e.g., IEC 61508, ISO 26262, DO‑178C or similar).
- Exposure to failure modes and effects analysis (FMEA), hazard analysis, or reliability engineering practices for complex embedded systems.
- Experience implementing diagnostics, self‑tests, and built‑in test (BIT) frameworks for continuous health monitoring.
- Knowledge of cybersecurity considerations for embedded systems, including secure boot, secure update, and protection against fault‑injection attacks.
- Familiarity with scripting (Python or similar) for test automation, log analysis, and tooling around firmware development and verification.
- Experience with RTOSes (e.g., FreeRTOS, ThreadX, Zephyr) and deterministic scheduling for real‑time control loops.
Key competencies
- Strong ownership mindset and attention to detail in safety‑critical code paths (error handling, boundary conditions, resource cleanup).
- Systematic approach to problem‑solving, including hypothesis‑driven debugging and clear documentation of findings.
- Ability to work effectively in a multidisciplinary environment alongside hardware, systems, and test engineers.
- Commitment to continuous learning in areas such as coding standards, fault‑tolerant architectures, and best practices for reliable embedded software.
Screening and evaluation process
The selection process typically includes multiple stages to evaluate both technical depth and mindset for safety‑critical embedded development.
- Application and CV review: Assess relevance of past embedded/firmware work, safety‑critical or high‑reliability experience, and alignment with required skills.
- Technical assessment: Time‑boxed coding and problem‑solving exercises in embedded C, including code reading, debugging, and implementing small modules under constraints.
- System design and safety interview: Whiteboard or discussion‑based session focusing on firmware architecture, redundancy, fault detection/isolation, and failure recovery strategies for real‑time embedded systems.
- Behavioral and collaboration interview: Discussion of past projects, ownership, working with hardware and systems teams, handling incidents, and communication in a multidisciplinary environment.
- Final discussion: Role expectations, growth path, and alignment with the mission and engineering culture.
Click on Apply to know more.