Heat a large saute pan over medium heat. Add butter. When butter hot, add shallots/garlic, turn heat to low and fry until fragrant. 2. Add asparagus, cover with a tight-fitting lid (important -if lid isn't tight, the steam escapes, you can try using a thin dishtowel under lid and fold ends up over the top of the lid to create a nice seal).
Cook on low for 10-12 minutes, depending on how soft you like your asparagus. If your asparagus can't all fit in one layer in your pan, stir a couple of times during the cooking process. After 8 minutes, take a peek. I usually can tell by cutting part of the stalk with a butter knife and adjust my cooking time.
If it looks like the pan needs more butter, feel free to add another tablespoon in, or just throw in a tablespoon of water.
When cooked to your liking, remove asparagus, pour the butter/shallot/garlic mixture over, sprinkle with sea salt, a squeeze of lemon and top with shaved parmesan.