Office kitchen

When we kicked off our Wrocław office we had only around 20 people, almost all developers, plus the head of the office. One day, the head came to us saying the office needed a development manager. Someone to help run the organisation, move us in the right directions, overcome obstacles, and inspire people. He asked each and every of us to help with the recruitment. We were going to recruit our manager.

Where to begin

The first thing that came to my mind after getting this breaking news was, ‘cool’! I, a software engineer, would have a real impact on who my manager would be and consequently what my everyday work would look like. I felt the power! But then I realised that with great power comes great responsibility…

So I started thinking about how I imagined my ideal manager. What’s important for me as a developer? And how should I measure whether a potential candidate meets the criteria?

Obviously, we were not left alone with our thoughts. We scheduled an internal meeting to discuss what we wanted to achieve and how our recruitment process would look. Our mission was to find a person who would be able to create and support happy teams in a highly effective organisation.

A development manager is neither project manager nor architect for us. We don’t require deep domain and technical knowledge. Instead, we felt the person needed to fit well in our working environment and help move us another step in our direction of travel. Sounds good, doesn’t it? But how to define a happy team or a highly effective organisation?

Some details about the way we work

The company is distributed between multiple locations (Hatfield, Kraków, Wrocław, Sofia, Barcelona). We work in small agile teams. Some of them do Scrum, some Kanban, and the rest… ‘Scrum-ban’. A few teams work as squads, without formally assigned leaders. All of us have great autonomy  —  this is one of our core values. Development managers support teams and help them grow. They look for potential improvements and directions in which we want to develop as organisation.

One of the few constants in our company is a change. We like to experiment: not only with technology but with Agile and management practices as well.

What makes organisations effective?

For me, the two main ingredients of effective organisation are: effective individuals, and good cooperation between them.

Good cooperation requires even better communication. Free and direct communication across the whole organisation (between all levels) is now a mainstream trend in all kinds of companies. It’s easy to say but harder to practice. Creating a respectful environment in which people are not afraid of voicing their opinions freely, their voices are heard and listened to, and there is trust in good intentions, is not a trivial task.

And what makes teams happy?

Sometimes I find it difficult just to define what makes me, as an individual, happy – and there are six of us in my team. One thing I am confident of is that a team cannot be happy without each and every of its members feeling happy.

Management 3.0 gives us some universal tricks when it comes to making people happy. Here is the list of twelve steps to happiness:

https://management30.com/wp-content/uploads/2015/06/12-Steps-to-Happiness-v1.00-Poster-color1.pdf

Looks easy, doesn’t it? But is the list complete? Does it work for everyone?

To sum up what a development manager means to us

The role is more about helping others than managing resources. It’s about listening and observing instead of talking. And most importantly, about making people learn what they need to be happy and effective and how to achieve it. Helping them by giving tools, knowledge, tips, and the freedom to use them how they like, instead of enforcing ready solutions.

The recruitment process

At this point, you should have a better feeling how this role is defined in our company. Let me shed more light on how the team played a part in the process of recruiting our manager, what we learnt from it, and how it impacted our further work.

Every candidate was scheduled a team interview – a 1.5 hour meeting with developers in our company. The aims were to:

  • Decide if the candidate would fit well in our environment and if we wanted to work with them
  • Give the candidate an opportunity to meet their potential colleagues, learn about our working environment, and decide if working with us looked like fun

At the beginning of the meeting, the candidate was asked to give us a presentation about developing great teams. This was just an entry point to the further discussion.

The course of the meeting was driven both by us and the candidate themselves, and usually differed slightly with every session. Our idea was to make it as natural and interactive as possible.

Most questions were based on the presentation, however, we had a few prepared in advance (in any interview we always want to know what a candidate expects from the role, what’s their vision, and what value they can bring to the organisation). We were also interested in their approach to handling conflicts and difficult situations, development of people, projects, teams and organisation.

We also made sure that there was time for questions from the candidate. It’s important to bear in mind that the team interview was more focussed on relations with our future coworker than on checking their knowledge.

How well did it work?

The first time we applied this process was at the end of last year, and the first successful candidate joined us in March.

Since then, we’ve found it very beneficial to get candidates exposed to the broader group of people, to the whole team with whom they’ll be working. Every person is looking from a slightly different perspective, which helps us making more informed decisions, and it gives candidates a broader insight into the company. It also helps to establish a better relationship with our future colleague from the very beginning.

We’ve found it especially important in the case of leaders and product owners. The first day our new development manager came to work I felt I knew him already, which made the conversation very natural.

He had very similar feelings. Wojtek – our first Development Manager in Wroclaw – shared his thoughts about the newly created process:

