Job Title
PURPOSE OF THE ROLE:
The team is in charge of developing and maintaining the Service Integrator (SI): Amadeus Enterprise Service Bus. The SI is the single entry point to Amadeus applications. Its distributed architecture enables high throughput, scalability, and availability. It routes traffic to thousands of applications servers and processes at peak over 1 000 000 transactions per second without downtime.
It connects customers to applications of all Amadeus business areas and external providers. Amadeus business areas include Distribution, Hotel IT, Airline IT, including Mission Critical applications such as the Departure Control System. External providers include Airlines, Global distribution systems, Online travel agencies, Insurance providers.
To achieve that, it supports a wide range of protocols, from industry standards Edifact services to REST/JSON APIs and provides protocol adaptation, applicative service routing, session and security management. It plays a key role in Amadeus Cloud Strategy to migrate all workloads to Microsoft Azure using Kubernetes.
The team works in close collaboration with other development centers mainly in Europe to design and implement new features.
Amadeus leading presence in Asia and the component criticality make Sydney team a key asset for projects managed locally and expert support on urgent issues.
As a software development engineer, you will be working mainly using modern C++ on the SI codebase, as well as Golang for its Kubernetes operator and Python for the testing framework and tooling.
You will be involved in the full Software Development Life Cycle: support of business analysts, technical design, development, testing, implementation, and support (including oncall).
The main challenges ahead of us are:
Build the communication infrastructure to migrate from a private datacenter to a multi-datacenter architecture in public cloud.
Maintain an excellent stability and resiliency: mission critical services cannot fail
Ensure compliance with latest security standards (PCI-DSS)
Extend the product portfolio with new protocols and features
Keep Enhancing the application operability with tooling from Continuous Integration to Monitoring
Main responsibilities
- Delivery:
Produce code, problem investigations, support or testing within agreed standards and timescales.
Write all operational and software documentation necessary for the application from a technical standpoint.
Conduct analysis and contribute to joint product design efforts.
Support the other teams involved in the SDLC: Business Analyst, Testers.
Contribute to SDLC tooling: Continuous integration, testing framework, deployment and monitoring.
Demonstrate initiative in contributing to problem solving, design solutions and team goals.
Confident in technical skills and demonstrates substantial independence in the technical area.
Conduct unit and package tests of the software to ensure a level of quality in line with the Amadeus guidelines.
Take responsibility for a component of a project or a small project.
Troubleshooting and 3rd level support, working together with Operations team and customer service teams.
- Working with Others
Work cooperatively to achieve team goals making constructive suggestions to move things forward.
Build stable and useful working relationships with others outside the immediate area of work.
Provide trainings to other teams.
- Planning
Proactively report progress and highlight/escalate issues and problems as necessary.
Coordinate a Change Request between several impacted developers, either with local or remote teams (Nice, Bangalore, etc.)
Provide sizing for small and medium developments.
Monitor and control costs related to own work.
Record time accurately.
- Business Knowledge
Respond to client requests in non-standard situations, investigating all the facts.
Understand the key business drivers and apply this knowledge to own work.
Procedural Knowledge
Ensure deliverables meet the required Amadeus quality standards.
Effectively apply the required procedures and methodologies.
- Skill Development
Develop ability to solve complex problems.
Demonstrate competence in own area, completing own role independently or with minimal supervision / guidance.
Continued development of technical capability.
Relevant Work Experience:
Significant first experience of C++ programming in a multi-threaded environment.
Network programming and general distributed systems knowledge are a real plus
Problem solving, investigation skills, distributed systems, multi-threaded programming
Modern C++ (required), Golang (optional), Python (optional)
Software development and troubleshooting on GNU/Linux
Technology enthusiast, optional: network programming
Diversity & Inclusion
We are an Equal Opportunity Employer and seek to hire the best candidate regardless of age, beliefs, disability, ethnicity, gender or sexual orientation.