We have many inspirational quotes painted on the walls in our office. This is the one next to my desk.
It’s just about 5 months ago that I joined OLX Group, a world-wide classifieds company. With over 5000 employees, it’s the biggest company I’ve ever worked at. Its focused is mostly on emerging markets, but there’s also properties in e.g. the US and UK (letgo) that are doing fairly well. In Poland it’s most well-known for being the company behind OLX.pl (general classifieds), Otomoto (cars), and Otodom (real-estate).
Whenever I talk to people outside the company in Poland (I’m a man of the people), I notice two things:
- Everybody knows OLX, and uses our products. If you want to buy or sell a car — OLX, house — OLX, anything else (second hand) — OLX.
- People (specifically engineers) have no idea there’s interesting engineering work to do here, it’s just a page with ad listings… right?
So, I thought I’d explain a bit about what we’re doing — the phase of development we’re in, why I joined myself, and have thus far only found reasons to stay.
It’s All Around
As I mentioned, if you live in “western Europe,” or the US, you may never have heard of OLX Group, but if you live in Poland, Ukraine, Bulgaria, Romania, India, etc. OLX is everywhere. I see people with the OLX, Otomoto, and Otodom apps open in the tram nearly every day. We bought our car through Otomoto, our home through Otodom, and we’re constantly selling old baby toys, seats, and other unnecessary stuff through OLX (we also buy things occasionally).
In terms of usage and popularity, in Poland these products are in the same ball park as Google, Facebook, and even Bing.
With this prevalence comes scale. Our products worldwide have more users than Twitter. I heard Otomoto (the car site) in Poland gets more traffic than all porn sites combined.
With scale come a lot of interesting engineering problems that few companies (especially in Poland) face. We are pushing many technologies to their limits.
The amount of users that we have also allows us to experiment very quickly. We constantly run A/B tests, wizard of oz tests, surveys and lots of other things to learn more about what features to build next. We have UX labs (with the one way mirror setup) where we regularly invite users to test new stuff we’re working on.
Like many sites of its age, OLX was developed as a monolith that grew over time. Initially it was a pure PHP and MySQL app running on bare metal servers, but over time it evolved to use numerous other technologies including memcached, Redis, Solr, Riak and RabbitMQ. And a few months ago the majority of our sites have been migrated to AWS.
About a year ago, the choice was made to treat the monolith as legacy, to build new functionality as separate services (recently even forbidding the use of PHP for those entirely), and to opportunistically rebuild existing functionality as separate services. Realistically, this is going to take years to complete, but it’s a pretty interesting challenge to completely rebuild a plane, while in-flight, or train, or car, or whatever the analogy is.
Why start this transition? For various reasons. One, for sure is a strategy to remove a lot of technical debt, but the most important is to allow more sense of ownership and team autonomy as we scale. Starting with just a few devs in one room (this is Europe, so no garages), we now have many teams working on OLX (about 8 in Poland, about 3 in Berlin), and sharing one giant codebase makes it hard to create a feeling of “this is ours.” Every release comes with changes from different teams, so in the hypothetical case that things break, whodunnit?
Decoupling at the service level, with solid contracts between services, and good monitoring makes it much easier to feel this ownership, and enables much more autonomy as well.
And this is the other thing that I rarely felt so strongly in other companies: the focus on autonomy. Every team (or “pack” as we call them here) has a pretty significant amount of freedom in terms of product and tech. Packs generally consist of:
- 1 product manager
- 1 product analyst
- 1 engineering manager
- 2–5 engineers
And some packs also have:
- data scientists (e.g. focused on machine learning)
This is pretty much all you need to build a product end to end. And that’s exactly the point.
So, how much freedom does a pack have in terms of technology? Quite a lot. We have an internal technology radar that we use as a guide. It has “hold” (don’t use), “assess” (worth investigating), “trial” (let’s use for low-impact stuff), and “adopt” (go wild) sections. However, this doesn’t mean that you cannot use e.g. Haskell for something (which I don’t think appears on the radar at all). If you have solid reasons for introducing Haskell, go ahead. However, do realize that few people in the company will be able to help you, because nobody else is using this in production.
Much less controversial technologies on our radar (at the time of this writing), are Go, node.js, Kotlin, React, Redux, serverless framework, etc.
So, you may ask: is this for real? And after about 5 month of freely making all the tech choices within our team (React, Apollo, Go, GraphQL, SQS, DynamoDB, serverless framework in our case), all I have received is reinforcement to do exactly this. We have some constraints, e.g. we want everything to run in AWS, but beyond that: go wild. “Be Empowered” is a company value that comes up just about every day.
However, there’s a but to all of this: own what you do. If it blows up, fix it yourself. You build it, you run it.
The Road Ahead
I’ve been promoted (OLX is a dynamic environment), and from next month I’ll function as Head of Engineering. I may be a bit too busy to be typing the wordz on the Medium from November. That’s why I’m doing it now. Also, we need (even) more bright minds to join our teams, so I HAVE AN AGENDA.
This will be my first role acting as a manager of managers. I’ve had fancier titles in the past, but there was never an management layer under me. For me this is some pretty new and exciting stuff.
Good times ahead, both in terms of advancing product, tech, and the organization around it.
If you want to join me — and this is something I would recommend :-) — we’re continuously hiring. It’s an interesting time to be at OLX.