There was first a phone call and a take-home coding exercise. The coding exercise was fairly simple, but one key point of this was that you needed to know how electricity and gas billing periods are calculated. There was a vague one-liner in the guidelines that suggested how this is done but even that was inaccurate. I passed the test, but for the next round, I was asked to refactor someone's horrible code. Fair enough, that is something you'd encounter quite frequently in the software world. But even for this round, I struggled with trying to understand what exactly a billing period was. Not the logic, not the programming concepts, not the design. A simple explanation of the billing period. Once it was explained clearly, I wrote the code, and completed the test. Obviously that cost me a few extra minutes. The interviewer said that was enough, so I stopped there. I got a feedback mentioning I struggled to understand the requirements, and that I didn't add tests. I would have, if the interviewer had asked me to, because I wrote a whole lot of tests for the original test. I don't understand how they expect a programmer to know the ins and outs of energy bills calculations.