Skip to content

Principal Software Engineer - Java

Egypt, Al Qāhirah, CairoEngineering

Job description

Unifonic is a customer engagement platform that enables organizations to delight customers with remarkable omnichannel experiences. By unifying communication channels, messaging apps, and chatbots, Unifonic streamlines conversations at every touchpoint throughout the customer journey.

Principal Software Engineer - Java

We are growing our Engineering team at Unifonic, and are looking to hire an outstanding Principal Software Engineer to join our diverse team of developers. In this role, you will be gaining command of the internal workings of Unifonic's existing products and technology, implementing enhancements, supporting bug fixes, performing data analysis, reporting key metrics for Unifonic's platform, and working on the next-generation evolution of the products while using the latest tools and technology within agile scrum teams. The successful candidate should have solid experience in Software Development. They should also have practical exposure to queuing tools and cloud hosting tools. The responsibilities of the Principal Software Engineer include but are not limited to:

  • Build and maintain solutions that scale to serve millions of users every day.
  • Contribute to building and maintaining the policies, procedures, and technical assets in Unifonic’s cloud infrastructure.
  • Support various teams with a technical vision in the core areas of interest for Unifonic'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 on Cloud-based development and deployment, including AWS (EC2, SQS, S3, RDS, Aurora).
  • Work closely with Service Delivery teams to support product deployments to the cloud.
  • Understand and use Unifonic's technical architectures, tools, and techniques to build powerful, efficient, flexible, and scalable solutions.
  • 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.

Job requirements


  • Hands-on 9+ years of experience in developing complex projects, using Java (Spring Framework).
  • Hands-on experience in Web Development (HTML, CSS, JavaScript).
  • Experience in queuing systems/message brokers like ActiveMQ, RabbitMQ, Kafka, Beanstalk, SQS, etc.
  • Experience with cache technologies such as Memcached, and Redis.
  • Solid experience in managing Linux servers and applications (Nginx, apache2, etc).
  • Proficiency in a Linux environment and in consuming and designing RESTful APIs.
  • Experience managing the full Software Development Lifecycle, Distributed Architectures (REST, SOAP, Queue-based), and Microservices Architecture.
  • Bachelor's degree in Engineering, Software, or a related discipline or the equivalent.
  • Familiarity with software project management tools i.e. Agile, Maven, and Git.
  • Experienced with using cloud hosting technologies such as AWS.
  • Familiar with SaaS and PaaS integration architecture and applications.
  • General knowledge in telecommunications (SMSC, VOIP, SMPP, etc).
  • Excellent communication skills, with strong problem-solving and analytical skills.
Egypt, Al Qāhirah, Cairo


Sign up for the latest Unifonic news, stories, webinars and more.




About Us






Case Studies