Engineer II - Software Testing
Location: Bangalore, India
Department: AIR
Experience: 3
Key Responsibilities
1. Manual & Functional Testing
Own and execute end-to-end functional testing of all FW stack features.
Develop, review, and maintain detailed test cases and test plans.
Perform functional, regression, and integration testing
Log, track, and manage defects through structured defect triage.
2. Design, build, and maintain automated test pipelines for: SITL regression suites, Simulation validation flows
Write and maintain automation scripts using Python and Bash.
Integrate automated testing with CI/CD tools such as GitLab CI, Jenkins, etc.
Develop dashboards and reporting tools for automated test results.
3. Performance & Resource Utilization Analysis
Profile and analyze: CPU & memory usage, Timing, latency, and cycle performance
System stability during SITL and hardware execution
Provide actionable optimization insights for engineering teams.
Technical Requirements
1. Testing Frameworks
Strong expertise in GTest (C++ unit testing).
Strong expertise in Pytest (Python unit/system testing).
Experience developing automated test frameworks and regression suites.
2. Linux & Embedded Systems
Solid Linux knowledge (shell, permissions, processes, networking tools).
Hands-on experience with embedded platforms: Raspberry Pi,NVIDIA Jetson and Other ARM-based boards
Ability to flash, debug, and validate builds on embedded hardware.
3. Networking & Distributed Systems
Deep understanding of networking protocols: UDP, TCP, WebSockets
Ability to test communication latency, reliability, and packet flow.
Understanding of distributed data pipelines in robotics/avionics systems.
4. Version Control & DevOps
Strong proficiency with Git (branching strategies, code reviews).
Experience integrating tests into CI/CD environments.
Ability to build test automation into multi-stage pipelines.
Leadership Skills
1. Technical Leadership & Architecture
Own the technical direction for test architecture, automation frameworks, and validation tools.
Design and maintain a scalable automated testing ecosystem supporting multiple hardware targets.
Perform architecture reviews of system modules, focusing on testability, performance, and reliability.
Collaborate with system architects to ensure software designs enable robust test coverage.
2. Mentoring & Team Development
Mentor junior and mid-level engineers in:
Coding best practices
Automation strategies
Linux/embedded debugging
CI/CD usage and workflow discipline
Conduct technical training sessions on GTest, pytest, embedded testing, and networking analysis.
Provide code review leadership, ensuring high-quality and maintainable code.
3. Ownership of Embedded Test Infrastructure
Lead development of test environments for Raspberry Pi, Jetson, and ARM-based platforms.
Oversee creation and maintenance of:
Hardware-in-the-loop (HIL) setups
Automated test rigs
Distributed test nodes for real-time data validation
Define and enforce processes around flashing, provisioning, and debugging embedded boards.
4. Quality Governance & Release Readiness
Establish and maintain test policies, guidelines, and standards for the engineering organization.
Define Definition of Done (DoD) and Acceptance Criteria across different modules.
Ensure software meets reliability benchmarks (latency, packet robustness, CPU/GPU utilization).
Lead root cause analysis for critical failures in production or flight environments.
5. Cross-Team Collaboration
Work closely with:
Firmware team
Flight control team
Onboard software team
DevOps team
Serve as the bridge between development and testing, ensuring smooth handovers.
Represent the team in architecture meetings, sprint ceremonies, and technical strategy sessions.
6. Advanced Debugging & Issue Resolution
Lead debugging for complex issues involving:
Multi-threaded systems
Inter-process communication
Networking anomalies (UDP/TCP/WebSockets)
Real-time embedded behavior
Guide the team in using advanced tools:perf, strace, gdb, valgrind, tcpdump, Wireshark,systemd logs, kernel logs
Drive systematic approaches to failure reproduction on embedded hardware.
7. Performance & Reliability Engineering
Define and execute performance test strategies:
Network throughput
Latency profiling
Resource monitoring (CPU, memory, I/O)
Optimize distributed data pipelines for heavy workloads (e.g., telemetry, camera feeds, sensor fusion).
Provide guidance on improving embedded system stability and resilience.
8. Process Leadership & Documentation
Ensure engineering processes are followed consistently (branching, reviews, documentation).
Maintain high-quality documentation for:
Test frameworks
Embedded debug procedures
CI/CD workflows
Release qualification steps
Contribute to long-term test strategy and roadmap planning.