Designing products
for the Internet of Things

Designing connected devices is a process that too often leads to broken business models, due to an unbalanced excess of hype on the technology compared to the prior analysis of use cases and source of revenue. The classes on Designing products for the Internet of Things teach how to use fundamental tools for the preparation and evolution of fast prototypes. Universally applicable techniques during the development of preliminary versions of connected devices will lead to the discovery of the unknown: how and who will use my product and which advancement will be accelerated by having the product connected instead of working isolated.

Day 1: Business and definitions

  • where do money come from
  • how much money can I invest
  • how much can the product cost more
  • visualize and touch ideas
  • opportunity canvas
  • prototyping vs building partial products
  • Proof of Concept (POC) vs Minimum Viable Product (MVP)
  • User Stories as a description
  • Personas: IoT from a user perspective


Day 2: The components

  • basics on using Linux on the command line
  • useful installed components on a Linux development host
  • SSH and key pairs basics
  • serial line – ethernet
  • other low level channels
  • the Raspberry boards: variants
  • the Raspberry boards: capabilities
  • Linux on Rasbperry
  • the Arduino boards: variants
  • the Arduino boards: capabilities
  • Arduino echosystem as a paradigm of prototyping
  • serial line: basic protocols
  • other protocols
  • TCP/IP, name resolution, routing basics
  • HTTP as a general purpose protocol
  • MQTT history and basics
  • broker and messaging
  • the opensource components
  • An example: MQTT client using Python
  • An example: MQTT client using C
  • An example: MQTT client using Javascript
  • in-house hosting vs hosting as a service
  • bare metal vs virtual computing
  • Amazon Web Services overview


Day 3: Security and Case studies

  • history of information technology security
  • learning the basics
  • security models for local communication
  • security models for local storage
  • security models for cloud storage
  • security model for MQTT
  • how to build a Continuous Integration and Delivery development model