Booking.com logo

Software Engineer (For independent contractors)

Booking.com

Amsterdam
Contractor
2-5 years experience
On-site

Key Skills

Typescript
Node.js
Api development
Aws services
Aws lambda
S3
Dynamodb
Ci/cd
Test automation
System design
Observability
Reliability engineering
Infrastructure automation
Software architecture
Technical incident management
Coding agents

Job Description

A Software Engineer II owns the execution of technical elements in the Booking.com tech stack, products and processes. They are responsible for the implementation of technical solutions based on business requirements, they can estimate the effort and impact of the items they work on, and show a high quality of craft in what they deliver. A Software Engineer II understands the quality of test automation is as important as the production code and spends time refactoring both to ensure ease of change enabling a sustainable pace of development. Software Engineer II are expected to work together with colleagues in other job roles to design, prioritise and implement technical tasks. Because the required technical skills and commercial knowledge can vary from one business unit to another, a Software Engineer II can focus on multiple types of work from product features to infrastructure automation, frameworks, tooling or services. A Software Engineer II owns the execution of technical elements in the Booking.com tech stack, products and processes. They are responsible for the implementation of technical solutions based on business requirements, they can estimate the effort and impact of the items they work on, and show a high quality of craft in what they deliver. A Software Engineer II understands the quality of test automation is as important as the production code and spends time refactoring both to ensure ease of change enabling a sustainable pace of development. Software Engineer II are expected to work together with colleagues in other job roles to design, prioritise and implement technical tasks. Because the required technical skills and commercial knowledge can vary from one business unit to another, a Software Engineer II can focus on multiple types of work from product features to infrastructure automation, frameworks, tooling or services. Building software applications Is responsible to build software applications by using relevant development languages and applying knowledge of systems, services and tools appropriate for the business area Is responsible to write readable and reusable code by applying standard patterns and using standard libraries Is responsible to refactor and simplify code by introducing design patterns when necessary Is responsible to ensure the quality of the application by following standard testing techniques and methods that adhere to the test strategy Is responsible to maintain data security, integrity and quality by effectively following company standards and best practices End to End System Ownership Has sufficient knowledge to own a service end to end by actively monitoring application health and performance, setting and monitoring relevant metrics and act accordingly when violated Has sufficient knowledge to reduce business continuity risks and bus factor by applying state-of-the-art practices and tools, and writing the appropriate documentation such as runbooks and OpDocs Has sufficient knowledge to reduce risk and obtain customer feedback by using continuous delivery and experimentation frameworks Has sufficient knowledge to independently manage an application or service by working through deployment and operations in production Technical Incident Management Is responsible to address and resolve live production issues by mitigating the customer impact within SLA Is responsible to improve the overall reliability of systems by producing long term solutions through root cause analysis Is responsible to keep track of incidents by contributing to postmortem processes and logging live issues Architectural Guidance Has basic knowledge to advise product teams towards a technical solution that meets the functional, nonfunctional & architectural requirements by challenging the rationale for an application design and providing context in the wider architectural landscape Has basic knowledge to set a clear direction for a technical capability by evaluating and aligning the target architecture improvements, reframing architectural designs and decisions for varied stakeholder Software Systems Design Has sufficient knowledge to evaluate possible architecture solutions by taking into account cost, business requirements, technology requirements and emerging technologies Has sufficient knowledge 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 Has sufficient knowledge to help grow the business and/or accelerate software development by applying engineering techniques (e.g. prototyping, spiking and vendor evaluation) and standards Has sufficient knowledge to meet business needs by designing solutions that meet current requirements and are adaptable for future enhancements Critical Thinking Is responsible to systematically identify patterns and underlying issues in complex situations, and to find solutions by applying logical and analytical thinking. 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. Continuous Quality and Process Improvement Has sufficient knowledge to identify opportunities for process, system and structural improvements (i.e performance gains) by examining and evaluating current process flows, methods and standards. Has sufficient knowledge to design and implement relevant improvements by defining adapted/new process flows, standards, and practices that enable business performance. Effective Communication 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 Must-have Skills Techstack: TypeScript/Node.js and API development, AWS services, AWS Lambda, queues, workers, orchestration, idempotency, retries, and scaling, S3, DynamoDB, security, observability, testing, CI/CD, and operations Independent end-to-end delivery: Owns the design, implementation, testing, deployment, and production operation of software solutions with limited supervision. Strong programming fundamentals: Writes readable, maintainable, and reusable code in the team’s primary programming language. Experience developing with coding agents. Testing and quality: Independently applies unit, integration, and contract testing; writes testable code and maintains appropriate test coverage. Production ownership: Deploys and monitors services independently, investigates production issues, and uses logs, metrics, and traces effectively. Reliability and failure handling: Designs for failure using mechanisms such as timeouts, retries, circuit breakers, dead-letter handling, and graceful degradation. Observability: Defines and uses meaningful Service Level Indicators (SLIs), Service Level Objectives (SLOs), key performance indicators, and alerts. Collaboration and communication: Clarifies requirements, identifies edge cases, communicates technical decisions, and collaborates effectively with product and partner Good-to-have Skills AWS Durable Lambdas for orchestration and execution Experience evolving APIs and schemas while maintaining backward compatibility. Familiarity with experimentation, continuous delivery, feature flags, and safe rollout strategies. Agent programming using a spec driven development framework like openspec.

Core Responsibilities

The Software Engineer II is responsible for the end-to-end execution, implementation, and maintenance of technical solutions within the Booking.com tech stack. They must ensure high-quality code, manage production services, and collaborate with cross-functional teams to meet business requirements.

Requirements

Candidates must have strong programming fundamentals in TypeScript/Node.js and experience with AWS services, API development, and CI/CD pipelines. The role requires the ability to independently manage software lifecycles, including testing, deployment, and production incident resolution.

About Booking.com

Industry: Software Development

Company size: 10,001+ employees

A career at Booking.com is all about the journey, helping you explore new challenges in a place where you can be your best self. With plenty of exciting twists, turns and opportunities along the way. We’ve always been pioneers, on a mission to shape the future of travel through cutting edge technology, to make it easier for everyone to enjoy amazing experiences wherever they go. Under a desert sky, or in the heart of a bustling city. Discovering the perfect hideaway, or the perfect paella. When you join us, you’ll be part of a community where taking a different path and trying something new is celebrated and supported. And where making a difference counts. We’re determined to make the world of travel more sustainable, more accessible, and more inclusive, to create a positive impact on a global scale. That’s why we’re always looking for people who search for better solutions, the ones eager to stray off the beaten path to find new ways of doing things. Because at Booking.com it’s more than a job, it’s a journey we’re on together.

Added Today