Roles and Responsibilities
- Develop and test C++ code for high performance, distributed and scalable applications utilizing best engineering practices
- Collaborate with other engineers on design, implementation, testing, planning and code reviews.
- Evaluate feasibility of design/architecture by developing rapid prototypes or a minimum viable solution.
- Review specifications, Interface Control Documents (ICDs) and other technical documentation related to the applications.
- Create and execute unit and integration test cases.
- Design and create test plans and scripts to address business and technical use cases.
- Diagnose, debug, and fix application operational issues in a timely manner.
- Assist deployment and production support teams to work through customer escalated issues and provide resolutions and rootcause analysis.
- Create documentation for design work performed including unit testing, provide input to customer-facing documentation.
Desired Candidate Profile
- Four plus of professional software development experience with one or more programming languages.
- At least 3 years of software development experience in C/C++ on Linux/Unix is required
- Strong grasp of computer science fundamentals and especially data structures, algorithms, design patterns, OOA and design.
- Proficiency in C++, with fair knowledge of the language specification (C++11/14/17), including templating and STL.
- Experience developing multithreaded software for distributed and highly available systems.
- Experience working in a Continuous Integration / Continuous Deployment/Delivery (CI/CD) environment.
- Comfortable using debuggers and memory profiling tools like Valgrind.
- Handson experience with UNIX/Linux command line and comfortable with common bash commands is required.
- Some scripting experience in one or more mainstream scripting languages (bash, Perl, Python) is preferred.
- Experience with relational and NoSQL databases, PostgreSQL and REDIS preferred.
- Knowledge of TCP/IP, HTTP, LDAP, JSON, Git, Maven, make, perl, node.js is helpful.
- Knowledge of wireless telecommunications protocols (SMPP, SIP, Diameter, GSM MAP) is helpful.
- Experience working with Atlassian Tools (Artifactory, JIRA, Confluence, Bamboo, FishEye & Crucible)
- Knowledge of Virtualization technologies and experience with Cloudbased services, distributed messaging system like Kafka is a plus.
- Some familiarity with AWS, Docker, Ansible, Yum preferred but not mandatory.
EDUCATION:
BS in Computer Science, Electrical, Electronic, or Telecommunications Engineering.