Live coding a live coding platform

Profile Picture
- Published on Sep 28, 2019馃審 Public

How do you develop a live coding platform? Well, by developing it live. :)

It鈥檚 no surprise that working remotely is growing. The benefits are great, but what about the problems that it might generate? We started working remotely one year ago while building a screen recording tool and very quickly we noticed the convenience but some real new challenges on how we were working. Basic interactions suddenly were slow and with a lot of frictions:

  • If I鈥檓 facing an issue with my code, how do I ask for help?
  • How do I know what other people are working on?
  • How can I learn from the people I work with?

I鈥檓 not going to talk about the benefits of working remotely, we all know you can work from any location, have a flexible schedule and no commute. I鈥檓 actually interested in the new issues faced by the people when they are working remotely.


We identified three main challenges:

  1. Communication
  2. Isolation
  3. Visibility
Communication

When you are not in the same room you must be intentional about talking to others. Is not as natural as meeting someone in the coffee break and having a quick chat. It鈥檚 also hard to know what your teammates are working on. If you are just 2 or 3 people is kind of easy, but if the team is bigger you are going to lose their progress and also their struggle.

What about when you need to ask for help? We noticed that having simple technical doubts required much more time and effort to solve. This made our interactions slower and sometimes we avoided asking for help at all.

When talking to other programmers, we discovered that mentorship and onboarding a new teammate is a big challenge.

Isolation

Accountability is hard to replicate when you are not in the presence of other people. We know that this impacts people鈥檚 productivity when they are not disciplined. We also felt sometimes working without a purpose or not building a culture. Just like accountability, recreating momentum and the feeling of achieving something fades when you don鈥檛 have the standard social interactions with other people.

Visibility

We actually didn鈥檛 face this (maybe because we were just 2). However, a lot of developers that we interviewed expressed that they are worried that their efforts might not be recognized by their managers and this might affect their promotion. When we talked with the managers we could understand the other side and that they were concerned about not feeling the team and knowing how is everybody.


How to solve this?

We believe there鈥檚 going to be a space that developers can work with others as if they were in the same room. Where is easy to learn from others and store what you know in a simple format. We are building it and it鈥檚 called GitDuck.

With this platform you can stream in real-time your code linked to the video timestamps, so you can click on the code and watch the programmer working. You can see the code side-by-side with the video, so you can easily understand the full context.

To build this platform, we are working live most of the time and sharing our progress via our profiles. We internally use it for documenting all our progress, doing video code reviews and just asking for help between ourselves. You can check us at https://gitduck.com/drag0s and https://gitduck.com/thiago.

We are seeing people using it for:

  • Async pair programming
  • Recording tutorials or walkthroughs
  • Video code reviews and
  • Live coding

Check a demo below 馃憞