Will Peck

You know when you get your internet shopping delivered and it doesn’t have a key product, and even worse, it has been substituted for an item that you will never use? Well that is what can happen when Supply Chain Systems go wrong. Do you know why Ocado has industry leading levels of order accuracy (99.3% of all orders in the last year we delivered as expected)? Our Supply Chain Systems don’t go wrong.

We have complex forecasting algorithms that accurately predict the demand of over 40,000 products across three warehouses for the next 28 days. The algorithms can predict seasonality, promotion uplift and can also predict how much a product will sell before we have even sold a single item. You might not know what you want for dinner next week, but we do.

Our Ordering Systems are placing just in time orders for products that cost over £2 million in total on any one day. We place almost 2,000 purchase orders a day to cover the demand of two retailers.

If we’re not predicting the future with our forecasting engines or solving complex assignment problems with our ordering logic, we are writing real time Availability logic to inform shoppers what is in and out of stock in milliseconds. This precision engineering is what we do every day and, if we get it wrong, lives* are literally on the line.

So how do we do it. The advantage Ocado has over store-based competitors is its data. We can draw on a significant amount of data to accurately predict what demand we will see over the next month. That data goes through several stages to clean up and remove outliers. Once the data is processed and determined to be valid, we can draw conclusions from this. We then use linear regression to project into the future and place our purchase orders based on this predicted demand.

I think the proudest achievement that I have been part of is being able to launch Morrisons.com in under 9 months. This involved the re-engineering of core parts of our systems, keeping Ocado.com growing and functional while adding a whole new business onto our processes and workflows.

The first thing I would say about my team is that we are all great software engineers, every single one of us. How we achieve greatness is varied and no two people get there the same way. Some are quiet, some are loud. Some are into gaming, some are into Disney theme songs (ok that last one is just me…). We are together but not the same, as the advert goes.

Looking around at them all now, I see two pairs of engineers solving problems together. Each is asking and answering questions posed by the other person (or even themselves). One engineer is ‘in the zone’: headphones in, look of concentration on his face, slight rocking of his head when he gets to a guitar solo… and I imagine is currently smashing out some awesome code that will inevitably get rewritten 15 minutes later. Two other engineers are engaged in a debate about the correct use of the word ‘literally’. This could go on for a while…

This is what is happening now. Give it an hour and we might all be in a room, debating the direction we should take on a product we are building, or listening to someone’s experience with a new technology. Give it two hours and half the team will be in the kitchen boosting their caffeine levels, the other half will be debating the correct use of the word ‘literally’. Come on guys, we literally just talked about this!

Does this sound like the type of team you want to work in? If so, apply through this role and hopefully we’ll see you soon:

Senior Software Engineer – Scala/Java

Will Peck, Team Leader Supply Chain Systems

*Christmas turkeys don’t grow on trees.

December 1st, 2015

Posted In: Blog

Tags: , , , , , , ,

Group of interns

New to tech? You’ve heard the experiences of our interns and apprentices before on this blog. Now for someone who hasn’t even started his career yet.

Secondary school student, Tiger, did his work experience here recently. In a Q&A with Tiger and one of his mentors, Diego, we found out what it was like and what he learnt.

Q Tiger, what did you expect before you came here?

T To be perfectly honest, I wasn’t sure what to anticipate. I suppose I envisioned cubicles, unfamiliar faces, maybe a few water coolers, and multi-monitor set-ups for all the developers. I was only correct in the last regard – I was put at ease by the open-plan offices, warm reception from everyone, and the very relaxed atmosphere.

Q What projects did you work on?

T I spent five days here on a variety of projects, including a system for unloading pallets, research on industrial robots, and the analytics and management platform.

D On the day Tiger worked with me, the project I gave him was to create a data visualisation, given certain information about temperature sensors. I tried to focus the experience on building software following all the industrial-level processes normally used to guarantee a good final product (test-driven development, versioning and branches, Maven, build server, code reviews).

I wanted to give Tiger a taste of the difference between developing software for yourself as a side project, and working as a team to develop software that’s high quality and reliable.

