3 days ago
Bengaluru, IndiaMid Level / Senior
Responsibilities
- Design, develop, and maintain embedded software using C and established software architecture and coding standards.
- Develop and debug real-time embedded software using RTOS tasks, scheduling, synchronization, and inter-task communication.
- Apply software design and object-oriented programming principles to create modular, reusable, and maintainable code.
- Use Linux command-line tools, process and thread concepts, build environments, and debugging workflows.
- Participate in requirements analysis, software design, implementation, code reviews, testing, and release activities.
- Diagnose software issues using debugging tools, logs, traces, and target-hardware observations; perform root-cause analysis and corrective actions.
- Integrate software with hardware peripherals, device drivers, communication interfaces, and other product components.
- Develop and execute unit, integration, and regression tests covering boundary cases, error handling, and timing scenarios.
- Maintain technical documentation, design descriptions, test evidence, and software change records.
- Collaborate with system, hardware, verification, and global engineering teams to deliver software on schedule.
Requirements
- Bachelor’s or master’s degree in Electronics, Electrical Engineering, Computer Science, Embedded Systems, or a related field.
- 4–5 years of relevant experience in embedded software development for real-time or resource-constrained systems.
- Strong hands-on Embedded C programming skills, including pointers, memory management, data structures, bitwise operations, and low-level debugging.
- Understanding of RTOS scheduling, priorities, interrupts, semaphores, mutexes, queues, and timing constraints.
- Knowledge of object-oriented programming concepts; C++ exposure is desirable.
- Working knowledge of Linux fundamentals, shell commands, processes, threads, file systems, and software build and debug workflows.
- Experience with embedded debugging tools, compilers, build systems, version control, and source-code review practices.
- Understanding of microcontrollers, peripheral interfaces, device drivers, and hardware-software interaction, including GPIO, ADC, PWM, timers, and interrupts.
- Familiarity with UART, SPI, I²C, and Wi-Fi communication interfaces and protocols; TCP/IP basics are advantageous.
- Familiarity with unit testing, integration testing, regression testing, and software quality practices.
Benefits
- This is a future-opportunity talent-pipeline role and is not currently open; applicants may be considered for future opportunities matching their experience and aspirations.
- ABB welcomes people from all backgrounds and values diverse perspectives.
About ABB
ABB builds electrification, robotics, motion, and process automation hardware and software for industrial, utility, transportation, and infrastructure customers. Its portfolio spans motors and drives, robots, PLCs, switchgear, and EV charging, sold as equipment, systems, and services under the ABB Ability platform. Formed in 1988 and headquartered in Zurich, it is a public company traded on the SIX Swiss Exchange and NYSE.
