Preheat the oven to 400°F (200°C).
Boil the potatoes: Add diced potatoes to a large pot of salted water. Boil for 12–15 minutes or until fork tender. Drain and mash with butter, milk, and salt. Stir in shredded cheese if using, and set aside.
Brown the beef: In a 10–12" cast iron skillet over medium heat, cook ground beef until browned. Drain excess fat if needed.
Sauté the aromatics: Add onion and garlic to the beef. Cook for 3–5 minutes until soft.
Build the base: Stir in tomato paste, Worcestershire sauce, thyme, salt, and pepper. Add butter and flour, cooking for 1–2 minutes to form a roux.
Add broth and corn: Slowly stir in beef broth until thickened. Fold in corn, then remove from heat.
Top and bake: Spoon mashed potatoes over the beef mixture and spread evenly. Use a fork to create rustic ridges on top. Bake for 20–25 minutes, or until bubbling and lightly golden. Broil for 2–3 minutes for a crispier top
Cool slightly and serve.