Senior Full-Stack Software Engineer

At Tassomai, we provide technology tools to improve education.  Our software is used by thousands of British secondary school students, teachers, and by parents.  Students use Tassomai to revise and learn, using "spaced repetition learning", and our algorithms tailor the experience to their existing knowledge and to how much they use the application.  Teachers use Tassomai to monitor their students' knowledge and understanding, freeing them from some of the more tedious tasks, to focus on what they do best: to teach.

We have tens of thousands of active users, are aiming to increase that, and to engage our users more.  We also have an ambitious company vision, involving leveraging our existing data to offer rich insights to other stakeholders in education.  To support both of these business aspects, we want to add to our small engineering team. We're looking for someone with a strong engineering background, who wants to work on a product they care about, and is interested in being involved throughout the product development lifecycle.

 Circles overlapping image
 
 

Experience and person specification

  • You have probably worked in an environment where quality was assured using code review, automated testing and manual QA, and certainly aspire to.  You might have an interest in test-driven or behaviour-driven development.

  • You are able to produce high-quality code, and to predict (with some accuracy) when you will deliver it.

  • You have worked successfully in teams which are at least somewhat Agile.  Ideally these will have been cross-functional, i.e. including members who focussed on product design and on testing, or you find such a working setup appealing.

  • You are relaxed and friendly, and are able on occasion to work to deadlines.

  • If in addition you have experience in (dev)ops, team leadership, or project management, that would be of interest, but certainly not essential.

  • Ideally, you have an interest in monitoring and optimising the performance of web services and/or front-end code, and have experience building or maintaining systems which handle upwards of a thousand write-heavy user requests per second.

Technical skills

You have strong skills in at least one of the following:

  • Object-oriented programming, ideally in python 3.

  • Event-driven/reactive programming, ideally using RxJS.

You can write unit-level and higher-level tests, to ensure adequate code coverage and that code you produce or oversee matches acceptance criteria.

More senior candidates ought in addition to be proficient in some of the following:

  • Software architecture: you can design APIs, and structure a codebase so that it will be expansible, flexible and maintainable.

  • DevOps: you know what infrastructure is appropriate to deliver robust web services, and are able to work with and improve CI/CD pipelines to ensure up-time and predictable response under load.

Responsibilities

The main responsibility will be to develop and maintain features.

  • Understand and develop the requirements proposed by product designers

  • Write code to implement those requirements, accompanied by automated tests

  • Refactor, where appropriate, existing code to make it more maintainable

  • Document code, and structure it so that it is easily understandable by others

  • Review code written by others

In addition, you are likely to contribute to the platform.

  • Our services need to handle many thousands of simultaneous users, with acceptable latency

  • They should remain running with only very minimal downtime, which if needed should be scheduled.

  • They need to adapt to changing requirements from the product side

  • Infrastructure costs should be anticipated

You would also participate in resolving bugs which may arise

  • Help to identify and analyse any bugs

  • Participate in prioritising and scheduling time to work on these

  • Where appropriate, work to resolve bugs and to appropriate an automated test to cover the case.

A healthy engineering team also teaches and learns, and we hope you'll help us do that by some of the following means:

  • Pair program with other engineers

  • Participate in internal hackathons (X% time)

  • Attend discussions of technologies that are unfamiliar to some of the team

  • Identify appropriate technologies to supplement/replace those we currently use

Technologies we currently use

We would expect you within the first few months of working here to have a solid understanding of, and to have worked with, most if not all of the following.

  • Python 3

  • Typescript

  • Angular 6

  • NgRx

  • RxJS

  • Django

  • Cordova

  • Postgres

  • Redis

  • Gherkin

  • Docker

  “  Working in our small engineering team means shaping products which are used by many thousands of people, so what you do has immediate impact."    Jonathan, Senior Software Engineer

Working in our small engineering team means shaping products which are used by many thousands of people, so what you do has immediate impact." 
Jonathan, Senior Software Engineer

 

Where would you be working?

We’re based on the 5th floor of an old pharmaceutical warehouse in Bethnal Green.  It’s a co-working space and we’ve bagged the best office which is light and airy with a lovely balcony - we love it.

There’s a great cafe, a gym offering bargain membership and we’re a stone’s throw from Bethnal Green tube and Bethnal Green overground stations.

  • EMI share scheme

  • Flexible working

  • 22 days holiday plus your birthday off

  • Time off between Christmas and New Year

  • Cycle to work scheme

  • Travel card loan scheme

  • More coffee-making apparatus than the rest of East London put together

Salary:

£45k - £80k, dependent on experience.

How do you apply?

If you are interested in discussing the role further, please write to careers@tassomai.com to arrange a call.