Job Description:
We require a Software Architect to lead the design and development of enterprise applications. The ideal candidate will have a deep understanding of microservices, clean code principles, onion architecture, domain-driven design (DDD), and extensive experience with .NET technologies. Additionally, strong front-end experience, particularly in architecting micro front-ends and working with modern front-end technologies is critical. This role requires a strategic thinker who can architect scalable, high-availability software solutions to meet our business needs.
Job Requirements:
- Minimum 10 years of experience in software development with at least 5 years in leading software development teams and at least 3 years in a software architect role.
- Bachelor’s or Master’s degree in Computer Science, Information Technology, or a related field.
- Proficiency in .NET technologies (C#, .NET Core).
- Proficiency in architecting enterprise applications & mobile applications using microservices architecture, micro frontends, PWAs, and server-side rendering.
- Proficiency with modern front-end technologies (Angular, React, Vue.js).
- Demonstrated ability to create high-availability, scalable applications.
- Extensive experience with large data models, NoSQL databases, and structured database design.
- Experience with Kafka and other message queue technologies (e.g., RabbitMQ, ActiveMQ).
- Expertise with Agile and DevOps methodologies and tools.
- Strong expertise in data structures, algorithms, and design patterns, along with knowledge in principles like SOLID.
- Experience in writing high-performing, reactive, and clean code, particularly in building cloud-native, event-driven systems using .NET/C# and Kubernetes.
- Services Architecture: Strong understanding and development of Microservices, Service-Oriented Architecture (SOA), REST API's design and gRPC.
- Expertise in OOP principles for analysis and design.
- Docker Kubernetes: Proficient in containerization with Docker and Kubernetes.
- Expertise in applying Domain-Driven Design(DDD): principles to software design.
- Event-Driven Architecture: Proficiency in event-driven and event sourcing.
- Cloud Architecture: Expertise in cloud architecture, specializing in AWS, Azure, or Google Cloud.
- Caching Patterns & Technologies: Understanding of caching mechanisms and experience in improving application performance.
- Performance Monitoring: Proficiency in performance monitoring tools.