← Back to Blog

Mexican Vegetable Beef Soup — The Sunday Constant That Holds Everything Together

Veterans Day. The holiday that used to be about other people's sons is now about mine. I stood in the bakery and watched the news coverage — the parades, the flags, the speeches about sacrifice — and I thought: sacrifice. What a word to use about sending your child to a war zone. Sacrifice implies willingness, implies offering, implies a choice. I did not choose this. Luis Jr. chose this. My part is the waiting, and the waiting is not sacrifice — it is survival. Sacrifice is active. Waiting is the passive form of love, the love that does nothing because doing something is not possible, and the impossibility is the cruelty, and the cruelty is the price.

A customer thanked me for my son's service. She saw the photograph of Luis Jr. in uniform on the bakery wall (Sofia added it — next to Rosa, next to the naturalization certificate, the soldier joining the wall of things that matter) and she said, "Thank you for his service." I said, "Thank you for eating our bread." She looked confused. But the response was genuine: her buying our bread supports the bakery that supports the family that supports the soldier, and the chain of support is a circle, and the circle is the economy of a military family, and the economy runs on bread and gratitude and the particular silence that follows "Thank you for his service" when the mother doesn't know what to say because no response is adequate to the enormity of what is being thanked.

Sofia's Thanksgiving pre-orders hit twenty-two. She surpassed her own projection by two, which she described as "being conservative with the projection to manage expectations," which is the language of a fourteen-year-old who has learned to under-promise and over-deliver, and the learning happened not in school but in the bakery, where every promise is a delivery and every delivery is a reputation and the reputation is Rosa's name on the door.

I made caldo de res this week — the Sunday soup, the every-week soup, the soup that has been made every Sunday for four years and that will be made every Sunday for the rest of my life. The caldo is the constant. The caldo is the metronome. The caldo does not change when sons deploy or nephews die or parents go into the ground. The caldo simmers and the beef softens and the corn sweetens and the cabbage wilts and the lime is squeezed and the bowl is full and the fullness is the answer to every question the week has asked.

The caldo I described is not a special-occasion soup — it is the opposite of a special occasion, it is the refusal of occasions, the insistence that Sunday comes regardless of what the week held. This Mexican vegetable beef soup is the closest written version of what goes into the pot: the beef shin, the corn still on the cob, the cabbage that wilts into something tender and sweet, the lime that cuts through everything and makes it bright again. I share it not as a recipe so much as a record — proof that the metronome kept its beat this week, and the bowl was full, and the fullness was enough.

Mexican Vegetable Beef Soup (Caldo de Res)

Prep Time: 20 minutes | Cook Time: 2 hours 30 minutes | Total Time: 2 hours 50 minutes | Servings: 8

Ingredients

  • 2 1/2 lbs beef shank or bone-in beef chuck, cut into large pieces
  • 10 cups water
  • 1 white onion, halved (one half whole, one half diced for serving)
  • 6 garlic cloves, smashed
  • 2 teaspoons kosher salt, plus more to taste
  • 1 teaspoon black pepper
  • 3 ears of corn, husked and cut into thirds
  • 3 medium carrots, peeled and cut into large chunks
  • 3 medium Yukon Gold potatoes, quartered
  • 2 medium zucchini, cut into large chunks
  • 1/4 head of green cabbage, cut into thick wedges
  • 1 can (14.5 oz) diced tomatoes
  • 1 teaspoon dried oregano (Mexican oregano preferred)
  • 1/2 teaspoon cumin
  • Fresh cilantro, for serving
  • Lime wedges, for serving
  • Warm corn tortillas, for serving
  • Sliced fresh chiles or salsa, optional for serving

Instructions

  1. Build the broth. Place the beef pieces in a large stockpot and cover with the 10 cups of water. Bring to a boil over high heat, skimming off any foam that rises to the surface during the first 10 minutes.
  2. Season and simmer. Add the halved onion half, smashed garlic, salt, pepper, oregano, and cumin to the pot. Reduce heat to low, cover partially, and simmer for 1 hour 30 minutes, until the beef is beginning to turn tender.
  3. Add the heartier vegetables. Add the corn, carrots, and potatoes to the pot. Pour in the diced tomatoes and stir gently. Continue simmering over low heat, covered, for 30 minutes.
  4. Add the tender vegetables. Add the zucchini and cabbage wedges. Simmer uncovered for an additional 20–25 minutes, until all vegetables are fully tender and the cabbage has wilted into the broth.
  5. Taste and adjust. Remove the onion half. Taste the broth and add salt as needed. If the broth has reduced too much, add a cup of hot water and stir.
  6. Serve. Ladle into deep bowls making sure each portion gets beef, corn, and a variety of vegetables. Serve with the diced raw onion, fresh cilantro, lime wedges, and warm corn tortillas alongside.

Nutrition (per serving)

Calories: 310 | Protein: 28g | Fat: 9g | Carbs: 29g | Fiber: 5g | Sodium: 520mg

Maria Elena Gutierrez
About the cook who shared this
Maria Elena Gutierrez
Week 187 of Maria Elena’s 30-year story · El Paso, Texas
Maria Elena was born in Ciudad Juárez, crossed the border at twenty with nothing but her mother's recipes in her head, and built a life in El Paso one tortilla at a time. She owns Panadería Rosa, a tiny bakery named after the mother who taught her that cooking is prayer and waste is sin. She has five children, a husband who chose the family over the beer, and a stack of handwritten recipes that she guards like sacred text — because they are.

How Would You Spin It?

Put your own twist on this recipe — what would you add, remove, or swap?