Preheat the oven to 350F. Prep a 9 inch round pan. Grease the pan and line the bottom with parchment paper.
Finely shred large carrots until you have about one cup shredded, about 3-4 large carrots. Place the shredded carrots on a paper towel to drain some liquid off and set aside.
Add melted butter, brown sugar, sour cream, eggs, and vanilla extract to a bowl. Whisk until fully combined. Add the flour, cinnamon, baking powder, baking soda, and salt. Use a rubber spatula to mix until just combined.
Squeeze some extra liquid out of the carrots then add them to the bowl. Gently fold in until just combined. The batter will be quite thick. Transfer the batter to the greased baking dish.
Now make the streusel. Add the softened butter, flour, brown sugar, cinnamon and salt to a bowl. Mix until combined. The mixture should stick together when you squeeze it together but crumble apart when you rub it with your fingers.
Sprinkle the streusel on top of the carrot cake batter, evenly spreading across the top. Transfer to the oven and bake for 40-50 minutes, until no longer jiggly in the middle and an inserted toothpick comes out clean.
Let the cake cool for 10 minutes, then invert it onto a cooling rack to cool completely. When the cake is almost cooled, make the icing. Add the powdered sugar, milk, and vanilla extract to a bowl and whish until smooth.
Slice the cake into smaller pieces and drizzle the icing on top. Enjoy!