We are seeking an experienced senior software engineer specializing in Erlang / OTP and ejabberd / MongooseIM to perform any necessary upgrades and examine, then remediate, existing code around more recently developed functionality. We will provide clearly defined requirements which we will share with you during the interview process.
Essential Duties & Responsibilities
Examine the existing code around some more recently developed functionality
Remediate any poor or inefficient code related to those more recent modifications
Resolve specific issues related to our ejabberd / MongooseIM and Erlang code.
Update the base code to the latest MongooseIM version
Design and implement automated tests for the added features.
Potential to architect and develop scalable, distributed solutions for emerging platform features
Develop solutions using distributed concurrent programming, software packaging and release
Qualifications, Experience, Education
5+ years of experience programming in Erlang/OTP and ejabberd/MongooseIM
Experience in using Mnesia, Redis, ElasticSearch or MongoDB
Knowledge of Distributed Computing and Concurrent Programming
Experience in using development tools such as revision control software (git) and build tools (rebar)
Must have a strong understanding of client/server protocols including TCP/IP, HTTP, BOSH and Sockjs
Must have a strong understanding of security-related issues
Experience with XML-based protocols (XMPP is a must)
Prior experience developing enterprise applications and/or mission-critical applications and know good practices for building a reliable and maintainable software.
Proficient at troubleshooting network-related issues
Strong work ethic, demonstrate a commitment to detail, organizational, problem solving, and time management skills
Good verbal and written communication in English
Passionate about software development, willing to learn new technology, self-motivated with high technical competency