Cook the macaroni according to the package directions (boil for 7-8 minutes, or until tender). Drain the macaroni in a colander and set aside.
Place the butter and flour in a medium pot over medium heat. Whisk until the butter is melted and the mixture begins to bubble. Once bubbling, continue to whisk and cook for one minute.
After cooking the butter and flour roux, slowly whisk in the milk. I added a few tablespoons at a time, letting each addition thicken before adding more milk.
Cook and whisk over medium heat until the milk gently simmers and thickens to the consistency of heavy cream, about 5 minutes. Be patient and let it fully thicken before adding the cheese, or it won’t melt smoothly.
Once it thickens, turn the burner off. Season the sauce with onion powder, garlic powder, paprika, salt, pepper, and hot sauce. Whisk to combine.
Add the shredded block cheddar a handful at a time, whisking until each addition melts before adding more. If the sauce cools too much, briefly return it to low heat, but don’t let it boil, or it may separate and turn grainy.
Add the cooked and drained pasta to the pot with the cheese sauce and stir to combine. If your pasta appears to be drowning in cheese, don't worry! It'll be the perfect consistency as the macaroni absorbs the sauce and thickens up.
Serve hot and enjoy!
Baked Mac and Cheese
Preheat the oven to 350ºF.
After combining the drained pasta and cheese sauce, transfer it to a casserole dish.
Top with more shredded cheese, then bake for 15 minutes.
To achieve a golden brown crispy cheese crust, turn on the oven's broiler for just a few short minutes, watching it closely to prevent burning.
*This amount of hot sauce does not make the macaroni and cheese spicy. It just brightens the flavor a bit. You can also accomplish this with Dijon mustard (same amount).**Do not use pre-shredded cheese, which is coated in starch and doesn't melt smoothly. Use a block of sharp cheddar and shred it yourself.