Job Summary:
We are seeking a Software Developer to support a project focused on rebuilding and modernizing an existing software stack. The role involves transitioning parts of the software architecture to Rust and leveraging emerging technologies such as Digital Twin concepts and modern messaging frameworks. The developer will contribute to a software development methodology centered on AI-assisted development, including reviewing, validating, and improving AI-generated code. The position focuses on developing embedded software solutions, messaging infrastructure, onboard data distribution, and platform services in Linux-based environments.
Key Responsibilities:
• Design, modify, and implement complex embedded software solutions for onboard data distribution, messaging infrastructure, and platform services.
• Define, implement, and manage onboard messaging topology using Zenoh and related data-centric messaging technologies.
• Configure and optimize data distribution paths based on system constraints and performance requirements.
• Code, integrate, test, debug, and refine software to deliver scalable, reliable, and maintainable platform solutions.
• Develop tools to visualize, troubleshoot, and validate messaging topology, data flows, and system state.
• Enable system observability through telemetry, tracing, metrics, and service health reporting.
• Review, evaluate, and analyze system designs, interfaces, and data flow requirements.
• Prepare and review interface documentation, technical specifications, and test plans.
• Document software designs through engineering documents, including functional block diagrams and data models.
• Review, validate, and improve AI-generated code as part of AI-assisted software development practices.
• Provide technical guidance and support to other engineers and technical personnel.
Required Qualifications:
• Bachelor's degree in Computer Science.
• 3-5 years of relevant software development experience.
• Experience developing software using C/C++, Golang, or Rust.
• Experience developing software under Linux in embedded or resource-constrained environments.
• Experience with data-centric distributed messaging systems such as Zenoh, DDS, or MQTT.
• Understanding of distributed systems principles, including reliability, scalability, and fault tolerance.
• Experience working with structured data models and system state modeling.
• Understanding of secure data distribution and software security practices.
• AI-based Software Development Life Cycle (SDLC) certification.
• Rust certification.
Preferred Qualifications:
• Experience with Golang and Rust.
• Familiarity with Digital Twin concepts and system state modeling.
• Knowledge of networking fundamentals, including TCP/UDP/IP.
• Familiarity with containers, virtualization, or Docker.
• Experience with DevOps CI/CD pipelines and GitLab.
• Familiarity with Agile/Scrum development methodologies.
• In-Flight Entertainment domain knowledge and system development experience.