Preheat oven to 350°F and grease a 9x13 inch baking dish or similar size cake pan with butter or cooking spray. While the oven heats, trim the rhubarb and cut it into 1/2-inch pieces, then measure out all dry ingredients (flour, baking powder, baking soda, salt) into a small bowl. This prep work ensures everything is ready when you need it, preventing delays during mixing.
In a large mixing bowl, combine the butter and sugar, beating on medium speed for 2-3 minutes until the mixture is light, fluffy, and pale in color. This creaming process incorporates air into the batter, which helps the cake rise and creates a tender crumb. I like to use Kerrygold unsalted butter because its rich flavor really shines through in this simple cake.
Add the room temperature egg and vanilla to the creamed mixture and beat until fully combined, about 1-2 minutes. A room temperature egg emulsifies more easily with the butter mixture, creating a smoother batter. Make sure to scrape down the sides of the bowl to ensure all ingredients are evenly incorporated.
Alternately add the dry ingredient mixture from Step 1 and the buttermilk to the wet mixture, beginning and ending with the dry ingredients. Add in three additions of dry mixture with two additions of buttermilk, stirring gently until just combined after each addition. I always use King Arthur all-purpose flour because it has consistent protein content, which helps give this cake its tender but sturdy structure. Be careful not to overmix, as this can develop gluten and make the cake tough.
Gently fold the prepared rhubarb pieces into the batter using a spatula or wooden spoon, being careful not to break up the pieces too much. In a separate small bowl, combine the cold butter cubes, flour, sugar, and cinnamon for the topping, mixing with a fork until the mixture resembles coarse breadcrumbs. Pour the batter into the prepared pan and spread it evenly.
Sprinkle the cinnamon-butter topping mixture evenly over the batter, breaking up any larger clumps as you go. Bake in the preheated 350°F oven for 35-45 minutes, until the cake is golden brown and a toothpick inserted in the center comes out clean or with just a few moist crumbs. The cake is done when the topping is golden and the cake pulls slightly away from the sides of the pan.
Remove the cake from the oven and let it cool in the pan for at least 15-20 minutes before serving. This allows the cake to set and makes it easier to cut clean slices. Serve warm or at room temperature, optionally with whipped cream, vanilla ice cream, or a dusting of powdered sugar.