Bring a large pot of salted water to a boil.
Cook spaghetti according to package directions until al dente.
Meanwhile, pat shrimp thoroughly dry and season lightly with salt and pepper.
Heat olive oil and 1 tablespoon butter in a large skillet over medium-high heat.
Add shrimp and cook approximately 1–2 minutes on the first side.
Flip and cook about another minute, or until opaque and cooked through.
Transfer shrimp to a clean plate.
Reduce skillet heat to medium-low and add remaining 3 tablespoons butter.
Add garlic and optional red pepper flakes and cook for 30–45 seconds.
Reserve 1 cup pasta water before draining the spaghetti.
Stir lemon juice into the garlic butter.
Add drained spaghetti and approximately ¼ cup pasta water to the skillet.
Toss vigorously until the pasta develops a light glossy coating.
Reduce heat to low or briefly remove skillet from heat.
Gradually add Parmesan while tossing.
Add additional pasta water a little at a time as needed.
Return shrimp to the skillet and gently toss for approximately 30 seconds.
Add parsley and adjust seasoning.
Serve immediately with optional Parmesan, parsley, black pepper, and lemon zest.