Heat the butter and oil in a very large skillet over medium heat. Sauté the garlic for 1 minute, until softened (do not allow it to brown).
Turn the heat to medium-high, add the shrimp and red pepper flakes (if using), and season with salt and pepper. Space out the shrimp so they are in a single layer. Let them cook for a couple of minutes, then stir and redistribute the shrimp so that the raw sides of the shrimp are against the pan. Tongs are a great tool for this — it’s a bit labor-intensive to flip smaller shrimp, but you will end up with the whole batch of shrimp cooked more evenly. Don’t crowd the pan — you want only a single layer of shrimp.
Large shrimp will take about 2 minutes per side, extra-large 2 or 3 minutes per side, and jumbo 3 or 4 minutes per side. Just remove one and cut it open; when it is opaque (meaning not translucent in the middle), they are done. Take them from the heat and from the pan as soon as they are cooked, as shrimp tend to go from cooked to overcooked quickly.
Stir in the lemon zest and juice and/or the parsley if using, and adjust the seasonings.
Notes
It’s up to you whether you want to leave the tails on or off. It depends on how you plan to serve and eat the shrimp. Leaving the tails on makes the shrimp appear a bit bigger and makes them easier to eat with your hands if that’s the goal. But do remember to put out a small dish for people to discard the tails afterward. No tails mean the shrimp are easier to eat as part of a dish, pasta, for instance.