Slide 1

Slide 1 text

HOW TO PUT A THING ON THE INTERNET OR: LESSONS LEARNED WRITING SOFTWARE AT WHISKER LABS Evan Meagher May 2017

Slide 2

Slide 2 text

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.

Slide 3

Slide 3 text

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

Slide 4

Slide 4 text

May 2017 @evanm Software at Whisker Labs Framing the narrative

Slide 5

Slide 5 text

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.

Slide 6

Slide 6 text

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)

Slide 7

Slide 7 text

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

Slide 8

Slide 8 text

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.

Slide 9

Slide 9 text

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

Slide 10

Slide 10 text

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.

Slide 11

Slide 11 text

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.

Slide 12

Slide 12 text

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

Slide 13

Slide 13 text

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

Slide 14

Slide 14 text

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

Slide 15

Slide 15 text

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.

Slide 16

Slide 16 text

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

Slide 17

Slide 17 text

May 2017 @evanm Software at Whisker Labs Closing To summarize, there is no default path for a connected device company.

Slide 18

Slide 18 text

May 2017 @evanm Software at Whisker Labs Evan Meagher @evanm on Twitter [email protected] PS: we’re hiring whiskerlabs.com/about.html Questions?