* Develop high-quality software design and architecture. * Identify, prioritize, and execute tasks in the software development life cycle. * Manage the team's execution, the quality they produce, and the speed and cadence at which they produce. * Develop tools and applications by producing clean, efficient code. * Automate tasks through appropriate tools and scripting.Review and debug code.