Own the entire lifecycle of the code: design, development, test, maintenance, and subsequent fixes and improvements Write and review design documents Write and review code implementing features Investigate code and behaviour to understand complex user flows Solve complex problems in an elegant way Demonstrate initiative and ownership in achieving goals, improving processes and solutions Identify opportunities for cross-team collaboration