What does a full-stack developer do?