Senior Software Engineer

Job description


We are looking for a keen and enthusiastic Software Engineer with knowledge of Python or Scala to join our mixed hybrid and remote Data Engineering team following a significant investment funding round. The successful candidate will work with other software and data engineers and our Research team to extend and improve the search features that power our expert finding service for internal customers.

We are seeking a candidate that has a passion for working with data and building robust and deployable operational systems through solid engineering approaches.

We are keen to see applications from experienced generalists as well as deep specialists.

**Please note this role can be 100% remote, but the applicant needs to be UK based and eligible to work in the UK **

What do I need?

You will need good software and system engineering skills with a focus on ensuring that systems are well engineered, accurate, robust and tested. Any experience in search engines, data lakes and knowledge graphs would be a bonus.

Successful applicants will also need to be able to work effectively with a mixed hybrid and remote team, and mentor junior staff members.

Job Scope

This is a hands-on role developing a system for internal users. Your time will be spent:

  • establishing requirements and scoping work;
  • collaborating with the Research and Front-End teams to provide integrated systems;
  • deploying new pipelines, deploying pre-built machine learning models and supporting infrastructure (including monitoring); and
  • mentoring colleagues and sharing knowledge & expertise

As a Senior Data Engineer, you will also be expected to take a prominent role in defining architectures and roadmaps.

Key accountabilities

Accountable to the Product and Connect teams for designing, developing, deploying and maintaining the required features.

Accountable to the Research teams for supporting research tasks, maintaining the data pipelines and helping to deploy new features.

Accountable to the Team Lead for supporting the growth and development of the team, as well as maintaining good software engineering standards.


Job requirements

Core skills and experience

  • Substantial experience in software engineering involving data or in data engineering roles with a significant software engineering component, including:
  • extensive experience using Python or Scala
  • experience building APIs
  • Multiple years of experience of software deployment with cloud technologies (including serverless frameworks, such as AWS Lambda or Google Function)- Strong software engineering practices (including version control, unit testing and CI/CD tools)
  • Experience of working in an agile environment using Scrum or other process frameworks
  • Experience using Linux
  • Good team working and communication skills
  • Enthusiasm for data projects and knowledge sharing

Desirable skills and experience

The following skills and experiences are optional but beneficial:

  • AWS (certification optional)
  • Elasticsearch
  • RedisGraph
  • OpenAPI
  • Knowledge graphs
  • Data/Machine-Learning pipelines such as Apache Spark