How to give feedback as developer?

Giving and receiving feedback is an essential skill for professional and personal growth. Here are some key principles for giving and getting feedback that actually makes a difference.