Preheat the oven to 400°F (200°C) and line a baking sheet with parchment paper.
In a large mixing bowl, combine the ground beef, breadcrumbs, Parmesan cheese, milk, egg, Worcestershire sauce, garlic powder, onion powder, salt, and pepper. Mix until well combined.
Form the mixture into meatballs, about 1 inch in diameter, and place them on the prepared baking sheet.
Bake the meatballs in the preheated oven for 20-25 minutes or until they are cooked through and browned.
While the meatballs are baking, prepare the mashed potatoes by placing the peeled and cubed potatoes in a large pot, cover with water, and add a pinch of salt. Bring to a boil over medium-high heat and cook until fork-tender, about 15-20 minutes.
Drain the potatoes and return them to the pot. Add the milk, butter, and additional salt to taste. Mash until smooth and creamy, or use an electric mixer for a fluffier texture.
For the gravy, heat olive oil in a skillet over medium heat. Whisk in the flour and cook for about 1 minute. Gradually add the beef broth, whisking continuously to avoid lumps.
Stir in the soy sauce and Dijon mustard, and season with salt and pepper. Simmer until the gravy thickens, about 5-10 minutes.
Once the meatballs are done, remove them from the oven and add them to the gravy. Let them simmer together for a few minutes.
Serve the meatballs and gravy over a generous scoop of mashed potatoes.