Heat a Dutch oven or soup pot on medium heat and add the chopped bacon. Cook until browned and crisp.
Remove the bacon from the pot and set aside. Drain any excess bacon fat. I like to reserve about ½-1 inch of the fat in the pot for flavor.
Add the butter to the pot on medium heat. When melted, add the flour in stages and stir. You add it in stages to avoid clumping. This will create a roux.
Add the celery, onions, and carrots to the roux and stir. Cook for 3-4 minutes or until the vegetables are soft.
Add the garlic. Cook until the garlic is fragrant.
Adjust the heat on the stove to medium-high. Add in the broth/stock, potatoes, corn, cooked bacon, spices, salt, and pepper to taste and stir. Stir until the ingredients are well combined.
Use enough broth to completely cover the potatoes. You can also use water if you are out of broth. The potatoes need to be covered in liquid in order to soften.
Adjust to heat to low and place the lid on the pot. Simmer for 15-20 minutes or however long it takes for the potatoes to soften and become fork-tender.
Cook the salmon while the soup simmers. See the steps below.
Remove the lid and add in the heavy cream. Stir until creamy. Taste the chowder repeatedly and adjust the spices/salt/pepper as needed.
Add in the cooked salmon and cook for 1-2 minutes and serve.