About the role
Requirements:
- Strong understanding of distributed systems concepts, including consistency, consensus, idempotency, ordering, and fault tolerance.
- Experience with messaging platforms such as Kafka and designing event-driven architectures.
- Strong knowledge of database transactions, isolation levels, locking, deadlocks, and distributed transaction patterns.
- Experience with caching strategies, including Redis, and techniques to reduce latency and improve throughput.
- Ability to identify performance bottlenecks and optimise systems through profiling, benchmarking, and load testing.
- Strong understanding of resiliency patterns, including retries, timeouts, circuit breakers, and backpressure.
- Experience with system observability, monitoring, distributed tracing, and production troubleshooting.
- Strong understanding of scalability, capacity planning, and high-availability architecture.
- Experience with Docker, Kubernetes, CI/CD, and cloud-native deployments.
- Ability to drive architecture and design discussions while remaining hands-on with coding and technical problem-solving.