Preheat your oven to 350°F (175°C).
Cook the macaroni according to the package instructions until al dente.
Drain and set aside.
In a large saucepan, melt the butter over medium heat.
Add the flour, whisking continuously for about 1 minute.
Slowly whisk in the milk and bring to a simmer.
Stir in the Gruyere and Cheddar cheeses until melted and smooth.
Add salt and pepper to taste.
Fold in the cooked macaroni, ensuring the pasta is completely coated with the cheese sauce.
Transfer the mac and cheese mixture to a buttered baking dish.
Top with crumbled bacon and bread crumbs.
Bake in the preheated oven for 20-25 minutes or until golden and bubbling.