Preheat the oven to 350°F and grease an 8x8-inch square baking pan with cooking spray or line with parchment and set aside.
To prepare the streusel topping, mix together the flour, sugar, and cinnamon in a medium bowl. Stir in the melted butter and use your hands to really mix it up good. Set aside.
For the cake, whisk together the flour, baking soda, baking powder, and salt in a medium mixing bowl and set aside.
Add the butter and sugar to a separate mixing bowl and use an electric mixer on medium speed to combine ingredients for 2 minutes until light and fluffy. Scrape sides as needed and then add the egg, sour cream, and vanilla. Mix for 1 minute until combined and smooth, scraping the sides of the bowl as necessary.
Turn the mixer to low speed and gradually add the flour mixture. Mix until just combined and smooth, again, scraping the sides of the bowl as necessary.
Transfer the batter into prepared baking pan. Spread it out with a spatula. It will seem very thin, but don't worry, it will bake up nice and fluffy. Sprinkle streusel topping over the cake and gently press down with your fingers. It might seem like too much streusel, but we really enjoyed the amount.
Bake for 30-40 minutes, or until the cake is set and a toothpick inserted in the center comes out clean. My cake was done in 30 minutes.
Remove cake from oven and place pan on a wire rack to cool completely, about 15 minutes.