Vail Systems Inc.
Erlang Software Engineer
Vail Systems is seeking an Erlang Software Engineer familiar with performing back-end development and support of distributed system applications. As an Erlang Software Engineer, you will manage Erlang applications related to message/call routing and database caching. You will also troubleshoot and resolve bugs found in development, QA, and production environments and facilitate deployments. This role is largely independent, and you will collaborate with highly technical engineers to accomplish project deliverables.
The ideal candidate will have a strong systems engineering and software development background to successfully design and implement new features for internal and customer applications for call routing and data caching using Erlang OTP. The candidate will also help in designing Erlang-based solutions for the above applications on Vail’s Kubernetes clusters. This would also include designing and troubleshooting monitoring interfaces using Prometheus and Grafana. The candidate will have knowledge of functional programming, testing practices, operating systems, relational databases, and distributed systems. Additionally, the candidate should be detail-oriented, creative, analytical, and research-oriented.
What you’ll do:
- Obtain technical requirements and collaborate with engineering teams to interpret and plan the appropriate solutions that address project needs.
- Write code in Erlang to implement the technical solutions within Vail’s distributed environment.
- Perform unit and integration tests once code is implemented.
- Develop project plans and adjust timeline and resource needs throughout the project lifecycle.
- Troubleshoot and debug errors that arise.
- Participate in check-ins with manager to review progress towards project goals.
- Communicate cross-functionally with IT, Web, DevOps, QA, and DBA teams which includes coordinating the system upgrades to improve performance.
- Participate in book clubs and technical trainings to acquire necessary technical skills for the job.
- A Bachelor’s degree in Computer Engineering, Computer Science, or a related field.
- 2+ years of experience with Erlang, Elixir, Haskell, or another functional programming language environment.
- If no functional programming language experience, professional experience in C++ or Java would be adequate.
- Knowledge of Linux/UNIX, HTTP, and networking.
- Experience with Docker and Kubernetes or other container orchestration systems.
- Familiarity with at least one scripting language such as Perl or Python.
- Experience with SQL.
- Familiarity with Bash Shell scripting.
- Familiarity with Git, cvs or other version control software.
- Ability to problem solve and troubleshoot in multi-tier environments.
- Excellent verbal and written communication skills.
- Experience administering web servers.
- Experience with Prometheus and Grafana.
- Experience with compiling and building software in Linux environments.
- Experience with distributed concurrent programming.
- Familiarity with VXML.
- Familiarity with Jira and Confluence.
The human voice is capable of conveying nuances and meaning that just can’t be expressed through clicks and text messages. And for that reason, voice interactions have always had a special power to shape your perception and experiences. At Vail, we believe in the unique power of voice interactions to create more expressive, more intimate, and more efficient interpersonal interactions. Our experts work with Fortune 500 companies to help them serve their customers more efficiently and effectively through the use of various voice technologies. From basic network services, to state-of-the-art IP telephony, to cutting edge real-time analytics, Vail technology makes millions of voice interactions better every day.
At Vail Systems we strive to cultivate a supportive culture of continuous learning where employees are encouraged to achieve both personal and team goals by providing innovative telephony solutions that enhance customer contact center experiences. We entrust our employees to work autonomously and also encourage contribution to the decision-making process in a highly collaborative environment where open communication is fostered amongst teams. Product development is centered around the end user to ensure Vail’s products are efficient, productive and add value for our clients.