Junior engineer: Take this tightly defined feature & build it Mid-level engineer: Take this vaguely defined feature & build it Senior engineer: Take this known problem & figure out how to solve it Staff engineer: Take this goal & find the problems we should be solving