In a small bowl, whisk together soy sauce, chili paste, rice vinegar, cornstarch, water, and beef broth until smooth. Set aside.: The aroma at this stage is faintly salty and tangy, with a hint of chili. Whisking the cornstarch into the cold water first prevents lumps from forming, which ensures the sauce will thicken evenly when added to the hot pan. If you skip thorough whisking you may end up with a grainy texture instead of a glossy glaze, so take a few extra seconds here to smooth the mixture.
Heat 1 tablespoon of vegetable oil in a wok or large skillet over high heat. Add the sliced beef and stir-fry until browned and nearly cooked through, about 3 to 5 minutes. Remove beef from the wok and set aside.: You should hear an immediate sizzling as the beef hits the hot oil, and the edges will begin to caramelize into deep brown flecks. The high heat sears the meat quickly, locking in juices and creating a savory crust. A common mistake is overcrowding the pan which causes steaming instead of searing, so work in batches or use a large pan for an even sear.
In the same wok, add the remaining tablespoon of oil. Add sliced bell pepper, onion, jalapeño, garlic, and ginger. Stir-fry for about 2 minutes or until the vegetables are just tender.: The residual heat will continue to cook the meat slightly, so resting it off heat prevents overcooking and keeps the slices tender. You might notice faintly browned juices pooling in the pan, which are flavor gold you will reincorporate later. Avoid setting the beef on a plate where it will trap steam, which can soften the crust.
Return the beef to the wok. Pour the prepared sauce over the beef and vegetables. Stir well to combine and continue cooking for another 2 to 3 minutes, or until the sauce has thickened and everything is heated through.: The pan will likely have fond from the beef , and adding fresh oil helps lift those caramelized bits while providing a clean surface to cook the vegetables. The oil should shimmer quickly, signaling it is ready for the aromatics. If the oil smokes heavily, lower the heat briefly to avoid burning the delicate garlic and ginger.
Serve with cooked rice and top with green onions for garnish.: As you toss the vegetables you will hear quick, bright sizzles and notice the colors intensify. The goal is to keep the bell pepper and onion crisp tender so they retain texture and freshness. Overcooking will make them limp and dilute the contrast with the beef , so watch closely and stir constantly to avoid charring.
Return the beef to the wok: Bringing the partially cooked beef back into the pan lets it reheat and mingle with the vegetables. The residual juices and fond will lift flavor, and you will see the meat edges steam slightly, signaling they are warming through. A slip to avoid is adding the sauce too early which can prevent the vegetables from staying crisp, so wait until the mix is ready.
Pour the prepared sauce over the beef and vegetables: When the sauce hits the hot pan it should hiss gently and begin to thicken as the cornstarch activates. You will see the liquid turn glossy and begin to cling to the ingredients, creating a cohesive coating. If the sauce seems too thin, simmer a bit longer; if it gets gummy, you likely used too much cornstarch or cooked it too long.
Stir well to combine and continue cooking for another 2 to 3 minutes, or until the sauce has thickened and everything is heated through: During this final simmer the aromas concentrate, and the dish takes on a rich, shiny finish. Taste for seasoning and balance, adjusting heat or acidity if needed. A common error is rushing this step which can leave raw cornstarch taste or an underdeveloped sauce, so let it bubble briefly until it coats the back of a spoon.
Serve with cooked rice and top with green onions for garnish: Once plated, the steam from the rice helps meld the sauce and makes each forkful comforting. The chopped green onions add a crisp, bright contrast in both texture and color. Avoid letting the dish sit too long before serving, as the sauce can thicken further and the vegetables will soften.