In a large mixing bowl, combine the sliced onions, minced garlic, vegetable oil, vinegar, ground cumin, ground coriander, paprika, salt, and black pepper. If using yogurt, add it to the mixture.
Add the meat cubes to the marinade, tossing to coat evenly.
Cover the bowl with plastic wrap and marinate in the refrigerator for at least 4 hours, preferably overnight.
Preheat your grill to medium-high heat.
Thread the marinated meat cubes onto the skewers, leaving a little space between each piece for even cooking.
Brush the grill grates with vegetable oil to prevent sticking.
Place the skewers on the grill and cook for about 10-15 minutes, turning occasionally, until the meat is cooked through and has a nice char on the outside.
Transfer the shashlik to a serving platter.
Enjoy your meal!