Senior Software Engineer
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 - Java
The Senior Software Engineer will be working with a diverse team of engineers and developers and will be 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 key metrics for the company's platform, and working on the next-generation evolution of the product while using the latest tools and technology within agile scrum teams. 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.
- 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 developing complex projects, preferably in the communications domain, in one or more of the following:
- Angular, or
- JAVA (Spring Framework), or
- PHP (Symfony), or
- Hands-on Web Development (HTML, CSS, JS), Full Software Lifecycle, Agile, Maven, Git, AWS, Linux, Distributed Architectures (REST, SOAP, Queue-based), and Microservices.
Nice To Have
- Practical experience in queuing systems/Message Brokers like (beanstalkd, SQS, etc...).
- Excellent knowledge of software development life-cycle.
- Solid experience in managing Linux servers and applications (Nginx, apache2, etc...) and in MVC frameworks (Yii).
- Proficiency in a Linux environment and in consuming and designing RESTful APIs.
- Practical experience with cache technologies (Memcached, Redis).
- 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.