Web katas at Redgate

santiago arias
Ingeniously Simple
Published in
2 min readNov 7, 2017

Following Tugberk’s blog about React at Redgate, I would like to talk a little about what we are doing to get people into web technologies.

We are currently building a series of web katas or small exercises to get people accustomed to web technologies starting with React. We progress through different tasks and ask developers to solve the task at hand following some constraints.

introduction to web-katas at Redgate

Redgate has a set of guilds (self-organising communities built around a shared interest and a shared goal) and the web katas are part of the Web Guild. Its role is to help teams at Redgate learn web technologies and help them as they start new projects.

The web-kata repository is open source, available here and at the moment the first set of katas (1 to 5) are available. This first set of katas aims to teach the basic React idioms like components, state, props, etc. Including when to use them and when to avoid them.

  • kata 1: introduction to a React App
  • kata2: add and remove objects
  • kata 3: filter, show and hide objects
  • kata 4: add a router to your App
  • kata 5: interaction with a backend server through REST API calls

It is not about the speed and the amount of concepts we teach or expose users to. It is more about mastering the key concepts and going through them in a repetitive manner. We try to enforce constraints such as to use React without Redux to show the good and the bad parts of it. The aim is to expose engineers to the pains Redux can solve, so they know when it is appropriate to use.

Each kata usually takes 1 hour to complete and we usually meet on Friday’s to discuss different solutions.

Example of PR presenting a solution for web kata 1

What’s next?

We will continue to build this series by going through Redux and then move to TypeScript.

If you are doing something similar we would love to hear from you. What has worked and what hasn’t when exposing your development teams to different web technologies?

--

--