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
Role & Responsibilities: Develop and maintain Linux-based embedded systems, focusing on device drivers and application. Debug and troubleshoot issues at both the driver and system level, including issues with memory, performance, and synchronization 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 in embedded Linux and edge AI. Required skills: Bachelor's or Master's degree in related engineering field with strong hands-on experience in embedded Linux device drivers and BSPs. Proficiency in C programming and having C++ will be advantageous. Experience with scripting languages: shell scripts, Python Proven experience in Linux device tree configuration, Linux BSP development, HW board bring-up and Yacto build system. Strong debugging and troubleshooting skills, including experience with tools like GDB, JTAG, and kernel debugging. Experience with kernel space programming and understanding of Linux kernel internals. Good understanding and experience on various HW interfaces like UART, SPI, I2C, I3C, I2S, Ethernet, Wi-Fi, Bluetooth Strong understanding of Processor/SoC architecture, memory management, interrupt handling, and low-level programming. 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.
Role Overview: As a Software Engineer, you will be responsible for developing and maintaining video/audio sensor drivers for embedded platforms. This includes image/video capture, audio capture, and sensor interface protocols such as I2C, SPI, MIPI CSI, and I2S. Your main focus will be on designing, implementing, and optimizing software for embedded systems using C/C++, ensuring that functional, performance, and security requirements are met. Efficiency and reliability are crucial, and you will work within a real-time operating system (RTOS) to ensure responsiveness and compliance with timing requirements. Your tasks will involve analyzing and optimizing embedded software for performance, memory usage, and energy efficiency in resource-constrained environments. Additionally, you will conduct unit, integration, and system level testing to ensure robustness and collaborate with cross-functional teams to ensure system stability and performance. It is essential to stay updated on the latest developments in video/audio sensor technology and embedded systems. Key Responsibilities: - Develop and maintain video/audio sensor drivers for embedded platforms - Design, implement, and optimize firmware for microcontrollers and embedded platforms - Analyze and optimize embedded software for performance, memory usage, and energy efficiency - Conduct unit, integration, and system level testing - Prepare and maintain detailed documentation of driver IDs, design documents, test cases, release notes, and software architecture - Work closely with cross-functional teams to ensure overall system stability and performance - Stay up to date on the latest developments in video/audio sensor technology and embedded systems Qualifications Required: - Bachelor's or Master's degree in Computer Science, Electrical Engineering, or a related field - Proven experience in C/C++ programming for embedded systems - Strong experience in developing video/audio sensor drivers and sensor interface protocols - Experience in embedded systems, microcontroller architectures, and real-time programming - Proven experience with embedded debugging tools and development environments - Experience with Linux-based systems or real-time operating systems (RTOS) - Strong experience working in resource-constrained environments with a focus on performance and memory optimization - Solid understanding of embedded system security, testing, and validation methodologies,
 
                         
                    