Rinse the navy beans and pick over.
Place the beans into a large pot with the ham hock and add two quarts of cold water and the baking soda, if using.
Bring just to a boil, then lower to a simmer and cook for approximately three hours in a covered pot with the lid barely cracked, stirring occasionally, until the beans have fully softened.
Remove the ham hock and set it aside on a dish to cool.
Melt the butter in a skillet over medium heat. Add the onion and cook, stirring often, until translucent and golden.
Add the diced, buttery onion to the soup.
Pull meat from the ham hock into bite-sized pieces and return the meat to the soup. Stir.
Before serving, bring the soup to a boil and season with salt and pepper.
