How do you give your characters depth? I’ve been asked this question a few times by readers. My simple answer is to study people, spend time (if you can stand it) with someone you consider shallow and learn from them. Try to understand what matters to them. Near the top of their list will be themselves, physical appearance, and what makes them look good. They aren’t concerned with the well-being of others. Give your characters opposite traits.
Another way I add depth is to reveal personality in layers. Human tendency is to form instant opinions and judge others, often on sight. I do it when I’m reading, decide early on if I like a character or not. When I get it wrong, I learn something about the person/character I misjudged; perhaps an underlying reason for a certain behavior – another layer, if you will.
What do you like about the people you enjoy being around? What do you find absorbing about them? Work some of those traits into your characters. Avoid stereotypes and make the personalities multi-faceted, complex. Give your characters battle scars. What they do and say must have meaning. Give them secrets. How do others behave around each character? What do they draw out of each person?
These are just some of my ideas.