How MyMahi Moves Fast Enough to Keep up With Teenagers
- Customer
- MyMahi
- Founders
-
Ah, the college years: an exciting, eye-opening period of learning and growth. For some students, that is. Others are better served by skipping that chapter and heading straight into a skilled trade. New Zealand's educational system is wising up to that fact, and building a new multi-track high school experience that serves students well, regardless of which direction they head after graduation. Lucky for them, MyMahi's ready to power this educational revolution.
Now used in over a hundred schools in New Zealand and Australia, MyMahi serves multiple purposes. Schools can use the platform to track student course credits, offer digital modules around well-being and goal-setting, and build out bespoke, "hands-on" trade experiences that are part of the high school curriculum.
Building an Intentional Curriculum
Using MyMahi's "Projects" feature, schools can build out curriculum that allows students to work directly with industry veterans to study a trade. Educators can create discrete "tasks" that build relevant skills, as well as required "evidence" (supporting material such as photos, videos, or documents) that demonstrates they've met each requirement. This means students interested in Automotive Engineering have the same benefit of an intentional curriculum as their peers studying English Lit; but they can be off-campus learning how to fix a carburetor while their teachers are reviewing their progress on the platform.
Easy, Portable Information Sharing
MyMahi's "Discussions" feature allows students (as well as their teachers and mentors) to communicate in a group setting akin to Facebook Messenger. Everyone involved in the student's education can get progress updates, without synchronous meetings or having to travel to the school.
All data in MyMahi is owned by the student, who consents to sharing and connecting with other organizations. Their external work-study partners can see which projects they've completed, the "evidence" to support them, and the certificates they've earned from previous years. Students can share information without having to shuffle between external systems; with MyMahi, they're the hub. What they do at school doesn't have to be left at school; it can be taken with them, like a digital "backpack" (that'll never be left in the back of the bus).
Serving Lots of Students = Managing Massive Data
MyMahi built their current set-up—basic Caddy servers serving up static Angular apps—using Node.js, with GraphQL and CockroachDB on the back end.
They ran into their first big issue when integrating with some of New Zealand's larger schools. The integration was an instance per school (not cloud-based), and often physically hosted at the school itself. The syncs to MyMahi were on a push basis, with data coming through at a rapid and unpredictable pace. At the time, they were using AWS Lambda, which had a payload limit of five megabytes. MyMahi hit that limit regularly, and had to figure out how to pivot.
Rather than spinning up a more complex architecture (or hiring DevOps engineers, which they couldn't afford to do as a start-up), MyMahi started looking at other providers and decided to go with Fly.io.
They were able to put a monolithic HTTP server in front of their existing business logic, thrilled by the fact that Fly.io gave them the ability to "deploy a Docker container anywhere in the world from the command line with just a few commands." Excited by their initial experience, and continuing to to find the reduction in DevOps costs and pain worth it, they soon moved the rest of their infrastructure over to Fly.io. At the time this was written, they're in the process of moving their static front-end file hosting to Tigris.
Moving Fast Enough to Keep up With Teenagers
MyMahi's engineering team is small but mighty—just two developers, including CTO Stefan Charsley. This means they need to move fast, ramp new team members up quickly, and avoid incurring a lot of overhead when they deploy to new regions. Says Charsley, "With Fly.io, it's really just: 'Hey, these are the commands we used to set it up. This is how it works. If you want to launch into a new region, it's just these commands. If you want to scale, it's just these commands.' It's a real condensed subset of what you need to know to work with any other cloud provider."