Key responsibilities * Develops, manages, monitors and improves backend services and software processes, especially those for the ingestion and processing of large amounts of data from distributed sources. * Plans, organises, manages and delivers discrete software components * Contributes to product and performance improvements and optimisation of existing services. * Participates actively in team meetings, contributing knowledge and expertise to assist in decision-making when planning software projects. * Develops robustness into system infrastructure and both proactively and reactively deals with issues. * Performs recovery of systems/services when needed. * Ensures quality of new source code. * Writes automated tests (Unit tests and Integration tests) * Engages with collaborators inside and outside the organisation.
Other responsibilities of the role are: * To occasionally onboard new team members working in the same role or team as themselves. * To undertake any other duties which may reasonably be required. * To communicate professionally and clearly with others in order to solve problems.
Skills and experience * Education:
o At least 3-years of experience in backend programming (could be while being at a University)
o Master’s degree (or equivalent experience) in computer science
Skills: * Essential:
o Strong Linux fundamentals and scripting.
o Knowledge of the following tools and technologies:
▪ Source Code Management (GIT, GitHub)
▪ Logging
o Experience with full stack software development;
o Very good knowledge and experience of working with and querying databases.
o Solid experience of programming in Java and at least one of the following additional programming languages: PHP, Python
o Willingness to learn new things. * Desirable:
o Experience working with frameworks
o Experience with processing large amounts of data on a cluster, containerisation and parallelisation, e.g. Spark, Kubernetes, Docker
o Configuration Management (e.g. Puppet, Chef, and Ansible)
o Continuous Integration (e.g. Jenkins), Testing, Monitoring * Personal abilities and qualities
o Attention to detail with an attitude to deliver quality over quantity.
o Feeling love for software development.
o Ability to take on responsibility and blend in with a team.
o Ability to quickly demonstrate understanding of the project aims and specific tasks as requested, and a get-things-done attitude.
o Willingness to follow an agile development process according to Scrum.
o Ability to clearly communicate in English both orally and in writing.
Work Conditions & Benefits * Fully remote work with the flexibility to work from anywhere * Flexible working hours to support a healthy work—life balance * Coverage of online courses and professional development programs * 18 paid vacation days per year and 10 paid sick days * Company-provided equipment, including a laptop, monitor, and necessary accessories * English language lessons with regular practice sessions led by a native speaker