1. Design & implement new modules based on the product requirements. 2. Participating in architectural discussions for new applications. 3. Writing code using best practices, considering security and performance. 4. Participating in sprint planning and task estimation, taking part in crafting stories/requirements. 5. Collaborating closely with the teams of UI/UX designers, PMs, QAs, and other developers. 6. Debug existing software components, fix issues and avoid regressions 7. Be proactive, take ownership and be accountable. 8. Familiar with Test Driven Development. 9. Participate in software architecture, design discussions and code reviews.