Snoonu is Qatar’s homegrown Super App, reinventing daily life with blazing-fast delivery, ride-hailing, and shopping - all in one place. The Senior Backend Engineer will design and build backend services using .NET Core, optimize database performance, and participate in system design discussions to ensure scalability and maintainability of services.
Responsibilities:
- Design and build backend services using .NET Core 8 and ensure they integrate smoothly with other parts of the system
- Optimize database performance through query optimization and implementing efficient data models in PostgreSQL, MongoDB, and DynamoDB
- Participate in system design discussions to contribute to architectural improvements and ensure scalability and maintainability of services
- Conduct code reviews to ensure adherence to coding standards and provide feedback to improve team performance
- Implement refactoring efforts to improve existing codebases for better efficiency and readability
- Write unit tests, integration tests, and ensure high test coverage for backend services
- Troubleshoot and debug complex issues in both production and development environments
- Document technical decisions, systems, and processes to support team knowledge sharing and future development
- Participate in production deployments, ensuring that all systems function as expected after new releases
Requirements:
- 7+ years of experience in backend development, with 5+ years of experience working specifically with .NET Core
- Proficiency in RESTful services and gRPC design and development, with a focus on maintainability and scalability
- Expertise in relational databases like PostgreSQL and non-relational databases like MongoDB and DynamoDB
- Familiarity with message brokers such as RabbitMQ and understanding of asynchronous operations and distributed systems
- Deep understanding of software design patterns (e.g., Singleton, Factory, Strategy) and the ability to refactor and optimize existing codebases
- Experience with code refactoring techniques, improving code structure and maintainability while preserving functionality
- Experience in conducting unit testing, integration testing, and performance testing to ensure application robustness
- Strong experience in diagnosing and resolving complex performance issues, such as memory leaks, using advanced profiling and optimization tools
- Ability to lead large-scale projects, ensuring alignment with both technical and business objectives
- Experience in mentoring junior developers and guiding team growth
- Familiarity with load testing and performance tuning
- Ability to contribute to technical discussions and offer creative solutions
- Experience with diagramming tools like Miro