

Responsibilities:
- Design and implement embedded software applications for IoT devices using C programming language.
- Develop and maintain firmware for Raspberry Pi-based systems, ensuring optimal performance and compatibility with various IoT sensors and peripherals.
- Collaborate with hardware engineers to define and document system requirements and specifications.
- Conduct thorough testing and debugging of embedded software to identify and resolve any issues or bugs.
- Optimize code and improve system performance to enhance the overall user experience.
- Stay updated with the latest industry trends and technologies in embedded systems and IoT development.
- Work closely with the product management team to translate customer requirements into technical specifications.
- Provide technical support and guidance to the team during the development and deployment phases.
- Participate in code reviews and contribute to the continuous improvement of software development processes.
Qualifications:
- Bachelor's or Master's degree in Computer Science, Electrical Engineering, or a related field.
- Strong proficiency in C programming language with a solid understanding of embedded systems.
- Experience developing software for Raspberry Pi or similar single-board computers.
- Knowledge of IoT protocols and technologies such as MQTT, CoAP, TCP/IP, and wireless communication (Wi-Fi, Bluetooth, etc.).
- Familiarity with various sensors, actuators, and electronic components commonly used in IoT devices.
- Solid understanding of software development methodologies and version control systems (e.g., Git).
- Strong problem-solving skills and the ability to debug complex issues in embedded systems.
- Excellent communication and teamwork skills to collaborate effectively with cross-functional teams.
- Prior experience in developing IoT applications or working on IoT projects is a plus.

Similar jobs

• Experience in system design and building IoT systems in resource and power constrained environments
• Proficient in C language on embedded platforms and familiarity with hardware design of embedded system is a plus
• Development on Linux Platform/RTOS with an emphasis on embedded device driver development, multi-threading, and firmware debugging
• Experience with mesh network or sensor network and communication
• Good understanding of multiple IoT platform components is essential
• Solid working knowledge using IoT hardware platforms, communication boards, and gateways
• Hands-on in internet protocols and software development using protocols including LoRA, Wi-Fi, BLE, ZigBee, NB-IoT, M2M,6LoWPAN, Ethernet etc.
• Expert hands-on proficiency in developing applications using one or more technology stacks
• Strong hands-on understanding of scalability, security, high availability, and operational requirements
• Sound and proven decision-making skills to influence the technology choice and implementation methodologies
• Hands-on in object-oriented programming principles, design patterns, and software architecture
• Good with rapid problem solving, a strong technical background, and passion for continuous improvement
• Must have had hands on experience with Connected smart products having Product and Application software, data and Cloud
• Must have intimate knowledge of tools and processes used for Product(firmware) and/or Application software and/or Device hardware and/or Cloud
• Must be intimately familiar with Agile and Scrum, in the creation of dashboards for Sprints. An expectation would be to implement Scrum within the organization
• Must have strong familiarity with SMAC(social media, mobile, analytics and cloud) trends and application to saleable product categories
• Must have worked closely with Mechanical/Electrical/Electronics engineering teams in the development of smart/connected products.

We are searching for a talented embedded developer to join our team. You will be working along-side with other engineers and developers working on different layers of the infrastructure. Therefore, commitment to collaborative problem solving, sophisticated design, and creating quality products is essential.
The candidate should be proficient in C and C++ and possess detailed knowledge of microcontroller protocols. The candidate would be responsible for,
-
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
Mandatory Skills:
-
Experience in C++ based applications development for embedded system applications
-
Solid understanding of OOPs, SOLID Principles, Design Patterns.
-
Drivers/BSP development on peripherals like ADC, SPI, I2C, UART etc
-
Firmware development experience on ARM Series of microcontrollers
-
Strong knowledge of hardware architecture such as ARM, MIPS, and x86.
-
Familiarity with hardware protocols including USB, UART, I2C, and SPI.
-
Familiarity with OS platforms such as Linux, Unix, and RTOS.
-
Knowledge on different communication protocol like Wi-Fi, Zigbee, Bluetooth and sub–GHz.
-
Basic Hardware knowledge and debugging skills
-
Strong analytical and problem-solving abilities.
-
Strong organizational and project management skills.
-
Strong knowledge of SDLC, test cycle and logical thinking on various complex use case call scenarios.
-
The ability to keep abreast with the latest advancements in technology and techniques.
Desired Skills:
-
Knowledge on IoT based systems
-
Preferably worked on a Linux based project.
-
Ability to lead the team & handle the project and own all technical aspects of design and development of systems from scratch.
-
Meticulous and very organized.
-
You will not hesitate to ask questions and call upon the knowledge of your coworkers to make sure you produce the best possible documentation for our customers.
-
Worked on 3-5 project from starting of project to delivery of project (Depending on experience)

