Software Engineer

  • Engineering
  • Dubai, Dubayy, United Arab Emirates

Software Engineer

Job description

Communication is our business!

Unifonic provides solutions for better customer engagement through a cloud-based platform. We empower businesses to engage with their people through a variety of channels, making their communication conversational, more meaningful and with ease!


Engineering principle: We ship robust, high-quality code, written for humans to read and maintain!

Tech Stack: Linux, Drone CI, AWS, Docker, Java, K8S, Kubernetes, Terraform, Postman, Bitbucket and GitOps, Jenkins Ansible, PHP, Python, Testlink, Jira.


Software Engineer

The Software Engineer will be working within a diverse team of highly experienced engineers and developers in a relatively new and booming Cpaas industry. The Software Engineer will be primarily responsible for 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. This position gives an excellent learning opportunity for those who are curious and continuous learners as they will be working with a world-class modern tech stack in an agile environment.


 The responsibilities of the Software Engineer include but are not limited to:

  • Contribute to building and maintaining the policies, procedures, and technical assets in the company's cloud infrastructure.
  • Support various teams with a technical vision in the core areas of interest for the company's products.
  • Support multi cloud-based communication products, especially as an augmentation to the internal technology team and working with partners’ software development teams.
  • Work closely with service delivery teams to support product deployments to the cloud.
  • Understand and use the company's technical architectures, tools, and techniques to build powerful, efficient, flexible, and scalable solutions.
  • Work on cloud-based development and deployment, including the following: AWS (EC2, SQS, S3, RDS, Aurora).
  • Ability to perform basic database administration, performance optimization, index optimization, write advanced select queries, and replace cursor usage with relational SQL.
  • Collaborate with product owners, scrum masters, and other developers to deliver a quality product using tools such as JIRA and Git.

Requirements

Must Have

  • Hands-on 3+ years of recent experience in programming JAVA (Spring Framework) or PHP (Symfony), on complex projects, preferably in the Telecommunications domain.
  • Hands-on Web Development (HTML, CSS, JS), Full Software Lifecycle, Agile, Maven, Git, AWS, Linux, Distributed Architectures (REST, SOAP, Queue-based), and Microservices.
  • Familiar with SaaS and PaaS integration architecture and applications.

Nice To Have 

  • Practical experience in managing Linux servers and applications (Nginx, apache2, etc...) and in MVC frameworks, queuing systems/Message Brokers like (beanstalk, SQS, etc...), cache technologies (Memcached, Redis), consuming and designing RESTful APIs.
  • Excellent knowledge of agile software development life-cycle working with virtual teams.
  • Bachelor's degree in Engineering, Software, or a related discipline or the equivalent.
  • 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.