Job Description
We seek a skilled and experienced senior back-end developer with strong proficiency in C# and a solid understanding of object-oriented programming (OOP). The ideal candidate will bring a robust technical background in SQL and NoSQL databases, Domain-Driven Design (DDD), Microservices, and Clean Architecture. This role also involves mentoring junior developers, providing technical guidance on best practices, and collaborating effectively within an Agile environment.
Key Responsibilities:
- Develop and maintain scalable backend systems, with a focus on clean, efficient, and reusable code.
- Utilize C# and OOP principles to design and implement software solutions.
- Work with both SQL (SQL Server, PostgreSQL) and NoSQL databases (MongoDB, Cassandra, DynamoDB).
- Apply Domain-Driven Design (DDD), Microservices Architecture, Clean Architecture, and Event Sourcing principles.
- Implement SOLID principles and leverage design patterns in software design.
- Utilize messaging systems like Apache Kafka, RabbitMQ, and MassTransit for event-driven development.
- Mentor and support junior developers, promoting knowledge sharing and skills development within the team.
- Ensure code quality and best practices are maintained across the team.
- Troubleshoot and solve complex problems effectively and efficiently.
- Communicate clearly and collaborate effectively within an Agile development environment.
Requirements:
- Bachelor’s degree in Computer Science, Software Engineering, or a related field (preferred).
- 5 to 7 years of professional experience in backend development, with a strong emphasis on C#.
- Proficiency in SOLID principles and familiarity with common design patterns.
- Experience working with Apache Kafka, RabbitMQ, or MassTransit.
- Strong problem-solving and analytical skills, with the ability to handle complex systems and workflows.
- Excellent communication skills and an ability to mentor junior team members.
General Competencies:
- Time Management: Ability to prioritize tasks and meet deadlines.
- Organized: Detail-oriented with excellent organizational skills.
- Proactive: Self-motivated, with a drive for results.
- Team Player: Collaborative spirit with a willingness to learn and share knowledge.
- Professionalism: Upholds high ethical standards and a positive work attitude.