Background

Ocado Technology provides the platform that powers a highly successful, online only, grocery delivery business. Unlike its competitors, Ocado does not pick groceries from store shelves. Instead highly automated fulfilment centers are used as part of a fully integrated e-commerce operation. This operation is powered by a set of state of the art software systems. Ocado Technology responsible for their continued development, ensuring industry leading service and efficiency through cutting edge technology and continuous innovation.

This technology platform is developed in house and the division has a strong emphasis on software engineering. The working environment at Ocado combines informality in areas such as dress and management style with a strong commitment to professionalism and quality.

Job Purpose

The main purpose of this role is to work on designated software development projects, with an emphasis on writing robust, effective code, and developing, maintaining, deploying and supporting high-quality software systems. To take an active role in supporting business needs and meeting organisational objectives, as part of the Ocado Technology team.

Key Customers

Team members, Internal clients, Vendors as required

Roles & Responsibilities

Your main responsibility is to participate effectively in all stages of systems development life cycle including:

  • Requirements analysis
  • Software and data design
  • Software construction (coding)
  • Deployment of production ready code
  • Maintenance and support of existing systems
  • Investigation and resolution of production issues
  • Performance tuning
  • Code review and change control
  • Ad hoc reporting and analysis
  • Research, development & optimisation

You are also responsible for:

  • constantly improve the standards of software craftsmanship by following the latest trends in IT, frameworks, tools and techniques, attending conferences, mentoring others, performing code reviews or doing pair programming
  • make sure that our software is testable and properly tested (preferably in an automated way)
  • design and implement software and underlying architecture so that they can test, deploy and scale on their own
  • gather data to verify our assumptions, in the production, provide an immediate feedback to all stakeholders
  • implement monitoring and alerting, so that we know immediately when things go wrong
  • constantly look for improvements and learn from our mistake
  • work closely with team leaders to set technical direction within the team and to ensure software developed is of a consistently high standard, cohesive and meets business objectives
  • assisting all team leaders to ensure projects are accurately estimated and delivered to schedule
  • working closely with Team Leader on issues related to requirements and design
  • mentoring colleagues and take an active role in their development

You may be asked to perform tasks as required by management deemed as a reasonable request. This job description is a summary of the typical functions of the role, not an exhaustive or comprehensive list of possible role responsibilities, tasks and duties and is subject to review. The responsibilities, tasks and duties of the jobholder might differ from those outlined in the job description and other duties, as assigned, might form part of the job.

Typical outcome of your work

  • Source code (i.a. systems, supporting tools, scripts)
  • Databases
  • Presentations (i.a. describing best practices, how to use supporting tools)
  • Various documents:
    • design of solutions
    • analysis and recommendations that influence software architecture
    • technical documentation of tools/systems

Desired skills & competencies

ESSENTIAL  
  • Technology or similar technical degree
  • Demonstrable Java programming ability with in-depth understanding of underpinning techniques  
  • Experience in the full Software Development life-cycle from design to deployment
  • Understanding of databases
DESIRABLE
  • Knowledge of SCRUM or other Agile methodologies
  • Proven ability of tackling challenging projects
  • Masters or other postgraduate qualification in Computer Science, Software Engineering or equivalent.
REQUIRED COMPETENCIES
  • Technical Excellence : demonstrates intellectual rigour, possesses relevant abilities & is able to pick up new skills quickly
  • Innovation & Problem Solving: able to solve complex problems, participates in continuous improvement, adapts the ideas of others
  • Productivity, Drive & Achievement: proactive approach, gets things done, demonstrates accountability & ownership, prioritises own workload
  • Business awareness: ability to apply learned skills, awareness beyond immediate area/role
  • Adaptability: working under pressure, flexible, positive & focused during times of change
  • Communication & Impact: strong verbal and written communication in English and Polish. Robust interaction with internal clients
  • Teamwork: works well with others & actively contributes towards team objectives

Apply for this Job

* Required