Lessons Learned Writing Software at Whisker Labs

Lessons Learned Writing Software at Whisker Labs

Slides from a presentation at a meetup about connected devices on May 1st, 2017. Three lessons learned about software development in the IoT space are presented through the lens of Whisker Labs' experience bringing a connected device to market.

2a8171b6c385b865e30bf070cf588329?s=128

Evan Meagher

May 01, 2017
Tweet

Transcript

  1. HOW TO PUT A THING ON THE INTERNET OR: LESSONS

    LEARNED WRITING SOFTWARE AT WHISKER LABS Evan Meagher May 2017
  2. May 2017 @evanm Software at Whisker Labs Who? My name

    is Evan Meagher. It’s pronounced “mar”. I lead software development at Whisker Labs. I used to work at Twitter. Fig. 1—Portrait of the speaker eating pizza.
  3. May 2017 @evanm Software at Whisker Labs Table of Contents

    Framing the narrative Lesson 1: Mind your protocols and queues Lesson 2: Err on the side of conservatism Lesson 3: Everything old is new again Closing & Questions
  4. May 2017 @evanm Software at Whisker Labs Framing the narrative

  5. May 2017 @evanm Software at Whisker Labs Lesson 1: Mind

    your Ps and Qs A good way to contextualize these tiers of software is to consider their time scales.
  6. May 2017 @evanm Software at Whisker Labs Lesson 1: Mind

    your Ps and Qs Component Sensing element Sensor buffer Transmitter Applications Sample/ request rate ~2 kHz 10 Hz O(1) Hz - Time scale ~500 μs 100 ms O(1) s O(1)–O(1×106)
  7. May 2017 @evanm Software at Whisker Labs Lesson 1: Mind

    your Ps and Qs Fig. 2—A ring buffer.
  8. May 2017 @evanm Software at Whisker Labs Lesson 1: Mind

    your Ps and Qs When independent components have to talk to each other, it’s critical to get the protocols right.
  9. May 2017 @evanm Software at Whisker Labs Lesson 1: Mind

    your Ps and Qs t i v p 1493586051474 1.05 119.6 125.58 1493586052483 1.11 119.6 132.756 1493586053530 1.10 119.4 131.34 1493586054300 1.09 119.5 130.255 1493586055712 1.03 119.9 123.497 1493586056802 1.06 120.1 127.306
  10. May 2017 @evanm Software at Whisker Labs Lesson 1: Mind

    your Ps and Qs Fig. 3—Cycles of waveform data overlaid atop each other. Read more at bit.ly/adavg.
  11. May 2017 @evanm Software at Whisker Labs Lesson 2: Conservatism

    Production-grade embedded development requires a level of conservatism not fashionable in popular software culture.
  12. May 2017 @evanm Software at Whisker Labs Lesson 2: Conservatism

  13. May 2017 @evanm Software at Whisker Labs Lesson 2: Conservatism

    Low-hanging fruit: testing & QA
  14. May 2017 @evanm Software at Whisker Labs Lesson 2: Conservatism

    Low-hanging fruit: testing & QA To limit risk from externalities, it pays to conservative.
  15. May 2017 @evanm Software at Whisker Labs Lesson 3: Everything

    old is new again The techniques in IoT aren’t new. They just haven’t been relevant to the typical programmer for decades.
  16. May 2017 @evanm Software at Whisker Labs Lesson 3: Everything

    old is new again Fig. 4—Photo of Marvin Minsky working on an IoT product
  17. May 2017 @evanm Software at Whisker Labs Closing To summarize,

    there is no default path for a connected device company.
  18. May 2017 @evanm Software at Whisker Labs Evan Meagher @evanm

    on Twitter evan@whiskerlabs.com PS: we’re hiring whiskerlabs.com/about.html Questions?