Mandatory Skills:-
C Programming and data structures.
Linux Internals ( System calls, IPC, Network Programming, POSIX Multi-thread programming)
Desirable Skills :-
C++ and OOPs knowledge
Linux system start-up sysvinit, systemd,
Bootloaders : uBoot
Message bus protocols like dbus
Basic Linux Device driver knowledge
Linux Build framework – Yocto-Bitbake, Makefiles
Python scripting
Debug using tools such as GDB
Version control - GIT and SVN
Job Description:
WLAN Linux Device Driver development (802.11ax preferred)
- WLAN Debugging
- WLAN Firmware development (802.11ac, 802.11n)
- Networking/Wireless Domain knowledge
- Hostapd, Supplicant
- Cross compiling/porting experience
- Performance optimization & Firmware enhancements
Must have Skills:
- 1-10 years of experience in Embedded Software Design, Implementation and testing
- Good knowledge of C or C++
- Basic knowledge in Scripting (Shell, Perl or Python)
- Proficiency in Problem Solving and Debugging skills
- Excellent team working skills
- Experience with version control e.g. GIT
- Basic experience of working in Linux OS
- Network Drivers
- WLAN Protocol Knowledge – 11n, 11ac
- WLAN Linux Device Drivers
- Hostpad, Supplicant
- WLAN Debugging
- Fluent in English
Desired Candidate Details:
- Design, development, and maintenance
- WLAN Stack development and debugging
- Feature Enhancements, Applications, Tools for SDKs
- Basic module level unit testing, System testing
- Providing support to technical documentation team and field application engineers
- Close collaboration with the Chipset Vendor on the Software Development
- Participations in the Product design and Software Design Documentation – High level / Module level / Low level design
- Troubleshooting software and architectural issues
We are looking for a seasoned Wireless LAN Software Engineer to join our Wireless & Networking team in Chennai, Pollachi, Kochi (Cochin), Gurugram, Manesar, Bengaluru (Bangalore). The candidate must be an experienced Engineer and a good team player, who will work on Wireless software solutions which will enable us to develop the products for our customers quickly with industry leading quality. Working with Embedded Software in agile development projects, you will be responsible for creating and maintaining software of Wireless Access Point and Router Products including Module design, Development, JIRA Updates and Unit testing of the Software that is meeting industry standards, creating demos of the solution and customer support.
DUTIES & RESPONSIBILITIES
- Own & lead full cycle development: design, implementation, testing & debugging for an automotive product.
- Create conceptual system designs, assess risks, conduct design trade studies, and develop a product that meets feature requirements for integrating sensor, processing and software systems.
- Lead innovative system development projects with responsibility for achievement of cost, schedule, and technical requirements, with an eye toward technology maturation, transition, and follow on work.
- Generate comprehensive engineering documentation.
- Responsible for end-to-end system firmware development to include power management, boot loaders, scheduling, RTOS and /or bare metal implementations.
- Troubleshoot and resolve complex software problems in embedded real-time systems.
- Source code development, review & maintenance (C/C++).
- Dive into & take ownership of critical design issues.
- Analyse & propose solutions for performance bottlenecks.
- Address all aspects of technology readiness, including manufacturability.
- Help build robust methodology and processes to deliver the technology to products.
REQUIRED SKILLS & EXPERIENCE
- Experience in embedded architecture, external interfaces, product constraints, along with ability to develop architectures / features that meet these constraints while providing new value for the platform.
- Experience in system architecture, operating system, device architecture, hardware design.
- Strong background in software methodology & full cycle development (Design, implementation, testing & debugging).
- Expertise in embedded microcontrollers’ architecture.
- Expertise in software designing and programming in C/C++ is a must.
- Algorithm modelling, benchmarking, implementation & digital signal processing.
- Understanding of hardware & software co-verification & emulation platforms
- Experience in understanding hardware, clock-level issues, bridges, delays, interrupts, clock gating, polling etc.
- Experience with lab instrumentation like oscilloscope, logic/ protocol for debugging embedded systems at HW level.
- Bachelors | Masters degree in Computer Science or Electronics & Communication engineering with 2-5 years of relevant experience is a must.





