Possess a degree in Computer Science, Engineering, or a related field.
At least 7 years of experience in software development with a strong focus on .NET technologies.
Proven experience in designing and implementing microservices architecture.
Expertise in event-driven architecture and experience with Kafka.
Strong understanding of RESTful APIs and web services.
Proficient in .NET Core, C#, and related technologies.
Experience with containerization technologies such as Docker and orchestration tools like Kubernetes.
Familiarity with Cloud platforms (AWS, Azure, or Google Cloud).
Excellent problem solving skill and attention to detail.
Strong communication and leadership skills.
Ability to work in a fast-paced and collaborative environment.
Hands-on experience with Test-Driven Development (TDD) and writing test cases.
Skillsets (Good to have)
Experience with CI/CD pipelines and DevOps practices.
Knowledge of other messaging systems like RabbitMQ or AWS SNS/SQS.
Experience with front-end technologies such as Angular, React, or Vue.js.
Familiarity with database technologies such as SQL Server, MongoDB, or PostgreSQL.
Summary:
The successful candidate will be responsible for leading the design, development, and implementation of scalable and high-performance microservices-based applications. He/she will be involved in architecting and implementing event-driven systems using Kafka.
This role requires a deep understanding of .NET technologies, microservices architecture, and event-driven patterns.
The candidate is expected to be well versed in hands-on coding, writing test cases using Test-Driven Development (TDD), and ensuring high-quality software delivery.
Responsibilities:
Lead the design and development of microservices-based applications using .NET Core.
Architect and implement event-driven systems using Kafka.
Collaborate with cross-functional teams to define, design, and ship new features.
Ensure the performance, quality, and responsiveness of applications.
Write and maintain test cases using Test-Driven Development (TDD) to ensure code quality and reliability.
Conduct code reviews and provide constructive feedback to team members.
Mentor and guide junior developers, ensuring best practices and coding standards are followed.
Troubleshoot and resolve complex technical issues.
Stay up-to-date with the latest industry trends and technologies to ensure our solutions remain cutting-edge.
Participate in architectural discussions and contribute to the overall technical strategy.
Engage in hands-on coding and development activities as needed..