Not your mother's mac & cheese.
6 Slices of bacon, cut crosswise into ½-inch strips
3 tbsp Unsalted butter
1 Onion, diced
1/2 cup All-purpose flour
1 qt Whole milk, plus more as needed
1 lb Shells or other short pasta
2 cups Fresh grated cheddar cheese
2 cups Fresh grated fontina cheese
1 cup Fresh grated Parmigiano-Reggiano
1/4 cup Dijon mustard
Tabasco, or other hot sauce, to taste
Kosher salt, to taste
Drizzle a bit of olive oil in a large saucepan, add the bacon, and bring the pan to medium heat. Stir the bacon occasionally. When it’s brown and crispy, after about 6 to 8 minutes, remove it from the pan to drain on paper towels. Do not discard the bacon fat and all its deliciousness!
Add the butter and onion to the pan with the fat, season with salt, and cook until the onion is soft and aromatic, about 8 to 10 minutes. Add the flour and cook, stirring frequently, for 4 to 5 minutes or until the mixture looks like wet sand. Slowly whisk in the milk, season with salt, and bring to a boil. Reduce to a simmer. Cook over low heat for 8 to 10 minutes more or until the mixture is slightly thicker than heavy cream.
Meanwhile, bring a large pot of well-salted water to a boil. Add the pasta to the boiling water and cook for 1 minute less than the instructions on the package suggest. Taste it: It should be toothsome with just a little nugget of hard pasta still in the center — this is al dente. Drain the pasta and reserve.
Add the cheddar, fontina, and Parmigiano to the milk mixture and whisk to combine. Add the mustard and a few shakes of Tabasco if desired. Taste and adjust the seasoning if needed, adding a little more milk if the mixture seems too thick. Stir in the cooked bacon and pasta. The mixture should be very creamy and flavorful. Serve immediately or transfer to a baking dish or ramekins and reheat in a 375 degree F oven.