What is a software architect ?
Software architect is person who design system architecture and technical standards . Software Architect not only analyzes customer requirements (inside or outside the company) and then makes a system design but must closely monitor the Developer team when building the system, operating the system as well as when maintaining and expanding the system to ensure they follow the design correctly. Software Architect’s work goes with project from start to the end. To be effective, a software architect needs broad (and deep) technical knowledge to make good decisions. However, technical knowledge isn’t enough. They also have to have the soft skills to manage projects and people
Main activities carried out by Software architect
- Working with customers to clarify and document platform requirements/specs (functional and non-functional).
- Accountable for defining & creating platform architecture model using modern software architecture, design patterns and solutions for high performance, high scalability, high availability, security, integrability and maintainability.
- Working with development team to implement platform core services/base framework. Provide and mentor platform architecture design documentation, coding standards, implementation guidelines, ensure high quality implementation/code quality for the development team.
- Ensures that all relevant project teams follow a common set of principles and patterns and utilize a standard set of technology frameworks and libraries.
Essential hard skills and knowledge for Software architect
-
Bachelor’s degree in Software Engineering, Data Science, Computer Science, Information Technology. Master degree is an advantage.
-
Knowledge of Unified Modeling Language is essential.
-
Experience with one or more programming languages: PHP, Python, JavaScript, Nodejs, C#, Java…, coding in RDBMS, NoSQL (MySql/MariaDB, PostgreSql, SQL Server, Redis, MongoDB, Cassandra, ES.
- Manage software development practices in a collaborative and agile fashion. This takes hard skills, such as creating an efficient DevOps environment, and soft skills, to keep development and operations teams aligned.
Essential Soft skills
- Leaderships
- Problem-solving and conflict resolution
- Communication
- Coaching and Inspiration
- Organization
- Prioritizing
- Detailed thinking
- Creative thinking
Language skills
Good written and spoken English is preferred.