Pulse almond meal and powdered sugar in a food processor for about one minute. Scrape down sides and bottom of the bowl as needed so everything is evenly mixed.
Place a fine sieve over an aluminum bowl. Have other aluminum bowl handy. Sift almond meal mixture three times- back and forth between the two bowls. If you have less than a tablespoon of the dry mixture that is too large to pass through the sieve, you can discard it. Anything greater than 1 tablespoon should be reground in the food processor and then sifted. Set aside.
Place egg whites in the bowl of an electric mixer fitted with the whisk attachment. Whisk until foamy. Slowly add caster sugar while continuing to whisk. Keep whisking on speed for about 5 minutes until you get "stiff peaks." This means that your meringue will be able to stick straight up and you can hold the whisk attachment upside down without it dripping off. Careful not to whisk too much (or at high speeds) because that would add too much air to the batter. Add food coloring (if using) and mix on low until combined.
Using a spatula, carefully fold the dry ingredients into the bowl with the meringue. It works best if you do this in 3 batches. Fold from the bottom to the edges of the bowl in a J-shape. Do not stir or whip (you want the dry ingredients to slowly melt into the wet ingredients). Keep folding until you get a "ribbon-like" texture (smooth, glossy, thick). DO NOT OVERMIX or your batter will become runny. It is better to undermix! You can test when it is done by putting a little spoonful on parchment- if it keeps the shape and is stiff, mix a little bit more. If it spreads slightly, it might be done. I think this is the hardest part of making macarons. You might have to test a few batches before you get the "intuition."
Once the batter is properly mixed, transfer it to a piping bag with a round 1/2" tip.
Start piping the batter either onto a parchment lined pan (I put the heart stencil under the parchment paper). Start from the top of the heart and move to the bottom of the heart, using more pressure towards the top. Quickly flick the piping tip away from you to cut off the batter. This may leave a small peak which will either melt down on its own or when you bang the pan (more on that later). Use a toothpick to make the points of the heart a little pointy.
Gently drop your pan on the countertop (about 4 inches) in order to release air bubbles and smooth over the tops. This will help prevent them from cracking. Set aside in a dry area for 30-40 minutes in order to dry and create a skin. This will be challenging if it is humid where you are. You can try using a fan.
While the shells are drying, preheat your oven to 300 degrees F.
When the oven is ready, bake shells for 6 minutes. Open the oven door slightly to rotate the pan 180 degrees without fully removing the pan from the oven. Bake for another 4-8 minutes. Time will vary depending on your oven. You can tell the shells are done when the top is firm and the "foot" doesn't wiggle when you touch the top. Try taking one off the paper. If it sticks, keep baking. If they peel off easily, they are done.
Remove from oven and let them cool completely on the pan before transferring them to a cooling rack. Set aside.