Our Software Engineers are innovative and creative with a diverse knowledge about designing and creating tools and applications. They are passionate about delivering fantastic results and willing to go the extra mile to build the perfect solution using the right tools!
As part of the Software Engineering team you will be working closely with our Informaticians and Data Scientists. You will be helping to leverage the tools and techniques they design into products that can be, initially, used within the company, then extended to our partners and ultimately as commercial products. You will be helping the team solve problems around data management and processing, along with working to productise the team's efforts.
All our Engineers are unique and bring not only enthusiasm but also a vast range of experience and knowledge. A new member to the team will be accomplished in building a diverse range of software and tools, from hardcore data crunching engines to frontend web interfaces and should be able to demonstrate this through a portfolio of work. They should also be able to discuss and show knowledge of different design patterns as well as the coding paradigms of procedural, object oriented and functional programming.
Our infrastructure is just as important as our code and we leverage this to get the most we can out of our products. This includes designing for resiliency, redundancy and scalability, a new engineer should be willing to jump right into the discussions and throw their opinion into the mix as well. Providing insight into new tools and techniques as well as being able to provide cogent arguments as to why a tried and tested solution may be better.
Our codebase is diverse, with a focus on selecting the right tool for the job. We are not afraid to refactor and adapt to meet our goals. We fail fast and iterate our way to success! Picking the right languages, tools & infrastructure is equally as important as software engineering know how. All our engineers are expected to cross train in all the languages & tools we work with.
Our current technology stack includes, but not limited to:
- Bash, HTML, CSS
- MongoDB, PostgreSQL, Redis, Neo4J
- Docker & Kubernetes
Main duties and responsibilities:
- Design & build scalable software from both inception and existing POC solutions
- Maintain existing solutions
- Provide support to the Informaticians and Data Scientists with their own development
- Work with the team to successfully deploy solutions
- Write and document clean, maintainable source code
Essential Qualifications and Experience :
- Demonstrable experience in at least one of: Go, Scala, Java, Python
- Commercial software development experience or equivalent Computer Science/Software Engineering/Science related degree
- An understanding of good software design principles and agile practices
- A good understanding of relational databases (eg MySQL/Postgres)
- Effective communication skills
- Ability to work both independently and as part of a team
- Strong organizational techniques, including the ability to handle a variety of tasks in a fast-paced environment
- Existing right to work in the UK
Desirable Qualifications and Experience:
- Good knowledge of NodeJs
- Experience of graph databases (eg Neo)
- Experience of document/object databases (eg MongoDB)
- Experience of messaging systems (eg RabbitMQ/Kafka)
- Understanding of docker and kubernetes
- Experience in building web interfaces using any of : Angular, Polymer or React. Other JS Frameworks are acceptable.