“During the team interview you have the possibility to meet the people you will be working with – hear about challenges in their daily work, what they like/don’t like. It allows you to make more informed decisions, not only compared to the recruiter or interviewer but also the website. You just feel the company culture. And believe me, it is much more important to feel this culture inside the team, during the team interview, than hear about it from a manager. It’s more impressive when (as in my case) you first observe the culture during the team interview, then hear about it from office head. You realise that you’ve just observed in practise what they are talking about. You know that it’s not a culture on paper but a living one. Last but not least, after a team interview, you’ve got ‘buy in’ from the team. You know that they accept you as their new colleague and manager and are open to work with you.”

Having software engineers involved in the decision process gives us a real impact on building the organisation, helps us to identify with results and take responsibility for them. However, it creates also some challenges, like putting aside personal objections to accept a group decision. The process is also time consuming and engages a lot of people.

Should you help recruit your next manager?

Introducing the team interview into the recruitment process turned out to be a very successful experiment, and I’d recommend you try it.

We’ve carried on with this approach for development manager positions, and have extended it for product owners as this role requires a lot of communication and coworking with the teams. Maybe one day we will do it for other positions as well…

Even if you are not interested in being a manager, it’s still good to remember ‘Management is too important to leave to the managers’ (Jurgen Appelo). Everyone has an impact on, and is responsible for, the environment around them. So be the change you are looking for!

Dorota Wojtalow, Software Engineer

July 21st, 2016

Posted In: Blog

Tags: , , , , ,

Bulgarian flag

Ocado Technology employs over 650 software engineers in the UK and Poland. We are intending to continue to grow that number significantly in both Poland and the UK in 2016. Our need for talented software developers is driven, in part, by our ambitious project to rewrite, from scratch, our end-to-end software platform to run in the cloud, to refresh all our technology stacks, and to wipe out our accumulated technical debt.

No mean feat! To enable us to achieve this, we’ve recently opened a new development centre, in Sofia, Bulgaria, complementing our development centres in the UK and Poland. These sites will develop the cutting edge software which Ocado and future retailers will depend upon to deliver high quality customer service.

Every time we open in a new country or city it brings new developers with different experiences into the company, which is a great way for Ocado Technology to be challenged internally and for us not to stagnate.

Ocado has never stood still; what many companies would consider R&D we see as business as usual innovation. So this international expansion is just one more way we continue to improve our service.

The Sofia office will grow into a significant development centre over the next few years, anyone who is part of this will benefit from the significant opportunities it creates, to grow and develop a wide range of both technical and non technical skills.

If you’re interested in joining us at the Sofia office then the current opportunities can be found on Questers

Richard Haywood, Development Manager

November 17th, 2015

Posted In: Blog

Tags: , , , , ,

Baby Ocado Technologist

What would you say to a video from our employees about why they love their job? Something like, ‘well, they have to say that’ probably.

We wanted to show off why our employees are so special and what they love about their jobs – i.e why you should want to work with them – in a way that was open and honest.

We also wanted to make you laugh.

And who better than someone’s parents to know what makes them tick… and maybe to embarrass them a little bit too?

So we asked the parents of employees from teams across Ocado Technology – from Management Systems to Simulation Algorithm Development – to talk about two things:

 

Video 1: We asked them to explain their son or daughter’s job. Mixed results…

 

Video 2: We asked them what it is they love about their job. Their answers were really touching.

 

Technology moves so fast – especially here where R&D is simply business as usual – that a lot of the parents, coming from outside the industry, found it very hard to describe the job or technical details.

They were clear, though, on how their sons and daughters were thriving; how they were driven to innovate and succeed; and how much they loved what they did.

So don’t just take our word for it.

Want to work somewhere that’s fun, creative and groundbreaking? We’d love to hear from you. Take a look at all our current opportunities now.

October 30th, 2015

Posted In: Blog

Tags: , , , , , ,

Chris Brett

My team researches, implements and analyses new automation mechanisms. We sit within the Simulation and Visualisation area and our focus is mainly on the company’s huge CFCs (Customer Fulfilment Centres – warehouses).

Essentially, we create simulations that we then use as sandboxes to test out different control algorithms.

This could be anything from really innovative new ways of automating, involving entirely new hardware that doesn’t even exist yet, to simple tweaks to existing systems. The impact this has on the business makes this really exciting.

In terms of scale, the KPIs produced by our simulations mean big money for the business.

They allow evidence based decisions to be made as to which algorithm to use, or even what to actually construct, based on how well we predict it will perform in production. We can make the company more profitable thanks to reduced hardware requirements, greater maximum throughput, higher reliability and resiliency etc.

The simulations that we create need to be highly true to life, to be confident that an algorithm that performs well in simulation will also perform well in the real world. This means modelling edge cases such as mechanical failures and time deviations, message loss and latency, and incorrect sensor reports.

