This post is intended for software engineers, engineering managers, and, other roles in the engineering and data teams. It provides a peek into Up Learn and hopefully helps you decide whether Up Learn is right for you. This post will be updated regularly to ensure that it reflects what Up Learn feels like as the company grows.
Up Learn’s vision is to enable students to:
Learn anything, with guaranteed success, in the shortest possible time. Learn it anywhere, any time, at low cost, whoever you are, whatever your starting point.
We believe all curriculum learning can be done better on average through technology compared to teachers at schools. This belief is grounded in the ability of technology to personalize learning and enable unlimited access1. When this is achieved teachers can focus on non-curriculum aspects of child development - an aspect technology can never do better than teachers. In addition, technology driven curriculum learning enables democratisation of learning - anyone, anywhere can learn. It helps deprived populations of our world to move out of poverty - and that is truly motivating for me personally.
This of course is a very grand vision, and for the uninitiated even a little vague. So it is useful to know what Up Learn does right now and what our goals are for the next 2-5 years.
Up Learn Today
Up Learn creates courses for A Level (high school or K12 in other countries) students. It uses cognitive science research to create content and build technology that enables students to learn as fast as possible. We believe in the quality of our courses to the extent that we provide an A/A* (top two grades students can get) Guarantee.
We know we’ve built a great product because we have so many students tell us how Up Learn has transformed their grades from C/D to A*/A. Even a 13 year old, Alyssa Barros has self-studied using Up Learn and scored an A* in Maths.
We are still in the early days of our journey though. In the academic year 2021-22, ~40,000 students used Up Learn. Even so, right from day 1 we have balanced our desire to be a successful business with our mission to enable learning even when one cannot afford it. Of the 40,000 students that used Up Learn, ~10,000 received free access because they couldn’t pay.
We are about 50-60 people in size, with the largest team being the content team. The next is the product, data, and engineering team consisting of ~10 people across two cross-functional squads. So we’re still very small with lots of interesting challenges up ahead.
What Comes Next (and how you fit in)
Over the next two years Up Learn is going create courses for GCSEs (the exams that affect what subjects you can take in A Levels). In addition, we aim to double our market penetration among A Level students. This has significant implications on scale, technologies we work with, and team size (and thus developer experience).
Owing to the growth in A Levels market and entry into the GCSEs, we expect the students on the platform to 10x over the next two years. We currently do not understand what this means in terms of peak performance requirement. We also do not know the nature of the GCSE product and so are unable to predict the peak performance requirements. There are several interesting problems to solve here, of which I am listing a few:
- Since the A Level product is largely built it is possible for us to build performance monitoring and distributed tracing into the platform. We can then define SLIs and SLOs that help us monitor when things are not going well and invest in fixing the performance problems. Building performance monitoring can also enable us understand peak requests-per-second for the current user base. This will help us plan for 10x the volumes. If you have experience of doing this well or opinions on how to do this right, we’d love to hear from you.
- In order to understand what parts of our infrastructure fail, we can build a simulated workload of 10x the current user count and evaluate the performance of the current infrastructure. This will allow us to preempt any performance problems before they happen. But how to model a typical user session? How to identify if there are a variety of user session types? How to build the simulation that scales users from 1x to 10x? If you know how to do this well or would like to be a part of such a journey we’d like to hear from you.
- As we expand our product offering it is likely that we will need some sophisticated data types that PostgreSQL provides (we currently use MySQL). We will need to transition to a different database with as little downtime as possible. If you have done this before and would like to help us do this well, we’d lover to hear from you.
Initial research into technology usage patterns by GCSE students indicates that the best way to enable them to learn is to build a mobile application that allows them to quickly access Up Learn for a few minutes every day. This means that we will need to build expertise in mobile application development. We are currently leaning towards building a non-native application (React Native or PWA). However, if you are an experienced mobile developer and have well-thought-out opinions on how such a decision should be taken then we welcome your thoughts.
As we expand our product range, the marketing capabilities to schools, students, and parents will also need to be expanded. In particular, our public site, currently running on Wordpress, will need to deliver performance, high SEO scores, and flexibility for a growing marketing team. It is worth revisiting the decision on whether we should continue using Wordpress, transition to using it as a headless CMS, or transition to a new headless CMS.
Up Learn Specific Engineering Problems
There are specific parts of the product that need special engineering attention. I list some of them here to give you a flavour of them. If you find solving such problems exciting then we’d love to hear from you.
- Automatically evaluating quizzes where answers contain typos or synonyms is notoriously hard. When applying fuzzy matching to the problem of search, the results are good enough for the users. But doing so for evaluating answers is non-trivial. On the one hand we don’t want wrong answers to be marked correct even if there is only one letter wrong (e.g. bat vs cat). But we do want to mark the answer correct if the typo is trivial and doesn’t change the meaning of the answer (e.g. batter vs bater).
- Building a fast mobile UX that allows students to answer questions with special symbols has turned out to be non-trivial. How do you use the small screen space to show the answer box, large number of symbols on a custom keyboard, while ensuring the browser’s default keyboard doesn’t get in the way, but allow the default keyboard to be used if the user wants to?
- How do you evaluate the performance of a student’s estimated score in a course? Item response theory can help, but how do you do this at scale for every student for every course, every time a student watches a video or answers a question?
Platform and Developer Experience
Up Learn’s product, data, and engineering teams are going to double over the next one year and likely quadruple over the next two years. This brings its own set of challenges that we need to address. I list a few below. If solving these challenges excites you then we’d love to hear from you.
- How to set up good development, build, and deployment tools that work across multiple products to ensure developer efficiency.
- As the diversity of the products increases we will need to ensure appropriate test automation is in place that works across all the products. This will be necessary for us to make changes with confidence.
- Making product changes quickly will also require the ability for multiple teams to make changes and test them independently. This will require setting up special infrastructure that is dedicated to each team.
- We anticipate that we will move to machine learning tools to enable some of the product optimizations we wish to achieve. These tools will require special infrastructure as we test them and transition to using them in our product.
To Sum Up
If you find solving the above challenges exciting; if you want to spend a significant part of your life (your working life) towards empowering the future generations; then we’d love to hear from you! We’re a small team and plan to grow quickly. The nature of challenges will continue to change as we grow, and you are very welcome to join us for the ride. When I interviewed at Up Learn back in 2019, I was asked:
How would you feel if you were able to solve the problem of curriculum learning for all future generations?
I simply answered:
I’d die a happy man.
At Up Learn we work with some interesting set of technologies (see here, here, and here). And in addition, you’d be solving problems that profoundly impact lives of tens and hundreds of thousands of students every year. Sounds like the right mix for you? Reach out to me direct at zahir [AT] uplearn.co.uk or ping me on LinkedIn, and we can chat.
For more on teachers vs technology see Teachers vs Tech?: The case for an ed tech revolution by Daisy Christodoulou