Add the almond flour to a dry food processor and pulse until finely ground. Sift the almond flour through a sieve, discarding any pieces that refuse to go through. Do not force it. Mix the sifted almond flour with powdered sugar by whisking them together after sifting again. This ensures your macaron shells will be smooth.
In a large clean bowl, beat the egg whites and cream of tartar on medium-high speed until foamy. Slowly add granulated sugar while continuing to beat. Once the mixture reaches the soft peak stage, add food coloring gel if desired. Continue beating until stiff peaks form. I like to make sure the bowl and whisk are spotless to help the meringue whip up beautifully.
Add about a quarter of the almond-sugar mixture from Step 1 into the meringue from Step 2 and gently fold with a spatula until mostly combined. Add the remaining dry ingredients and fold with care ('macaronage') until the batter has a lava-like texture and can make a figure-8 ribbon without breaking. Line two cookie sheets with parchment paper, securing the corners with small dabs of batter. Fill a piping bag with the batter and pipe 1 1/2-inch circles onto the sheets, holding the bag perpendicular to the pan. Flick your wrist in a small swirl to finish each cookie. Gently bang the trays on the counter to pop any air bubbles. Let the piped macarons sit at room temperature, uncovered, for 45-60 minutes until a skin forms and you can touch them without sticking.
Preheat your oven to 300°F (150°C). Once the macarons have formed a skin, bake for 10–15 minutes. Watch for 'feet' to form at the bottom of each shell. Let them cool completely on the baking sheets.
In a medium saucepan, whisk the egg yolks until they lighten in color. Add lemon juice, lemon zest, granulated sugar, cornstarch, and salt. Whisk until the mixture is smooth. Place the pan over medium-high heat and cook, stirring constantly, until the mixture just starts to bubble. Reduce heat to low and simmer for 5–6 minutes, or until thickened and coats the back of a spoon. Remove from heat and whisk in the butter until smooth. Strain the curd to remove any lumps. Cool it completely before using, and store in the fridge until needed. I like to make the curd ahead so it firms up nicely for piping.
Bring 1–2 inches of water to a boil in a medium saucepan and place a heatproof bowl over the top (bain marie), making sure the water doesn’t touch the bowl. Combine the egg whites and granulated sugar in the bowl. Heat, whisking constantly, until the mixture reaches 160°F and the sugar dissolves. Transfer to a stand mixer and whisk until stiff peaks form and the bowl returns to room temperature. Gradually add softened butter, one tablespoon at a time, mixing until smooth and glossy. Beat in vanilla extract. If the frosting appears curdled, keep mixing; it will come together. If too soft, refrigerate for 10–20 minutes before using. Spoon the frosting into a piping bag.
Once the macaron shells are dry and completely cool, pair them up based on similar sizes. Pipe a ring of buttercream (from Step 6) onto the flat side of half the shells. Fill the center with lemon curd (from Step 5), then sandwich together with a matching shell. I let the assembled macarons rest in the fridge overnight; they taste even better the next day as the flavors meld and the centers become deliciously tender.