If you can’t find fresh peas, substitute frozen baby peas. Slideshow: More Warming Soup Recipes
In a large heavy pot, cook the ham in the butter over medium heat, turning occasionally, until browned, about 6 minutes. Transfer the ham to paper towels to drain, keep the fat in the pot.
Stir the onions, garlic, and 1/2 teaspoon each salt and pepper into the fat in the pot and cook, stirring occasionally, until golden, 8 to 10 minutes. Stir in the carrots, celery, stock, and split peas and bring to a simmer. Stir in the reserved ham and cook, stirring occasionally, until the split peas are very soft and falling apart, about 1 1/2 hours. Stir in the peas and cook until tender, 4 to 5 minutes. Season the soup with salt and pepper to taste and serve.