ABOUT
We’re inventing the future, right here, right now, at Thales. We design the critical security solutions of tomorrow by combining the curiosity to explore, the intelligence to question and the vision to create. Together we solve complicated problems by combining our experience in the market with our leading research and development capabilities.
Be part of revolutionising our skies for the future of aerospace. A future where all modes of aircrafts piloted or unpiloted, civilian or military move around our skies safer, more efficiently and sustainably for a greener and more harmonised airspace.
OUR CULTURE: YOUR GROWTH AND DEVELOPMENT
§ Joining Thales means joining a worldwide and well establish company (85 000 headcounts and growing) and navigate your career in the vast different path available.
§ Joining our program is joining an environment where you can discover engineering best practices to deliver safety critical systems.
§ Joining the software community and our pillars around Agile and DevSecOps, means being on the critical path of our business challenges, and therefore upskilling our talent is a priority.
ROLE DESCRIPTION SUMMARY
You will be a member of the software squad which maintains TopSKY ATC One products, the current ATM system used operationally by a wide variety of global customers. As such, you will be supporting the program by analysing/fixing PCRs, analysing/implementing ECRs within your software team/squad. Additionally, you will be tasked to improving the resilience of given test frameworks.
You are expected to participate in technical communities of practices (e.g., Community of Practices, Guilds) participating actively to share and build knowledge collectively; potentially leading these communities to improve the engineering processes and competencies in the ATM and digital domains.
KEY ACTIVITIES AND RESPONSIBILITIES
As a Software Engineer, you are accountable for:
· Designing and delivering software to meet requirements including architecture, design, reuse, development, integration and verification.
· Defining and tailoring the software engineering environment and the process, practices and tools applicable to the project
· Ensuring that the designed solution is developed according to design, schedule, cost and quality expectations.
· Identifying risks, and proposing effective solutions; executing mitigation actions and reporting on outcomes and residual risks
· Analyzing performance and looking for optimization opportunities on various workloads spanning from performance tuning on mid to large real-world applications
· Investigating performance bottlenecks across the entire software stack from the application down to the OS and CPU levels.
· Making tools and infrastructure to facilitate and accelerate performance analysis.
· Writing benchmarks to demonstrate and estimate the performance impact of suggested optimizations
· Owns the knowledge and conducts regular knowledge sharing sessions on best practices (e.g., Java coding practices, JVM deployment options)
KEY KNOWLEDGE AND EXPERIENCE
To be successful in your role, you will have demonstrated and/or acquired the following knowledge and experience:
Qualifications
Relevant bachelor’s degree or Master Degree
Technical skills
§ Must-have
ĂĽ Experience in performance analysis at either application (i.e., Apps that run on JVMs) or platform level (i.e., JVM)
ĂĽ Good knowledge of performance analysis methodology, profiling approaches, tools and automation.
ĂĽ Good understanding of the software stack from the application down to the OS and CPU levels.
ĂĽ Language: working knowledge of Java Core, Junit.
ĂĽ IDE/CICD Tools: GIT, Bitbucket, Jenkins, Eclipse, JIRA
ĂĽ Knowledge of formal software engineering process throughout lifecycle
§ writing & reviewing design, requirements, tests and code
ĂĽ DevOps culture and CICD methodologies
§ Nice-to-have
ĂĽ Language: any others like ADA, C++98/11
ĂĽ Experience in performance analysis on the Java stack
ĂĽ Experience with Java specific profiling tools like JFR/JMC, AsyncProfiler
ĂĽ Air Traffic Management domain knowledge
ĂĽ Experience in software development in a safety-critical environment
Other
Either one of the following options to be presented: (a) able to travel to Melbourne, Australia for a 6-8 week period for a one-off training session; (b) OTJ training in Singapore