We are seeking an experienced and highly motivated Embedded C++ Engineer to join our dynamic engineering team. The ideal candidate will have a strong background in developing multithreaded applications for multi-core ARM/RISC-V based System on Chips (SoCs) and be proficient in C++ development within embedded environments. As part of our team, you will work on cutting-edge AI technologies and contribute to the development of high-performance, reliable, and efficient Edge AI products/solutions. Role & Responsibilities: Design, develop, and optimize multithreaded applications in C++ for embedded systems with multiple sensors, specifically targeting muti-core ARM/RISC-V based SoCs for Edge AI products/solutions. Implement and debug complex software to meet performance and power requirements. Conduct performance profiling and optimization for both CPU and memory in resource-constrained environments. Write unit tests, perform code reviews, and ensure code quality through adherence to best practices. Collaborate with hardware engineers to understand SoC architecture and integrate low-level driver components. Participate in the team's software processes, including requirements and design documentation, test-plan generation and execution, peer design and code reviews, process feedback and improvements Stay current with industry trends, tools, and technologies relevant to Embedded Systems, Edge AI and C++ development. Required skills: Bachelor's or master's degree in related engineering field with 3 + years of hands-on experience in embedded C++ software development Experience in developing C / C++ multi-threaded applications, ideally for Embedded Linux targeting SoCs/Processors with multiple ARM cores Proficiency in C++11/14/17 or higher, with solid knowledge of object-oriented programming principles. Strong understanding of multithreading concepts, synchronization techniques, and concurrency issues in embedded systems. Familiarity with debugging tools such as GDB, JTAG, and performance profiling tools. Strong understanding of Processor/SoC architecture, memory management, interrupt handling, and low-level programming. Familiarity with hardware/software interfacing, including peripheral drivers, I2C, SPI, UART, etc. Experience with version control systems such as Git or SVN. Experience with industry-standard development tools (e.g.,GCC, Eclipse, Visual Studio, ARM Development Tools). Excellent problem-solving skills with a focus on optimizing software for embedded hardware. Strong communication skills and the ability to work effectively in a collaborative, cross-functional team environment. Detail-oriented with a focus on delivering high-quality, reliable software. Self-motivated with a strong passion for embedded AI systems and technology.
Role & Responsibilities: Explore and integration of various open source Python packages for ML/DL models, and creation of virtual machine/container for a given model Creation of interface plug-ins/communication interface between multiple virtual machine/containers Integration of host physical communication interfaces of audio, video and USB interfaces with the virtual machines/containers. Integration and testing of multiple virtual machines with external hardware Work along with hardware, software and QA teams Participate in the team's software processes, including -- requirements and design documentation, test-plan generation and execution, peer design and code reviews, process feedback and improvements Stay updated with the industry trends and developments. Required skills: Bachelors or Masters degree in related engineering field with 4 to 8 years of hands-on experience in embedded software development based on MCU/MPU Programming Language: Proficiency in Python (Multi-threading and OOPS) with basic~intermediate C/C++. Experience with Python communication/multimedia packages – Socket, PySerial, PyUSB, PyAudio, PyPi Experience with ML frameworks such as TensorFlow, TensorFlowLite Micro or PyTorch embedded systems Experience containers/docker deployment Good understanding and experience on various HW interfaces like UART, SPI, I2C, I2S, Ethernet, Wi-Fi, Bluetooth Experience with version control systems such as Git or SVN. Excellent problem-solving skills with a focus on optimizing software for embedded hardware. Strong communication skills and the ability to work effectively in a collaborative, cross-functional team environment. Detail-oriented with a focus on delivering high-quality, reliable software. Self-motivated with a strong passion for embedded AI systems and technology