Senior Software Engineer

  • Engineering
  • Riyadh, Saudi Arabia

Senior Software Engineer

Job description

The Senior 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 Senior Software Engineer include but 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.


  • Hands-on 5+ years of recent experience in programming JAVA (Spring Framework) or PHP (Symfony), on a complex projects, preferably in the 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 a Linux environment and in consuming and designing RESTful APIs.

  • Practical experience with cache technologies (Memcached, Redis).

  • Excellent knowledge of software development life-cycle.

  • Bachelor's 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.