Q Were there any important lessons you came away with?

T I would say I learnt two lessons. The first would be how to approach a new workplace, people and challenges, which will certainly help calm the inevitable nerves when I start employment in the future.

The second, and I would say more important, is that there is always more to learn. I was continuously shown new programming languages, terminology, concepts and, as was the case in Robotics, advanced mathematics.

D On his day with me he developed in Java, which is not a language he was familiar with but he picked it up rather quickly. He was able to adapt to the new process of building software pretty rapidly – I was impressed with his attitude.

T I’d also add the importance of testing code. My hands-on with Java programming tasks would have been harder and more prolonged without testing to verify the code’s accuracy.

Q You obviously learnt a lot, but what were the hardest challenges?

T The first thing that comes to mind – and I guess it ties into what I was saying about important lessons – is paired programming. Whether it was writing string manipulation and number sorting algorithms, or using processing-cum-Java to manipulate and graphically display data, I was having to think on the spot about things I hadn’t done before.

I’d never given proper thought to the algorithms behind the convenient libraries or done graphical work, so coding on the spot was a real challenge. It was much less difficult with ample guidance, though.

Q Diego, on the flip side, how was the experience as a mentor?

D I have a background in education, so it’s nice to get experience of what students know, how they’re taught etc nowadays.

Also, it’s helpful to understand what concepts are less familiar or harder to explain to a neophyte, as it helps you foster the effectiveness of your own communications with non-technical people – such as your users might be.

Q So what’s next? What are your plans for the future?

T Nothing’s certain yet, but I hope to go to university and study for a degree related to computer science and physics. My goal is to go into artificial intelligence, since the existence of a sentient machine bent on destroying humanity helping science is an enticing prospect!

D I’d advise Tiger to keep building software and making it public on Github (as he’s already doing). Aside from guaranteeing experience and a portfolio once he’s finished studying, it’s crucial for any developer to keep their skills sharp. This can only be done by following the ABC of coding: Always Be Coding.

Also, keep on experimenting with with new tech and in different contexts. Don’t get stuck in a niche – keep your mind open and receptive.

Q Can you finish with a few words of advice for others doing work experience?

T

  1. As Diego said, enter with an open mind and be receptive to new knowledge and ideas.
  2. Don’t be nervous or prepare too much – it’s not an interview after all.
  3. Know the route and when to arrive, and set off early. This saved me the embarrassment of arriving an hour late.

July 14th, 2015

Posted In: Blog

Tags: , , , , ,

Ryan Wong

A little bit of background about myself: I’m Ryan and I’m a graduate fresh from Imperial College London. This is the story of how I moved from intern to full-time at Ocado Technology. If you’re looking for placements or first jobs, I hope you’ll find it useful.

The preparation and interviews

I came across Ocado Technology when I was thinking about whether to apply to banks or technology companies for my placement. After researching, I found out that Ocado develops all their technology in-house. So I thought it would be somewhere interesting to learn and work for four months.

Having gone through an initial CV screening and an online coding test, I was invited for the assessment day which included a written test and two rounds of interviews. I was also shown round the warehouse, AKA the ‘CFC’ (Customer Fulfilment Centre). It was fascinating to see the huge automated system in action.

After a few days of waiting, I was offered the internship.

The team

Among a great number of technology teams, I was assigned to the CFC Simulation and Flow Analysis team. They’re responsible for developing discrete event simulation models of the CFCs.

CFC model

 

The purpose of the simulation models are: capacity prediction; constraint identification; design appraisal; return on investment calculation; as a test-bed to develop algorithms; and to conduct ad hoc studies.

In addition, the team has written a three-dimensional visualisation tool with animated totes, allowing simulation runs to be visually reviewed (which I personally found it really cool).

The projects

There were three projects that I worked on during my placement:

  • The first was to use Python and Django to build a light-weight web app that constantly reports the status of the simulation models.
  • The second was to build a routing implementation for the simulation models. The aim of this project was to create a graph-based routing implementation to analyse how the totes inside the warehouse can be routed in the most efficient way.
  • The third was to use the power of the Google Compute Engine to run multiple simulation models on numbers of virtual machine instances simultaneously. This meant a set of optimal constants for the cost function in the previous project could be found more efficiently by comparing the simulation model results.

