Senior Software Engineer - Python

  • Engineering
  • Lahore, Pakistan

Senior Software Engineer - Python

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!


Senior Software Engineer - Python

The Senior Software Engineer is implementing enhancements, defining the architecture, developing new features, performing data analysis, and reporting key metrics for the company's communication platform with a focus on back-end distributed systems. The Senior Software Engineer is working on the next-generation evolution of the product to deliver a great user experience. The responsibilities of the Senior Software Engineer include but are not limited to:


  • Build and maintain solutions that scale. Serving millions of users every day.

  • Write clean, well-structured, and maintainable code that can be tested easily.

  • 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.

  • Drive back-end architecture work, ensuring that as we scale our platform can scale with us.

  • 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 7+ years of professional software engineering experience. Proficiency in programming in Python. Being able to convert code from Python2 to the latest version (considering best practices in mind).

  • Familiar with the tools like ArgoCD,  Docker, ECR, Kubernetes, DroneCI, etc. The ability to work in a continuous delivery ecosystem.

  • Professional in building HTTP server using FastAPI, Web2Py, Twisted, and Flask.

  • Practical experience in queuing systems/Message Brokers like (RabbitMQ, SQS, etc...).

  • Professional in writing and understanding the code using object-oriented programming.

  • Experience with version control workflows with Git and an advocate of Continuous Integration.


Nice to have

  • Preferably good hands-on experience in SMPP (Experience in Kannel or any other SMS gateway is a plus).

  • Knowledge in telecommunications (SMSC, VOIP, SMPP, etc...).

  • Proficiency in a Linux environment and in consuming and designing RESTful APIs.

  • Hands-on experience with Redis, KeyDB, Cassandra, Mysql, and PostgreSQL.

  • Excellent knowledge of software development life-cycle. Experience in working with Agile teams.

  • Willing to apply business logic on development requirements in a creative manner. Also, strong problem-solving and analytical skills.

  • Bachelor's degree in Engineering, Software, or a related discipline or the equivalent.

  • Excellent communication skills with fluency in English.