Sort (remove any stones) and rinse the dried beans in a large bowl. Add enough tap water to cover them by three inches. Soak beans overnight in the fridge or leave them at room temperature for about 8 hours. Add more water if needed. Set aside.
Prep all the meat by cutting it into 1-inch pieces.
Heat a large nonstick pot over medium-high heat. Add the bacon and cook, stirring frequently, until crispy for 5-6 minutes. Transfer to a large bowl and set aside. Next, add the pork shoulder and brown generously on each side for about 4 minutes per side. Transfer it to the bowl with the bacon.
Repeat the same browning process with the smoked pork, stirring occasionally to prevent it from sticking to the pot for about 5 minutes. Take out the browned smoked pork and place it in the same bowl as the bacon and pork shoulder. Finally, add the sausage to the pot and cook for about 5 minutes until browned, then transfer to the bowl with the rest of the meat.
Reduce the heat to medium, add oil if needed and allow to heat for about a minute. Then add onion, celery, garlic, and thyme. Saute, stirring often, until onion is translucent and garlic is fragrant (4-5 minutes). Add diced tomatoes and continue cooking for three more minutes until the vegetables are soft.
Next, stir in the beans, bouillon powder, cumin, and bay leaves, and stir to combine thoroughly. Then add the meat, beef broth, and water. Increase the heat to high, stir the feijoada, season with salt and pepper to taste, and bring to a boil. Cover the pot, reduce the heat back to medium-low and simmer for about 90-110 minutes or until beans are tender, stirring occasionally. If the feijoada is too liquidy, uncover the pot and continue to cook for an additional 20 minutes or so to allow some of the liquid to evaporate.
Once the beans are soft, remove the bay leaves, garnish with some cilantro and serve the feijoada with rice, orange slices, and collard greens.