Participate in code reviews Learn new technologies, languages, tools, and best practices Engage in the software development process utilizing agile methodologies Manage medium to large-sized tasks or features Requirement gathering, design and team collaboration Analyze feature requirements or issues and propose solutions Mentor more junior members of your team Understand and utilize software development tools Diagnose and fix software defects or bugs Participate in on-call rotation