Tutumcloud / Dockercloud

Build, deploy and manage Docker powered apps on any cloud

cover

The Project

I started working at Tutum as an intern in April 2015 in Madrid, Spain. Tutumcloud was the main product of the company. Its main objective was to provide behind a single interface a way for a user to build, deploy and manage docker powered apps and host them on one or many nodes from one or many cloud providers.

This was my first time working in a startup and on a product that had several thousand users and also my first time contributing on building a web interface to manage docker resources as a professional (I built 2 different "Docker Web UIs" in the past:

  • ArrowAn icon representing an arrow
    Acadock in 2013
  • ArrowAn icon representing an arrow
    HarborJS in 2014

as respectively a Hackathon project and a student project). My main focus was first on some system containers that were deployed on user's nodes such as a streaming server in NodeJS, a network daemon built-in Go as well as a Go SDK.

After building a full-featured product, providing an easy way to do CI/CD with Docker, auto-deploying resources, and being very close to go out of beta; Tutum got acquired by Docker and the product got renamed to Dockercloud. Following this acquisition, I got to work almost full time on the new Dockercloud UI which was built on React and Redux, while maintaining and updating the legacy Tutum system containers such as Tutum Live, Tutum Weave Daemon or the Tutum Go SDK (which were my last experience in Golang).

Today, only the repository management and the organization management of Dockercloud still exist as part of Docker Hub as every Docker SaaS product were consolidated into one as of December 2018. Sadly it seems that all of the open-source contributions that I got to work on at Tutum got either deleted or privatized at Docker, thus no links will be provided in this project case study.

Technical details

As part of the Tutum team I got to work in:

  • ArrowAn icon representing an arrow
    Go
  • ArrowAn icon representing an arrow
    React
  • ArrowAn icon representing an arrow
    Redux

Go was mainly used for the system containers. Tutum Live though was originally in Node but I got to rewrite it in Go in late 2016. The new Tutum/Dockercloud UI was first written in Angular but was never released, we switched to React/Redux once the company got acquired by Docker. This was my first experience with both of these technologies and I had to learn them pretty fast to get up to speed before starting the rewrite.

Personal Growth

Tutum was both my first professional experience and my first startup experience. For the first day, I've stepped in the office to the last day before transitioning to Docker, I've got to learn the basics of what it takes to be an engineer as well as working with an incredible team. Moreover, this was an opportunity to learn React and Redux, which paved the way towards me becoming a frontend engineer and working closely with product managers and designers which is something that I absolutely love doing every day.

Challenges

First user facing product I got to work on.

Working at Tutum was my first job in a startup, which was both exciting and a bit stressful.

Having to do support

Since we didn't have any support engineers, the whole Tutum team had to do customer support themselves. I had to learn quickly how to answer customers' questions and try to fix their issues as quickly as possible.

First steps with React

I had to learn React and Redux in a matter of a few days when I started working on the new Dockercloud UI. As I've been told many times, React is easy to learn but hard to master and it was the case. I was able to build components pretty easily from the start, but building efficient components or views took me some time to master, and I'm still learning today as I'm writing these words. Redux was perhaps a bit more complicated to start with, I was only familiar with the MVC model before which was very popular with Angular.