What is the best way to prep concrete before applying epoxy?

There are several ways to prepare concrete before applying an epoxy coating. Preparation ensures that the appropriate texture has been introduced to the top layer of the concrete and helps the epoxy to bond with the concrete better. This ensures long-lasting results. All of these different methods of preparing concrete vary in terms of the level of difficulty as well as the efficacy produced. Following are the most popular techniques:

1. Acid Etching: This is the most DIY friendly option & involves the use of an acid that is allowed to rest for some time over the concrete surface and then cleaned after a few minutes. This is also the quickest among all the techniques. The downside however is that the etching process may not produce the best concrete texture that ensures a long-lasting bond. 
2. Walk-behind Concrete Diamond grinder: This produces one of the best results when compared to the other techniques. It involves the use of a walk behind concrete grinder which has been fitted with a diamond grinding attachment. The disadvantage of this method is that it requires specialized equipment which may not be readily available & is a lot more time consuming compared to Acid etching.
3. Hand Grinder with Diamond Cup Wheel: This is the most accessible option that yields results that are equivalent to using a walk-behind concrete grinder. The only drawback of this approach is that this is the most time consuming compared to other methods and is only practical for covering small areas.