1 pound dried black beans (2 cups), rinsed and picked over
4 ounces ham steak or hock
2 bay leaves
5 cups water
1/8 teaspoon baking soda
1 teaspoon table salt
3 tablespoons olive oil
2 large onions , chopped fine (about 3 cups)
1 large carrot , chopped fine (about 1/2 cup)
3 ribs celery , chopped fine (about 1 cup)
1/2 teaspoon table salt
5 - 6 medium cloves garlic , minced or pressed through garlic press (about 1 1/2 tablespoons)
1/2 teaspoon red pepper flakes
1 1/2 tablespoons ground cumin
6 cups low-sodium chicken broth or to sight
2 tablespoons cornstarch -optional
2 tablespoon water -optional
2 tablespoons lime juice , from 1 to 2 limes
minced fresh cilantro leaves
red onion , finely diced
avocado , diced medium
Place beans, ham, bay, water, and baking soda in large saucepan with lid. Bring to boil over medium-high heat; you may skim scum as it rises to surface. Stir in salt, reduce heat to low, cover, and simmer briskly until beans are tender, 1 1/4 to 1 1/2 hours (if necessary, add another 1 cup water and continue to simmer until beans are tender); do not drain beans. Discard bay. Remove ham steak, cut into 1/4-inch cubes, and set aside.
Heat oil in saute pan over medium-high heat until shimmering but not smoking; add onions, carrot, celery, and salt and cook, stirring occasionally, until vegetables are soft and lightly browned, 12 to 15 minutes. Reduce heat to medium-low and add garlic, pepper flakes, and cumin; cook, stirring constantly, until fragrant, about 3 minutes. Pour into beans, add chicken broth. Increase heat to medium-high and bring to boil, then reduce heat to low and simmer, uncovered, stirring occasionally, to blend flavors, about 30 minutes. With immersion blender puree some of the soup so it thickens, watch out not to turn it to mush. Or you can use the cornstarch to thicken soup up. Stir in lime juice and ham bits.
Serve with optional garnishes.