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