Preheat oven to 400 degrees F.
Cut potatoes into quarters and place in a pot of water. Bring to a boil and cook until tender, about 15 minutes.
Once tender, drain and transfer to a bowl. Add milk and 1 tablespoon of butter and beat with electric mixer until still chunky but creamy. You can also do this with a fork, just mashing it up. Stir in caraway seeds and salt.
Meanwhile, while the water is coming to a boil and potatoes are cooking, you can make the filling.
In a large pot heat olive oil over medium-high heat.
Add diced onion, carrots, and celery and cook until softened, about 8-10 minutes.
Add peas and corned beef and stir to combine. Remove from heat and set aside.
In a separate saucepan, heat 2 tablespoons of butter over medium heat.
Add flour and stir until combined and cook for 1 minute.
Slowly add Worcestershire, Dijon mustard, and beef broth, whisking to combine to form a gravy.
Add gravy to the corned beef mixture, mixing to combine.
Transfer filling to a large cast iron skillet or 9x13" baking dish.
Top with sauerkraut and shredded cheeses, and then spread potato topping on top.
Evenly spread out cubes of 2 tablespoons of diced butter on top of potato topping.
Bake in the preheated oven for 25-30 minutes, until mixture is bubbling and potato topping is lightly golden.
Serve and enjoy!