It wasn't so long ago that booking a trip to see the Eiffel Tower, stroll down New York's iconic Madison Avenue or feel the sand between our toes on Copacabana Beach was simply a matter of a few taps on our smartphone. In fact, that's what we do at Booking.com. We make it easier for everyone to experience the world. And while that world might feel a little farther away right now, we're busy preparing for when the world is ready to travel once more. Across our offices worldwide, we continue to innovate. To solve for some of the most complex challenges in travel and technology, and to plan for the exciting developments that lie ahead. With strategic long-term investments into what we believe the future of travel can be, we are opening up new career opportunities that will have a strong impact on our mission. We are united in the belief that our very human desire to explore the planet's beauty and discover more about other people and cultures will endure. The world is waiting for us. Together, we will be ready.
With over 1.6 million room nights booked every day, accommodation represents the largest share of our business to date. We are responsible for accommodation growth, with clear ownership of all marketing, product and supply related to accommodations. Our mission is to deliver the best customer experience and most varied selection of properties.
Our department delivers foundational services, components and frameworks that are used by all product teams across Booking.com's accommodation business. We are on a mission to modernize our technology stack, improve development processes and optimize the way tech teams work together - so we can build and iterate over our products faster, raise the quality bar and further strengthen our position as the global industry leader.
In this team we're building GraphQL middleware that receives traffic from frontend clients & services and returns data provided by backend services & orchestrators. Our mission is to make data available and accessible, enabling its discoverability, consistency, processing efficiency. We're supporting a range of GraphQL solutions: federation service with Apollo Server under the hood, Java GraphQL library used by backend service maintainers and some more.
GraphQL layer is a relatively new addition to our platform. We started with a single Java GraphQL service connected to various micro-services and service orchestrators. After a while we faced its scaling limitation. Now we're moving towards GraphQL federation with a decentralized schema that allows dozens of product teams to have full control of their data domains. This reduced the complexity of schema management and helped us to focus on the federation performance and excellence of provided GraphQL solutions.
Our system powers a significant part of Booking.com accommodation business including highly critical components of guest- and partner-facing applications. The solution migration from Java to Node.js requires a good knowledge of Node.js language and its best practices, understanding the specifics of Node.js services (i.e. resource consumption, process management, garbage collection, etc). As a Node.js expert, you'll help the team to create and improve our GraphQL solutions making our data mediation layer the best in the market.
There are three major fields where we expect your contribution:
- Helping the team with the design and development of Node.js GraphQL service and leading Node.js initiatives. The knowledge of Node.js and experience in running high traffic production applications is critical.
- Together with the team owning multiple services running on private cloud & AWS. These services are highly critical with a minimum of 99.99% availability and we need to ensure their stability, performance and ideally low latency. This comes with on-call rotation during the working hours and the ability to help with service recovery outside of working hours on rare occasions when SRE effort isn't enough.
- Being the evangelist of GraphQL migration and adoption in the company. Supporting product teams, giving tech talks and leading communication with Apollo GraphQL team.
- Leading Node.js GraphQL federation design and implementation
- Ownership of a highly critical production system
- Enabling its high availability and throughput
- Collaboration with teams responsible for other foundational systems
- Participating in the system "on-call" rotation during working hours
- Supporting product teams in GraphQL learning and migration
- Advocating for GraphQL adoption and best practices
- 8+ years of development experience
- 4+ years of experience working with Node.js
- Knowledge of GraphQL, preferably hands-on experience
- Knowledge of Java and/or Perl is a plus
- Experience in building large scale distributed systems
- Fluency in TypeScript, Docker and Kubernetes
- Understanding of Service Oriented Architecture and Microservices
- Leadership skills and ability to work with multiple stakeholders
- Ability to mentor and coach new or less experienced team members
- Ability to perform emergency application recovery outside of working hours (on rare occasions when SREs need help
- Living and working in Amsterdam, one of the most cosmopolitan cities in Europe
- Working in a fast-paced and performance-driven culture
- Contributing to a high scale, complex, world-renowned product and seeing the real-time impact of your work on millions of travelers worldwide
- Opportunity to utilize technical expertise, leadership capabilities and entrepreneurial spirit
- Opportunity to drive impactful and innovative engineering solutions
- Technical, behavioral and interpersonal competence advancement via on-the-job opportunities, experimental projects, hackathons and active community participation
- Competitive compensation, benefits package, and some great added perks