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. KEY KNOWLEDGE AND EXPERIENCE The Senior Software Engineer is responsible for Lead Software Design, Coding, Testing, Integration and Documentation of allocated software tasks Undertake critical Software Architectural Design and Software Component reviews. Requirement Analysis leading to development of Software Requirement Specifications, Software Design and System Test Documentation to match new and modified software. Implementing, debugging, testing and validating sonar-based algorithms provided by the General Sonar Studies group. Debugging problems in existing code and develop better implementations. Enhancing applications by identifying opportunities for improvement, making recommendations and designing and implementing software system solutions Maintaining and improving existing codebases and peer review code changes Liaising with customers to discuss new software tasks and assist in creation of Operational Concept Documents. Targeting design and documentation towards portability and reusability Supporting software deployment on operational platforms. Following best practices around software development (Waterfall SDLC model) and complying with Thales processes and procedures using appropriate software tools. Contribute in developing Agile and Lean development practices for software development Ensure project milestones/goals are met and adhering to approved budgets. Gaining an in-depth knowledge of the technical software content of UWS projects. Liaising with colleagues to implement technical designs Investigating and using new technologies where relevant Assessment, recommendation and selection of software reuse components such as Open Source and commercial software dependencies. Providing written knowledge transfer material, documenting application process for future maintenance and upgrades Ensuring adequate preliminary testing is done on all software tasks before being integrated, thus ensuring minimal problems occur at a later stage of the software life cycle. Ensuring that software engineering activities undertaken are conducted in accordance with relevant Thales Quality Assurance standards and procedures. Implementing responsibilities defined in the UWS Standard Operating Procedures and Work Instructions Participating in Thales Australia Personal Development programs and Annual Activity discussions. ESSENTIAL EXPERIENCE Eligibility for NV1 security clearance, and hold Australian Citizenship Software development in real-time systems, Signal processing Programming languages (C, C++, Java, JavaFX, ADA desirable) Design using UML Extensive Experience with working in Linux and Windows Experience in integrating large projects desirable Experience with continuous build, integration and test software development environments Proven Object-Oriented Software Design Experience, UML Modelling tools including software and architectural design patterns. Documentation of SDD, SRS, STDs etc Task estimation. Strong Agile software engineering methodology knowledge and experience Knowledge of Internet Protocol and networking communications infrastructure and protocols. Expertise with concurrent and/or multi-threaded software solutions Proven problem identification and analysis skills and system requirements analysis skills Ability to cope with pressure Ability / wish to travel Ability to understand complex real-time systems, System Engineering lifecycle experience in Defence/commercial areas High level planning and time-management skills. Well-developed communication and interpersonal skills with the ability to work collaboratively Ability to write clear, concise documents containing technical detail. A passion for solving problems and providing workable solutions Knowledge of algorithms and data structures Strong analytical and reasoning skills with an ability to visualise processes and outcomes Microsoft operating systems and desktop productivity tools. Proficiency in troubleshooting software issues and debugging a large codebase Experienced in working within OH&S frameworks with a solid working knowledge of safe work practices relating to personnel and material safety and handling of hazardous materials. QUALIFICATIONS A degree in Software Engineering or Computer Science is required. At least 5 years’ experience as a Software Engineer practitioner. Thales is committed to promoting and maintaining a workplace culture of shared respect that enables all of us to feel valued, do our best, and remain truly passionate about the place that we work. We are committed to making reasonable adjustments to provide a positive, barrier-free recruitment process and supportive workplace. We encourage applications from Aboriginal and Torres Strait Islander people and individuals from diverse backgrounds. We are also proud to be a WORK180 Endorsed Employer for Women. If you would like to know more on how we are supporting our employees, you can view our policies and initiatives here: https://work180.com/en-AU/for-women/employer/thales. Wellbeing matters at Thales, and where possible we encourage flexible working. Interested in a CAREER IN THE RAIL transportation sector? To see our jobs in the railway market, please visit our dedicated site here