What will your job look like? Own software features end-to-end, from design through implementation, integration, testing, and maintenance. Design, develop, and maintain application-level software for complex real-time embedded systems using modern C++. Participate in architecture discussions, design reviews, and technical decision-making. Debug, troubleshoot, and optimize software for performance, reliability, and scalability. Collaborate with multidisciplinary teams including Algorithms, Cloud, Product Management, Installation Tools, and other Embedded Software teams. Mentor junior engineers and contribute to improving development practices. All you need is: B.Sc. in Computer Science or Software Engineering. 6+ years of hands-on software development experience. Strong proficiency in modern C++. Experience developing software for Linux-based systems. Experience with embedded and/or real-time software development. Strong software design, debugging, and problem-solving skills. Experience owning features throughout the full software development lifecycle. Familiarity with communication protocols such as TCP/IP, UDP, Ethernet, CAN, SPI, UART, or I2C. Strong communication skills and the ability to clearly explain technical decisions.