“It takes a village to raise a child,” says Steven Stojanovski, cofounder and CTO of KeptMe. “And there’s little doubt that helping teachers, parents, and caretakers communicate more effectively leads to better outcomes for each child.”
Since 2012, Hong Kong–based company KeptMe has offered an electronic learning portfolio that adults involved in a child’s educational development can use to share resources like school reports and photos of classroom activities. KeptMe’s mobile-ready app includes offline functionality, but also makes it easy to upload documents digitally, providing children and parents with a media-rich record of the child’s growth.
KeptMe employs 20 staff members and its free app is used by more than 4,000 schools in Hong Kong, Australia, New Zealand, Singapore, Japan, the United Kingdom, and the United States.
“There’s a common misconception that technology will, by its very nature, detract from educational experiences,” says Stojanovski. “However, with KeptMe, we’ve shown that it can be a valuable resource for students, parents, and teachers alike.”
Stojanovski—together with Leonard Ng and Christina Keing—founded KeptMe in 2012. All three were parents who faced a common challenge: On the one hand, they wanted to be involved in their children’s education; on the other, they found it difficult to get an in-depth understanding of what their children were doing each day at school.
Initially, Stojanovski says, KeptMe was trying to answer one question: “How do we bridge the gap between us [parents] and educators, so that parents can play a larger role?” He envisaged a cloud-based platform that teachers could use to share documents and media with parents.
However, while interviewing teachers to get feedback on his idea, Stojanovski discovered that many of them were wary of the additional responsibility that using KeptMe might entail. “I heard from teacher after teacher that they were already pressed for time, and fighting to keep up with bureaucratic requirements,” he says. “And that changed our goal entirely.”
KeptMe’s objective became to free teachers from cumbersome administrative tasks, so that they can focus more on each child. The fact that parents also benefit from KeptMe’s online learning portfolio is a “downstream” benefit.
Having refined the idea of KeptMe, Stojanovski spent a year developing the information architecture that underpins the KeptMe app and allows it to adapt easily to educational requirements in various countries. He then set about looking for a cloud-service provider that would help him reach his growth and performance targets.
“I knew I needed a powerful platform that could scale to meet unpredictable growth, and offer excellent security,” he says. “I also wanted to avoid significant capital expenditure so that I could invest instead in the app’s development.”
Why Amazon Web Services
Stojanovski considered Amazon Web Services (AWS) alongside Microsoft Azure and Rackspace. “We could get pieces of what we were looking for from other cloud-service providers, but not a full solution,” he says. “Only AWS offered us everything we needed.”
According to Stojanovski, the KeptMe team were drawn to AWS for three main reasons. First, the company had been using a Linux environment during the development stage, and it would be fairly straightforward to shift it onto the AWS network using ready-made APIs. Second, Steven and Christina are information security experts, and they judged AWS to be the safest of the available options when it came to storing sensitive data about a child’s educational development and performance. Finally, AWS offered competitive pricing and its scalability meant that KeptMe would never have to pay for unused resources.
After selecting AWS, KeptMe began implementation in late 2012. Stojanovski first migrated his development and quality assurance infrastructure—which had been running on three desktop computers—to AWS. The rest of the KeptMe infrastructure was built from scratch within AWS.
KeptMe now uses Amazon Elastic Cloud Compute (Amazon EC2) to host its virtual machines, including a “web farm,” a series of virtual computers that handle KeptMe’s front end and API requests, and a “work farm,” a series of virtual computers that run asynchronous tasks. The company runs 25–30 M3 medium instances, with the number fluctuating in response to changing usage patterns. When customers access KeptMe, Amazon Route 53 automatically directs them to the information they seek.
The system uses Amazon Relational Database Service (Amazon RDS) to sort APIs and customer data into a MySQL relational database with a multi Availability Zone configuration. Information that customers frequently access is retrieved and stored by an Amazon ElastiCache instance running Redis, an open source cache broker. This also means that frequently accessed data is available offline, ensuring that users can access 85–90 percent of KeptMe’s full functionality even when they don’t have an internet connection. Media assets such as photos, videos, and audio files are stored with Amazon Simple Storage Service (Amazon S3).
For security, KeptMe uses Identity and Access Management (IAM) to manage customer accounts and access permissions. It has also divided KeptMe’s information architecture into six main sections contained within separate virtual private clouds with multiple subnets. The whole system is housed in AWS Sydney and Singapore data centers, offering the promise of quick disaster recovery. KeptMe can monitor it easily using Amazon CloudWatch.
Finally, to communicate with customers, KeptMe uses Amazon Simple Email Service (Amazon SES) to send emails about updates and other relevant information. When customers “communicate” with KeptMe by requesting reports or downloading new resources, their requests are handled by Amazon Simple Queue Service (Amazon SQS).
KeptMe is currently experimenting with AWS CloudFormation to rearrange its existing infrastructure for maximum efficiency.
“One of the most impressive things for us has been the simplicity with which the different AWS components fit together,” says Stojanovski. “We were able to build, deploy, and master the new system ourselves, occasionally referring to instructions in the AWS knowledge portal. The whole process was impressively straightforward.”
Stojanovski’s enthusiasm for AWS is clear when he talks about how it helped KeptMe get off the ground and expand, within less than three years, to more than 4,000 schools in nine countries.
“AWS is reliable, fast, and affordable,” he says. “Since launching, we’ve increased our customer base dramatically, growing over 500 percent in the past 12 months, all while maintaining 99.95 percent uptime.”
Using AWS, KeptMe was able to avoid significant capital expenditure, freeing funds for operational expenditure. “As a bootstrapped startup, this made all the difference to our early success,” says Stojanovski. “It meant that we could instead spend money on improving the app and recruiting talented software engineers.”
For Stojanovski, three benefits of using AWS stand out. First, the application has allowed him to build a flexible infrastructure for the KeptMe app. Whether a teacher is in Japan or Australia, KeptMe automatically adjusts to suit local curricula and educational reporting requirements.
Second, AWS has helped KeptMe achieve its goal of reducing the amount of time teachers spend on administrative tasks. “We’ve found that teachers using KeptMe spent 70 percent less time writing and sharing reports or other media, even though they’re sharing more of it,” says Stojanovski. “This is largely because KeptMe simplifies the process of capturing the necessary data, and makes it instantly available to parents via the cloud.”
Finally, Stojanovski reports that the inherent stability of AWS has provided KeptMe with the confidence it needs to continue growing, helping children all over world benefit from a more informed and collaborative educational experience. “With AWS, we know that our reach will never exceed our grasp,” he says. “If AWS is good enough for some of the world’s largest corporations, it’s surely good enough for us.”