Arroz con gandules is the cornerstone of Puerto Rican cooking: rice simmered with pigeon peas, sofrito, and pork in one pot until every grain is coated in savory, garlicky flavor. This version uses the classic method of browning the rice in annatto oil before adding liquid, which gives the dish its signature golden color and prevents mushy grains. It is a hearty, satisfying side that stands up to any main course, and it is easier to master than you might think.
Ingredients
- 3 tablespoons annatto oil (or vegetable oil mixed with 1 teaspoon ground achiote)
- 4 oz (115 g) smoked ham, diced into 1/4-inch pieces
- 4 oz (115 g) bacon, chopped (about 4 slices)
- 1/2 cup (120 ml) sofrito (homemade or store-bought)
- 2 tablespoons tomato sauce
- 1 teaspoon salt, plus more to taste
- 1 teaspoon dried oregano
- 1/2 teaspoon ground cumin
- 1/4 teaspoon black pepper
- 2 cups (400 g) medium-grain rice, rinsed and drained
- 1 can (15 oz / 425 g) pigeon peas (gandules), drained and rinsed
- 2 1/2 cups (590 ml) water
- 1 bay leaf
- 2 tablespoons chopped fresh cilantro or culantro (optional, for garnish)
Instructions
- Heat the annatto oil in a large, heavy-bottomed pot (like a caldero or Dutch oven) over medium heat. Add the ham and bacon and cook, stirring occasionally, until the bacon renders its fat and starts to crisp, about 5–7 minutes.
- Add the sofrito and tomato sauce. Cook, stirring, until the sofrito darkens and becomes fragrant, about 3–4 minutes. The mixture should look like a thick paste.
- Stir in the salt, oregano, cumin, and black pepper. Cook for 1 minute more.
- Add the rinsed rice and pigeon peas. Stir constantly for 2–3 minutes, making sure every grain is coated in the oil and sofrito mixture. The rice will start to look slightly translucent at the edges.
- Pour in the water and add the bay leaf. Stir once, then spread the rice into an even layer. Bring the liquid to a boil over high heat. Let it boil uncovered for 3–4 minutes, until the water level drops below the surface of the rice and small craters appear.
- Reduce the heat to the lowest possible setting. Cover the pot tightly with a lid. Cook undisturbed for 20 minutes.
- After 20 minutes, remove the lid. Gently fold the rice from the bottom to the top with a fork or spatula, being careful not to mash the grains. Cover again and cook for another 10 minutes.
- Turn off the heat and let the pot sit, covered, for 10 minutes. This resting period allows the rice to finish steaming and firm up.
- Fluff the rice gently with a fork. Remove the bay leaf. Taste and adjust salt if needed. Garnish with cilantro or culantro before serving.
Tips
- Use a heavy pot: A caldero or Dutch oven distributes heat evenly and helps create the crispy pegao (toasted rice crust) at the bottom that many Puerto Ricans love. If you don’t have one, any heavy-bottomed pot with a tight-fitting lid will work.
- Don’t stir after covering: Once you cover the pot, resist the urge to stir. Stirring releases starch and makes the rice gummy. The steam does the cooking.
- Rinse the rice: Rinsing removes excess surface starch, which helps keep the grains separate. Do this even if the package says “pre-washed.”
- If you don’t have annatto oil: Use vegetable oil and add 1 teaspoon ground achiote (annatto) powder to the sofrito step. The color will be slightly less vibrant but the flavor will be similar.
Serving Suggestions
Arroz con gandules is traditionally served alongside roasted pork (pernil), fried plantains (tostones or maduros), and a simple green salad. It also pairs well with grilled chicken, stewed beans, or fried fish. For a vegetarian meal, serve it with avocado slices and a side of sautéed vegetables.
Variations
- Vegetarian: Omit the ham and bacon. Use 3 tablespoons vegetable oil instead of annatto oil, and add 1 teaspoon smoked paprika to mimic the smoky flavor. Use vegetable broth instead of water for extra depth.
- Spicy: Add 1–2 chopped jalapeños or a teaspoon of adobo sauce (from chipotle peppers) to the sofrito step.
- With coconut: Replace 1/2 cup (120 ml) of the water with coconut milk for a subtle sweetness and creamier texture. This is a coastal Puerto Rican variation.
- Add olives: Stir in 1/2 cup (80 g) of pimento-stuffed Spanish olives with the rice for a briny pop.
Storage and Reheating
Refrigerate leftovers in an airtight container within 2 hours of cooking. Arroz con gandules will keep for up to 4 days in the refrigerator. To reheat, sprinkle the rice with a tablespoon of water per cup, cover, and microwave in 1-minute intervals, stirring between, until steaming hot (165°F / 74°C). Alternatively, reheat in a skillet over medium-low heat with a splash of water or broth, covered, for 5–7 minutes. You can also freeze the rice for up to 3 months; thaw overnight in the refrigerator before reheating.
Frequently Asked Questions
Can I use white rice instead of medium-grain? Yes, long-grain white rice works. Reduce the water to 2 1/4 cups (530 ml) and reduce the final resting time by 5 minutes, as long-grain rice cooks faster and needs less liquid.
What are gandules? Gandules are pigeon peas, a small, beige legume popular in Caribbean cooking. They are sold canned, dried, or frozen. Canned are the most convenient; dried need overnight soaking and a longer cooking time. If you can’t find them, substitute canned black-eyed peas or chickpeas, though the flavor will be different.
Why is my rice mushy? Mushy rice usually comes from too much water, stirring while cooking, or cooking on too high heat. Make sure you use the exact water amount and keep the heat low after boiling. Also, don’t stir after covering.
Can I make this in a rice cooker? Yes. Sauté the ham, bacon, sofrito, and seasonings in a skillet first, then transfer to the rice cooker with the rice, peas, and water. Cook on the regular white rice setting, then let it rest for 10 minutes before fluffing.
What is sofrito? Sofrito is a blend of onions, peppers, garlic, cilantro, and culantro (recao) pureed with oil. It’s the flavor base of many Puerto Rican dishes. You can find it in the Latin foods aisle or make your own by blending 1 onion, 1 green bell pepper, 4 garlic cloves, 1/2 bunch cilantro, and 1/2 bunch culantro (or more cilantro) with 2 tablespoons olive oil.
How do I get the crispy pegao at the bottom? After the rice is cooked and rested, increase the heat to medium-high and cook, uncovered, for 3–5 minutes until you hear crackling. Then remove from heat and let sit for 5 minutes before serving. The bottom will have a golden crust.
Related
- Blind Baking a Frozen Pie Crust: Time and Tips
- Dry Brining Standing Rib Roast: Timing and Roasting
- Filleting Red Snapper: A Clear Step-by-Step Guide
More recipes to cook
Safety notes: safe minimum internal temperatures from USDA FSIS; raw and undercooked fish guidance from the U.S. FDA. Food safety notes
Spotted an error? Tell us and we will correct it (corrections policy).