We are seeking a skilled and performance-minded Backend Engineer to support and evolve our distributed system of over 100 microservices, built primarily with .NET Core and PostgreSQL.
The ideal candidate has deep experience in backend development, service-to-service communication, and infrastructure-level tools like Envoy Proxy, service mesh, and observability platforms.
You will work closely with DevOps, QA, and frontend teams to ensure high availability, scalability, and maintainability of our services.
Key responsibilities include designing, developing, and optimizing high-performance backend microservices using .NET Core/C#.
You will integrate and manage Envoy Proxy for routing, load balancing, retries, and circuit breaking.
Implement distributed tracing, logging, and metrics for observability using tools like OpenTelemetry, Prometheus, and Grafana.
Optimize service-to-service communication and database access to reduce latency and improve throughput.
Write scalable SQL queries and optimize PostgreSQL usage, indexing, and connection handling.
Contribute to service discovery, dynamic routing, and rollout strategies (e.g., blue/green, canary).
Collaborate with QA to improve testability and traceability in a distributed system.
Participate in architecture reviews and contribute to best practices for microservices at scale.
Maintain CI/CD integration pipelines and ensure backend services deploy reliably.
Troubleshoot and debug production issues using logs, traces, metrics, and profiling tools.
Requirements:
You must have 5+ years of backend development experience, including 2+ years in a microservices environment.
Strong hands-on experience with .NET Core (C#) and PostgreSQL is required.
You should be proficient in Envoy Proxy, including configuration for routing, retries, circuit breakers, and observability.
Experience with distributed tracing, metrics, and log aggregation tools (e.g., Jaeger, Prometheus, Loki, Grafana) is necessary.
A deep understanding of REST, gRPC, and asynchronous messaging patterns (e.g., Kafka, RabbitMQ) is essential.
Familiarity with Kubernetes, Docker, and container-based deployments is expected.
You should have an understanding of software performance profiling, benchmarking, and optimization.
A strong grasp of service resilience patterns: timeouts, retries, bulkheads, circuit breakers is required.
Excellent problem-solving and debugging skills in large-scale systems are necessary.
Benefits:
We offer a competitive salary.
A comprehensive healthcare benefit package is provided.
There are opportunities for career growth within the organization.