This is more of a general question, but I am wondering what is the proper way to create character flaws, without it being too forced or annoying to read. For example, in my story one of the main characters comes from a higher class background than the other characters, and this makes him act a little arrogant and douchey at times. I was wondering, how would you tackle writing this in a way that isn't too overdone or forced and doesn't push the reader away and make the main character hateable.
Don't treat them as flaws but as qualities from a different point of view. One of my favorite "Flawed" characters is Boromir, his "flaw" was that he wanted the ring to be taken to Gondor. But it wasn't a flaw from his point of view, in his own eyes he wanted the strength to end the suffering of his people.
Make his arrogance come from the willingness to help people, sure he is arrogant and he is rude about bringing it over but all he wants is to help people the best he can. And why shouldn't he be the one that comes with the plan? After all he has the education to back up his claims. So why should he or anyone else waste time with a lesser plan/solution? And if they don't listen and it blows up in their face, well he can always say "I told you so".
Arrogance is a flaw to some and not to others. A humble meek person is not likely to be president of the United States of America. Sometimes the person recognizes the flaw and tries to overcome it, while other times they glorify the flaw. A flawed character that serves no other purpose than as an architype for the "flaw" is easily hated. In Lord of the Rings, Gollum is flawed. However, learning the backstory and given a central role perhaps we should pity Gollum rather than hate him. Another example is the story of Sleeping Beauty and its modern reframing as Maleficent.