Dice the onion into 1/2-inch pieces, mince the garlic cloves, cut potatoes into 1-inch chunks, trim the green beans and cut them into 1-inch pieces, and cube the ham into 1/2-inch pieces. Having everything prepped and ready will make the cooking process smooth and prevent overcooking any component while you're still cutting.
Heat the olive oil in a large pot over medium heat. Add the diced onion and cook for 5-7 minutes, stirring occasionally, until it becomes soft and translucent. Add the minced garlic and cook for 1 minute more, stirring constantly, until fragrant. This builds a flavorful foundation for the soup—I find that taking time to properly soften the onion and bloom the garlic creates a much more complex-tasting broth than rushing this step.
Add the cubed ham, green beans, potato chunks, bay leaf, and chicken broth to the pot. Stir well to combine, then increase heat to medium-high and bring the mixture to a boil. Once boiling, reduce the heat to medium-low and simmer uncovered for 15-25 minutes, until the potatoes are fork-tender and easily break apart. The longer cook time will help the flavors meld together beautifully.
Remove the bay leaf from the pot. Taste the soup and season with the black pepper and additional salt as needed—I like to add salt gradually and taste between additions since the ham and broth already contribute saltiness. Ladle into bowls and serve hot. The soup is best enjoyed immediately, though it keeps well refrigerated for several days.