Booking NL
Software Engineer II (For independent contractors)
Please note, this is a 12 month assignment for freelancers.
A Software Engineer II owns the execution of technical elements in the Booking.com tech stack, products, and processes.
They are responsible for implementing technical solutions based on business requirements, estimating effort and impact, and demonstrating a high quality of craft in their deliveries.
A Software Engineer II understands that the quality of test automation is as important as production code and invests time in refactoring both to ensure ease of change, enabling a sustainable pace of development.
Software Engineers II work collaboratively with colleagues in other roles to design, prioritize, and implement technical tasks.
This role would be in CS AI track, successful candidates will work and collaborate with CS software engineers to deliver AI features that support both customers and CS agents.
Responsibilities:
Building Software Applications
• Is responsible for building software applications by using relevant development languages and applying knowledge of systems, services, and tools appropriate for the business area.
• Is responsible for writing readable and reusable code by applying standard patterns and using standard libraries.
• Is responsible for refactoring and simplifying code by introducing design patterns when necessary.
• Is responsible for ensuring the quality of the application by following standard testing techniques and methods that adhere to the test strategy.
• Is responsible for maintaining 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 acting accordingly when violated.
• Has sufficient knowledge to reduce business continuity risks and bus factors by applying state-of-the-art practices and tools, and writing 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 for addressing and resolving live production issues by mitigating customer impact within SLA.
• Is responsible for improving the overall reliability of systems by producing long-term solutions through root cause analysis.
• Is responsible for keeping 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, non-functional, and 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 target architecture improvements, reframing architectural designs, and decisions for varied stakeholders.
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 for systematically identifying patterns and underlying issues in complex situations, and finding solutions by applying logical and analytical thinking.
• Is responsible for constructively evaluating and developing ideas, plans, and solutions by reviewing them, objectively taking external knowledge into account, 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.
• Is responsible for maintaining data security, integrity, and quality by effectively following company standards and best practices, guiding more junior members of the team in this topic.
Effective Communication
• Is responsible for delivering clear, well-structured, and meaningful information to a target audience by using suitable communication mediums and language tailored to the audience.
• Is responsible for achieving mutually agreeable solutions by staying adaptable, communicating ideas in clear coherent language, and practicing active listening.
• Is responsible for asking relevant (follow-up) questions to properly engage with the speaker and fully understand what they are saying by applying listening and reflection techniques.
Required Skills and Qualifications
• Experience with Microservices Architecture: Proven experience designing, building, and maintaining scalable microservices.
• Proficiency in Java and Perl: Strong knowledge of Java programming and hands-on experience with frameworks such as Spring and Hibernate, as well as proficiency in Perl for scripting and development tasks.
• AWS Cloud Experience: Solid understanding and practical experience with Amazon Web Services (AWS) for deploying and managing cloud-based applications.
• Database Experience: Hands-on experience working with relational databases (e.g., MySQL, PostgreSQL) and non-relational databases (e.g., DynamoDB, Cassandra).
• Container Orchestration with Kubernetes: Experience managing and orchestrating containers using Kubernetes.
• Excellent Problem-Solving Skills: Strong ability to identify and resolve complex technical issues with attention to detail.
• Strong Communication and Collaboration Skills: Ability to effectively convey ideas and work collaboratively across teams and stakeholders.
• Teamwork and Independence: Capability to work both independently and as part of a team.
• GraphQL: Experience designing and implementing APIs using GraphQL is a plus. Additional Information
• Education: Bachelor’s degree in Computer Science, Software Engineering, or a related field.
This role may require participation in an on-call rotation.