In the "eyes of the company" sense, a heel is someone who predominantly wrestles faces. Someone who cheats/takes shortcuts. Someone who insults the fans/town they are in. Someone who doesn't "like to have fun". He is someone you want to see get their ass-kicked, or to get "comeuppance".
However, in this day and age it becomes muddled with someone like Roman Reigns. Roman is clearly a face in the eyes of the company and from a booking standpoint..... but he is very clearly a heel looking at it from the eyes of a majority part of the audience. It is very weird. His promos and mannerisms are all very heel-like these days (in that they are arrogant/cocky/dickish), and the majority of fans boo and want to see him get his ass kicked.... but his booking remains that of a face so that the kids and whoever can still cheer for him and buy his merch. They are essentially getting "the best of both worlds" out of him.