At Booking.com, data drives our decisions. Technology is at our core. And innovation is everywhere. But our company is more than datasets, lines of code or A/B tests. We're the thrill of the first night in a new place. The excitement of the next morning. The friends you make. The journeys you take. The sights you see. And the food you sample. Through our products, partners and people, we make it easier for everyone to experience the world.
From our bases in Manchester and Amsterdam, our Trips team helps people enjoy the experience of travel. Whether it is a flight to an exciting destination, a taxi ride to the hotel, a rental car to give freedom to explore or a ticket to a popular attraction our Trips teams provide the services to complete the travel experience.
What are we working on
- A full continuous delivery pipeline using GoCD, Git and Artifactory
- Cross functional agile teams who own their products and operate in a DevOps environment
- Data driven decisions using Kibana, Hadoop, monitoring, Big Data, MI and MVT testing
- Automation of tests, deployments and repeatable tasks
- Continuous improvement, keeping it simple and developing the team
- Great engineering practices with a focus on TDD and BDD principles and a strong focus on non-functional requirements at the beginning rather than an afterthought
- Decoupled service orientated architecture with resilience and availability built in
- World class service delivery function, outstanding support for customers and staff alike with focus on first time resolution and great customer service & satisfaction
- Robust and automated infrastructure, delivered in alignment to technical roadmap
A Solutions Architect's role is to own the architectural roadmap, to define the architectural vision, and to facilitate its realisation by engineering teams across one or more Product Groups.
The Solutions Architect ensures the technical solution and approach is resilient, scalable and adaptable and that governance, compliance, and resilience are built into solutions.
This role is responsible for coaching engineering teams on engineering best practices, collaborating with the team and others to deliver high quality solutions, and keep abreast of new and existing technologies to be able to apply these to a variety of projects as applicable.
Software Systems Design
- Is responsible to evaluate possible architecture solutions by taking into account cost, business requirements, technology requirements and emerging technologies and guide more junior members of the team in this topic.
- Is responsible to describe the implications of changing an existing system or adding a new system to a specific area, by having a broad, high-level understanding of the infrastructure and architecture of our systems and guide more junior members of the team in this topic.
- Is responsible to help grow the business and/or accelerate software development by applying engineering techniques (e.g. prototyping, spiking and vendor evaluation) and standards and guide more junior members of the team in this topic.
- Is responsible to meet business needs by designing solutions that meet current requirements and are adaptable for future enhancements and guide more junior members of the team in this topic.
- Is responsible to assess and shape the current architecture landscape by identifying opportunities to reduce complexity and coupling
- Is responsible to identify the end state architecture and development architecture phases (eg designing new or shaping existing applications and services) by aligning with the business units technical strategy, reference architecture and applying domain knowledge
- Is responsible to design and enforce technical governance by writing and reviewing architectural patterns (e.g. peer reviews) guidelines and other supporting documentation.
- Is responsible to keep the business unit current with the latest technology trends by evolving the technical strategy & reference architectures within a business unit
- Has sufficient knowledge to build software applications by using relevant development languages and applying knowledge of systems, services and tools appropriate for the business area
- Has sufficient knowledge to write readable and reusable code by applying standard patterns and using standard libraries
- Has sufficient knowledge to refactor and simplify code by introducing design patterns when necessary
- Has sufficient knowledge to ensure the quality of the application by following standard testing techniques and methods that adhere to the test strategy
- Has sufficient knowledge to maintain data security, integrity and quality by effectively following company standards and best practices
- Is responsible to advise product teams towards a technical or business solution that meets the functional, nonfunctional & architectural requirements by challenging the rationale for an application design and providing context in the wider architectural landscape and guide more junior members of the team in this topic.
- Is responsible to set a clear direction for a technical or business capability by evaluating and aligning the target architecture improvements, reframing architectural designs and decisions for varied stakeholders and guide more junior members of the team in this topic.
- Is responsible to coach, guide and improve the overall performance of stakeholders and colleagues at all levels, when appropriate, by sharing experience, knowledge and approaches to work
- Is responsible to systematically identify patterns and underlying issues in complex situations, and to find solutions by applying logical and analytical thinking and guide more junior members of the team in this topic.
- Is responsible to constructively evaluate and develop ideas, plans and solutions by reviewing them, objectively taking into account external knowledge, initiating 'SMART' improvements and articulating their rationale and guide more junior members of the team in this topic.
- Is responsible to identify opportunities for process, system and structural improvements (i.e performance gains) by examining and evaluating current process flows, methods and standards
- Is responsible to design and implement relevant improvements by defining adapted/new process flows, standards, and practices that enable business performance
- Is responsible to deliver clear, well-structured, and meaningful information to a target audience by using suitable communication mediums and language tailored to the audience
- Is responsible to achieve mutually agreeable solutions by staying adaptable, communicating ideas in clear coherent language and practising active listening
- Is responsible to ask relevant (follow-up) questions to properly engage with the speaker and really understand what they are saying, by applying listening and reflection techniques
We are looking for a superb and enthusiastic Solution Architect who will push the boundaries on engineering brilliant solutions and contribute to shaping our new future.
We expect you to own and lead on the solution architecture for the software systems within your Product Groups and have a solid understanding of architecting robust solutions in a highly distributed web-based environment.
- Expert knowledge and significant experience in Software and Solution architecture
- Highly proficient in modelling the software solutions
- Highly proficient in the use of software technology such as Java and NodeJS
- Highly proficient in the use of database technologies such as Aurora and DynamoDB
- Highly proficient with highly distributed service (Microservices and event driven)
- Highly proficient with design patterns and design principles
- Understanding of and experience with microservices architecture
- Strong analytical and operational data management skills
- Demonstrable experience of cloud technology (AWS)
- Approachable & effective communicator, with a passion for sharing knowledge and helping others
- Flexible personal approach, between working with technical and non-technical teams
- Strong understanding of NFRs and building resilience
- Strong understanding of monitoring and analytical tools such as Kibana, Cloud Watch and Prometheus
- Good understanding of e-commerce business models
- Good understanding of A/B testing
- Good experience of Continuous Delivery and Agile
- Quality first mind-set for writing code using techniques such as TDD, BDD or Agile
- Understanding of semantic data