Lagos, Nigeria

Real-Time Engineer (Erlang/Elixir/Phoenix)

 Job Description:

Position Overview:

We are seeking five (5) skilled Real-Time Engineers with deep expertise in Erlang, Elixir, and the Phoenix framework. The ideal candidates will have a strong background in algorithm development and real-time systems. These engineers will be responsible for building and maintaining a robust real-time chatting and offline messaging platform, leveraging a microservices architecture and a variety of AWS services to ensure scalability, reliability, and performance.

Key Responsibilities:

1. Real-Time Chat & Messaging (Erlang/Elixir/Phoenix):

- Design and implement real-time chat and messaging services using Erlang/Elixir and the Phoenix framework.

- Manage WebSocket connections efficiently for real-time communication.

- Develop and maintain offline messaging queues and chat metadata storage using Cassandra.

- Ensure high availability and low latency for real-time messaging through efficient use of Redis and RabbitMQ.

2. Database Management:

- Utilize Redis as an in-memory storage solution for real-time messaging.

- Use Cassandra to store high-volume chat metadata, user activity logs, and offline messages.

- Manage user profiles and chat history in RDS (PostgreSQL/MySQL).

- Integrate RabbitMQ for message queuing and ensuring reliable message delivery.

3. Microservices & Orchestration:

- Develop and deploy microservices architecture using Kubernetes for managing real-time chat services.

- Implement and manage StatefulSets for Cassandra to ensure seamless database integration.

- Deploy and monitor chat services using AWS EC2/ECS for optimal performance and scalability.

- Utilize Istio or Linkerd as a service mesh for microservices management and security.

4. Monitoring & Logging:

- Implement monitoring solutions using Prometheus and Grafana to track performance metrics.

- Set up and manage logging infrastructure using the ELK Stack (Elasticsearch, Logstash, Kibana).

- Ensure that the system is highly observable with real-time metrics and alerts.

5. Algorithm Development & Optimization:

- Develop efficient algorithms for handling high-concurrency chat connections and message delivery.

- Optimize data retrieval and storage mechanisms to ensure low-latency interactions.

- Work on distributed systems and parallel processing to handle high volumes of real-time data.

6. Collaboration & Teamwork:

- Collaborate with frontend engineers, product managers, and other stakeholders to deliver a seamless user experience.

- Participate in code reviews, design discussions, and provide mentorship to junior engineers.

- Contribute to continuous improvement initiatives within the team and the broader organization.

Required Qualifications:

- Experience:

- Minimum 5 years of experience in backend development using Erlang/Elixir and the Phoenix framework.

- Proven experience in real-time communication systems and WebSocket management. - Strong algorithmic problem-solving skills with a focus on real-time data processing.

- Extensive experience with AWS services, including EC2/ECS, ElastiCache (Redis), and

RDS.

- Proficiency in microservices architecture and container orchestration with Kubernetes.

- Technical Expertise:

- Strong knowledge of Erlang/Elixir for building scalable and reliable real-time services.

- Expertise in using Redis and Cassandra for high-performance data storage and retrieval. - Experience with RabbitMQ for message queuing in distributed systems.

- Proficient in setting up monitoring and logging solutions using Prometheus, Grafana, and

the ELK Stack.

- Familiarity with service mesh technologies such as Istio or Linkerd.

- Other Skills:

- Excellent communication and collaboration skills.

- Ability to work in a fast-paced, agile environment.

- Strong commitment to quality and continuous improvement.

Preferred Qualifications:

- Experience with CI/CD pipelines and automated testing.

- Knowledge of security best practices in cloud environments.

- Experience with real-time communication protocols and distributed systems.

Location: 2 days at Lagos, Nigeria Office, 3 days remotely; Hybrid.

Compensation: #600,000 - #1,000,000; Based on experience

  Required Skills:

Cassandra Kibana RabbitMQ High Availability Messaging Data Processing ElasticSearch Performance Metrics Chat Profiles Pipelines Redis Scalability User Experience Microservices Algorithms Compensation Kubernetes Metrics Reviews History Reliability PostgreSQL Continuous Improvement Architecture Storage Optimization Infrastructure Availability Integration Security MySQL Teamwork Testing Design Communication Management