We are looking for an experienced Senior .NET Backend Engineer to design and build scalable, resilient, and high-performance backend systems.
You will work with modern C# and .NET, developing REST APIs, microservices, and distributed applications running in cloud-native environments. Beyond hands-on development, you will contribute to architecture decisions, performance optimization, reliability, and engineering best practices.
This is an excellent opportunity for a senior backend engineer who enjoys solving complex technical challenges and discussing architectural trade-offs around scalability, concurrency, resiliency, security, and distributed systems.
As a Senior .NET Backend Engineer, you will:
- Design and develop scalable backend services and APIs.
- Build resilient distributed systems and microservices.
- Contribute to architectural and system design decisions.
- Improve application performance, scalability, and reliability.
- Develop cloud-native solutions using Azure or AWS.
- Promote clean, maintainable, and testable engineering practices.
- Collaborate with international and cross-functional teams.
- Design, develop, and maintain backend services using C# and .NET 6+.
- Build secure, scalable, and high-performance REST APIs.
- Develop reusable and maintainable backend components.
- Implement complex business logic while maintaining clear separation of concerns.
- Participate throughout the software development lifecycle, from technical design to production.
Distributed Systems & Microservices
- Design and implement distributed systems and microservices architectures.
- Build services capable of handling asynchronous and concurrent workloads.
- Apply appropriate patterns for:
- Concurrency
- Thread safety
- Idempotency
- Retry mechanisms
- Failure recovery
- Design services with reliability and fault tolerance in mind.
- Contribute to architectural decisions involving scalability, availability, and performance.
APIs & Security
- Design and maintain robust RESTful APIs.
- Implement authentication and authorization using technologies and standards such as:
- JWT
- OAuth
- Apply API security and backend development best practices.
- Contribute to API versioning and integration strategies.
Data & Persistence
- Develop data access layers using Entity Framework Core.
- Design and optimize efficient database interactions.
- Write and troubleshoot SQL queries.
- Identify database performance bottlenecks.
- Optimize queries and application data access patterns.
- Ensure appropriate transaction management and data consistency.
- Develop and operate solutions in Azure and/or AWS environments.
- Design cloud-native backend services.
- Contribute to application scalability and resilience in cloud environments.
- Collaborate with infrastructure and DevOps teams on deployment architecture.
- Participate in technical discussions around cloud scalability and availability.
- Containerize backend services using Docker.
- Deploy and support applications running on Kubernetes.
- Ensure services are appropriately configured for cloud-native environments.
- Contribute to application health, scalability, and production readiness.
- Contribute to CI/CD pipelines and automated software delivery.
- Participate actively in code reviews.
- Promote coding standards and backend engineering best practices.
- Improve development, testing, and deployment processes.
- Identify technical debt and contribute to sustainable remediation strategies.
Performance & Reliability
- Identify application and infrastructure bottlenecks.
- Optimize backend performance and resource utilization.
- Build appropriate retry, timeout, and resiliency mechanisms.
- Improve application stability under high-volume or transactional workloads.
- Contribute to monitoring and observability practices.
Technical Collaboration
- Participate in architecture reviews and technical discussions.
- Evaluate technical alternatives and communicate architectural trade-offs.
- Collaborate with engineers, architects, DevOps teams, and product stakeholders.
- Share technical knowledge and support engineering improvements across the team.
What We’re Looking For
Mandatory Requirements
- 5+ years of professional experience with C# and .NET.
- Strong knowledge of .NET Core / .NET 6+.
- REST APIs
- Microservices
- Solid understanding of:
- Concurrency
- Thread Safety
- Idempotency
- Resiliency Patterns
- Retry Strategies
- Experience implementing authentication and authorization with JWT/OAuth.
- Strong experience with Entity Framework Core.
- Solid SQL knowledge and query optimization experience.
- Experience with distributed systems and microservices architectures.
- Hands-on experience with Azure and/or AWS.
- Experience with:
- Docker
- Strong understanding of modern software engineering practices.
- Professional proficiency in English.
- C#
- REST APIs
- Entity Framework Core
- Microservices
- Distributed Systems
- Cloud-Native Architecture
- Scalability
- High Availability
- Resiliency Patterns
Security
- JWT
- OAuth
- Authorization
- API Security
Data
- SQL
- Entity Framework Core
- Relational Databases
- Query Optimization
- Transaction Management
- AWS
- Docker
- CI/CD
- Automated Testing
- Performance Optimization
- Software Design Patterns
Nice to Have
Messaging & Asynchronous Architectures
Experience with one or more of:
- Domain-Driven Design (DDD)
- CQRS
Resiliency
- Polly
- Retry and timeout strategies
Infrastructure
- Terraform
- Infrastructure as Code
Caching
Observability
- Grafana
- Application Insights
- OpenTelemetry
- Application Monitoring
Scale
- Experience with high-volume applications.
- Experience with highly transactional systems.
- Performance optimization in distributed environments.
- Strong understanding of how backend systems behave beyond individual application components.
- Ability to consider security, performance, scalability, reliability, and maintainability when designing solutions.
Architectural Thinking
- Comfortable discussing architecture and system design.
- Ability to evaluate and explain technical trade-offs.
- Pragmatic approach to selecting technologies and architectural patterns.
Problem Solving
- Hands-on and analytical approach to complex technical problems.
- Strong troubleshooting capabilities.
- Focus on sustainable solutions rather than temporary fixes.
Autonomy
- Comfortable taking ownership of technically complex topics.
- Ability to work independently and make sound engineering decisions.
- Proactive attitude toward technical improvement.
- Ability to participate effectively in technical discussions.
- Comfortable collaborating with international and multidisciplinary teams.