Job Title: Software Architect
The Software Architect is responsible for designing and defining the overall software architecture for complex systems, ensuring scalability, maintainability, and adherence to best practices. This role involves leading the architectural decision-making process, collaborating with cross-functional teams, and driving the adoption of emerging technologies and architectural patterns.
Key Responsibilities:
- Develop and maintain the overall software architecture, ensuring alignment with business requirements, scalability, and performance goals.
- Collaborate with stakeholders, including product owners, developers, and operations teams, to understand requirements and translate them into robust architectural designs.
- Evaluate and select appropriate technologies, frameworks, and tools to support the architectural vision and ensure compatibility with existing systems.
- Conduct design reviews, code reviews, and architectural reviews to ensure adherence to best practices, coding standards, and architectural principles.
- Provide guidance and mentorship to development teams on architectural patterns, design principles, and best practices.
- Identify and mitigate technical risks, anticipate potential issues, and propose mitigation strategies.
- Stay up-to-date with emerging technologies, industry trends, and best practices in software architecture and design.
- Collaborate with DevOps teams to ensure seamless integration between software architecture and deployment processes.
- Contribute to the development of architectural standards, guidelines, and documentation.
- Participate in the overall software development life cycle, from requirements gathering to deployment and maintenance.
Requirements:
- Bachelor's degree in Computer Science, Software Engineering, or a related field, or equivalent professional experience.
- Minimum of 5-7 years of experience in software architecture and design, with a solid understanding of architectural patterns, principles, and best practices.
- Proven experience in designing and implementing large-scale, complex, and distributed systems.
- Strong knowledge of software development methodologies, such as Agile, Scrum, or Kanban.
- Proficiency in multiple programming languages and frameworks (e.g., Java, Python, .NET, React, Angular, Node.js).
- Experience with cloud computing platforms (e.g., AWS, Azure, GCP) and containerization technologies (e.g., Docker, Kubernetes).
- Familiarity with DevOps practices, continuous integration/continuous deployment (CI/CD) pipelines, and infrastructure as code (IaC) concepts.
- Excellent problem-solving, analytical, and decision-making skills.
- Strong communication and collaboration skills, with the ability to effectively convey technical concepts to both technical and non-technical stakeholders.
- Proven leadership skills and the ability to mentor and guide development teams.
Preferred Qualifications:
Master's degree in Computer Science, Software Engineering, or a related field.
Experience with microservices architecture, event-driven architecture, or serverless computing.
Knowledge of security principles, best practices, and secure coding techniques.
Familiarity with domain-driven design (DDD) and event sourcing patterns.
Certification in software architecture or related fields (e.g., AWS Certified Solutions Architect, Microsoft Certified Solutions Expert).
Job Type: Full-time
Application Question(s):
* What is your notice period Will you be able to join immediately