Job Title: Microsoft Application Architect
Department: Software Architecture
Reports To: Chief of Solutions Architecture
Job Summary:
Microsoft Application Architect is an experienced architect with a strong Microsoft stack background to lead the design, development, and evolution of high-quality, scalable, and maintainable software applications. The architect has a deep understanding of various architectural styles, design methodologies, and object-oriented design patterns. The Application Architect will collaborate closely with cross-functional teams, guide developers, and ensure applications' technical integrity and alignment with business goals. This role requires a strategic thinker who can translate complex requirements into robust architectures, drive the adoption of best practices, and provide hands-on technical leadership.
Qualifications:
Education & Experience:
- Bachelor’s degree in computer science, Software Engineering, or a related field.
- 7+ years of experience in software development with the Microsoft technology stack (e.g., .NET Core, ASP.NET, C#).
- 3+ years of experience in an architect-level or lead engineer role, designing complex, enterprise-grade systems.
Technical Skills & Expertise:
- Proficiency with architectural styles and patterns, including Microservices, Hexagonal, Multi-Layered, Onion, and Event-Driven Architecture.
- Expertise in Object-Oriented Design Patterns (e.g., Decorator, Builder, Abstract Factory) and design principles (SOLID, GRASP).
- Strong familiarity with design methodologies, such as Responsibility-Driven Design, Domain-Driven Design (DDD), and API-First Design.
- Experience designing cloud-ready applications and applying cloud-native principles (external configuration, observability, resilience, etc.) in Azure or other cloud platforms.
- Deep understanding of software quality attributes (performance, scalability, reliability, security, etc.) and strategies to achieve them.
- Knowledge of CI/CD pipelines, DevOps practices, and infrastructure as code (IaC) to streamline development and deployment.
Soft Skills:
- Strong communication and presentation skills to effectively collaborate with stakeholders and articulate architectural decisions.
- Ability to mentor and guide development teams, foster knowledge sharing, and promote engineering excellence.
- Strong analytical and problem-solving skills, with the ability to break down complex technical challenges into actionable steps.
- Adaptability and a continuous learning mindset, keeping up with emerging technologies, frameworks, and best practices.
Responsibilities:
Architecture and Design:
- Define and maintain the architectural vision and roadmap for enterprise applications, ensuring solutions align with business objectives and technical standards.
- Select and apply appropriate architectural styles, patterns, and frameworks to meet specific project requirements, such as using Microservices for scalability or DDD for complex domains.
Technical Leadership & Guidance:
- Provide hands-on leadership during solution design and development, offering guidance on code structure, design patterns, and best practices.
- Review and approve architectural designs, high-level diagrams, and technical specifications, ensuring consistency, quality, and alignment with established principles.
- Mentor development teams, encouraging the adoption of SOLID, GRASP, and other design principles to produce clean, maintainable code.
- Collaboration & Stakeholder Engagement:
- Work closely with product owners, business analysts, and other stakeholders to understand requirements, clarify objectives, and align the architectural vision with business goals.
- Collaborate with infrastructure, security, and DevOps teams to ensure the architecture meets performance, security, and operational standards.
Continuous Improvement & Innovation:
- Conduct POCs to validate new technologies, frameworks, and architectural approaches before full-scale implementation.
- Analyze results from POCs to assess feasibility, performance, and alignment with organizational goals and provide recommendations for adoption.
- Evaluate and recommend new technologies, tools, and frameworks to enhance application performance, reduce operational costs, or improve developer productivity.
- Continuously improve the architectural blueprint, addressing technical debt, legacy systems, and evolving business needs.
- Support the organization’s move towards cloud-native and microservices-based architectures, championing modern engineering and operational best practices.