Senior Software Engineer - Python

  • Engineering
  • Remote job

Senior Software Engineer - Python

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 touch point throughout the customer journey.


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


Senior Software Engineer - Python

The Engineering team at Unifonic is seeking a tech-savvy Senior Python Software Engineer to concentrate on 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. In this role, you will be working on the next-generation evolution of the product to deliver a great user experience. The ideal candidate should possess strong programming skills, high attention to detail, excellent problem-solving and debugging skills. 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.