Heat a skillet to medium low heat and add diced bacon. Cook until crispy, stirring occasionally. Remove to a plate lined with paper towel to drain, reserving 1 tablespoon of bacon fat.
Meanwhile, peel and cube potatoes and carrots. Dice the green onions, separating the white and light green parts. Mince the garlic.
In a Dutch oven or large sauce pan, heat olive oil and 1 tablespoon of bacon fat over medium low heat. Add white and light green parts of the green onion, and the minced garlic. Saute 3-5 minutes until the bottom of the Dutch oven begins to brown.
Melt butter, then add the flour, stirring constantly to create a roux. Whisk in milk and chicken broth. Add cubed potatoes, carrots, 1/4 of the remaining dark green onion/scallions, 1/4 of the diced bacon, salt and pepper.
Simmer 15-20 minutes on medium low heat, stirring occasionally, until potatoes and carrots are tender. Stir in shredded cheese and sour cream. Taste and adjust salt and pepper.
Serve hot, garnished with remaining diced bacon, scallions, sour cream and shredded cheese, as desired.