1 3/4 cups fresh or frozen cranberries (7 ounces; do not thaw if frozen)
3/4 cup coarsely chopped walnuts (3 ounces), toasted
1 1/2 cups all-purpose flour
1 1/2 teaspoons baking powder
1 teaspoon baking soda
1/2 teaspoon salt
1 stick (1/2 cup) unsalted butter, softened
3/4 cup granulated sugar
2 large eggs
1/2 teaspoon vanilla
3/4 cup well-shaken buttermilk
Special equipment: a well-seasoned 10-inch cast-iron skillet
Accompaniment: lightly sweetened whipped cream
Directions
Melt butter in skillet over moderate heat, then swirl to coat bottom and side of skillet and stir in brown sugar. Simmer, stirring, until sugar is dissolved, 1 to 2 minutes, then sprinkle cranberries and walnuts evenly over butter mixture and remove from heat.
Put oven rack in middle position and preheat oven to 350°F.
Whisk together flour, baking powder, baking soda, and salt. Beat together butter and sugar in a large bowl with an electric mixer at high speed until light and fluffy, 4 to 6 minutes. Add eggs, 1 at a time, beating well after each addition. Beat in vanilla. Reduce speed to low and add flour mixture alternately in batches with buttermilk, beginning and ending with flour mixture and mixing until just combined. (Do not overmix.)
Heat topping in skillet over moderately high heat until it starts to bubble, then gently spoon batter over topping and spread evenly. Quickly transfer to oven; bake until cake is golden brown and a wooden skewer comes out clean, 25 to 30 minutes. Cool cake in pan on a rack 15 minutes. Run a thin knife around inside edge of pan, then invert a serving plate over pan and invert cake onto plate. Cool completely on plate on rack, 1 hour. Serve cake at room temperature.