Role Overview
As a Senior Erlang Developer , you will be responsible for developing and optimizing backend components that power real-time chat, presence, group messaging, push notifications, and end-to-end encryption. You’ll work on scalable systems capable of handling millions of concurrent users and billions of messages daily.
Key Responsibilities
- Design, build, and maintain real-time, low-latency messaging services using Erlang / OTP .
- Implement and optimize protocols such as XMPP , MQTT , or custom lightweight messaging protocols.
- Build fault-tolerant, distributed backend services capable of scaling horizontally.
- Develop presence systems, user state management, chat history storage, and message delivery tracking.
- Work closely with mobile and frontend teams to integrate APIs and messaging features.
- Contribute to the architecture of end-to-end encryption, message queues, and storage strategies.
- Monitor system performance and implement improvements to reduce latency and resource usage.
- Ensure high availability and zero-downtime deployments with rolling updates and clustering strategies.
- Collaborate in code reviews, architectural discussions, and feature planning sessions.
Must-Have Qualifications
5+ years of production experience with Erlang / OTP , ideally in real-time systems .Solid understanding of distributed systems , event-driven architecture , and concurrent programming .Experience working with messaging protocols (e.g., XMPP , MQTT , WebSockets ).Familiarity with Mnesia , Riak , or similar distributed databases.Proficiency in building and scaling systems that handle millions of concurrent users .Knowledge of fault tolerance , hot code swapping , and system uptime strategies .Strong understanding of networking, sockets , and asynchronous I / O .Experience with monitoring tools (e.g., Grafana, Prometheus) and log aggregation .Nice-to-Have
Experience with push notification systems (APNs, FCM, etc.).Exposure to end-to-end encryption , cryptographic protocols, and secure messaging architectures.Familiarity with Elixir or willingness to work in an Erlang / Elixir hybrid environment.Understanding of containerized deployments (Docker, Kubernetes).Contributions to open-source Erlang projects or messaging libraries.