Cook the rice: Make 3 cups of fluffy white rice.
Day-old rice works great. Keep it warm.
Marinate the protein: In a bowl, mix soy sauce, sugar, sesame oil, minced garlic, and pepper. Toss in the beef or tofu and let sit for 10–15 minutes.
Mix the sauce: Whisk gochujang, soy sauce, sesame oil, rice vinegar, and sugar/honey.
Add a splash of water to thin to drizzle consistency. Taste and adjust sweetness or heat.
Prep the veggies: Julienne carrots and zucchini, slice mushrooms, rinse spinach and sprouts. Keep each in separate piles for quick cooking.
Blanch greens: Boil water, blanch spinach 30 seconds, then drain and squeeze out water.
Toss with a pinch of salt, a dab of sesame oil, and sesame seeds. Repeat with bean sprouts for 1–2 minutes; season the same way.
Stir-fry the vegetables: In a hot pan with a touch of oil, sauté carrots with a pinch of salt until just tender (1–2 minutes). Remove.
Sauté zucchini with a pinch of salt (1–2 minutes). Remove. Sauté mushrooms with a small splash of soy sauce until browned (2–3 minutes).
Keep everything separate for a clean presentation.
Cook the protein: In the same pan, cook the marinated beef over medium-high heat until just cooked and slightly caramelized (2–4 minutes). If using tofu, pan-fry until golden on both sides, then toss with the marinade at the end to coat.
Fry the eggs: Add a little oil to the pan and fry eggs sunny-side up or over-easy. The runny yolk is classic.
Assemble: Divide hot rice into bowls.
Arrange spinach, sprouts, carrots, zucchini, mushrooms, cucumber, and kimchi in neat piles on top. Add the beef or tofu in the center or side. Place an egg on top.
Finish and serve: Drizzle with sesame oil, sprinkle sesame seeds and scallions, and add a spoonful of the gochujang sauce.
Serve extra sauce on the side. To eat, mix everything well so the rice gets coated in sauce and yolk.