Vail Systems is seeking a Senior C++ Software Engineer to develop next generation enterprise communications solutions designed for SaaS/Cloud, traditional premise-based, and hybrid architectures. As a member of the Engineering Team, you will design, develop, and deploy application solutions for the company’s expanding list of Fortune 500 clients using advanced speech and VoIP technologies including Session Initiation Protocol (SIP) and Real-time Transport Protocol (RTP).You would primarily support Vail’s FreeClimb product, a voice and messaging telephony API, by adding new features as well as maintaining, improving, and extending the platform.
The ideal candidate will have a strong C++ programming background and experience in the full software development lifecycle which includes design, development, documentation, unit testing, integration, debugging, and deployment. They should also have experience working with product teams to translate business needs into technical requirements and be able to communicate product status updates effectively with internal and external stakeholders. The candidate will also require knowledge of Kubernetes and Docker or similar container orchestration systems and deployment processes.
What you’ll do:
- Develop and test software in a Linux environment using C++ (including C++14/17), as well as Boost and STL libraries for implementation of telephony services.
- Utilize Git for version control.
- Work with continuous integration pipeline tools like Jenkins/CloudBees.
- Debug source code using GDB debugger and Valgrind.
- Perform interprocess communication using various methods including shared resources and communication protocols like TCP and UDP.
- Support scaled services architectures using multithreaded programming.
- Design and implement APIs using REST principles.
- Refactor existing code to enhance functionality and scaling.
- Utilize data structures and ensure data integrity in multi-threaded environments.
- Monitor performance of applications to ensure they meet required specifications.
- A Bachelor’s degree in Computer Science,Engineering,Mathematics,or a related field,or equivalent experience.
- 4+ years of experience in a software development role using C++.
- A strong background in Object–Oriented Programming.
- Experience in event-driven programming.
- Experience designing and debugging in a multi-threaded/concurrent environment.
- Experience with data structures such as lists, trees, etc.
- Experience building RESTful web services.
- Experience with Linux and Linux tools.
- Experience with UNIX command line and shell programming.
- Experience with GDB debugger.
- Experience with Docker and Kubernetes.
- Experience working with telephony networks and related technologies such as Computer Telephony Integration (CTI), Interactive Voice Response (IVR), and VoIP (SIP/RTP).
- Experience with relational databases and SQL.
- Experience with NoSQL databases, such as MongoDB.
- Experience with build tools such as CMake.
- Familiarity in a JVM language, such as Java or Scala.
- Familiarity with source control technologies such as Git, or cvs.
- Familiarity with HTTP and JSON.
- Familiarity with Golang.
- Familiarity with ticketing systems such as Jira.