At the end of the placement, all interns had a chance to show off their work to engineers at the interns’ fair. It was a really good opportunity to listen to professional comments and share our views on the projects.

Here’s what I learnt

First of all I consolidated my programming skills from university in Java, and I learnt Python which I had never used before.

Alongside the technical skills, I was also able to learn how the real technology industry does software engineering, how the software actually gets delivered in production, and how the teams collaborate.

Working with a team of professionals was a valuable opportunity for a university student. It was great to receive feedback and comments from engineers specialised in different areas.

From intern to full-time

So, how can you ensure an offer after your internship? I don’t have a definite answer but, in my opinion, there are a few points that are important:

Firstly, you must ask questions – the more questions you ask, the more you understand the task. And people here are extremely helpful and friendly. So don’t be shy to ask anybody.

Secondly, you mustn’t think you are not good enough for the role, because interning is all about learning. People don’t expect you to know everything. So always be positive and enthusiastic about what you are working on.

What now?

Now, here I am, working as a software engineer at Ocado Technology. I’m currently in the Back End Web Development team, where we develop and maintain the applications that are used for ocado.com and internally.

To be a developer somewhere I interned is quite an advantage because I’m already familiar with the environment and culture, which has allowed me to get stuck in very easily.

I would definitely recommend Ocado Technology if you’re the kind of person who loves challenging yourself and would like to contribute to future web development. I believe you’d be fascinated if you knew what Ocado Technology is planning to do in the future…

Ryan, ex intern and current software engineer

March 3rd, 2015

Posted In: Blog

Tags: , , , , ,

Group of interns

Could 2015 be an important year for your career? We asked five Ocado Technology experts – from guys at the top to rising stars – for the careers advice they live by or would pass on.

Whether you’re choosing your first move or wondering where to turn next, here are some sage words to help you out.

 

 

 

 

Paul Clarke, Director of Technology

  • As you move into more senior management roles, look for ways to remain hands-on and stay technically in-touch – keep learning, inventing, designing and building stuff!
  • Look for ways to constantly surprise and challenge yourself. Make good friends with risk and uncertainty as they are keys to an exciting future.
  • View your career as a non-linear game of extreme Snakes and Ladders – sometimes you will find the most exciting opportunities where you least expect them and sometimes the best ladders lie at the bottom of a snake.

Issy Cave, Project Support Lead

  • The key to success is to risk thinking unconventional thoughts. Convention is the enemy of progress. If you go down just one corridor of thought you never get to see what’s in the rooms leading off it. I live by this.
  • Crystallise your goals. Make a plan for achieving them and set yourself a deadline. Then with supreme confidence, determination, and disregard for obstacles and other people’s criticisms, carry out your plan.

Steve Rodgers, Recruitment Manager

  • ‘Why do you think you are suitable for this job?’ This classic question is one that often has candidates on the back foot. See if the employer has a values statement or competency framework and match your examples to that.
  • You can all but guarantee that teamwork, communication skills, organising and planning, problem-solving, decision-making and self-development are competencies that any employer would love a candidate to demonstrate!

Anne Marie Neatham, Chief Operating Officer

  • Don’t get too comfortable in an area. If you become very confident about what you are doing and there is very little uncertainty in your work, it is worth considering whether or not you are learning anything new. Risk and change are good, get comfortable with them, so that you are doing the ‘fun stuff’ at work and at play.
  • Stay up to date with trends. Sometimes it can seem impossible to stay up to date on everything, and it is. But if something looks like it adds genuine value, is interesting to you or is very different, then it is likely to be worth understanding in a little more detail.

Tim Moran, IT Team Leader

  • Always have a little side project. Publish it on GitHub. It’s a great excuse to experiment and tinker with new technologies whilst building something fun, and it looks great on your CV.

Inspired to try something new? Take a look at what roles we’re recruiting for now.

January 13th, 2015

Posted In: Blog

Tags: , , ,

Scroll Up