The Engineering Platform team at Grammarly, while technically focused, is also involved in the onboarding process for new team members. That comes from the team’s focus: to empower every engineer to easily build, develop, and maintain any Grammarly product offering using the Platform toolset. Naturally, the sooner engineers know about that toolset, the sooner they can use it to have more ownership and autonomy throughout the development cycle.
The Engineering Platform team created the Platform University project, our educational program for new hires at the beginning of their Grammarly journey. This project provides guides and tutorials that we develop and curate. It helps anyone at Grammarly quickly learn the basics of the third-party services and cloud hosting we use and the tooling we’ve created for different infrastructure tasks.
With our remote-first hybrid working model, the educational resources in Platform University help engineers solve problems quickly without depending on other teams—which also restores time that Platform on-call engineers might have otherwise spent answering questions in Slack!
Why we created Platform University
The variety of services the Engineering Platform team provides is wide and includes many homegrown tools. Some examples are:
- A custom-built logs and metrics aggregation system that allows us to ingest observability data from millions of Grammarly applications
- CI/CD infrastructure that runs thousands of pipelines to support the delivery of our back-end and front-end services
- Automation services used to create cloud accounts pre-filled with all needed resources
- Slack bots and applications that ease information sharing about network topology throughout the organization
- Templating tools for fast and predictable bootstrapping of the new environments needed to develop and host a new service
- CLI tools used locally and in CI/CD to manage and deploy back-end services
In addition to the above, we use several SaaS and self-hosted software products and infrastructure management tools. The Engineering Platform team creates abstractions around these tools to reduce the workload that would be required from other engineering teams to develop and maintain the underlying services.
It’s no surprise that, with a fast-growing engineering organization, in recent years we began to receive more and more questions in our Engineering Platform team Slack channel, where we provide on-call support. Sometime in 2020, the idea to create a self-service educational platform was born.
We did in-depth research and asked engineers to complete a survey to understand what information they needed and how they’d like to receive it. In response, we created Platform University and launched it in March 2021.
Platform University is a set of online tutorials that gives essential knowledge about using our Platform offerings, automation, and management tools. With both written tutorials and video lectures, we cover various topics, such as using our infrastructure, maintaining deployed applications, and setting up observability.
One of our main goals was to save engineers from having to search through a wide variety of documentation. Though diving into the source documentation is unavoidable sooner or later, Platform University provides a solid foundation. Everything you need to know about development tools and services at Grammarly is in one place and laid out in a series of clear steps. Once engineers get the basics, further searching and documentation skimming becomes easier and more productive.
What Platform University teaches
The program gradually leads engineers from a Day 0 state, with an empty environment, to a Day 2 state, where infrastructure is ready, the application is deployed, and observability tools are set up.
Platform University is designed to answer questions related to:
- Deploying code: We educate engineers on everything from designing the infrastructure to setting up ECS (Elastic Container Service) clusters, load balancers, and task definitions using Terraform.
- Monitoring: We explain how to use our log management system and find application and system logs. There are tutorials for tracking time-series metrics and setting up alerts too.
- Connecting to other services: We show how to set up identity and access management for your services and how network communication is organized in AWS.
Our tutorials explain how to use cloud services or infrastructure management tools to manage cloud resources. Even more importantly, we explore how to use all the tools and products together in different use cases and scenarios.
Often, engineers learn best through practice and experimentation. So we also have a special environment where engineers can practice. It’s a kind of sandbox where they can create, break, and investigate things without harming development or production environments.
How did we decide what engineers need to know?
After doing a lot of research and interviewing our colleagues, we developed a “user journey” visualizing every step an engineer needs to go through to deploy their project and make it production ready. Along the way, we noted pain points and open questions.
With this information in hand, we chose the topics for tutorials. And the visual representation helped us compose these tutorials into a complete user journey or mini-project, where every tutorial is a piece of the bigger picture.
Another reason for spending some time building a user journey is to get an accurate representation of things that can or should be automated. By identifying pain points, this map has also helped us build self-service solutions for other teams. For example, setting up and configuring CI runners or log storage is now automated because these were time-consuming tasks for users as well as for the Engineering Platform team.
What do the tutorials look like?
Writing educational tutorials is a challenge. And there is no “one size fits all” approach to creating a tutorial that everyone will enjoy. Our approach was to make the lessons easygoing yet challenging, while ensuring that each tutorial had a clear outcome.
The tutorials add up to a story, which provides a feeling of working on a whole project rather than fragmented pieces. But if an engineer needs to dive deep into a particular topic, we also provide a more detailed set of documentation grouped by service or tool.
Every tutorial has its own learning goal, a defined set of prerequisites, and a list of the next steps. This helps keep the user in context every time they start or finish a tutorial.
We provide code snippets and diagrams to explain the essential parts, but we do not copy and paste text from the documentation of involved services (our own or a third party’s). Instead, we provide links to the docs so as not to overload the tutorials with explanations.
Following the KISS principle, we use basic headers, 2–3 sentence paragraphs, and a minimum of colored/styled text.
The outcomes
In a nutshell, Platform University contributes to a “you build it, you own it” approach where developers have wide operational responsibilities and control.
Of course, engineers shouldn’t need to know every detail about infrastructure or tools to own what they build. The Engineering Platform team at Grammarly is responsible for abstracting many tools and solutions in the cloud into an easy-to-use set of automation and utilities so that engineers can stay focused on building.
With the educational resources offered through the Platform University program, engineering teams benefit in the following ways:
- Before any code is deployed, having some background on our systems helps engineers design a more reliable solution from the start.
- After code is deployed, code owners are equipped to handle many of their own infrastructure needs, such as monitoring and scaling. This is helpful because the code owner is the person who will best understand their project’s unique needs and requirements.
- Engineers are able to respond to incidents much faster—if you know how something works, you’re much better at troubleshooting it.
- Engineering teams get more autonomy and have less dependence on other teams, so we can launch new projects and features more quickly.
An additional benefit of the Platform University program is that it frees the Engineering Platform team from describing the same topic multiple times for different teams, giving us the opportunity to focus on creating more developer productivity tools!
Looking forward
We currently include Platform University as a mandatory onboarding task for new engineers. They don’t have to read all the content, but they do have to view two 20-minute video presentations that describe the most important things they’ll need to know. Later, they can take the self-paced tutorials and learn in detail about the things they watched in the videos.
As a result, we’ve significantly reduced the number of repetitive and similar questions the Engineering Platform team receives. Because engineers can be more proactive and efficient, we get almost no questions about the topics covered in Platform University.
We’re constantly monitoring comments and feedback on the tutorials. Every half year, we send out another survey of engineering questions and support needs. We use the results to make significant updates to Platform University and other internal offerings provided by the Engineering Platform team. While maintaining our existing tutorials, we continue investing in new automation tools to help engineers build software and services faster than ever.
We also want to explore and experiment with new ways of education. During Grammarly’s latest Hack Week, we worked on a project that presents Platform University topics in the form of an old-school text-based adventure game played in the terminal. This project is still in development, but we believe it can bring some fun to the education process.
Do the values described in this post resonate with you? Grammarly’s Engineering team is growing and hiring—and you might soon be taking the Platform University course yourself if you apply for a role [here].