Before the end of the year I will share some numbers about hiring for this role. I will also share about our previous process, compared to the new one. Suffice to say is that we are more scrupulous right off the bat. When a candidate applies via email, we will ask their experience with systems that either deal with a lot of data and / or number of consumers. We evaluate two things. Their actual experience building and maintaining these systems. We look at how they describe the different components and how they interact. It’s pretty much a system design interview. But we also evaluate communication and how clear it is. We work remotely and only have a few meetings - most of the communication is written.
The point of this post is not the interview process, rather how disparate backend work is. It’s crazy how different one system is from another. Even before the candidate explains it, I think to myself: I already heard this. And yet again, I get a completely different implementation, with different technologies, cloud providers (even on-premise), languages and DBs. It’s fascinating and truly eye opening some of these explanations. I write this in stark contrast with iOS work, which for the most part is the same cookie-cutter. I feel that iOS work becomes interesting, when you have to optimise for a lot of engineers working in the same codebase. Or how fast an engineer with little experience in the codebase can create a feature end-to-end. But the fact that you have a dedicated CPU / GPU for each client, removes a monumental number of considerations. Such scrutiny cannot be an afterthought when working in the backend. They are an integral part of the whole process.