1. Develop new user-facing features 2. Build reusable code and libraries for future use 3. Ensure the technical feasibility of UI/UX designs 4. Optimize application for maximum speed and scalability 5. Assure that all user input is validated before submitting to back-end 6. Write reliable, maintainable code by utilizing design patterns and refactoring techniques. 7. Build features and applications with a mobile responsive design 8. Troubleshoot, debug and upgrade software 9. Seeing through a project from conception to finished product. 10. Collaborate with other team members and stakeholders.