I veer between Octavia and FlamingoBingo depending on how stressed I am! And how recently I have read a chapter of Raising Our Children Raising Ourselves, which I use to try and stop myself from being a horrible harridan of a mother!
I have 2 dds - 3.4 years and 11 months, and dd1 sometimes hits dd2, kicks her, pushes her over, pokes her in the eye, gets a bit too rough with play, screams right in dd2's face really loud... she doesn't do any of this very hard, just hard enough to make dd2 cry. It's not all the time but there are usually a couple of clashes a day. I am currently effectively a lone parent as dp is living abroad for work, and I get v stressed at times and claustrophobic due to lack of time alone.
I use the naughty step when dd1 is really out of order, I also have a jar of beads and every day dd1 gets a bead if she doesn't hit or kick or push over. If she does a bead gets taken away. When the jar is full we'll have a nice outing as a treat. So, reward and punishment. I do also gently ask her to look at dd2's face when she's made her cry and explain why she is sad, because hitting hurts, to try and help her develop empathy. I also hug dd1 when I see she's starting to work herself up to hitting and kicking etc, or start joking with her or try to distract her with a game, activity or puzzle.
I also try to "validate" her emotions when she's hitting, so for example I'll say "You hit dd2 because she was trying to take the toy you were playing with and that made you cross, didn't it." I say I understand why she feels like she does, etc and that helps a lot. Sometimes if she's starting to kick I ask her to kick her teddy instead and am thinking about getting an angry cushion to divert her aggression.
Validating and diverting her aggression seem to work v v well so I am trying to move away from naughty step, but mostly am just trying to muddle through relatively sane. HTH!