Preheat oven to 350 degrees. Arrange bacon in a single layer on sheet pan and place in oven to bake for about 25 minutes or until cooked through and crispy.
12 ounces bacon
Use a hand grater or food processor to shred the cheese. Mix all three kinds of cheese evenly and set aside.
2 cups mild cheddar cheese, 1 cup sharp cheddar cheese, 1 cup gouda cheese
Meanwhile, add pasta to salted boiling water and cook just shy of al dente (about 6-7 minutes) then drain. Reserve about ½ cup of pasta water.
18 ounces uncooked pasta, water, 1 teaspoon sea salt
Place cooked bacon on a layer of paper towels or newspaper to absorb excess oil. Once cooled, crumble the paper towel up into a ball, squeezing and pressing to crush and crumble the bacon. Mix bacon pieces with bread crumbs and set aside.
⅓ cup bread crumbs
Melt butter in a large saucepan or skillet over medium high heat. Stir in flour to start a roux then whisk in milk slowly until there are no lumps. Reduce heat to medium then stir in sea salt, white pepper, and garlic powder. Bring to a light boil then stir in the cheese in batches, reserving about ¾ cup of cheese for topping.
½ cup unsalted butter, ⅜ cup flour, 2 cups milk, ¼ teaspoon white pepper, ½ teaspoon garlic powder
Stir until the cheese sauce is smooth and uniform and all cheese is melted. The sauce should be very thick but not stiff. If needed, add reserved pasta water, one spoonful at a time to thin out the sauce.
Toss the drained pasta with cheese sauce until evenly coated then spread into a baking dish.
Top with remaining shredded cheese and place dish in oven, uncovered, to bake for about 20 minutes or until top layer of cheese is melted and bubbly. Sprinkle bacon and bread crumb mixture evenly over top then return to oven uncovered and bake another 20 minutes or until bread crumbs are golden brown.
Let dish set for about 30 minutes before scooping serving.