Over a million developers have joined DZone.

Upcoming Series: IoT Platform Design Docs

DZone will be posting Cesanta's series about the design docs that they used for building their Mongoose IoT Platform! Stay tuned for more design docs action!

· IoT Zone

Access the survey results 'State of Industrial Internet Application Development' to learn about latest challenges, trends and opportunities with Industrial IoT, brought to you in partnership with GE Digital.

How Our Engineering Team Works

Mongoose IoT Platform is growing; in fact, stay tuned for some exciting releases soon. We get asked a lot how we make decisions and the background to how Mongoose IoT Platform is built. So, over the coming months, we are going to share a series of our Design Docs to give you a unique insight into how our engineering team works.

What Is a Design Doc?

Every engineering team makes multiple decisions on a daily basis. Some decisions are more crucial than others. For example, the decision to name a function isn’t very important if it’s a local helper function. However, if it’s a public API function in a popular product, it becomes very important.

The Cesanta team follows this rule: if a decision is important, then it should be outlined in a document which the rest of the team should approve. This ensures everyone is one the same page and all crucial decisions are sense-checked. We call these documents “Design Docs”. They vary in detail and length depending on the decision at hand. What’s important in each design doc is that it explains the problem, suggests an ideal solution, possible alternatives and a rationale for the decision we want to make.

Think of them not as product documentation, but rather as a written history of the engineering process.

Who Writes Them?

Cesanta_Eng_Team.jpgAnyone on our engineering team can write a Design Doc. If you follow our blog, you’ve more than likely have read some of their musings already. Most of the Design Docs we will publish are authored by Marko, Dmitry, Deomid, or Sergey.

Sergey is our CTO and he co-founded Cesanta. He is also the original author of Mongoose Embedded Web Server.

Marko is the first engineer to have joined the Cesanta team. He worked with Sergey in Google and is your man if you really want to get to the root of a problem.

Dmitry joined us in October 2015 as a key member of the engineering team. His background is in embedded development and he strives for software elegance.  

Deomid, aka Rojer, came to Cesanta in April 2015 as a software engineer. He previously worked in Google and if you follow our code examples on the blog, you will know him already!

While these are the main authors, know that the entire engineering team works on the Design Docs together to make the best decisions for Mongoose IoT Platform.

Why Publish Them?

Design Docs are not documentation but rather the history of our engineering process. We believe these will give the wider engineering community interested in the Internet of Things a unique insight into how we work. Not because we’ve got this cracked, but to start discussions and be transparent. We want IoT to be accessible to all engineers, so why not open up how we work?

We’ll start with a Design Doc describing the visual design of the “on/off switch” control in an IoT application and how it is different from other switches used to control equipment. The resulting on/off switch controls are implemented by Mongoose IoT Platform.

Here is their first post: Multiple Switches, One Light.


The IoT Zone is brought to you in partnership with GE Digital.  Discover how IoT developers are using Predix to disrupt traditional industrial development models.

process,platform,engineering,team,mongoose,insight,function,api,embedded,design docs

Published at DZone with permission of Sergey Lyubka, DZone MVB. See the original article here.

Opinions expressed by DZone contributors are their own.

The best of DZone straight to your inbox.

Please provide a valid email address.

Thanks for subscribing!

Awesome! Check your inbox to verify your email so you can start receiving the latest in tech news and resources.

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}