We provide the online infrastructure to empower education communities.
We make it possible to create accredited programs with speed:
— We help educators to launch colleges, manage collaboration between tutors, create new or transfer existing courses online.
— We help students to connect with the right professor anywhere in the world. Students on the platform earn credits, which they can accumulate to be eligible for accredited degrees.
We build the operating system for higher education
The Woolf platform is actively being developed in Ukraine. It is full of nontrivial technical challenges. Today we focus on 3 main areas: organizations and multi-tenant architecture, courses and sustained engagement in studying, and government regulations.
The keystones to the success of our mission are powerful technologies, stable processes, and talented people.
Woolf is full of nontrivial technical challenges:
— We created an in-house solution for chats and added Zoom integration to mix asynchronous studying and online meetings. We are working on the WebRTC server for in-house video calls and a feature-rich WYSIWYG editor with real-time collaboration support. We support multiregional infrastructure to connect students and tutors around the world.
— We value our customer privacy a lot. We implemented secure data storage and preparing ourselves for SOC2 compliance. For users who need more control, we implemented multi-tenant architecture with the ability to set up private instances in minutes.
— On Woolf academics develop accredited courses and deliver high-quality content. We cover all technical needs for them, including media assets streaming, real-time activity events, fast & easy payments with Stripe, advanced data search with Algolia, etc.
— We implemented many enhanced solutions to support our system: GraphQL federation with gateway and subscriptions support, decoupled cache implementation using Redis, internal micro-services communication using NATS, custom tasks using GCP cloud run, and many more.
We use edge technologies, but at the same time, we use only production-ready things, which have a great community behind them and proved themselves in the real world. We are big fans of modularity. We follow micro-backends and micro-frontends principles. It makes us more flexible and independent in our work.
Our server apps and web apps are written in the latest version of TypeScript and communicate with each other using GraphQL.
— Server apps are based on NodeJS and use libraries like PrismaJS, NatsJS, MoleculerJS, KnexJS, FastifyJS, etc.
— Web apps are based on ReactJS and use libraries like URQLJS, RecoilJS, FelaJS, I18NextJS, SlateJS, etc.
— Our multi-environment infrastructure is running on GCP. It is configured using Terraform and deployed using Kubernetes & Helm. Our CI/CD pipeline is built with GitHub Actions.
— One of our key principles is stability and predictability. We want to make sure that we know what we will do in days, weeks, months, years, and we build all our processes around that.
— We carefully track workloads and do not favor overtime work. We set up multiple environments and before merging to production we force each milestone to pass all tests.
— We pay attention to our code quality a lot. It helps us to deliver stable high-quality features to our user on time.