In a large pot, heat 3 tablespoons of olive oil over medium heat. Add the finely diced yellow onion, chopped carrots, chopped celery, minced garlic, 1 teaspoon of salt, and a few grinds of black pepper. Cook, stirring occasionally, for 4-5 minutes or until the vegetables begin to soften and brown slightly.
Pour in 8 cups of chicken or vegetable broth and add the parmesan rind (if using). Cover the pot and increase the heat to high until the broth comes to a gentle boil. Reduce the heat to medium-low and simmer, covered, for 25-30 minutes, stirring occasionally, until the vegetables are very soft and the flavors meld together. I always include the parmesan rind if I have one—it's a little kitchen secret that boosts the soup's flavor.
Remove the parmesan rind and set it aside or discard. Using an immersion blender, purée the soup directly in the pot until completely smooth. If you don't have an immersion blender, carefully transfer the vegetables and broth to a heat-safe blender, blend until smooth, and return the puréed soup to the pot. The texture should be creamy and silky.
Bring the puréed soup back to a gentle simmer. Stir in the small pasta (such as ditalini or stelline) and cook for 8-10 minutes, stirring occasionally, or until the pasta is al dente. Then, turn off the heat. If you plan to store leftovers, cook the pasta separately and combine with the soup just before serving to prevent it from absorbing too much liquid.
Squeeze in the juice of one lemon and add a little lemon zest for brightness. Taste the soup and adjust the salt, pepper, and lemon juice as needed. For a thinner consistency, simply add a splash more broth if desired.
Ladle the hot soup into serving bowls. Top with freshly grated parmesan, extra black pepper, and a drizzle of olive oil if desired. Sprinkle with chopped parsley for a fresh finish. I love finishing with plenty of fresh parmesan and a drizzle of extra virgin olive oil for extra flavor.