To design and develop modules for software projects based on the provided specifications
To provide support in developing new product lines and upgrading existing products
To propose the most effective architectural solutions to meet cost, quality and schedule requirements
To mentor Junior Software Engineers when required, to ensure quality and productivity
To work with the project team to design prototypes to validate application functionality
To assist Managers in analyzing project requirements and designs
To participate in design, code and test plan reviews as needed and provide appropriate recommendations
To analyze software issues and recommend workaround solutions
To develop best practices to ensure software functionality, usability, reliability and availability
To assist in development of design documents, white papers, training documents and software architectural documents