Once cooked and crispy, drain your bacon on paper towels. Set aside for now.
Peel potatoes and dice them into 1–2-inch cubes, rinse well.
Put potatoes in large pot, covered by 2 inches of water. Add ½ tsp salt.
Boil until fork-tender (on the softer side), about 15-20 minutes.
Drain potatoes and rinse with warm water. Set aside. Rinse out potato pot briefly and give it a quick wipe.
Melt salted butter in the potato pot and add onion. Cook until soft and glossy.
Add minced garlic and cook for 2 minutes until fragrant.
Add cooked potatoes back to pot with onions and garlic. Mash with potato masher until they are the consistency you prefer, being careful not to overmix to avoid a gummy texture.
Add whole milk, sour cream, pepper, smoked paprika, salt (to taste), and chili flakes (optional) and combine.
Butter a 9x13” casserole dish. Transfer potatoes to the buttered casserole dish and smooth out with a spatula.
Top with shredded parmesan, shredded cheddar, and crumbled bacon.
Bake in oven at 400ºF for 20 minutes covered with foil, then uncover for 10 minutes.
*Russet and Yukon Gold potatoes are both great choices for mashed potatoes, so use whichever you like best that fits your budget. Yukon Gold is typically more expensive, so I made this recipe with Russets.**The amount of water needed will depend on the size of your pot. You need enough to cover the potatoes by about 2 inches.