Development of new features; Maintenance of existing applications; Raise and discuss trade-offs of different design approaches elaborating detailed design documents; Implement solution from coding to testing to production deployment support; Participation in the complete cycle of development from requirements gathering, development and testing; Perform code reviews.