Soak the beans overnight in a large bowl of water.
Season the salt-pork cubes with paprika and black pepper. Cover the bowl with plastic wrap and keep in the refrigerator overnight.
Remove the salt pork from the refrigerator, and drain and rinse the beans.
Heat 2 tablespoons of the high-heat cooking oil to a large cast-iron skillet (you should see smoke rise from the pan, this indicates that the skillet is hot enough). Add the seasoned salt-pork and brown until crispy on all sides. Use a slotted spoon to transfer the salt-pork cubes to a plate or bowl. Set aside.
In a large stainless-steel stockpot, heat 2 tablespoons of olive oil over medium heat. Add the onions to the pot and cook until they are translucent, then add the tomatoes, a splash of water and bouillon cubes. Let cook until the bouillon cubes and tomatoes are cooked down (you can use a wooden spoon to break apart the tomatoes and bouillon cubes).
Add the salt pork and garlic to the pan and toss until everything is coated in the tomato base.
Add the beans and bay leaves to the pot, then add 3 quarts of water. Bring the pot to a rapid boil, then cover the pot and let simmer over low heat for 1 hour and 30 minutes. Stir occasionally.
By now, the liquid should be reduced by about ⅓. Add the linguiça or chouriço to the pot, stir and re-cover. Taste the broth and add more salt and pepper to your liking. Let the feijoada continue to simmer for 30 minutes.
Add the cabbage, carrots and squash and cook for another 30-40 minutes. If the liquid is evaporating too quickly, you can top off the pot with just enough water to cover the beans. It's ok if the vegetables peek out a little!
After the cooking time in the previous step is up, uncover the pot and check the beans and vegetables to make sure they are fully cooked. They should be soft, but still in tact. Once you're satisfied with the texture, cut the flame, re-cover and let the feijoada rest for 15-20 minutes before serving.