When developing high level control systems, the simulations also need to be fairly far reaching. It’s not just the mechanics that must be simulated. Other systems – or even people – that interact with the system we’re developing also have to be modelled. Any event that might happen in the real world needs to be considered.

A lot of the problem spaces that we work in are extremely complex, which makes designing and implementing a highly optimal algorithm within that space similarly complex, and a lot of fun. Even if you can design an algorithm that can derive an optimal decision, can you make it run fast enough to keep up?

The research and development nature of our work means that our goals often change rapidly. A new hardware idea may come along that we then simulate, prototype the control of, analyse, and discard based on the results, moving on to the next challenge. Or the bottleneck of some system may be overcome, revealing the next bottleneck that can be optimised. I really enjoy this variety of work. There’s always a new puzzle to solve.

I work with a great team – they’re good fun, really smart, and we learn a lot from each other.

Some are experts in particular areas, but mostly we try to spread the knowledge and skills throughout the team so that everyone gets variety, new challenges, and the chance to work with different people.

If you’d like to join us, we’re currently recruiting for these roles and would love to hear from you:

Senior Java Software Engineer – Simulation

Java Software Engineer (SE2) – Simulation

Chris Brett, Simulation Algorithm Development Team Leader

September 22nd, 2015

Posted In: Blog

Tags: , , , , , , , ,

Matt Whelan

My team builds simulations of physical systems. Our work falls into 3 categories: experimental, tactical, and operational.

At the experimental end, we build simulations and design tools for new technologies and warehouse layouts, along with prototype control algorithms.

Tactically, we try out proposed changes to our warehouse topologies in silico and perform ROI analysis. We create and mine large data sets so we can spot and remove risk from our growth strategy.

Operationally, we pipe streams of production data into 3D visualisations, originally developed for playing back simulations, allowing real-time monitoring of our live control systems.

We get to work on some pretty bold conceptual projects because, when working at such a massive scale (last year our operation turned over £1billion), even seemingly small percentage efficiency savings mean serious money to the business.

I read a lot about how the more theoretical aspects of computing – things that interested me in the subject in the first place – aren’t as important in the ‘real world’ of enterprise software development. There are big players in all kinds of industries getting left behind because they shy away from AI, robotics, and large scale automation. I think we’re really lucky that we get to spend our time creating novel path searches, travelling salesman solvers, discrete optimisers and the like, and it gives us an edge over our competitors in a fierce market.

The team is a real mixed bag of interests and hobbies. We have a physics doctor, a swing dancer, and a gaming software expert for starters. One thing we all have in common is that we’re unfazed by scale – an attitude which pervades Ocado Technology – and all looking to be the person with the big idea.

The beauty of the environment we’re in is that we can prove how big that idea is before millions are spent on building it.

If that sounds like a team you want to be a part of, these are the positions we’re recruiting for now:

Full Stack Django/Celery Software Engineer

Java Software Engineer (SE2) – Simulation

Senior Java Software Engineer – Simulation

Matt Whelan, Simulation Research Team Leader

September 16th, 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 Scales

Getting a head start in technology can be hard work if you haven’t followed the traditional uni route, but it’s far from impossible. We interviewed Ocado Technology apprentice Ryan Scales to see how and why he did things differently.

As winner of Apprentice of the Year, he should know a thing or two…

Q You originally planned to go to uni. What made you decide it wasn’t for you?

A I originally went to study Television Production, but I left because I didn’t like the fact there was no guaranteed job at the end of my studies.

Why did you choose to do an apprenticeship instead?

A I prefer to get hands-on experience; that’s how I learn best. Also, because hard work pays off – if you work hard as an apprentice you’re much more likely to be offered a full-time position. And finally, because you get a real insight to the world of work.

How did you hear about the Ocado Technology apprenticeship, and what made it attractive?

A I saw Ocado Technology when I was browsing for IT jobs online. The breadth of positions on offer really appealed to me as it I figured there’d be many paths and opportunities for employees.

What did you enjoy about the apprenticeship? What did you learn?

A I really enjoyed working with the people here – everyone is extremely friendly and willing to go the extra mile for me.

Apprenticeships can be daunting – you’re walking in with zero experience – but within the first week I felt comfortable and was already learning. Also, I loved the independence. You’re not being constantly watched as you work, but if you need help, people are happy to show you the ropes.

I learnt so much – not just technology skills but general, everyday life skills (time-management, communication, professionalism, responsibilities etc).

How long did it last?

A A year and two months. At the end of it, I was offered a job as Computer Analyst.

Are you pleased with the way things turned out?

