Intermediate (2-5 years of experience)
Summary of the Role
As a Software Architect, you will be responsible for making high-level design choices and enforcing technical standards, including software coding standards, tools, and platforms. Your primary goal will be to provide a framework that allows others to understand the broad context of a project and to ensure the architectural integrity of the software being developed.
Required Skills
Strong analytical and reasoning skills with an ability to visualize processes and outcomes
Proficiency in software engineering tools and software development life cycle
Experience with architectural patterns, building APIs, and microservices
Knowledge of UML and other modeling methods
Familiarity with HTML/CSS, JavaScript and UI/UX design
Understanding of software security practices
Time management and project management skills
Experience with cloud services, such as AWS, Azure, or Google Cloud Platform
Adept at strategic decision-making and problem-solving
Qualifications
Bachelor's degree in Computer Science, Engineering or related field, or equivalent work experience
Proven experience as a Software Architect or similar role
Experience in software development and coding in various languages (C#, .NET, Java etc.)
Excellent knowledge of software and application design and architecture
Experience with database management and data processing
Understanding of software quality assurance principles
A technical mindset with great attention to detail
High-quality organizational and leadership skills
Outstanding communication and presentation abilities
Responsibilities
Evaluate and select appropriate software or hardware and suggest integration methods
Oversee assigned programs and provide guidance to team members
Assist in the development of the architectural blueprint to meet project requirements
Collaborate with cross-functional teams to determine functional and non-functional requirements for new software or applications
Develop high-level product specifications with attention to system integration and feasibility
Define all aspects of development from appropriate technology and workflow to coding standards
Communicate successfully all concepts and guidelines to the development team
Oversee progress of the development team to ensure consistency with initial design
Provide technical guidance and coaching to developers and engineers
Ensure software meets all requirements of quality, security, modifiability, extensibility, etc.