
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
We are looking networking professionals with the following skill set,
Experience :6+ years of experience in the networking domain
Key skills:
- Must have 6+ years of experience in C/C++ programming language.
- Knowledge of Go programming language and Python programming language is a big plus.
- Strong background in L4-L7 Internet Protocols TCP, HTTP, HTTP2, GRPC and HTTPS/SSL/TLS.
- Background in Internet security related products such as Web Application Firewalls, API Security Gateways, Reverse Proxies and Forward Proxies
- Proven knowledge of Linux kernel internals (process scheduler, memory management, etc.)
- Experience with eBPF is a plus.
- Hands-on experience in cloud architectures (SaaS, PaaS, IaaS, distributed systems) with continuous delivery
- Familiar with containerization solutions like Docker/Kubernetes etc.
- Familiar with server less technologies such as AWS Lambda.
- Exposure to machine learning technologies and distributed systems is a plus
Job Description:
- Design and development of automotive feature/function software/components (ACC, AEB, TSR, LKA etc.) for ADAS/AD systems
- Coordination and regular interaction with different stakeholders and teams like testing, requirements, leads etc.
- Participate in SW requirement generation, SW architecture, detailed design etc.
Requirement:
- 3-7 years of experience in development of Algorithm & Functions for advance driver assist systems (ADAS), Autonomous driving (AD)
- Development experience with safety critical systems
- Experienced in development using MATLAB Simulink, TargetLink, Stateflow
- Experience in modelling and validation of control systems
- Knowledge of SIL, Performance Test, Functional testing
- Embedded software development using C, C++
- Issue management and version control
- Knowledge of ASPICE processes, Static analysis, MISRA checks etc.
- Strong written and verbal communication skills
- Proactive approach for problem solving
Good to have:
- Knowledge of ADAS/AD functions (ACC, TSR, AEB, LCA etc), Data Analysis
- Experienced in managing and authoring of function specification requirements
- Familiarity with AUTOSAR RTE
Nice to have:
- AUTOSAR, Functional Safety (ISO26262) exposure
- Scripting Knowledge - Python, MATLAB
- Working knowledge of automotive protocols like CAN, Ethernet etc.
Responsibilities
- Design and implement software of embedded devices and systems from requirements to production and commercial deployment
- Design, develop, code, test and debug system software
- Review code and design
- Analyze and enhance efficiency, stability and scalability of system resources
- Integrate and validate new product designs
- Support software QA and optimize I/O performance
- Provide post production support
- Interface with hardware design and development
- Assess third party and open source software
Requirements
- Proven working experience in software engineering
- BS degree in Computer Science or Engineering
- Experience in hands-on development and troubleshooting on embedded targets
- Solid programming experience in C or C++
- Proven experience in embedded systems design with preemptive, multitasking real-time operating systems
- Familiarity with software configuration management tools, defect tracking tools, and peer review
- Excellent knowledge of OS coding techniques, IP protocols, interfaces and hardware subsystems
- Adequate knowledge of reading schematics and data sheets for components
- Strong documentation and writing skills
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)
Position Overview:
This position is part of highly skilled fimrware team that do software board bring up of bare silicon for next generation products. In order to write system software for embedded electronic products, this position requires academic background in electronics engineering to understand hardware concepts such as digital logic, schematics, and microprocessor communications to develop effective embedded software.
Candidate should have complete knowledge of Software development cycle from architecture definition to the implementation.
Responsibilities:
- Must wear multiple hats from analyzing field and factory reported issues to software integration.
- Be a liason for troubleshooting and debugging complex systems and identifying the root cause.
- Develop detailed design documents and customer facing application notes for the system and IOT features for Mobile routers.
- Act as a product lead and be part of bigger team in software bring up.
- Ability to work on Low level software such as bootloaders and understanding of low level functional blocks is a must.
- Work on Linux kernel and configuration.
- Write or port device drivers for Ethernet, USB, GPIO, LED, Bluetooth, Accelormeter, LCD and touch screen.
- Debug stability issues in data routing between WAN and LAN interfaces.
- Work with Software QA with test plan and execution.
- Work with Hardware team to identify and root cause stability problems.
Experience/Requirements:
- Demonstrable knowledge of C, C++, Assembly programming skills
- Overall 10+ years of experience in embedded environment preferabily Linux.
- Board bring up proficiency with bootloaders and other low level software, must be very good with debugging techniques.
- Experience in TCP/IP networking is must for trouble shooting throughput and other traffic issues.
- Driver experience with I2C, SPI, UART, LCD, Ethernet, PCIe is a plus.
- Experience with low level debugging using JTAG.
- Experience with Makefiles, and build environments such as PTXDIST, Yocto and Buildroot.
- Experience with version control such as git and svn.
- Good communication skills and team player.
- Ability to work independently and autonomously to meet deadlines, in a fast-changing environment.
Education:
Bachelor in Electronic and Communication or related degree- Become a member of the team responsible for IoT hub software development. IoT hub provides IoT functionality (smart home, smart appliance,…) to mobile and web clients and runs on Linux-based host like smart home hub, broadband router, STB, etc.
- Implementation and/or extension of leading wireless/wired protocols (ZigBee, Bluetooth, IP-based,..) for communication with smart devices
- Development of new features for control and monitoring of smart devices and automation of IoT system
- IoT hub software porting on various hosts
- Software optimizations
Position: C++ Developer
Location: Hyderabad
Requirements:
- Strong C++ skills obtained in multiple years of C++ programming experience (at least 3 years)
- Good understanding of embedded system development based on Linux OS
- Knowledge of advanced programming concepts (e.g. Multi-Threading, OS internals, Networking, IPC mechanisms)
- Solid understanding of computer networking (TCP/UDP/MQTT/SSL)
- Solid understanding of Git source code management system
- Troubleshooting skills
- B.Tech/M.Tech/MCA in computer science/ECE/EEE
- Fluent English
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.






