Preheat the oven to 400°F (200°C).
In a large mixing bowl, combine ground beef, breadcrumbs, Parmesan cheese, chopped onion, egg, garlic powder, salt, pepper, Worcestershire sauce, and parsley if using. Mix until just combined.
Shape the mixture into 12 meatballs and place them in a baking dish.
Bake the meatballs in the preheated oven for 20 minutes, or until cooked through and browned.
Meanwhile, peel and cut the potatoes into chunks. Boil them in a pot of salted water until tender, about 15 minutes.
In a skillet, heat olive oil over medium heat. Whisk in the flour and cook for 1 minute until lightly browned.
Gradually add beef broth and soy sauce, stirring constantly until the gravy thickens. Season with onion powder, salt, and pepper to taste.
Drain the potatoes and return them to the pot. Add butter, milk, salt, and pepper. Mash until smooth and creamy.
Once the meatballs are done, drizzle them with the gravy, and serve alongside the mashed potatoes.