Preheat oven to 350 degrees (325 if you have a dark-coated pan). Prep your 8x8 square pan by lining it with parchment paper with a little hanging over for easy cake removal.
Whisk flour, baking powder, baking soda, and salt in small bowl to combine. Set aside.
Whip butter and sugar together with a stand mixer or a hand mixer until it becomes light and fluffy. If using a stand mixer, use the paddle attachment. Add egg and vanilla. Mix on low until fully incorporated.
In a separate small bowl, mix sour cream and milk together. Add 1/3 of flour mixture to the butter mixture and mix until just combined. Add 1/2 of the milk mixture to the butter mixture and mix until just combined. Repeat again until flour and milk mixtures are fully incorporated into the butter mixture. Add blueberries and zest and gently fold together.
Take a spatula, scrap down the sides of the bowl of the cake batter to make sure you have all the ingredients mixed in. Pour batter into prepared dish and spread into an even layer. Make topping (see below) and spread over the batter.
Bake the cake in the preheated oven for 32-35 minutes, until a toothpick comes out clean. If you want a crispier top layer, cook for full 35 minutes. Once finished baking, place on rack to cool for 10 minutes while still in cake pan. Then remove from cake pan to finish cooling on the rack. Can be served warm or cooled. Before serving, sprinkle with powdered sugar for a pretty white layer on top. Store leftover cake in storage container for up to 3 days.