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:
- At least 3-years of experience in backend programming (could be while being at a University)
- Master’s degree (or equivalent experience) in computer science
- Skills:
- Strong Linux fundamentals and scripting.
- Knowledge of the following tools and technologies:
- Source Code Management (GIT, GitHub)
- Logging
- Experience with full stack software development;
- Very good knowledge and experience of working with and querying databases.
- Solid experience of programming in Java and at least one of the following additional programming languages: PHP, Python
- Willingness to learn new things.
- Desirable:
- Experience working with frameworks
- Experience with processing large amounts of data on a cluster, containerisation and parallelisation, e.g. Spark, Kubernetes, Docker
- Configuration Management (e.g. Puppet, Chef, and Ansible)
- Continuous Integration (e.g. Jenkins), Testing, Monitoring
Personal abilities and qualities
- Attention to detail with an attitude to deliver quality over quantity.
- Feeling love for software development.
- Ability to take on responsibility and blend in with a team.
- Ability to quickly demonstrate understanding of the project aims and specific tasks as requested, and a get-things-done attitude.
- Willingness to follow an agile development process according to Scrum.
- 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
Stack:
Backend Developer Backend Developer (Java) PHP Python