The Software Engineer is responsible for gaining command of the internal workings of the company's existing product and technology, implementing enhancements, supporting bug fixes, performing data analysis and reporting of key metrics for the company's platform, and working on the next-generation evolution of the product. The responsibilities of the Software Engineer include but not limited to:
Hands-on 3+ years of recent experience in programming JAVA (Spring Framework) or PHP (Symfony), on complex project, preferably in Telecommunications domain.
Hands-on Web Development (HTML, CSS, JS), Full Software Lifecycle, Agile, Gradle, Maven, Git, AWS, Linux, Distributed Architectures (REST, SOAP, Queue-based), and Microservices.
Solid experience in managing Linux servers and applications (Nginx, apache2, etc...) and in MVC frameworks (Yii).
Practical experience in queuing systems/Message Brokers like (beanstalkd, SQS, etc...).
Proficiency in Linux environment and in consuming and designing RESTful APIs.
Practical experience with cache technologies (Memcached, Redis).
Excellent knowledge of software development life-cycle.
Bachelor degree in Engineering, Software, or a related discipline or the equivalent.
Strong problem solving and analytical skills.
Ability to apply business logic to development requirements in a creative manner.
Familiar with SaaS and PaaS integration architecture and applications.
General knowledge in telecommunications (SMSC, VOIP, SMPP, etc...).
Travel is required, including the possibility of overseas travel - the candidate will need to visit the company’s customers and/or partners.
Fluent in English with excellent writing/editing and verbal communication skills.