Stir-fry at home usually goes wrong for the same two reasons. The pan isn't hot enough, so the meat steams instead of sears, and everything gets thrown in at once, which turns into a soggy mess. Restaurant stir-fries are fast and crisp because they treat heat as an ingredient and cook each component separately. You can do this at home with one cast-iron pan and 15 minutes.
The cut that matters
Flank steak or skirt steak. Both are thin, beefy, and cook in seconds. Slice them against the grain into 1/4-inch strips — this shortens the muscle fibers so the meat stays tender even cooked hot and fast. If you can, freeze the steak for 20 minutes before slicing to firm it up; you'll get cleaner cuts.
The marinade and the velvet trick
Toss the sliced beef with 1 teaspoon of cornstarch, 1 teaspoon of soy sauce, and 1 teaspoon of neutral oil. Let it sit for 10 minutes. The cornstarch creates a thin coating that protects the meat from the high heat — restaurants call this "velveting" and it's why their beef stays so tender.
Cook in stages, not in piles
Get the pan smoking hot. Sear the beef in a single layer for 60 seconds, flip, another 30 seconds. Out of the pan. Add the vegetables — broccoli, snap peas, bell peppers — in waves, hard ones first, finishing with garlic and ginger in the last 30 seconds so they don't burn. Return the beef, pour in the sauce, toss for 30 seconds until everything's glazed. Done.
The sauce formula
3 tablespoons soy sauce, 2 tablespoons oyster sauce, 1 tablespoon brown sugar, 1 teaspoon cornstarch, 1/4 cup water. Whisk before pouring — the cornstarch sinks. It thickens as soon as it hits the hot pan.
Serve it right
Steamed jasmine rice is the only correct base. The starch absorbs the sauce; nothing else does it as well. Top with sliced scallions, a scatter of toasted sesame seeds, and chili crisp if you like heat. Eat immediately — stir-fry waits for no one.