Key Responsibility Area
- Use tools and methodologies to create representations for functions and user interface of the desired product.
- Develop high-level product specifications with attention to system integration and feasibility.
- Work collaboratively with product stakeholders, sales and other engineering teams in understanding the requirements and assist them in delivering the solution.
- Identify the appropriate software architecture for both server-side and client-side solution to achieve the proposed requirement.
- Communicate successfully all concepts and guidelines to the development team.
- Oversee the progress of the development team to ensure consistency with the initial design.
- Provide technical guidance and coaching to developers and engineers.
- Own and maintain the architecture document.
- Ensure software meets all requirements of quality, security, modifiability, extensibility, etc.
- Maintain product roadmap, release schedules and architectural standards that ensure alignment with business objectives.
Key Performance Indices
- Number of solutions designed
- Number of solutions rearchitected
Skills and Qualifications
- Worked with agile development methods
- Familiar enough with Docker to suggest and/or implement enhancements to the local development environment
- Excellent social and communication skills
- Demonstrated expertise in building Web Applications, Enterprise Applications, Web Services, and Management at scale is a requirement. Strong knowledge of datastores (SQL, NoSQL), and ability to make choices among available technology based on requirements.
- Experience with Architectural patterns for High Availability, Performance, Scale Out architecture, Disaster Recovery, Security Architecture Knowledge of cloud-based architectures, deployment and operational aspects of Amazon Web Services cloud is a plus.
- Ability to guide the team in all tiers of enterprise applications including front-end technologies like Reactjs .
- Be data driven, identify and demonstrate the right tools at every stage of software development to ensure code and architectural qualities are not compromised.
- Ability to prioritize and handle work to critical project timelines in a dynamic environment and develop new approaches to complex design problems.