In a large pot over medium-high heat, cook the bacon until crispy. Remove and set aside, leaving the grease in the pot.
Add diced onion and shallot to the pot and sauté for 3–4 minutes, until translucent. Stir in minced garlic and cook for 30 seconds, until fragrant.
Add butter and stir until melted. Sprinkle in the flour, whisking until it forms a thick paste (roux).
Slowly pour in the chicken broth, whisking constantly until smooth and combined.
Stir in milk and heavy cream. Mix well.
Add carrots and broccoli florets. Cover and let simmer for about 15–20 minutes, until broccoli is tender.
Stir in thyme, garlic powder, onion powder, cayenne, smoked paprika, nutmeg, and salt and pepper. Mix to combine.
Reduce heat to low and add shredded cheddar cheese and cooked bacon. Stir until melted and fully blended.
Taste and adjust seasoning as needed before serving.