Preheat the oven to 325 degrees. Butter and lightly flour a 9 by 9-inch baking pan.
To prepare the coffee cake, cream 1 stick of butter in the bowl of an electric mixer and beat until light and fluffy.
Add 1 cup sugar and beat again until light and fluffy.
Beat in the eggs one at a time. Add the vanilla and freshly grated orange zest.
On the side, sift the flour, baking soda, baking powder and salt together. I like to sift my dry ingredients together onto a sheet of parchment paper. When it is time to add the flour mixture to the batter, pick up two sides of the parchment paper, position it over the mixer and pour the flour mixture in.
Add the flour mixture to the creamed mixture, alternating with the sour cream until the batter is thick and smooth.
Spread the batter evenly into the prepared pan. Sprinkle the cranberries over the top.
Prepare the topping: Toss the sugar, flour, cardamom, and cinnamon together in a small mixing bowl. Cut in the butter with 2 knives or pastry blender until the mixture is crumbly. Stir in the nuts. Sprinkle the streusel evenly over the cranberries on the coffee cake.
Bake until a toothpick inserted in the center comes out clean about 60 minutes. Serve warm or at room temperature, cut into squares.