Preheat a Dutch oven over medium-high heat for 5 minutes. Add avocado oil and heat until shimmering.
Slice the beef in half so that it fits into the pot and season both sides with salt & pepper. Working in batches, carefully add the beef to the hot oil and cook until browned, around 4 minutes. Flip and cook until browned on the second side, around 4 minutes. Transfer the beef to a bowl and set aside.
If necessary, add avocado oil to the pot so that there is a total of 2 tablespoons cooking fat. Add the onion and peppers and season with a pinch of salt. Cook, stirring and scraping brown bits off the bottom of the pot, until the vegetables have slightly softened, around 4 minutes. Add the garlic and cook another 60 seconds.
Add garlic powder, onion powder, oregano, paprika & cumin and cook, tossing everything to coat, for 60 seconds. Add crushed tomatoes, lime juice, and olives and stir to combine. Return the beef to the pot and push it down so that it's partially covered by some of the vegetables and liquid. Bring the sauce to a simmer, cover with a lid, turn the heat to low and cook, stirring occasionally, for 1.5 to 2 hours or until the beef is easily shredded with a fork.
Shred the ropa vieja with two forks and return it to the pot. Toss everything to coat, taste the ropa vieja for seasoning and adjust with salt & pepper as desired. Add cilantro, if using, and stir through.
Serve the ropa vieja with cauliflower rice and/or plantains (see my blog for recipes) and garnish with jalapeño, avocado and more cilantro, if using.