In a large pot, heat the butter and olive oil over medium heat.
Add the onions, season with salt and pepper and cook, stirring occasionally until onions have softened and taken on some color, about 7-9 minutes.
Add the garlic, chili flakes, rosemary, and thyme and stir to combine and cook for another minute or so.
Add in the beans and toss to coat in the oil and season with salt and pepper.
Add in the chicken stock and lemon zest. Turn the heat up to high, bring to a boil, then reduce heat to medium-low and cook, stirring occasionally for about 20-30 minutes, until flavors have melded and broth has reduced slightly.
Meanwhile, bring a medium pot of water to a boil. Add in the eggs using a slotted spoon and boil for 6 minutes.
Prepare an ice bath by filling a medium bowl with ice and water. Add the boiled eggs to the ice bath. When cool to the touch, peel and set aside.
When the soup is ready, stir in the vinegar then portion the soup into bowls, slice eggs in half and place on top of the soup. Season with salt and pepper and enjoy.