In a large pot, add the beans, ham hock, water, and baking soda. Bring just to a boil, then lower heat to a gentle simmer.
Let cook for about 3 hours, stirring occasionally, until the beans are soft. If the mixture becomes dry toward the end of cooking, add a little bit more water.
While the beans cook, melt the butter in a skillet over medium heat. Add the diced onions and sauté until they are soft and golden, being careful not to let them brown.
Remove the ham hock from the pot and let it cool. Shred the meat from the ham hock and return it to the soup along with the sautéed onions. Bring the soup back to a boil and season with salt and black pepper just before serving.
Ladle the hot soup into bowls and garnish with parsley.