Design patterns personal experience takeaway