The setting for David Benioff’s City of Thieves is grim and brutal – the siege of Leningrad during World War II – yet there is also light and optimism, even laughter in this book. Lev Benioff, is a naive, 17-year-old is picked up for looting, a sentence punishable by death. Instead of the firing squad, he is thrown together with brash, confident, Red Army soldier Koyla Vaslav (arrested for deserting). They are given a task: find 12 eggs for the general’s daughter’s wedding in five days. If they succeed, they’re free; if not, they’ll be shot.

What follows is the nearly impossible search for fresh eggs in a city that has virtually no food (conservative estimates place the number of Soviet deaths during the siege at 1.7 million, most of whom starved to death) The unlikely pairing develops from forced to begrudging to a true partnership. What these two see, both the cruelty and kindness, is almost unfathomable now in our comfortable, well-fed lives, from the desperate couple resorting to cannibalism (who they barely escape from), to the former call girl that shelters artists and surgeons made homeless by the relentless bombing, to the Nazi commander they must outwit, the book is full of unforgettable characters and heart-stopping tension.

At first, you will want to hate Koyla. He is arrogant and brash and a bit of a braggart. He is also charming and charismatic and at heart, a kind and generous man who does the right thing for others time and again. Lev, who narrates the story, is full of self-doubt and (he believes) weakness, but finds unimaginged courage and strength when he needs it, partly because of Koyla.

Based on Benioff’s grandfather’s memories, this is storytelling at it’s best, the kind of book that stays with you – a story of cruelty, desperation and hardship, but also of kindness, strength, loyalty, love and friendship.