Preheat oven to 350℉.
Cook pasta in a large pot of salted water according to package directions. Once cooked al dente, drain pasta and set aside.
In a large sauce pan melt butter over medium heat.
Add flour and whisk continuously into the melted butter until the raw flour flavor has cooked off, about 2-3 minutes, and you have a lump free roux.
Increase heat to medium high and add milk, whisking continuously until the sauce thickens, about 5 minutes.
Lower heat to medium low and stir in shredded cheddar cheese, reserving a third of the cheese for the topping.
Stir until the cheese is completely melted into the sauce and it's rich and thick and creamy.
Add the cooked pasta to the pot and stir to combine with the cheese sauce.
Season with salt and pepper.
Transfer to a 13x9 inch oven safe casserole dish and top with remaining cheese.
Bake for 30 minutes until hot and bubbly.
Turn oven temperature to broil and continue to cook until browned on top. Keep a close eye on it so it doesn't burn.
Serve piping hot.