Heat the large skillet over medium heat and add a tablespoon of oil. Once shimmering, add the chopped onion and cook until translucent, about 3-4 minutes.
Add the ground beef to the skillet, breaker it apart with a spatula, and cook until browned evenly, about 8-10 minutes. Drizzle in the tomato paste and sprinkle with thyme, stirring to combine.
Add the diced carrots and cook for another 5 minutes, stirring occasionally, until they begin to soften. Stir in the peas and cook for an additional 2 minutes.
Season the mixture with salt and pepper, then reduce heat to low and let simmer for 5 minutes to meld flavors. Remove from heat and set aside.
Meanwhile, place the peeled and chopped potatoes in a pot, cover with water, and bring to a boil over high heat. Cook until tender when pierced with a fork, about 15 minutes.
Drain the potatoes and return them to the pot. Add butter and warm milk, then mash until smooth and creamy, adjusting with more milk if necessary. Season with salt and pepper if desired.
Preheat the oven to 400°F (200°C). Transfer the beef mixture into a baking dish and spread the mashed potatoes evenly over the top, sealing the edges.
Bake in the preheated oven until the top is golden brown and slightly crispy around the edges, about 20-25 minutes. Remove from oven and let rest for 5 minutes before serving.