Booking NL
Full Stack Software Engineer (For independent contractors)
Please note, this is a 5-month assignment for freelancers.
A Software Engineer 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. Software Engineer owns the design and delivery of software solutions based on business requirements, deploying and monitoring code in production independently.
Requirements:
Strong and proven FE development skills and experience is a must
React, JavaScript, HTML, CSS, TypeScript, proven experience is a must
Proven experience with 1+ server side programming languages: Java is a must, Perl is a plus.
Micro front end architecture experience is a plus
GraphQL knowledge is a plus
Developing on public cloud (AWS) experience
SDLC best practices: source control management, code reviews, unit and integration tests, build pipelines, build and configuration tools, E2E tests.
Observability: logging, tracing, metrics. Building relevant dashboards to monitor service health, defining alerts.
REST API design and best practices: API versioning, documentation, applying relevant methods, setting up clear request/response structure, backward compatibility.
Building and managing container-based applications.
Integration techniques: synchronous and asynchronous approaches.
Experience with legacy system integration and phased application integration.
Key Responsibilities:
Building software applications:
Is responsible for building software applications by using relevant development languages and applying knowledge of systems, services and tools required for target solutions.
Is responsible to write readable clean code and participate in the code review process.
Is responsible to refactor and simplify code by introducing design patterns when necessary.
Is responsible to ensure the quality of the application by following best-matching 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:
Is responsible to own a service end to end by actively monitoring application health and performance.
Is responsible to define, set and monitor relevant metrics, logs and traces.
Is responsible to independently manage an application or service by working through local build, environments transition, deployment and operations in production (CI/CD).
Technical Incident Management:
Is responsible to address and resolve 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.
Software Systems Design:
Is responsible to investigate and define the best-matching approach for system integration with the set of Booking technical components owned by different teams.
Is responsible to evaluate possible architecture solutions and, consulted and supported by Senior engineers and Engineering Manager, design target approach by taking into account business requirements, non-functional requirements, technology layout and state, timelines, available capacity.
Continuous Quality and Process Improvement:
Is responsible to identify opportunities for process, system and structural improvements by examining and evaluating current process flows, methods and standards.
Is responsible to implement relevant improvements, designed and approved by the engineering team or track.
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 practicing active listening
Systems, languages, protocols and tools
HTML, CSS, JavaScript, TypeScript, React, Git, Docker, Kubernetes, Java, Maven, Java server micro frameworks (Spring, Dropwizard or others), REST, Swagger, CICD tools (Jenkins, Harness or others), message queues (Redis, Kafka or others), AWS services