Upgrade to Pro — share decks privately, control downloads, hide ads and more …

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.

Evan Meagher

May 01, 2017
Tweet

More Decks by Evan Meagher

Other Decks in Technology

Transcript

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

    View Slide

  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.

    View Slide

  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

    View Slide

  4. May 2017
    @evanm Software at Whisker Labs
    Framing the narrative

    View Slide

  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.

    View Slide

  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)

    View Slide

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

    View Slide

  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.

    View Slide

  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

    View Slide

  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.

    View Slide

  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.

    View Slide

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

    View Slide

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

    View Slide

  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.

    View Slide

  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.

    View Slide

  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

    View Slide

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

    View Slide

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

    View Slide