I was asked, “I know I can’t have perfect characters. So how do I give my character a flaw?”
I’d suggest starting with the character strength and reverse-engineer. That way the “flaw” is important to this person and can’t be easily overcome. If, for example, her great strength is “determination,” she won’t want to give that up. She won’t want to suddenly become wishy-washy!
But “determination,” like all strengths, comes with problems. If you’re determined, you probably are also stubborn. You might bull-doze people who aren’t as strong-minded as you are. You might unwittingly alienate friends. You might stick with a course even when it’s getting clear it’s not likely to work. You might get chosen for tasks you’re not good at, simply because you’re always determined to do a good job. So you might constantly be getting in over your head, but be unwilling to admit failure.
Making the flaw the obverse of the strength is what Aristotle meant: “That which makes him great brings him down.”
Just as medicine become poison in a different dose, so do strengths become flaws. It’s pretty elegant, and I think it’s true to our human nature. We get in more trouble with our strengths than our weaknesses!
I have an article about this on my website. It’s called “The Heroic Flaw.”