Live opening · Posted 4 days ago
At a glance
The key details from the original listing.
Your early-applicant advantage
Live timing from JobBeeper.
About the role
Description supplied by the original job listing.
We’re hiring | Software Developer.
Positions: 7
Experience: 3+ years
Domain: Aerospace and defence, multi-sensor data fusion
Working hours: 9 am to 6pm. (No remote/ hybrid)
Location: Bangalore (client site)
Work environment: Secure client-site environment with restricted network access.
Selection Process: L1 Interview followed by a mandatory offline written technical assessment at the Bangalore location. Candidates willing to attend the assessment in person are encouraged to apply.
Apply: hr@aiila.com
Job Description: .
Key responsibilities
• Convert algorithms from MATLAB or Python into optimised, embedded-grade C/C++ code.
• Design and build the operational software framework: tasks, data flow, interfaces and error handling.
• Port and deploy the software on target hardware using VxWorks and its IDE.
• Develop and integrate Ethernet, MIL-STD-1553 and PCIe interfaces as defined in the interface specifications.
• Integrate with the existing system software on the target.
• Profile and optimise for real-time performance, and produce benchmark results.
• Re-run the algorithm test cases on the software modules and prove the outputs match the prototype.
• Support integration and hardware-in-the-loop (HIL) testing.
• Verify output data timing, size and duration against the acceptance criteria.
• Maintain commented, documented source code and provide design inputs for reviews.
Qualification
• B.E./B.Tech or M.E./M.Tech in CSE, ECE or EEE.
• Minimum 3 years of embedded software development in C and C++.
Must-have skills for every candidate
• C programming: Data types, pointers, arrays, structures and unions, bit manipulation, function pointers, memory layout, and static and dynamic memory
• Embedded C: Writing code for a target board: memory-mapped registers, interrupts, timers, volatile and const usage, fixed-size data structures, and code without dynamic memory allocation
• C++ programming: Classes, inheritance, templates, STL containers, and modern C++ (C++11/14) features that are suitable for embedded use
• RTOS, mainly VxWorks: Tasks and priorities, scheduling, semaphores and mutexes, message queues, timers, interrupt service routines, and priority inversion. Hands-on VxWorks application development with Wind River Workbench
• Ethernet interface: Socket programming with UDP and TCP, packing and unpacking binary messages, byte order handling, and network debugging
• MIL-STD-1553 interface: Bus controller, remote terminal and bus monitor roles, message formats, sub-addresses, and using a 1553 interface card and its driver API
• PCIe interface: Understanding of PCIe devices and drivers, device enumeration, memory-mapped I/O, and communicating with PCIe-based interface cards
• Embedded hardware: Hands-on work with edge devices or avionics single-board computers (SBCs): board bring-up support, boot flow, BSP usage, and cross-compilation
• Algorithm conversion: Convert MATLAB or Python algorithms to C/C++, including matrix operations and numerical code, and prove the output matches the original
• Multithreading: Design thread-safe code, and avoid race conditions and deadlocks
• Debugging and optimisation: Use debuggers and profilers on a target board, and find timing, memory and performance faults
• Code quality: Follow a coding standard such as MISRA C/C++, write unit tests, and use static analysis tools
• Ability to work independently in a secure, restricted-network development environment.
Tech stack
• Languages: C, Embedded C and C++.
• RTOS and IDE: VxWorks with Wind River Workbench. Other RTOS experience is also considered.
• Interfaces: Ethernet (UDP/TCP), MIL-STD-1553, PCIe and serial (RS-232/RS-422).
• Hardware: Avionics SBCs and edge devices, for example PowerPC, ARM or x86 based boards.
• Libraries: Eigen or another linear algebra library.
• Testing: GoogleTest or similar, gcov for coverage, and HIL test setups.
• Static analysis: Cppcheck, Coverity, PC-lint, LDRA or Polyspace.
• Build and version control: Git, Make/CMake, and cross-compilation toolchains.
Good to have
• Python or MATLAB knowledge, which is an added advantage for algorithm conversion and test scripting.
• Experience with MATLAB Coder or similar code generation tools.
• Basic understanding of Kalman filtering, tracking and matrix mathematics.
• Other avionics interfaces such as ARINC 429, CAN.
• Airborne or defence software experience and awareness of DO-178C.
• Device driver or BSP development experience.
Work arrangement
No
More openings worth a look
Recently tracked roles with full details and direct application links.