Voice of the body – behind the scenes of the technology used

In May 2014, after four amazing years, I resigned from Nokia.

Two weeks later I started working at SSIC.

(And if it’s on Twitter it must be true!)

If starting a new job is not exciting enough, on my first day I went straight to the SFJAZZ Center to meet my new colleagues and see them get ready to come out of stealth mode. The day after the big announcement: two projects are announced, Simband and SAMI. The first is an open platform for developers to work a wearable device the second is a data exchange platform. Basically the two hottest topics in technology today. If you are curious the full presentation is available.

First steps: understanding your products and your targets

Let’s take a step back. When I first interviewed in April they sent me an email in preparation of my first meeting and asked me to think how I would approach a diverse group of partners, a small group of highly technical engineers, a larger group of software developers in the embedded space and a broad group of developers that will create services in the cloud. When you are preparing for an interview you’ll try to answer any possible question, no matter how absurd, and I remember thinking “this is such a typical, impossible scenario, there is no such group of developers that goes from electrical engineers to cloud andWeb!”. And here I am, a month later, tasked to create the tools and manage exactly that group of developers. Crazy, right?!

The first week or two I sat down with most of the team members individually and I asked them more or less the same questions:

  • What do you think you are building?
  • What is your role in the team?
  • What do you think developers, partners and companies out there will want to do with it?

Unsurprisingly the answers were not fully aligned. It was still a relatively early stage for both projects and everyone in a team always has a slightly different view of the world based on their role and perspective. It was a lot of fun, my brain was running fast and ideas were popping up every second.

The goals of our developer ecosystem

My next step was to get familiar with the code, understand what the different parts were and how they interacted. After a few weeks of exploration and conversations we had a three-parts plan:

  1. Work the few early partners and identify a few others would want to experiment with our technologies
  2. Build a Web site to host documentation, examples and tools
  3. Identify the appropriate licenses for the different parts of the libraries and tools

All of the above should be done in about 4 months and be ready for the public for the Samsung Developer Conference (November 11th, 2014).

Our architecture of choice

The first option I evaluated was Atlassian. Both the Simband and SAMI teams had been using it for months and were happy with the combination of JIRA, Confluence and Bitbucket for tickets, wikis/documentation and source code management. It seemed a natural choice, so I started exploring. After a lot of reading, experimentation and research on alternative options we reached the conclusion that we had two paths, either Atlassian with the full package and all nicely integrated or Github that had more flexibility, but less pieces integrated. Probably the biggest point that drove our decision was “which serves our open community best?”. We decided to go with Github.

The architecture we chose is more complex, but offers a lot more flexibility. Confluence, like MediaWiki and other Wiki software offers a great visual editor. I especially liked the Gliffy tool in Confluence, very flexible, very powerful and very easy to use. On the other hand in Github we started writing in Markdown which proved to be VERY easy to pick even for people that never used it, but not nearly as powerful as Confluence or other Wiki servers.

Once you’ve written markdown you still need to convert it to HTML. We evaluated Jekyll, but we decided it was not meeting our requirements. Again, we decided not to take the most convenient option, but the one that gave us more control and flexibility. We picked middleman, a tool that takes your markdown and converts it to HTML. Running middleman ourselves and pushing HTML pages added quite a bit of complexity to configuration and management, but it also gave us so much more control on the content that it was well worth it. To build our pages and “ship” them we picked codeship, it is free in its basic package and it does exactly what we needed.

We had the perfect setup: SUPER simple syntax that anyone can pick up within a few hours, the ability to create the layout and content organization that suits us and the convenience of Continuous Integration.

From the beginning we planned to host our contents on Github Pages, unfortunately you cannot protect it with basic auth, so we had to turn to heroku until we actually opened to the public in November (3 months still counts as temporarily, right?).

In the spirit of open community and in an effort to welcome comments and cooperation as much as possible all our Web site contents are hosted in a Github repo called voiceofthebody.io and another called SamsungSAMIIO and each page on each site has a deep link to it so that developers can very easily suggest changes.

All our libraries and tools are also hosted on Github next to our documentation. SAMI has all the SDKs and demos available at https://github.com/samsungsamiio and for Simband we will soon do the same.

Planning the work, defining the architecture and implementing the entire system was very exciting and proved that most of our initial decisions were right. We made a few adjustments on the way, but there was never a moment when we felt we took the wrong path.

We made it to our deadline and on November 12th the project “Voice of the body” was opened to the public and the Web sites were announced in a big presentation at SDC. Here is the full video.

Special kudos to the smart and creative people at Bletchley Park, we could not have done it without them.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s