A Yes, I’m very pleased with how things turned out – I’m working towards my Engineer level!

What was it like to win the apprentice of the year award?

A It was amazing, to be honest. I couldn’t believe I’d won.

That’s another benefit to apprenticeships – you really do get recognition for working hard, whether that be a full-time job offer, pay-rise or promotion, or even winning an award at the House of Lords.

What are your immediate plans in terms of gaining new qualifications and career moves?

A Next up I want to complete my level 4 apprenticeship, and work towards Engineer level within my team at Ocado Technology.

How do you see your career developing long-term?

A With the way things are going at the moment, I would like to see myself in a senior position within the department. I’ll also be furthering my education by completing courses.

March 17th, 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: , , ,

Rewind to November 2013 when, on a cold dark evening, I was entering one of Imperial College’s career fairs. As a third-year Computing student I needed to find a six-month placement, but had no clue where to start looking. Should I go into finance, a bigger tech company or a startup?

The endless possibilities caused my head to spin. So I did what everybody in my situation would do – started browsing. And that’s how I learned about Ocado Technology.

A short chat and a bonus pen later, I found myself in front of my computer, solving problems on Codility as a first step of the recruitment process. After a few stressful days of waiting I finally received the email inviting me to the Assessment Day.

The second part of my application consisted of two tests followed by two interviews. I was thrilled because Ocado seemed like a really exciting place to be. Constant changes and improvements sounded like the excitement factor I was looking for in a job. Plus, Java! I couldn’t dream of a better place to do my placement.

Then the 7th April came. A day full of surprises.

My first day

Having done the induction, I was collected by Mark Bush who showed me to my desk. I was a bit confused about why we couldn’t take the stairs at first, but then it all started making more sense. I was lucky enough to be located on the newly refurbished first floor.

Bean bags, cool Breakout Area and weirdly shaped desks which can be arranged in many different ways were just the beginning though. It was time to meet the team.

But wait, all those people, when they introduced themselves, they claimed to be from different teams… What was going on?

As it turned out, Code For Life is an initiative to help teachers teach computer science in schools. Ocado Technology employees volunteered their free time to develop a game that would show children the basics of programming. For a student like me it was the coolest project to work on.

Children trying Code for Life

Everything sounded like a dream until we started talking technology. I was told the application was going to be a Django web app with front-end written in JavaScript. Wait, what? Isn’t Django a framework for Python? Are you sure you got the right intern? Where’s the Java I kept hearing about during my interviews?

Don’t get me wrong, I have done a bit of Python before. But I felt that in contrast to my experience in Java, there wasn’t much I could offer the team. However, fear doubles all. Thanks to my hard work and my teammates’ amazing patience (thank you all, you know who you are), I soon found myself up to speed with Python and Django.

The project progresses

When I first joined, Code For Life only consisted of the game with one, hard-coded level. It’s amazing to look at the progress we made over those six months. Now it’s a whole portal, offering teaching resources, progress tracking and a game, Rapid Router, introducing programming to children at Key Stage 1 and 2.

But what is Rapid Router exactly? To put it simply, a game intended to teach children programming. In the game, you use Blockly – a visual programming language – to get the van or a character from the origin to the destination.


Using blocks is a nice introduction for the young ones, who haven’t encountered real code before. The app has a range of challenging levels which increase in difficulty as children progress. But that’s not all.

If the students feel up for something more demanding, or simply want to show their creative side, they can go to Level Editor and make their own map. They can then share their designs with other classmates to play or copy and change.

Once users become really good at creating programs, we slowly help them to shift to Python. At first, they create Blockly algorithms and then convert them to Python. This teaches them the basic Python syntax. Having learnt the grammar, they move on to writing programs themselves.

So, what did I learn?

Now, fast forward back to October, my internship has just ended. Time to look back at what I got out of this experience.

First of all, a chance to participate in all stages of designing and creating the product. It’s amazing to be involved in shaping of the whole project and be able to influence major decisions around it. Moreover, I had a great opportunity to develop my Python skills.

On a more personal ground, I have gained more self-confidence. Sometimes the team is looking for a way to solve a problem they have encountered and your idea, yes your idea, is the most optimal. It is important to spot a good solution and all its advantages over the alternatives.

Last but not least, satisfaction. Although I didn’t get a chance to experience the full Scrum process, I was able to develop a product that has a huge potential to change the way young minds are formed – not something every intern has an opportunity to do.

Overall, I loved every minute I spent at Ocado Technology, working on the Code For Life initiative. An interesting project and amazing people to work with seems like a recipe for a great internship.

I would definitely recommend Ocado Technology to anybody who likes taking up exciting challenges.

January 7th, 2015

Posted In: Blog

Tags: , , , ,

Scroll Up