Design and develop effective and efficient end to end solutions for complex business problems.
Lead and work with the engineering team/s on technical feasibility analysis for the projects.
Responsible for non-functional quality measures including performance, scalability, availability, reliability, maintainability and security.
Collaborate with product managers and stakeholders to understand business requirements and translate them into robust technical solutions.
Take proactive role in project scoping, planning and design to drive successful solution delivery.
Research new technologies, software, and tools and provide recommendations and/or prototypes.
Produce technical documentation relating to application architecture, design steps, integration processes and testing procedures relating to each product developed.
Define best practices, patterns and guidelines in coding and design.
Review design and code to ensure its compliance with the best practices and coding standards.
Provide technical guidance and consultation to engineering teams.
Administer training throughout various phases of the development cycle.
Work in a cross-group collaborative environment.
Work with legacy code to improve the quality, modernize and/or to integrate with third party systems.
Requirements
Expertise with hands-on experience in design and development of web-based enterprise software systems.
Proficient knowledge of cloud design patterns.
Prior experience in Azure cloud or other major public cloud provider technologies, EventHubs, Kafka, Redis, Kubernetes, Docker and containers as a plus.
Strong technical skills in variety of Java technologies including but not limited to: Core Java, JavaEE, Spring, JMS, AMQP, SOAP/RESTful web services, Maven, Tomcat, JS, HTML5.
Proven skills in designing API, Front end components, re-usable frameworks and libraries.
Solid experience with Object-Oriented principles, Design Patterns, and Architectural Patterns.
Strong experience with relational databases (SQL Server, Oracle, MySQL), familiar or experience with NoSQL databases is a plus.
Strong problem solving and creative thinking skills.
Experience in application performance monitoring and tuning.
Strong communication skills, both verbal and written.
Ability to communicate design rationale and build consensus.
Ability to work both independently and in a team environment.