Preheat oven to 375 degrees then butter a 9" x 13" casserole dish. Peel potatoes then submerge in water until you’re ready to slice them.
Place a medium-sized skillet over medium heat then cook diced bacon for approximately 7–8 minutes until crispy. Transfer bacon to a paper-towel lined plate then drain bacon grease from the skillet, reserving 1 Tbsp of drippings to cook the onions and garlic.
Return skillet to heat. Add onions and garlic then cook for 4 minutes or until onion becomes translucent. Remove skillet from the heat; stir bacon crumbles into onion mixture then set aside.
Place a medium-sized saucepan over medium heat then add ½ stick of butter. Once the butter has melted, add flour then whisk to combine. Let flour mixture cook for 1 minute before adding cream then whisk until no lumps remain.
Stir in thyme, salt and pepper then let mixture come to a bubble. Once the mixture is bubbling, reduce heat to medium-low, simmer for 3 minutes then remove sauce from heat.
Remove one or two potatoes from the water then cut into ⅛" slices. Cover bottom of the prepared baking dish by ‘shingling,’ or slightly overlapping potato slices. Season the layer of potatoes with salt and pepper.
Pour ⅓ of the cream mixture over the potatoes then spread evenly. Sprinkle ⅓ of the bacon mixture over the cream layer, followed by ⅓ of the shredded cheese. Repeat 2 more times, seasoning each layer with salt and pepper.
Bake 45–55 minutes until a knife is easily inserted into the casserole. You’ll be able to feel if the potatoes are still crunchy. Remove from oven then let rest 15 minutes before serving.