Cut across the slices of bacon to make 1/2-inch strips. In a soup pot over medium heat, cook the bacon, stirring frequently, until it is crisp. Use a slotted spoon to transfer the crispy bacon to a paper towel lined plate. Set it aside -no snitching!- until the soup is almost done.
Drain all but 1/4 cup of the bacon grease. You can eyeball it: you don't need to be precise. Add the butter to the bacon grease and place the pan over medium low heat. Add the onions and a pinch of salt and cook, stirring frequently, until the onions are translucent. Add the garlic in and stir, cooking for an additional minute.
Sprinkle the flour over the onion/garlic/butter mixture and whisk it in thoroughly. Raise the heat to medium and cook for 2 minutse, stirring often. It should be bubbly. Add the corn stock, whisking to combine, then the potatoes and carrots. Bring to a boil, then lower the heat to a simmer and cook until the potatoes and carrots are super tender.
In a heat-proof bowl, lightly smash the softened cream cheese with a fork. Using a ladle, add a little of the hot corn stock to the cream cheese, working it in with a fork or a whisk until smooth. After you've added enough hot stock to it to create a thick but pourable liquid, add it back into the pan of soup, stirring to combine. Add the corn in and stir, cooking only until the corn is heated all the way through. Taste the broth and adjust the seasoning with salt and pepper to taste.
Serve with a handful of sliced green onions and chopped fresh parsley, if desired. Don't forget a big chunk of bread to sop up the irresistible broth!