Booking NL
Software Engineer (For independent contractors)
Required Skills & Experience
Java: Proficient (primary programming language for the role).
Perl: Comfortable or willing to learn.
Data Engineering: Prior experience preferred.
AWS: Prior experience preferred.
AI: Some experience; willingness to learn and grow in this area, applying AI throughout the full SDLC.
Booking.com Infrastructure: Experienced with internal systems, tools, and platform architecture. (Candidates should include specific references and details of their experience working with Booking.com infrastructure in their application).
Full-Stack Versatility: Ideal candidate will have a combination of back-end, front-end, and data engineering experience.
Forward Deployed Engineer (FDE): Prior experience as an FDE is a plus.
Core Responsibilities
Building Software Applications
Build software applications by using relevant development languages and applying knowledge of systems, services, and tools appropriate for the business area.
Write readable and reusable code by applying standard patterns and using standard libraries.
Refactor and simplify code by introducing design patterns when necessary.
Ensure the quality of the application by following standard testing techniques and methods that adhere to the test strategy.
Maintain data security, integrity, and quality by effectively following company standards and best practices.
End-to-End System Ownership
Own a service end-to-end by actively monitoring application health and performance, setting and monitoring relevant metrics, and acting accordingly when violated.
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.
Reduce risk and obtain customer feedback by using continuous delivery and experimentation frameworks.
Independently manage an application or service by working through deployment and operations in production.
Technical Incident Management
Address and resolve live production issues by mitigating the customer impact within SLA.
Improve the overall reliability of systems by producing long-term solutions through root-cause analysis.
Keep track of incidents by contributing to postmortem processes and logging live issues.
Architectural Guidance
Advise product teams toward a technical solution that meets the functional, nonfunctional, and architectural requirements by challenging the rationale for an application design and providing context in the wider architectural landscape.
Set a clear direction for a technical capability by evaluating and aligning the target architecture improvements, reframing architectural designs, and decisions for varied stakeholders.
Software Systems Design
Evaluate possible architecture solutions by taking into account cost, business requirements, technology requirements, and emerging technologies.
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.
Help grow the business and/or accelerate software development by applying engineering techniques (e.g., prototyping, spiking, and vendor evaluation) and standards.
Meet business needs by designing solutions that meet current requirements and are adaptable for future enhancements.
Critical Thinking
Systematically identify patterns and underlying issues in complex situations, and find solutions by applying logical and analytical thinking.
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
Identify opportunities for process, system, and structural improvements (i.e., performance gains) by examining and evaluating current process flows, methods, and standards.
Design and implement relevant improvements by defining adapted/new process flows, standards, and practices that enable business performance.
Effective Communication
Deliver clear, well-structured, and meaningful information to a target audience by using suitable communication mediums and language tailored to the audience.
Achieve mutually agreeable solutions by staying adaptable, communicating ideas in clear coherent language, and practicing active listening.
Ask relevant (follow-up) questions to properly engage with the speaker and really understand what they are saying, by applying listening and reflection techniques.