It has been almost 6 months since my last blog post. Things have changed quite a lot since then. Six months ago I was still excited about my travel to San Francisco for the WWDC 2014, my girlfriend still had to move from Italy to London with me and definitely I wasn't planning to switch job again any time soon.
I've been attracted by JUST EAT as a company since March 2014 but at that time it was too early for me to consider to change job. I met Ben Chester (the tech lead of the iOS team) when he gave a talk at Badoo offices (when I was still working there) and that evening he blew my mind. Later, I had a few chances to have a chat with the passionated guy he is and I immediately thought "Damn! I want to work with this guy, with brilliant guys like him and I want to work at JUST EAT!".
Since then, I heard people talking extremely good about JUST EAT as a job place because of the values, the work environment, the company culture and the engineeristic approach to things. Every time I started with "Do you know JUST EAT as a company?" the answer was something like "Oh yeah! They are freaking cool! I have a friend working there, they do amazing stuff and he's very very happy!". They definitely were all good signs. Signs I decided not to underestimate anymore these days after some terrible experiences in other companies where I've met so many, countless poor engineers.
Another good sign was also the exposure and lots of information that the company promotes online with its tech blog giving a good insight of the technologies used, the people and teams working there and a good description of the Engineering. Benefits are also compelling.
JUST EAT offices hosted NSLondon a few times. Meetups, you know, are the perfect occasions to reach out the developers' community. I noticed too many cool companies failing at this.
After months of interest about JUST EAT and thoughts spinning in my head, I said to myself "let's see if I have what it takes". I decided to apply for the Senior iOS role in later October 2014 kicking off the process taking the test task. I joined the Consumer iOS app team at the begin of 2015 and after 2 months of excitement I'm summarizing some thoughts here.
Since the very first day it was clear how different teams cover the areas of the platform. Here's the list (hopefully up-to-date):
- Consumer Web Apps - desktop and mobile consumer websites, along with embedded native app websites
- Consumer iOS Apps - iOS apps for consumers
- Consumer Android Apps - Android apps for consumers
- Consumer Apps Test Automation - improving our test automation coverage across our consumer channels
- Business Apps - the internal apps and tools used to administer our business and provide great customer care
- Restaurant Apps - the devices and services used by our partner restaurants
- EPOS - the full-feature point of sale system we provide to restaurants
- Public APIs and web services - used by partners, internal clients and native apps
- Payments - payment authorisation, fraud checking, invoicing and financial reporting
- Order processing APIs - focusing on the APIs needed to place and fulfil orders
- Search APIs - building intelligent restaurant & menu search and associated APIs
- Platform Services - AWS automation, platform tools, infrastructure
Even if your role is specific to a platform (like is mine) you often need to have chats and planning with other teams as happened to me for the first feature I developed. "Hey mate, can we have a talk about that particular API?", it's good to know that you can knock on the shoulders of people in other teams that are always open to discussions. This helps communication and the understanding of how things work in other departments.
Developers of features are responsible for them. My first feature was… well, I won't really tell as it's not in production yet (it will be in the next release, 7.0) but I can tell you that the entire stack of things related to it on iOS was my responsibility and it involved a good amount of interaction with the API team.
The new Three's Company
As I said, I'm working on the Consumer iOS App, the one that you can download from the App Store and probably used sometimes to order delivery food in UK. Yes, That App.
We have also recently published the Consumer Apps page. It's important to notice that Consumer Apps are splitted into 2 main groups: UK and International. The International team (i.e. all the countries JUST EAT is available but UK) works on an app that is basically very similar to the UK one but the projects are actually separate.
You'd be no surprised to know that we use tools like CocoaPods, TeamCity, JIRA, Confluence, HockeyApp, gitflow, some third-party open source components etc. We run stand-up meetings every morning within the team on Google hangout and retrospectives for every feature developed. More on this on the iOS tech page.
Fingers and brains
At JUST EAT we craft software in the way I always loved. We strive to give the maximum attention to the details, we promote culture for testing code the right way, we stick to clear and defined development processes but at the same time we leave the door open to introduce innovation in the project. Collaboration and sharing are the basis of our work.
It's hard to find a stimulating environment like this, I can tell from experience.
But a software developer is not just fast fingers on the keyboard. Principles here are something we really care about, definitely not just something made up to show off.
- Do the right thing
- Take responsibility
- Be transparent
- Continuously improve
- Take pride
Even before joining the company, the first one got my attention the most. It means a lot to always strive to do-the-thing-that-you-think-it's-best, for the team, for the product, for the company. It really has a broad meaning but if you try to stick to it using your expertise, skills, gut feelings and passion… I think it's hard to go wrong.
Ben is a fantastic tech lead, he teaches to care about our product, our code, our output. A project is like a little baby, it grows in the right way only if someone cares about him. Nothing is more true that this! In the end, everything you do always pays off under different aspects. It's so hard to find such attitude and motivation in other companies (and I'm not even talking about agencies 😬).
Every engineering member is asked to set some OKRs (Objectives and Key Results). Objectives are goals, they tell you where to go. Each objective has a few key results, they indicate how you will get there. OKRs as established on a quarter-basis.
Another catchy aspect that makes you realize how much attention the company gives to their employees is the personalized development plan. It can include any aspect that you want to improve about yourself. You plan this with your line manager and the company will help you to reach the goals in the most appropriate way. If needed and/or requested by you, you can follow specific courses. You can set very clear and defined career goals as well. This is something that only the best companies do!
If you're a geek like we are, you like open source too. And you probably lament that big enterprise companies are often very closed when talking about releasing to the public some hidden pieces of their hidden, obscure and very delicate internal tech infrastructure. It's not the case at JUST EAT, that has an established presence on GitHub with some useful components like JustSaying, JustBehave and JustPromises. The latter is the first component released by the iOS team and I can't wait to release more stuff!
The smell of the air
Recently some guys from Google popped by and took some photos 😲 You can now have a look at the entire 7th floor of 2 Fleet Place House, EC4M 7RF on Google Street View. Take a quick tour, our offices are stunning!
JUST EAT owns 3 floors at 2 Fleet Place House (6th, 7th and 8th).
When things are getting hard during the day (usually tough bugs, developer's life…) it's good to have a break to reorder the ideas. In the kitchen there are facilities for preparing a good capuccino (I keep failing at this, no matter how many times I try to learn from the master barista Joakim) and to play ping-pong (I'm usually better at this, right Rui Peres?).
We also have offices in Bristol and apparently they will be even nicer than London's. The goal is that every new office is the best office we have 😎.
So you work at JUST EAT, everything is awesome and I should cry in the darkness of my bedroom because I'm not lucky as you are, right?
I know I know, maybe I put too much stress on how I think this company is cool. Well guys, I really wanted to share my experience so far 😄 and along with it also some tips on what to look for when you decide to move towards your next job. I'm sure you got them while reading this post.
I can't wait to see what the next months will unfold but now I gotta go! I have some coding to do! 👓📱