Start by rinsing the shrimp under cold water and patting them dry with paper towels. Season with salt and black pepper.
Remove the tough ends of the asparagus and chop the stalks into pieces about 2 inches long.
Warm 1 tablespoon of olive oil in a large skillet over medium heat, then add the minced garlic and cook it until it smells fragrant, about 1 to 2 minutes.
Turn the heat up to medium-high and add the shrimp to the skillet. Cook them for roughly 2 to 3 minutes on each side until they turn pink and opaque, then transfer the shrimp to a plate.
In the same skillet, pour in the remaining tablespoon of olive oil. Toss in the asparagus and sauté for 3 to 4 minutes until it’s tender but still crisp.
Return the shrimp to the pan with the asparagus, then add the lemon juice and zest. Stir in the butter if using, and mix everything well. Let it cook together for another 1 to 2 minutes so the flavors blend.
Sprinkle with freshly chopped parsley and add a pinch of red pepper flakes if you like a bit of heat. Serve immediately while warm.