Heat the oil and butter in a large Dutch oven and saute the onions for a few minutes to soften them.
Add the ham shank, broth, peas, bay leaves, and garlic to the pot and stir to combine. Bring the pot to the boil.
Cover and turn down the heat to low. Let the soup cook at a simmer until the peas are soft and starting to fall apart, this will take about an hour, give or take. Add the carrots to the pot during the last 30 minutes of simmering. Note: I like to add the carrots at the end of cooking so they don't get too soft.
Remove the ham shank to a plate and shred any meat from the bone.
Remove the bay leaves and then take an immersion blender and blend very briefly just to puree some of the soup, leaving plenty of texture. Note: you could blend the soup super smooth, if you like, but I think it's best with texture. Add the extra ham after blending, if using.
Season with black pepper and, only if needed, salt.
When you use a smoked ham shank or hock the flavor is outstanding, and you don't really need any other seasoning.
Leftover soup will thicken in the refrigerator. You can thin it with a little water or broth if you like, when reheating.