In a large ziptop bag, combine the balsamic vinegar, soy sauce, Worcestershire sauce, olive oil, garlic, and onion powder. Add the steak, and seal the bag. Chill for at least 2 hours, or ideally 12 to 24 hours.
Remove the steak from the marinade, and discard the marinade. Pat the steak dry with paper towels. Season the steak all over with 1 teaspoon salt and ¾ teaspoon pepper. Let stand at room temperature for 15 minutes.
Heat the canola oil in a large skillet over medium. Cook the steak until well browned on the bottom, 3 to 4 minutes. Flip and cook until browned on the other side, and the internal temperature registers 135°F for medium-rare, 3 to 4 minutes more.
Transfer steak to a cutting board and let rest for 10 minutes. Thinly slice the steak against the grain to serve.
Notes
Don't marinate the steak for too long. Twenty-four hours is the maximum. Leaving the steak in the marinade for longer than that will cause the texture to become unpleasantly mushy instead of tender.
Let the steak stand at room temperature before cooking. This will ensure the steak cooks evenly. If it is too cold, the outside may cook too fast while the inside remains undercooked.
Let the steak rest after cooking. The temperature will rise 5 to 10 degrees, so the resting time is important for the steak to finish cooking to your desired doneness. In addition, while the beef rests, the juices redistribute, so the end result is perfectly juicy.
Cut the steak against the grain for tender, never chewy, bites. You can determine the grain of the steak by looking for the textured lines in the meat. Cut perpendicular to the direction that they are running. When sliced, you should see a vertical grain pattern in each slice.