Description Key Responsibilities Actively design and implement production-ready software components in C/C++ across embedded software and software application layers Develop hardware-near software, drivers, and device communication interfaces Solve complex cross-layer issues hands-on (hardware ↔ embedded software ↔ software applications) Define and document system architectures (class, sequence, state, component diagrams) Translate product and hardware requirements into structured, modular technical designs Define and maintain clean and robust hardware–software and software interfaces Conduct architecture reviews, design reviews, and code reviews Ensure scalability, reliability, performance, and maintainability of systems Introduce improved architectural patterns and engineering practices Mentor developers in system design, abstraction, and implementation quality Contribute to long-term technical strategy and innovation Essential Skills and Experience: 8 years of professional software development experience Several years of experience in senior or architectural roles Strong expertise in C/C++ (embedded or hardware-related systems preferred) Experience across embedded software and software application development Solid understanding of hardware interfaces, communication protocols, and performance constraints Experience with modular system design and architectural patterns Strong debugging and performance optimization skills Experience with modern development practices (version control, CI/CD, code reviews, testing strategies) Master’s degree in Computer Science, Software Engineering, or comparable qualification