job description
Join Thales, a global leader in advanced technology solutions, as a Senior Embedded Software Engineer (C/C++) in the vibrant and innovative hub of Bali, Indonesia. This is a unique opportunity to contribute to cutting-edge embedded systems development, focusing on secure and high-performance operating systems for mission-critical applications.
In this role, you will play a pivotal part in the design, development, and testing of embedded software solutions, ensuring robustness, efficiency, and adherence to the highest security standards. You will collaborate with cross-functional teams to deliver next-generation products that power industries such as aerospace, defense, and digital identity.
Bali offers a dynamic work-life balance, combining a thriving tech ecosystem with a tropical paradise lifestyle. Whether you're based in Canggu, Ubud, or Denpasar, you’ll be part of a global team driving innovation while enjoying the island’s unique culture and community.
Responsibility
- Lead the design, development, and optimization of embedded software for secure operating systems and real-time applications.
- Write, test, and debug high-performance C/C++ code for resource-constrained embedded systems.
- Collaborate with hardware engineers to integrate software with custom or off-the-shelf hardware platforms.
- Ensure compliance with security, safety, and industry standards (e.g., ISO, MISRA, DO-178C).
- Conduct code reviews, static/dynamic analysis, and performance profiling to guarantee software reliability.
- Develop and maintain unit tests, integration tests, and automated test frameworks.
- Troubleshoot and resolve complex technical issues in embedded environments.
- Document software designs, APIs, and technical specifications for internal and external stakeholders.
Qualifications
- Bachelor’s or Master’s degree in Computer Science, Electrical Engineering, or a related field.
- Minimum 5+ years of experience in embedded software development using C/C++.
- Proven expertise in real-time operating systems (RTOS), bare-metal programming, and microcontroller architectures (ARM, Cortex-M, etc.).
- Strong understanding of memory management, concurrency, and low-level hardware interactions.
- Experience with debugging tools (JTAG, oscilloscopes, logic analyzers) and embedded development environments (Keil, IAR, GCC).
- Familiarity with security best practices for embedded systems (e.g., secure boot, encryption, side-channel attack mitigation).
- Excellent problem-solving skills and the ability to work in Agile/Scrum teams.
- Fluency in English; additional languages are a plus.