Cut the beef into cubes, trimmed the fat, clean with lemon or vinegar. Pat dry with paper towel and set aside.
Chop the onions, ginger, garlic, and scallions.
Next, melt the butter in a saucepan over medium-high heat. Add onions, ginger, garlic, and scallions. Cook for about 3 - 5 minutes, stirring.
Add chopped tomatoes and tomato paste. Stir to mix and cook, stirring for about 5 minutes.
Add the beef followed by the berbere seasoning; stir until fragrant, about 1-2 minutes. Add balsamic vinegar. Bring to a simmer, then cover, cook on low to medium heat on the stovetop. After 10 minutes, check on the liquid amount. Add hot water if necessary. (add enough water to cover the meat.)
Stir the meat mixture occasionally until the beef is tender when pierced with a fork, about 1 - 1 1/2 hours.
Add the sweet potatoes, and continue cooking until all the ingredients are fully cooked—season to taste with salt and pepper.
It is best to use a Dutch oven for cooking the beef as the meat will take less time.
If you do not have berbere seasoning, use the following: 1 tablespoon each ground paprika and cayenne (use less cayenne pepper if you don't want the stew to be too spicy), 1 teaspoon each ground cumin and fenugreek, ½ teaspoon each ground turmeric, cinnamon, and cardamom, and ¼ teaspoon each allspice and ground cloves.
Always use hot or warm water when cooking meat. The warm water helps keep the flavors together.
There's no need to sear the meat first as this is a method in many beef stew recipes.
If you want to thin out the sauce, add a dry red wine or hot water and adjust the seasoning.