Oji Life Lab: End-To-End eLearning Product Development

A dedicated development team of 6 Waverley engineers developed an end-to-end eLearning system to teach Emotional Intelligence. The native Android and iOS applications provide bite-sized learning steps, various card types, an integrated video library, chats, group sessions, a notifications system, integration with YouTube and Zoom, and a Mood Meter matrix.

Our Client

Oji Life Lab offers a first-of-its-kind, digital learning system that helps individuals and teams develop essential emotional and soft skills for work and life. Oji Life Lab is led by former Microsoft executive and tech veteran Matt Kursh (who ran the #4 site on the web while at Microsoft) with co-founders Dr. Marc Brackett of the Yale Center for Emotional Intelligence, noted psychologist and author, Dr. Robin Stern, and former Robert Half executive Andrea Hoban.

Project Analysis

The Client reached out to Waverley with a request to help build a smartphone-based learning system aimed at helping individuals and teams improve performance by boosting emotional intelligence. Rather than simply delivering information, the native iOS and Android applications would provide a complete learning experience, combining a variety of activities and developing lasting habits. The Client had an app prototype, basic UI/UX and functional specifications. They needed our help to build a full-fledged platform that is scalable and could be sustained for the long-term.

Waverley Solution

Under the supervision of an experienced Waverley project manager, we assembled a team of 5 engineers consisting of a Server-Side engineer, Android and iOS developers, and a software QA engineer. First, Matt Kursh came to Ukraine for an intensive discovery and planning session that lasted for one week. The team carefully estimated the client’s needs, helped structure the documentation, create use cases, and select the right tools and technologies. After planning action items sprint-by-sprint, the team embarked on developing an MVP. It was released in December 2018 into app stores and contained a variety of features:

  • Bite-sized learning steps.
  • Personalized learning flow, ability to track the learner’s level of progress.
  • Time-slots and time-based tasks.
  • Group sessions with the help of Integrated Zoom Video Conference Tool.
  • Layer text chats for guiding learners and one-on-one coaching.
  • A library of scientific text and video materials to deepen users’ understanding of EI.
  • Mood Meter, a matrix for measuring the mood level was also integrated into the app.


In order to quickly release an MVP version of the product, a decision was made to work with ready-made elements, such as Zoom for one-on-one and group videoconferences, Layer chat for student conversations, Learnosity constructor and learning analytics. As a result, server-side developers had to deal with multiple integrations. The team evaluated GraphQL – the emerging data query and manipulation language and proved its feasibility for the projects. One of the interesting challenges in this project was the video transcoding functionality. With the help of Elastic Transcoding Service, our engineers enabled the creation of so-called progressive videos, adapted for the web, to be streamed on mobile from the server.


The native Android app for Oji was developed from scratch based on Kotlin – the relatively new alternative to Java for Android. The team also used Google Architecture Components, a library for the architecture creation. The app consolidates all elements of the well-thought-out user learning flow, integrated with Layer and Zoom. In addition, mobile developers at Waverley introduced Learnosity, a web-based constructor for tests and assessments, into the native mobile app with no impact on performance or user convenience. Our engineers did a thorough investigation of the solution and advised the client on the advantages and risks of working with Learnosity, providing assistance in negotiations with this partner.


The native iOS application solves the same challenges as the Android app does. In order to cope with the situation when multiple data are updated simultaneously across various parts of the app, RxSwift and Realm were chosen. The app also supports numerous integrations, ensuring excellent performance and a high level of stability. Throughout the development, our iOS engineers consulted the client on various ways to implement the needed functionality, adjust user experience to the peculiarities of iOS devices, and smoothly submit the app to the App Store.


The biggest and most interesting challenge was extensive integration testing. All of the components had to be tested both separately and as one system. Luckily, the testing started in the early stages of the project, which helped to identify numerous issues way in advance before the MVP release. One more challenge was to test native iOS and Android applications on multiple mobile devices. QA team managed to solve this by using real devices in the Waverley test lab. The QA team was in close collaboration with the developers, reporting possible vulnerabilities and risks on the server-side, especially connected to the integration with clients, and third-party elements, such as chats, YouTube, Learnosity. The findings of ongoing testing often influenced major decisions on the architecture side.


For this client, we provided complete software product development services. Waverley estimated the task, gathered a team and is taking full ownership of all parts of the project. The team works in two-week Agile sprints under the supervision of a project manager. Other specialists are pulled into the project if there’s a need for specific expertise or to assist with urgent tasks. The team communicates in Slack, keeps track of the tasks in Jira and reports bugs with the help of Instabug. The client is regularly in touch with the team, knowledge sharing sessions onsite can be organized if needed. According to the client’s request, the team often concentrates on product optimization, looking for out-of-the-box ways to improve performance and provide the right quality of user experience.


The apps were launched in app stores and got their first downloads and users. The team now continues working on the app, not only fixing the bugs in the released prototype of the app but also adding new functionality and taking into account the feedback and insights from the first users.

Let us know how we can help