Designing, programming/developing, and modifying software systems, applications, and tools. Analyzing user needs and software requirements. Collaborating with teammates to develop new program features. Developing unit and integration tests. Correcting errors and troubleshooting production issues. Participating in code reviews. Deploying code to development, test, and production environments.