Wash and trim asparagus. Cut into 1" inch pieces (about 4 pieces per 1 asparagus). Dice shallot, mince garlic, grate parmesan and set aside.
Heat butter in a large nonstick skillet over medium-low heat. Sauté shallot until softened, about 1–2 minutes.
Add garlic and cook until fragrant, about 30 seconds. Toss in asparagus and sauté for 2–3 minutes.
Add orzo, salt, pepper, and red pepper flakes and toast for 1 minute.
Pour in broth and bring to a gentle simmer over medium heat.
Cook uncovered, stirring frequently, until orzo is al dente and most liquid is absorbed, about 10-12 minutes.
Remove from heat and stir in the zest and juice from one lemon. Fold in parmesan, if using.
Garnish with extra lemon slices or parmesan.