Engineering Principles at Preply: Our recipe for technology in hyper-growth
Our Engineering Department has been growing rapidly recently. Over the last year we’ve doubled in size and we are now over 60 engineers. With this growth we’ve faced many challenges in engineering not uncommon to expanding tech companies.
There is one scaling challenge however that is a bit more abstract than the day-to-day, technical, business-as-usual, ones…
How do we scale knowledge, and ways of thinking about engineering, at Preply?
We’ve grown in number, and expanded geographically from Kyiv to Barcelona, and where engineers were once very close to the original voice and vision of Preply engineering they are now a little further away.
In order to address this we’ve decided to document our Preply Engineering Principles. If releasing code is the “what” we do, the principles are the “how” we do it. It’s how we get to decisions, it’s where we focus our energies and efforts, it’s codifying, and therefore being able to scale and share, our unique way of approaching engineering. It’s our special sauce that we believe will make us successful as an engineering department and as a company. In these principles you will see a focus on data and experimentation that is deeply ingrained in Preply culture. We’ve also documented values that we believe will continue to support the teams and individuals within the department as it grows. It’s a living document, it lives in Github, and is open to PRs and already incorporates feedback from our engineers.
So without further ado, here are our Engineering Principles — an insight into the engineering vision and culture at Preply.
Introducing the Preply Engineering Principles!
1. We balance product optimization vs. innovation
There is a constant trade-off of exploration vs. exploitation. We believe that these two directions go hand-by-hand and can be executed in small, data-driven iterations. Our growth engine for optimization is A/B testing.
We expect innovations to grow from within the teams. To fuel that we organize hackathons, involve developers in product planning, and focus all of the organization on some features that we believe are strategic. When we are talking about innovation, that does not mean that we are not A/B testing them. Rather that we are ready to open new niches and lines of the product instead of optimizing existing ones.
Examples of recent product innovations in Preply:
- Preply Vocabulary
- Preply Methodology
- Preply Enterprise
- Preply Space
- Preply Mobile app
- Preply Referral Program
Technical innovations:
- Server Side Rendering with Next.JS
- Async data synchronization with Kafka
- Image recognitions and ML using AWS Rekognition
- Infrastructure as a code
- AWS Lambda
- GraphQL federation
2. Data is a new oil and a defense barrier for Preply
We have a limited number of data extensive product features. This status quo is not an option. We believe in the Preply flywheel:
- driven by data, great team and enough of investments we build the great product for the customers
- more customers are using our product and it helps us to speed up both optimization(A/B testing on the scale) and innovation phases (Preply Labs).
- we have more data on what is needed for customers(A/B testing) and are able to optimize a product for customers more precisely (personalization)
- a better product attracts more customers as we leverage network effects and economy of scale
- this drives revenue to the company
- company is wisely investing revenues into marketing, hiring great people and supply given we understand the math and unit economics of our business
- driven by data, great team and enough of investments we build the great product for the customers (and back to #1)
We are committed to building data expertise within the company. Machine Learning and AI should be one of the defense barriers for Preply.
3. Flexibility is required for growth
At Preply we understand that with growth and expansion, comes evolution, adaptation and change. Regularly strategic, sometimes reactive, occasionally chaotic, we expect change and adapt to it and support each other through it with understanding and empathy.
Stability is important, even in a changing environment, and our stability comes from strong and lean shared processes. We are not afraid of embracing low-friction processes and tools that help us stay fast or provide common standards and structures for our working life. Our attachments to these tools are loosely held and we favour adaptation and experimentation on tools and processes, over a bureaucratic adherence to them.
4. Ownership and trust
At Preply we believe that trust and full ownership is one of the most crucial parts of the team relationships. As a part of these principles, we grant an Employee Stock Ownership Plan to every team member. It’s the most direct way for every employee to be an important part of company success.
As an engineering team, we believe in the approach “You build it, you own it”. Every engineer takes full ownership over certain areas of responsibility from inception to completion. Also, we strongly encourage you to take initiative in product discussions, to share your ideas and turn them into life.
Our codebase consists of the monolith and some services around it. Right now the process to decide if something should be a service is Architectural Council.
We as a company, believe in a customer centric approach. So we encourage every engineer to follow this principle and to be involved in communication with our customers. Following this approach, we could get deeper insights about customer needs and translate them into our experimentation framework.
5. Connected Team
At Preply, engineers or their squads don’t sit in silos. Successful engineers and engineering teams at Preply work as connected nodes. They are connected to their customers and they are connected across disciplines, from data, customer support, research to design. And of course connected to their own team members and their colleagues in other teams.
We recognise that we work across different locations but that we strive to keep these locations connected and supported as one engineering chapter, growing together.