11 Oct
|
VIDPRO CONSULTANCY SERVICES
|
Bengaluru
11 Oct
VIDPRO CONSULTANCY SERVICES
Bengaluru
Greetings from Vidpro Consultancy.
We are hiring for Software Developer/Engineer for one of our Aerospace and defense.
Software Developer / Engineer.
Role summary
Convert approved algorithms from MATLAB or Python into embedded C/C++, build the operational software around them, port it to a real-time target running VxWorks, and integrate and test it on the target hardware.
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 Area What you must be able to do 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 agile 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
Area What you must be able to do
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
Working independently Write code without internet search or AI tools, using your own knowledge and offline documentation
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
📌 Software Developer - Bangalore (Bengaluru)
🏢 VIDPRO CONSULTANCY SERVICES
📍 Bengaluru