Bring a large pot of well-salted water to a boil. Add pasta and cook according to package directions. Once cooked, drain pasta, reserve a ¼ cup of the pasta water, and set aside.
In a pan on medium-high heat, add the sliced bacon and cook, stirring occasionally, until browned and crisp. Once cooked, remove bacon from the pan, transfer to a plate with paper towel, and set aside.
In the same pan, leaving the remaining bacon fat, add the shallot, garlic and cherry tomatoes and cook for 3-4 minutes until the tomatoes start to break down.
Add the chopped spinach, a pinch of salt and pepper, and stir to incorporate it with the tomato mixture.
Add the ¼ cup of pasta cooking water to the pan, scraping the bottom to pick up all of the tasty bits, and cook for another 30 seconds to 1 minute until the liquid has slightly reduced.
Add cooked spaghetti and bacon, toss to combine until everything is mixed and the spaghetti is well coated.
To serve, add spaghetti to bowls and sprinkle with fresh parmesan cheese.