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