In a large pan, melt the butter and olive oil over medium heat. Add the diced shallot and minced garlic. Cook for for 2 minutes, stirring often.
Add a generous amount of coarsely ground black pepper. Stir to combine and let the pepper toast for 30 seconds. Add the uncooked orzo, stir to combine, and toast for another minute.
Pour in the white wine. Stir to combine and cook for about 2 minutes until the wine is absorbed.
Pour in good-quality chicken stock about a 1/2 cup at a time. Stir often so the orzo doesn't stick. Once most of the stock is absorbed, add another 1/2 cup of chicken stock. Continue this process until the orzo is cooked through. I added a pinch of kosher salt because I used very low sodium stock. This took me about 15 minutes. The orzo should look creamy and still have some liquid left when finished.
Turn the heat to low. Add a few more cracks of black pepper then add the finely grated parmesan cheese and mascarpone cheese. Stir until well combined and all of the cheese is melted. Taste and add another pinch of salt as desired.
Serve immediately with additional black pepper, parmesan cheese, and a drizzle of finishing olive oil.
Video
Notes
This isn't a traditional Cacio e Pepe recipe. Cacio e Pepe is traditionally made with Pecorino Romano, but I prefer parmesan. Feel free to use Pecorino Romano instead or a combination of Parmesan and Pecorino Romano.