ST Engineering
Engineer, Software
About the job
Position Overview
We are seeking experienced Software Engineer(s) to join our dynamic team based in Singapore. The ideal candidate will have a passion for software development, aerospace/defence technologies and a willingness to learn and lead. You will be responsible for execution of a full SDLC (Software Development Life Cycle), including designing, developing, and maintaining mission-critical software for aircraft applications.
Key Responsibilities
•
Collaborate with cross-functional teams to gather requirements and define software specifications for aircraft mission-critical systems.
•
Lead the design and development of robust, scalable, and efficient software solutions that meet aerospace industry standards and regulatory / authority requirements.
•
Lead the implementation of real-time software, data processing software, and control systems software for onboard and offboard aircraft applications.
•
Oversee and to perform thorough testing and validation of software components to ensure reliability, safety, and performance under various operating conditions.
•
Lead and participate in DevOps / DevSecOps activities, including continuous integration, deployment automation, and security enhancements.
•
Document design processes, including development, testing, analytics, and troubleshooting.
•
Conduct code reviews, provide constructive feedback, and contribute to a culture of continuous improvement and knowledge sharing.
•
Work closely with hardware/firmware engineers and avionics systems engineers to integrate software with onboard avionics systems and ensure seamless functionality.
•
Stay updated on the latest advancements in aerospace technology, software engineering best practices, and industry trends and standards to drive innovation and competitiveness. (e.g. Kubernetes, Docker, Type 1 Hypervisors, DDS, Arinc 653, Generative AI).
Requirements
•
Bachelor's or Master's degree in Computer Science, Computer Engineering, or equivalent field.
•
Singapore citizenship is required for this position.
•
Possess prior working experience.
•
Proficient in programming languages / frameworks such as C/C++, Python and Dot Net, with a willingness to learn other software technologies as needed.
•
Expertise in developing, testing and debugging production-quality, scalable, multi-threaded, concurrent systems.
•
Able to apply Object Oriented Software design patterns effectively.
•
Proficient in identification of code smells and effective in code refactoring.
•
Familiarity with software development methodologies including Agile, and experience working in Agile environments, version control systems, software test frameworks, and software testing techniques.
•
Knowledge in DevOps / DevSecOps practices and a willingness to contribute to related activities.
•
Excellent communication skills and the ability to collaborate effectively with multidisciplinary teams.
•
Strong analytical thinking and problem-solving skills, with a keen attention to detail and a commitment to delivering high-quality results.
•
Ability to work under tight deadlines while coordinating several projects at a time and responding to changing business and technical conditions.
•
You are a self-motivated, independent, and high-performing individual. You learn quickly and enjoy solving worthy challenges.
The following qualifications are optional and would be an added advantage:
•
Experience with network troubleshooting/problem resolutions, protocol analysis, network troubleshooting/problem determination skills with network trace/capture/analysis software (Familiarity with network security technologies and products is a plus).
•
Experience with distributed systems concepts and client-server architectures.
•
Knowledge of relational databases, SQL, JSON, XML and XPath for handling of both structured and unstructured data.