Principal Job Responsibilities: Software Development: Create, test, and optimize software solutions, ensuring reliability, performance, and security. Team Collaboration: Collaborate effectively with cross-functional teams, to understand project requirements and deliver integrated solutions. Code Maintenance: Maintain and enhance existing software applications, proactively identifying and resolving issues. Quality Assurance: Conduct rigorous testing and debugging to uphold software quality and adhere to industry standards. Documentation: Generate and maintain comprehensive technical documentation, including design specifications and user manuals. Continuous Learning: Stay updated on industry trends, emerging technologies, and best practices to drive innovation in aerospace software development. Requirements Analysis: Collaborate with clients and stakeholders to gather and analyse software requirements, ensuring alignment with mission-critical objectives. Architectural Design: Participate in the architectural design of software systems, making informed decisions about system structure and components. Performance Optimization: Identify opportunities for performance optimization in software applications, ensuring efficient resource utilization and responsiveness. Security Integration: Implement robust security measures to protect software systems from potential threats and vulnerabilities. Version Control: Utilize version control systems (e.g., Git) to manage software source code and facilitate collaborative development. Technical Support: Provide technical support to teams during system integration, troubleshooting, and issue resolution. Research and Development: Explore and evaluate emerging technologies and software development methodologies, proposing innovative solutions to enhance project outcomes. Compliance: Ensure that software solutions comply with industry regulations, standards, and certifications. Mentorship : Mentor junior software developers, providing guidance and knowledge sharing to foster professional growth within the team. Project Management: Participate in project management activities, including task estimation, project planning, and progress tracking. Client Communication: Maintain effective communication with clients, keeping them informed about software development progress and addressing their feedback and concerns. Continuous Improvement: Identify areas for process improvement within the software development lifecycle, implementing best practices and tools to enhance efficiency and quality. Knowledge and Skills Required Proven experience in software development, with proficiency in languages such as C/C++, Full stack development, Java, or Python. Familiarity with software development methodologies, e.g., Agile or Scrum. Strong problem-solving abilities and keen attention to detail. Excellent communication and teamwork skills. Adaptability in a fast-paced and dynamic work environment.