
C++ Embedded Developer
at AI First, New-age Technology Company for the Digital
Location:Bangalore / Chennai
Type: Permanent
Company Type: AI / Digital Product Design Service based
Job Description
* Experience in C/C++ and have strong experience embedded application development and integration in Linux
* Good in creating unit tests, performing code reviews, optimizing performance and ensuring standards for maintainability
* Debugging, profiling, and performance optimization skills
* Have experience working in a fast paced Agile/Scrum environment
Similar jobs
FURIOUS FOX is looking for Embedded Developers with strong coding skills in C & C++ as well as experience with Embedded Linux.
Experience : (Minimum 7-10 yrs)
• Experienced in edge processing for connected building / industrial / consumer
appliances / automotive ECU
• Have a good understanding of IoT platforms and architecture
• Deep experience in operating systems eg: Linux, freeRTOS / kernel development/device drivers.
/ sensor drivers
• Have experience with various low-level communication protocols, memory devices, messaging
framework etc.
• Have a deep understanding of design principles, design patterns, container preparations
• Have developed hardware, OS abstraction layers, and sensor handlers services to manage various BSP, os standards
• Have experience with Python edge packages.
• Have a good understanding about IoT databases for edge computing
• Good understanding of connectivity application protocols and connectivity SDK for Wi-Fi and BT / BLE
• Experienced in arm architecture, peripheral devices and hardware board configurations
• Able to set up debuggers, configure build environments, and compilers and optimize code and performance.
Skills / Tools:
• Expert at object-oriented programming
• Modular programming
• C / C++ / JavaScript / Python
• Eclipse framework
• Target deployment techniques
• IoT framework
• Test framework
Highlights :
• Having AI / ML knowledge in applications
• Have worked on wireless protocols
• Ethernet / Wi-Fi / Bluetooth / BLE
• Highly exploratory attitude
• willing to venture in and learn new
technologies.
• Have done passionate projects based on self-interest.
You would be part of:
- Designing/Improvement of new/existing architectures of distributed computing with subcomponents of Unmanned Aerial Systems (UAS).
- Working/Researching with industrial state of the art sensor systems and modules, and developing drivers (HAL or wrapper) and applications around their usage.
- Design and implementation of communication protocols between different subcomponents of UAS for distributed computing.
- Writing Applications and Drivers from the scratch for (embedded)linux based systems.
- Scripting and automations around work flows of UAS usage.
- Working with existing sophisticated software stacks of subcomponents of UASs.
- Working closely with electronics, design and systems teams for architecture development and deployment.
- Working closely with Flight Controller engineers to do collaborative development of UAVs.
We expect you to be:
- Experienced in hands-on development of complex embedded systems involving multiple microcontrollers or SoCs.
- Very good in analytical abilities to be able to do core research and development activities.
- Able to write low level drivers (wrapper or core) from the scratch.
- Very comfortable reading and understanding datasheets and reference manuals of microcontrollers, peripherals, sensors etc.
- Able to understand existing complex embedded software stack written in C/C++.
- Solid in C.
- Good in C++.
- Comfortable with using hardware debuggers.
- Having Hands-On experience with RTOS concepts like scheduling, threads synchronicity , race conditions etc.
- Having Solid understanding of interrupt mechanisms.
- Experienced in working with different hardware protocols like SPI, I2C, UART, PWM, CAN, USB etc.
- Having Solid understanding of interrupts architecture of ARM based microcontrollers like STM32, LPC etc.
- Having Good understanding of the concept of bootloaders.
- Able to multitask.
- A self-motivated and motivating personality who can work well independently as well as part of a team
- Having good interpersonal and soft skills who can adapt to the work environment while manifesting a good positive attitude
You are awesome if you are:
- Experienced in Linux Device Driver development.
- Having good exposure of working on and understanding of any sensor modules like GPS, LIDAR etc.
- Experienced in data filtering techniques (Example: Kalman filter)
- Hands-on embedded C skills (mandatory)
- Experience with any microcontrollers MCU (mandatory) – Renesas/ Infineon/ Cypress/ ST-Micro /TI / Microchip
- Experience with any of peripherals & communication protocols usage in application development (mandatory) – UART, I2C, SPI, I2S, CAN, USB, ADC, DAC, EEPROM, Flash memory
- Experience with any RTOS – FreeRTOS, Azure RTOS, ThreadX
- Experience with any networking & connectivity modules (preferred & added advantage) – Ethernet, WiFi, BLE, MQTT, COAP
Primary Skill: System Software Development
Skill sets req:
- Linux porting/development; Linux kernel concepts
- Expertise in Linux BSP device driver development
- Customizing kernel + Porting + Developing Applications Linux Device Driver Development (Character devices) Good Concepts of Network Drivers File Systems Concepts
- Expertise in porting, network stack; optimization, network programming
- Bootloader/Uboot porting
- Camera driver development (Good to have)
o Acceptance criteria: Shall have working experience in creating architectures for at least
4 projects.
Shall be strong in Object-Oriented Design and Thinking.
Shall be strong in documenting software architecture and communicating the same using UML.
Shall be strong in decomposing larger system into smaller units with clear implementation
dependencies marked for planning.
Shall be strong in effort estimation techniques.
Shall possess strong Problem Solving and Analytical Skills.
Shall be strong in C or C++ programing language experience.
Shall possess good understanding of either Linux or QNX or Android Operating Systems
Shall have a strong experience in developing software using in POSIX APIs.
Shall have a strong understanding on Networking, socket programming and working experience
in at least one of the IPC Frameworks like DBUS, SOME/IP, Binders etc.
Working experience with test framework and automation projects such as Robot Framework.
Knowledge on various software licenses and their compatibilities.
Shall posses strong knowledge in bootloaders, system startup, power management, persistency
management, health management and diagnostics framework for automotive systems.
Shall have a good knowledge on Functional Safety.
Shall have a good understanding hardware and processor internals.
Nice to haves:
Knowledge or working experience in AUTOSAR and / or Adaptive Autosar.
Understanding of GNU/Linux and its device driver framework.
Knowledge in “Secure Programming Techniques” is a plus.
Understanding in ARM Trusted Frameworks, Bootloaders & Virtualization Solutions is a plus.
Involvement in open-source projects in the past is a plus.
Knowledge in Package management and installers.









