Your responsibilities will include
Technical Leadership
Provide technical leadership for full-stack embedded software development, from low-level firmware through operating-system services and application-level software.
Define software architecture, technical solutions, interfaces, and design approaches for complex embedded systems.
Lead technical discussions, design reviews, code reviews, and architecture decisions.
Own technical decision-making across hardware/software boundaries, ensuring robust, scalable, and maintainable solutions.
Identify technical risks, dependencies, and gaps, and drive them to resolution.
Drive best practices in coding standards, testing, and documentation.
Embedded Software Development
Design and develop embedded software and firmware using C and C++.
Work with embedded operating systems such as Linux, RTOS, Android/AOSP, or similar platforms.
Develop across multiple layers, including device drivers and hardware interfaces, firmware and middleware, OS services, application-level software, and communication/connectivity interfaces.
Analyze system performance, reliability, memory usage, CPU utilization, and other embedded-system constraints.
Identify, troubleshoot, and resolve complex system-level issues across firmware, OS, and application layers.
Champion automation of build, test, and deployment pipelines to improve engineering efficiency.
Cloud & Connected Systems (Preferred)
Understand how embedded products interact with cloud infrastructure and connected services, with working knowledge of AWS preferred.
Understand device-to-cloud communication, APIs, telemetry, OTA software updates, and connected-product architecture.
Collaborate with cloud, mobile, data, and cybersecurity teams where embedded and cloud systems intersect.
Team Leadership & Collaboration
Provide technical direction and hands-on guidance to a team of embedded and full stack engineers.
Mentor and coach engineers, supporting their technical growth and career development.