·Participate in presales process by engaging with prospects to understand needs, provide solutions, and participate in estimation and writing proposals.
·Participate in architecture and design discussions with development teams and clients to provide architectural and design guidance. Help teams select the right frameworks and libraries for the project. Help teams minimize design and technology risks. At times help out by providing code level implementation (hands-on development).
·Perform design and code reviews. Help teams with fulfilling all the non-functional requirements including security, performance, reliability, recoverability, maintainability. Help teams troubleshoot problems and complex issues.
·Work across industry domains and in multiple technology stacks (Java, Node.js, mobility, etc.).
·Keep abreast with latest technology trends, tools, frameworks and libraries and practices. Look for adoption opportunities of these in projects and proposals. Carry out or provide guidance for POCs in different technology areas.
·Mentor and guide teams and individuals in areas of architecture, design and technology.
·Experience in architecting, and developing enterprise applications and web based, desktop based, daemons, mobile, etc. applications.
·Excellent knowledge of architectural patterns and principles including areas like SOA, Messaging, etc.
·Excellent knowledge of design patterns and principles including areas like Design Patterns, SOLID, etc.
·Good knowledge of analysis and design techniques and patterns including DDD, Analysis Patterns, Data Model Patterns.
·Good experience of designing and developing services - SOAP, RESTful; designing and building frameworks and libraries.
·Excellent at OOPS. Knowledge of other programming paradigms.
·Good knowledge of technical concepts like IPC, multi-threading, memory management, data structures, application security (especially web), data normalization, etc.
·Ability to select and apply patterns and principles to projects.
·Good knowledge of commercial and free open source frameworks and libraries available for different tasks.