Description
Job Summary. A senior developer owns the end-to-end execution of technical elements in the Booking.com tech stack, products and processes. They are responsible for the implementation of complex technical solutions based on business requirements, they can accurately estimate or forecast the effort and impact of the items they work on, and show a high quality of craft in what they deliver. Senior developers are expected to work together with colleagues in other job roles to design, prioritise and implement complex technical tasks. Senior developers are expected to coach and mentor more junior engineers and be a thought leader in their team ensuring best practices are being implemented. Because the required technical skills and commercial knowledge can vary from one business unit to another, a senior developer can own multiple types of work from product features to infrastructure automation, frameworks, tooling or services. Key Responsibilities. Responsibility 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 and guide more junior members of the team in this topic. Is responsible to write readable and reusable code by applying standard patterns and using standard libraries and guide more junior members of the team in this topic. Is responsible to refactor and simplify code by introducing design patterns when necessary and guide more junior members of the team in this topic. Is responsible to ensure the quality of the application by following standard testing techniques and methods that adhere to the test strategy and guide more junior members of the team in this topic. Is responsible to maintain data security, integrity and quality by effectively following company standards and best practices and guide more junior members of the team in this topic. End to End System Ownership Is responsible to own a service end to end by actively monitoring application health and performance, setting and monitoring relevant metrics and act accordingly when violated Is responsible 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 Is responsible to reduce risk and obtain customer feedback by using continuous delivery and experimentation frameworks Is responsible 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 Software Systems Design Is responsible to evaluate possible architecture solutions by taking into account cost, business requirements, technology requirements and emerging technologies Is responsible 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 Is responsible to help grow the business and/or accelerate software development by applying engineering techniques (e.g. prototyping, spiking and vendor evaluation) and standards Is responsible to meet business needs by designing solutions that meet current requirements and are adaptable for future enhancements Architectural Guidance Has sufficient 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 sufficient 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 Coaching/Mentoring Has sufficient knowledge to coach, guide and improve the overall performance of stakeholders and colleagues at all levels, when appropriate, by sharing experience, knowledge and approaches to work 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 Is responsible to identify opportunities for process, system and structural improvements (i.e performance gains) by examining and evaluating current process flows, methods and standards. Is responsible 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 Pre-Employment Screening If your application is successful, your personal data may be used for a pre-employment screening check by a third party as permitted by applicable law. Depending on the vacancy and applicable law, a pre-employment screening may include employment history, education and other information (such as media information) that may be necessary for determining your qualifications and suitability for the position.