In a large pot or Dutch oven, heat the vegetable oil over medium-high heat. Season the beef pieces with salt and pepper, then add them to the pot in batches, browning on all sides. Remove the beef and set aside.
In the same pot, add the diced onion and sauté for about 5 minutes until softened. Add the minced garlic and grated ginger, cooking for an additional minute until fragrant.
Return the browned beef to the pot. Pour in the coconut milk, beef broth, soy sauce, brown sugar, lime juice, ground cumin, ground coriander, and red pepper flakes if using. Stir to combine.
Bring the mixture to a simmer, then reduce the heat to low. Cover the pot and let it braise for about 2 to 2.5 hours, or until the beef is tender and easily shreds with a fork.
Once cooked, taste and adjust seasoning with more salt, pepper, or lime juice if needed. Serve the braised beef over cooked rice and garnish with fresh cilantro.