After completing an online application with a fair number of competency questions, I was invited to sit an online test, which I did not finish. Despite this, I had passed and was invited to arrange, by phone, an interview at their Enfield office. The interview consisted of:
* A short talk about the company and application process, which contained no new information
* A test consisting ~75 short logical reasoning and mental mathematics questions.
* A "write down the output of the program" exercise. Not as easy as it sounds as the output depends on the value of multiple variables and classes and, if you make a mistake, it's pretty hard to recover.
* Philosopher A and B are trying to communicate. Currently, A sends B tablets using v. stupid slaves so the system is imperfect (not all tablets arrive, tablets don't arrive in the right order). Devise a system that uses those slaves but ensures that B gets all tablets and knows their order.
* You're given a card game similar to Blackjack where the computer plays a human and are told to write down how you would write the program to ensure that the computer wins as often as possible.
After having got up early, travelled down from university by train and completed 3 hours of challenging tests, you are exhausted. At this point, you meet with a Senior Developer who talks through your tests and asks you to improve upon them. It was obvious by then that I was no longer a candidate - he made it clear from the start that he was only going to go through one of the tests. I spent most of that time wondering why he was even bothering doing that since it was a waste of both our time.