Preheat the oven to 350°F. Grease two 8-inch round cake pans and line the bottoms with parchment paper.
In a medium bowl, whisk together the flour, baking powder, baking soda and salt. Set aside.
Stir the espresso powder into the warm milk until dissolved. In a large bowl, whisk the coffee milk, yogurt and brown sugar until smooth and lump free, then whisk in the melted butter, oil and vanilla.
Add the dry ingredients to the wet mixture and fold gently just until combined, then fold in the chopped walnuts. Divide the batter evenly between the pans.
Bake for 25-30 minutes, until a toothpick inserted in the center comes out clean. Cool in the pans for 10 minutes, then transfer to a wire rack and cool completely.
For the buttercream, dissolve the espresso powder in the hot water and let it cool. Beat the butter for 3 minutes until pale, then add the powdered sugar, salt, coffee mixture and milk and beat until light and fluffy.
Place one cake layer on a plate and spread with half of the buttercream. Top with the second layer and spread the remaining buttercream over the top in soft swirls.Arrange the walnut halves around the edge and let the cake sit for 20 minutes before slicing.