Position: Cloud Solution Architect
Company: Intent Solutions Group
Category: Java
Experience required: 5y
English level: upper

Requirements
Main Responsibilities

· Elicit  business and technical requirements from the business clients
· Define a solution architecture guided by the architectural drivers such as business and functional requirements, constraints, quality attributes.
· Provide ball-park development effort estimates based on the standard estimation methodologies.
· Reengineer, document, review and analyze solution architectures using trade-off analysis methodology and other qualitative and quantitative methods of analysis.
· Define implementation road maps and technical backlogs.
· Drive the project bootstrap cooperating with the development team and passing the knowledge and architectural vision to them.
· Support long-term projects from the architectural perspective making and reviewing design decisions, documenting the architecture, communicating with the client’s technical peers, participating in creation of the PoC and prototypes and collaborating with the development teams.
· Participate full-time in the project leadership and development activities.
· Choose among the technologies, reference architectures, and patterns and evaluate the candidate solutions based on the objective drivers, constraints, and criteria.

Qualifications
Specialized knowledge

· Software Architecture methodology including design and assessment methodology, and architectural drivers elicitation
· Understanding of standard engagement, consulting, and project support processes and activities.
· Architectural patterns, styles, principles, tactics, technologies, and reference architectures applicable to the architect’s technical profile 
· Deep understanding of the object oriented paradigm, understanding of functional paradigm
· Knowledge of UML notation, technical documentation styles, approaches and structure of architectural documentation
· Knowledge of standard size and effort estimation methods and practices
· Standard algorithms and ways of their applicability, at the expert level
· Software development methodology and programming techniques, at the expert level
· Fundamentals of code debugging, main types of diagnostic data and methods of their representation, the main methods to measure and evaluate software performance, at the expert level
·  Methods and techniques to refactor and optimize code, improve its readability, at the expert level
·  Methods to design and develop software interfaces for internal modules interaction, interfaces for interaction with external environment, at the expert level
·  Languages, tools, and environments for programming; tools for batch execution of the procedures
· Methods to test software performance; methods and tools to detect defects, problems and their causes
· Methods of software verification, validation, revision, and auditing
· Structure and methods to use the collective software engineering environment, version control system; methods to organize version control system, repository, tasks and defects tracking system, continuous integration system, knowledge base etc.
·  Methods and techniques to verify performance of software product releases, develop and analyze software functional requirements, develop software technical specifications
·  Fundamentals and techniques of personnel management; methods of management decision making
·  Current regulatory and technical documents, standards, regulations, best practices, and internal regulations

Experience and Skills

7+ years of experience in software development
3+ years of experience in technical leadership
Proven experience as software architect
Proficient in Java, with a good knowledge of its ecosystems
Practical experience of AWS stack, Java 8, Spring, RestAPI, MySql, SQL, Tests
Excellent knowledge of software and application design and architecture
Familiarity with HTML/CSS, JavaScript and UI/UX design
Understanding of software quality assurance principles
Good knowledge and practical use of agile software development methodologies
Usage of software verification, validation, revision, and auditing methods
Usage of methods and tools to develop software technical specifications, analyze software functional requirements
Usage of principles to design software architecture and software architecture types, methodologies and software design tools, databases, APIs etc.
Usage of methods and techniques to manage risks, and to evaluate complexity, scope of work, and tasks deadlines
Usage of fundamental methods and techniques to manage personnel, management decision-making methods
Ability to estimate project sizes and efforts accurately enough and with sufficient precision
Ability to fully apply all capabilities of the existing hardware and/or software architecture
Ability to implement methods and techniques to test software performance, correctly interpret diagnostic data, analyze values of obtained software characteristics
Usage of environment for collaborative work on the program code, usage of version control system
bility to evaluate software performance, software product compliance with customer technical requirements
Strong communication and interpersonal skills
Strong coaching and mentoring skills
Strong presentation and negotiation skills
Strong planning and organizing skills
Decision-making skills
Conflict management skills
Upper-Intermediate level of English