In a small saucepan, heat the milk and sugar over low heat until it reaches 110-115ºF. Remove from heat, stir in the yeast, and set aside for 5 mins.
Whisk in the egg and set aside.
Add the flour, salt, and garlic powder to the bowl of a stand mixer. Fit the mixer with the dough hook attachment.
With the mixer on low speed, gradually pour the yeast mixture into the flour. Continue to beat on low until the flour is incorporated, stop and scrape down the sides and bottom as needed. Continue beating until a dough soft dough forms, about 4 minutes.
Add 1 cup (100 grams) of the cheddar cheese and 1 cup (100 grams) of the Parmesan cheese. Beat on low speed until just combined. Gradually beat in 5 tablespoons (70g) of the softened butter.
Continue to beat until dough is smooth and elastic, about 5 minutes. (The dough will be soft and may stick to the bowl a bit. Add a little more flour if the dough seems too sticky.)
Scrape the dough out into a lightly oiled bowl. Brush a little oil over the top of the dough. Cover and set in a warm place to rise for 1 hour or until doubled in size. (see Make Ahead Tip below)
Preheat the oven to 350ºF. Line a baking sheet with parchment paper and set a 9-inch springform pan on the baking sheet.
Divide the dough in half. Divide each half into 8 equal sized pieces. (You should end up with 16 pieces total.) Roll each piece into a ball.
Arrange the dough balls in the springform pan, seam side down.
Melt the remaining 2 tablespoons (28g) of butter and stir in the garlic. Brush over the top of the dough.
Loosely cover the pan with a clean towel and let rise for 30 minutes.
Top the rolls with the remaining cheddar and Parmesan cheeses. Sprinkle with fresh basil.
Bake until golden brown, about 30-40 minutes. Serve warm.