Bring a pan of water to a boil, salt it generously and then cook the pasta until al-dente.: The sound of the water humming as it reaches a rolling boil will tell you it is ready, and the aroma of salted water is the first seasoning layer. Cooking pasta to al dente preserves a slight bite that contrasts with the creamy sauce; overcooking leads to mushy texture and a gluey finish, which is a common mistake. Keep the water at a vigorous boil so the shapes move freely, and stir occasionally to prevent sticking. Test a piece a minute before the package time for the best cue. If the water seems too full, use a larger pot so the pasta can cook evenly and not clump together. Reserving slightly under cooked pasta is better because it will finish cooking when combined with the sauce.
Reserve a cup of the pasta cooking water and then drain.: Listen for the thin gurgle as you ladle water; that reserved water is gold because it contains starch that helps emulsify the sauce and makes it cling to the pasta . Drain the pasta quickly to avoid losing heat, and keep the reserved water handy to adjust sauce consistency. A frequent error is pouring the water away, which removes your best tool for loosening the sauce without diluting flavor. Use the reserved water a tablespoon at a time to achieve a glossy coating on the noodles.
While the pasta is cooking add the butter to a small saucepan and melt over medium-low heat.: You should hear a gentle sizzle as the butter melts and see it liquefy into a pale pool, not brown. Low steady heat ensures the fat does not scorch and the sauce remains sweet and clean tasting. Avoid letting the butter brown because that will introduce nutty flavors that can compete with the cheese blend. If the pan gets too hot, remove it from the heat for a moment and then return to maintain a moderate temperature.
Once melted add in the flour and whisk to combine.: When you stir in the flour , the mixture should become smooth and slightly pasty, and you will notice the raw flour scent fade as it cooks. This step cooks out uncooked flour notes so your sauce will taste refined. Whisk constantly to avoid lumps forming, and cook the roux for about a minute to mellow the raw taste. A common slip is to add liquid too quickly here, which creates clumps; patience and steady whisking keep the texture silkily uniform.
Whisking the sauce and slowly pour in 1/2 cup of the milk. Continue whisking and adding milk until you have added it all. Then cook and whisk for 4 minutes, until the sauce has thickened.: As you add the milk gradually, the mixture should smooth out and begin to shine; the whisking rhythm is soothing and ensures no pockets of flour remain. Within minutes the sauce will thicken to coat the back of a spoon and the aroma will become creamy and slightly sweet. This gentle simmer allows starches to swell and bind, producing velvet texture. Avoid boiling aggressively, which can break the emulsion and cause separation. If the sauce becomes too thick, temper it with a splash of reserved cooking water to reach the ideal consistency.
Add in the shredded cheeses one by one and then stir gently to melt them into the sauce.: When you add the cheeses, the surface will ripple as they melt, and small ribbons will form as you stir, signaling a silky integration. Introduce them gradually so the heat remains even and no single cheese overwhelms the texture. Stir gently to combine, using a slow fold rather than vigorous beating to preserve creaminess. If the heat is too high, the cheese can seize and become grainy, so lower the flame if needed. Taste as you go to balance saltiness, because some cheeses such as pecorino are quite assertive.
Stir in the dried basil and parsley. Taste and season with salt and pepper.: The herbs will reawaken the aroma and add a subtle lift that keeps the sauce from feeling one note. Sprinkle them in and inhale the fragrant hint they provide; adjust amounts to your preference. Tasting is key here because the cheeses have varying salt levels, and you do not want to oversalt. If you find the sauce needs brightness, a very small pinch of acid would do wonders, but since that is not in the ingredients, rely on careful tasting and moderation of salt and pepper.
Toss the cooked pasta into the cheese sauce adding a couple of tablespoons of the cooking water to ensure the sauce coats all the pasta equally.: The sight of the glossy sauce clinging to each piece of pasta is immensely satisfying, and the sound of gentle stirring is calming. The reserved cooking water helps the sauce become emulsified and cling without pooling. Tossing rather than spooning helps distribute sauce into crevices so every bite is saucy. A common mistake is adding too much water at once, which can thin the sauce; add a little at a time until you reach the ideal coating.
Add more cooking water as needed.: When the sauce looks a touch thick, add another splash of the reserved water and watch it come alive, becoming shiny and supple. The starch in that liquid binds the sauce to the pasta while preserving creaminess, so it is often the solution when the sauce is slightly clumpy or heavy. Resist the urge to add plain water, as it lacks the emulsifying starch and will dilute flavor. If you find the texture has become too loose, simmer briefly to tighten it up.
Serve as a side or a main meal.: The final presentation will be glossy and inviting, and the aroma of melted cheddar and nutty asiago will draw people in. Serving warm ensures the cheese keeps its creamy pull and the pasta maintains structure. A common serving error is letting the dish sit too long off heat, which can cause the sauce to stiffen; serve promptly and gently rewarm with a splash of reserved water if needed. This dish is versatile, so plate it as you prefer and enjoy the rich, layered flavors.