Maintain and develop software solutions in accordance with defined objectives (quality, security, time schedule);
Assistance in drawing up and validating technical specifications;
Work with QA team to ensure delivery of a high quality product;
Implementing corrective actions;
Reporting on progress, issues and problems to the supervisor; providing lessons learned and giving suggestions to optimize the work processes;
To estimate his/her work and be able to prioritize work load in order to increase effectiveness and efficiency;
To assess product functionality, usability and fitness for purpose against predefined specifications and requirements;
Monitoring performance and advising any necessary infrastructure changes.
Significant experience with Linux deployments;
Continuous Delivery pipelines using Jenkins & Docker;
Kubernetes (real-world production experience is a plus);
Containerization of apps in Docker (you’ve built your own images) and experience with private registries;
Experience with provisioning tools such as Chef, Puppet or Ansible preferred;
Experience as a developer and administrator of commonly-used modern data storage/ messaging services, including: Kafka, Cassandra, Elastic Search, MySQL, MongoDB, and HDFS/ Hadoop;
Experience with building stream-processing systems, using solutions such as Mahout or Spark-Streaming;
Proficient understanding of distributed computing principles;
Software development knowledge in one or more of the following: Java, PHP, Scripting.
EDUCATION & EXPERIENCE
4-5 years of experience as a System Administrator;
Practical experience of software engineering is preferred;
Deep experience with Continuous integration/ Continuous Development and associated popular tools and frameworks;
Must have practical experience of working in a structured professional software development environment - preferably SCRUM;
Bachelor or Master of Science in Computer Engineering or Development is preferred.