Prepare the spaghetti al dente according to the package directions. Drain, then mix in olive oil to prevent sticking.
Cook the bacon over medium heat until crispy, then remove bacon from skillet, reserving 2 tablespoons bacon fat in skillet.
Add butter to skillet over medium-low heat and cook until melted.
Add garlic and cook for about a minute.
Gently stir in heavy whipping cream, bring to a simmer, then simmer for 4 minutes, stirring often, until beginning to thicken.
Mix in parmesan, bacon, salt, and pepper and allow to simmer for an additional 3 minutes, or until cheese is melted completely and sauce is smooth.
Mix in prepared spaghetti, top with extra bacon, fresh parsley, ground black pepper, additional shredded Parmesan and red pepper flakes (if using), then serve.