Booking NL
Software Engineer (For contingent workers)
The role of a Developer is to produce quality technical solutions to problems outlined by the Engineering Manager and Product Owner. This person works within a team, as any other developers. They write good quality test and production code with little supervision. They have the knowledge to use the right design pattern at the right time and follow best practices like SOLID and dry principals with minimal support.
A Junior Developer works on concrete topics as any other team members, but the delivery is slower than a Core Developer because of the lack of experience and expertise in some technologies and the lack of commercial awareness.
Key Responsibilities
Building Software Applications
Application Development: Has sufficient knowledge to build software applications by using relevant development languages and applying knowledge of systems, services and tools appropriate for the business area.
Code Quality: Has sufficient knowledge to write readable and reusable code by applying standard patterns and using standard libraries.
Refactoring: Has sufficient knowledge to refactor and simplify code by introducing design patterns when necessary.
Testing: Has sufficient knowledge to ensure the quality of the application by following standard testing techniques and methods that adhere to the test strategy.
Security: Has sufficient knowledge to maintain data security, integrity and quality by effectively following company standards and best practices.
End to End System Ownership
Monitoring: Has basic 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.
Risk Mitigation: Has basic 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.
Continuous Delivery: Has basic knowledge to reduce risk and obtain customer feedback by using continuous delivery and experimentation frameworks.
Operations: Has basic knowledge to independently manage an application or service by working through deployment and operations in production.
Software Systems Design
Architecture Evaluation: Has basic knowledge to evaluate possible architecture solutions by taking into account cost, business requirements, technology requirements and emerging technologies.
System Impact: Has basic 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.
Business Growth: Has basic knowledge to help grow the business and/or accelerate software development by applying engineering techniques (e.g. prototyping, spiking and vendor evaluation) and standards.
Adaptability: Has basic knowledge to meet business needs by designing solutions that meet current requirements and are adaptable for future enhancements.
Technical Incident Management
Issue Resolution: Has basic knowledge to address and resolve live production issues by mitigating the customer impact within SLA.
Reliability: Has basic knowledge to improve the overall reliability of systems by producing long term solutions through root cause analysis.
Incident Tracking: Has basic knowledge to keep track of incidents by contributing to postmortem processes and logging live issues.
Critical Thinking
Problem Solving: Has sufficient knowledge to systematically identify patterns and underlying issues in complex situations, and to find solutions by applying logical and analytical thinking.
Evaluation: Has sufficient knowledge 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
Optimization: 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.
Implementation: Has sufficient knowledge to design and implement relevant improvements by defining adapted/new process flows, standards, and practices that enable business performance.
Mentorship & Standards: Is responsible to maintain 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
Information Delivery: Has sufficient knowledge to deliver clear, well-structured, and meaningful information to a target audience by using suitable communication mediums and language tailored to the audience.
Collaboration: Has sufficient knowledge to achieve mutually agreeable solutions by staying adaptable, communicating ideas in clear coherent language and practising active listening.
Active Listening: Has sufficient knowledge 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.
Tech stack:
Java
AI Code experience