Review code written by peers and receive feedback on your own code. 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. Participate in the analysis of feature requirements or issues and propose solutions. Help to mentor more junior members of your team. Understand and utilize software development tools including version control, build processes, debuggers, and test frameworks. Diagnose and fix software defects or bugs. Participate in on-call rotation.