A company plagued by politics and inefficiencies
Pros
As someone who worked for Farfetch for some time, I must say that my experience was quite mixed. In the beginning, the company seemed like a great place to work with really senior people who knew their stuff. The culture was fantastic, but that changed when the company became a unicorn and started attracting the wrong type of people.
Cons
The culture shifted dramatically, and it's now a political environment. All the top management in Tech (directors above) work for their own benefit. They hire just to inflate their teams' size and be promoted. For instance, the iOS team has around 80 engineers responsible for just one mobile app. Why? The whole senior management team is pure politics, with turf wars everywhere. No one seems to be really interested in the company but for their own benefit. The Tech and Product departments are managed using projects only, with one well-defined end date (waterfall all the way). No one seems to care about the impact on the customer. Good results are measured only if you deliver on time. In addition, the senior management of the entire engineering department consists of project managers who are out of their depth and have no experience working with such large teams. They are accustomed to old-fashioned methods of working, such as Gantt charts and politics. It is totally fine to be out of depth, the only problem is their arrogance to think they know everything. The methodologies used are old-fashioned, and it's mainly big features that are delivered after a few months (in fact, years!!!) of work. The technical initiatives are done because someone decides that it's cool to use some technology or framework. GraphQL was a project that was done solely because the website team decided to do it, and it delayed a strategic project for more than 6 months. In the end, there was even a big celebration about GraphQL and the strategy was delayed more than 6 months, when GraphQL wasn’t needed at all. The architecture team is out of touch with reality, as they are more interested in experimenting with new technologies and coming up with solutions that take ages to build. Furthermore, they view themselves as a group of prima donnas who believe they know everything. For instance, the adoption of Cassandra was a disaster, primarily because the architecture leader insisted it was the right solution to adopt. In the end, no one ever used Cassandra, and the project was delayed by a year. Both the Engineering and Infrastructure departments were tasked with figuring everything out, requiring hard work from both teams. In the meantime, the Architecture teams were investing their time searching for more technologies to use in the future, and creating crypto bots on their free (all!) time… because of their personal interests. To make matters worse, the architecture team is comprised of overpaid professionals who seem to do very little work throughout the day. It’s really impressive the free time they have on their calendars! Even worse, the leaders keep constantly failing to attend important meetings with other departments. This group is totally out of context but can make decisions that end up negatively impacting the whole Tech and Product departments. Not so funny note: they keep getting promoted every single semester and they don't even close their OKRs cycle lol! The company is not Agile anymore and probably never was. All the features built take ages to push in front of the customers. To add on top of all this, they fired all the Agile coaches or moved them into meaningless roles. They only believe in outputs over outcomes. Deliver on time it is what matters. It is what gets you promoted. The QA team is basically a manual QA team that tests all features manually for every single release. After so many years, there is close to zero automation in the mobile app, for example. Everything is tested by manual QAs. This is a process from the 90s but that reflects very well the leadership of the departments in Tech. The Product team is just worried about creating work in progress. They are not part of the daily work with the teams. Their objective is to catch up with other departments outside of Tech and come up with the next big feature to build. When they find it, they start planning with the Architecture team on the specifications (detailed list of requirements! Yes… you read that right!) and on how to build it (yes… the Architecture team tells what to do, in which components). In the end, the feature is not even considered for execution and all this work is a waste of time. The entire roadmap process is flawed. It's essentially a Gantt chart presented in PowerPoint format. The executive board mandates all the main features or validates them as if they're aware of all the detailed decisions and customer problems that need to be addressed. It's absurd! In general, the Tech and Product departments are disorganised. I cannot speak about the other departments, but I assume that the culture might be equally problematic. My experience working at Farfetch was not a positive one. While I am grateful for the technical skills I acquired, the company's culture and management practices are a mess. I would not recommend this company to anyone looking for a fulfilling career in tech.