Bring a large pot of salted water to a boil and cook the pasta according to package directions. Reserve 1 cup of pasta water before draining.
While the pasta cooks, heat the olive oil in a large skillet over medium heat. Add the onion and cook for 4 to 5 minutes, until softened.
Add the garlic and cook for 30 seconds until fragrant.
Add the ground beef, breaking it apart with a wooden spoon, and cook until browned, 6 to 8 minutes.
Push the beef to one side and add the berbere spice to the fat in the pan. Let it toast for 30 seconds, stirring, then mix it into the beef.
Stir in the tomato paste and cook for 1 to 2 minutes, until it darkens slightly.
Pour in the beef broth and red wine vinegar, scraping up any browned bits from the bottom of the pan. Simmer for 2 minutes.
Lower the heat and stir in the milk. Simmer gently for 3 to 4 minutes.
Remove from heat and stir in the cheddar and Parmesan until melted and smooth.
Add the drained pasta to the sauce, tossing to coat, and add splashes of reserved pasta water as needed to loosen it. Season with salt to taste, garnish with parsley, and serve.