Business Unit: Cubic Transportation Systems Company Details: When you join Cubic, you become part of a company that creates and delivers technology solutions in transportation to make people’s lives easier by simplifying their daily journeys, and defense capabilities to help promote mission success and safety for those who serve their nation. Led by our talented teams around the world, Cubic is committed to solving global issues through innovation and service to our customers and partners. We have a top-tier portfolio of businesses, including Cubic Transportation Systems (CTS) and Cubic Defense (CD). Explore more on Cubic.com. Job Details: Essential Job Duties and Responsibilities: Analyze customer requirements, create designs and detailed technical specifications for the software to be developed. Implement the software incl. software configuration control, unit tests and continuous integration. Support or carry out the deployment process. Produce and maintain internal technical documentation as required, such as software designs, test specifications or technical notes. Collaborate with the teams including software engineering, testing and design and the project management. Report to project manager and/or team lead on performance against timescales, specifications and quality requirements. Identify any deviations from the plan and suggest corrective actions. Keeps abreast of improvements and developments within software engineering. Comply with Cubic’s values and adherence to all company policy and procedures. In particular comply with the code of conduct, quality, security and occupational health, safety and environmental policies and procedures. Job Requirements: Skills knowledge and experience: Essential: Experience in developing fully featured native Android apps; Proficiency with Kotlin, Java and the Android SDK. Must have a solid knowledge in Android architecture as well as a good understanding applying design principles and patterns, and best practices. This includes MVVM architecture and Material Design for Android. Must have technical experience maintaining legacy mobile applications, applying clean code and following SOLID principles. Must be able to define whether or not is time to leverage third party libraries Vast hands-on experience modularizing and componentizing mobile applications. Must clearly understand the importance for the automation-first mindset, and have to be fluent in writing unit and automated tests (including UI); Solid and hands-on experience working with DevOps, automating build processes (CI) and running source code analysis tools; Fluency connecting Android applications to RESTful back-end services Experience using Git and branching models. Experience working in an Agile environment following SCRUM You like to take responsibility and have an awareness for quality. Fluent English language skills. Desirable: Hands-on experience integrating CI pipelines with App Testing Services such as AppCenter or similar; Good German language skills. Education and qualifications: Essential: A university degree in a numerate subject (e.g. computer science, maths, engineering, natural science) or similar qualification. Desirable: Certificates regarding relevant methods (e.g. UML, Scrum) and technologies (e.g. Java). Personal Qualities: Diligent, with attention to detail. Able to problem solve and find effective and timely resolutions. Excellent communication skills. Self-motivated with the ability to work on own initiatives and under pressure. Aware of software development best practice and able to apply standards and procedures effectively. Worker Type: Employee