Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
SALT
Software
Architecture
David Y. Kay
Nov 2, 2015
Before we begin…
“Presentation on a project that is
representative of your abilities”
Bio
Lived in China Mobile since 2008
Hated It Entrepreneurship
Big Names
Interesting Projects
Kenya
Shark Tank Defense
Startups
Other Works
Community
Healthcare Hackathons
• MIT Hacking Medicine 2015 - 2x first place
• Yale CBIT-Core 2015 - Best Design
• NASA Space Apps - ...
Present Day
S.A.L.T.
Hardware Device
High-tech Sensor?
How to read it?
In other words…
System Overview
Polyglot
Recognition API
Why Python?
• OpenCV Bindings
• Highly productive
• Easy debugging
• Small system
Computer Vision
Device
• Rotate to a standard orientation
• Remove perspective from the image
Creatinine
• Segment the color key
• Find the square with the most similar average color
Chloride
• Thermometer-like gauge
• Find the red part
• Find the yellow part
• Count the lines
Finding The Red
• Use green channel
• Threshold
• Erode
• Dilate
The Filtering Problem
• Too sensitive? Over-counting
• Too strict? Under-counting
Computer Vision - Notes
• Show line counting issue
• Show the calibration issue
• Show experimenting with color spaces
• S...
Server Deployment
Server Deployment
Incredible Free Tier
Helpful for wrangling OpenCV
Android App
• Founders on Android
• Android is the harder platform of the two
• Keep the app small
Code Sharing
• Cross-platform app development
• Open-core
• Use Case
• Primarily an Android app, secondarily an iPhone
app
• Functional, safe, and expressive
• Minimal overhead compared to Java
• EXCELLENT tooling, via IDEA plugin
Medical Calculations
(& future formulas)
Why Rust?
• Very strict, strongly-typed, safety-oriented
language
• Easy C-compatible FFI
• Cross-platform, server/client
...
Admin Dashboard
• Review Results & Troubleshoot
• In future:
• Mark results valid/invalid
• Build a corpus over time
Why Clojure(script)?
• Incredible agility (REPL & Figwheel)
• Functional Language
• Not mission critical - dynamic types
Demo
Recap
Wrap
• Very lighting-dependent
• Would love to build a corpus and use ML
• Would love to spend more time with a computer
v...
Fin
DavidYKay@gmail.com
DavidYKay.com
404-624-6385
SALT Software Architecture (at Butterfly)
SALT Software Architecture (at Butterfly)
SALT Software Architecture (at Butterfly)
SALT Software Architecture (at Butterfly)
SALT Software Architecture (at Butterfly)
SALT Software Architecture (at Butterfly)
SALT Software Architecture (at Butterfly)
SALT Software Architecture (at Butterfly)
SALT Software Architecture (at Butterfly)
SALT Software Architecture (at Butterfly)
SALT Software Architecture (at Butterfly)
SALT Software Architecture (at Butterfly)
SALT Software Architecture (at Butterfly)
SALT Software Architecture (at Butterfly)
SALT Software Architecture (at Butterfly)
SALT Software Architecture (at Butterfly)
SALT Software Architecture (at Butterfly)
SALT Software Architecture (at Butterfly)
SALT Software Architecture (at Butterfly)
SALT Software Architecture (at Butterfly)
SALT Software Architecture (at Butterfly)
SALT Software Architecture (at Butterfly)
SALT Software Architecture (at Butterfly)
SALT Software Architecture (at Butterfly)
SALT Software Architecture (at Butterfly)
SALT Software Architecture (at Butterfly)
SALT Software Architecture (at Butterfly)
SALT Software Architecture (at Butterfly)
SALT Software Architecture (at Butterfly)
Upcoming SlideShare
Loading in …5
×

SALT Software Architecture (at Butterfly)

243 views

Published on

This was a talk that I gave as part of the interview process for a mobile app lead at a medical device startup. I didn't get the job, but the presentation was a lot of fun to put together and it highlights a lot of the crazy stuff involved behind the scenes, working on the mobile apps and computer vision for SALT.

You'll see code examples in Python, Kotlin, Rust, and Clojure, all languages which came in handy for developing this app.

Talk given November 2, 2015, at Butterfly Network, Inc.

Published in: Technology
  • Be the first to comment

  • Be the first to like this

SALT Software Architecture (at Butterfly)

  1. 1. SALT Software Architecture David Y. Kay Nov 2, 2015
  2. 2. Before we begin…
  3. 3. “Presentation on a project that is representative of your abilities”
  4. 4. Bio Lived in China Mobile since 2008 Hated It Entrepreneurship
  5. 5. Big Names
  6. 6. Interesting Projects Kenya Shark Tank Defense
  7. 7. Startups
  8. 8. Other Works
  9. 9. Community
  10. 10. Healthcare Hackathons • MIT Hacking Medicine 2015 - 2x first place • Yale CBIT-Core 2015 - Best Design • NASA Space Apps - Global Finalist, 2012 & 2015 • GHG Healthcare Outcomes 2014 - 3rd Place
  11. 11. Present Day
  12. 12. S.A.L.T.
  13. 13. Hardware Device
  14. 14. High-tech Sensor?
  15. 15. How to read it?
  16. 16. In other words…
  17. 17. System Overview
  18. 18. Polyglot
  19. 19. Recognition API
  20. 20. Why Python? • OpenCV Bindings • Highly productive • Easy debugging • Small system
  21. 21. Computer Vision
  22. 22. Device • Rotate to a standard orientation • Remove perspective from the image
  23. 23. Creatinine • Segment the color key • Find the square with the most similar average color
  24. 24. Chloride • Thermometer-like gauge • Find the red part • Find the yellow part • Count the lines
  25. 25. Finding The Red • Use green channel • Threshold • Erode • Dilate
  26. 26. The Filtering Problem • Too sensitive? Over-counting • Too strict? Under-counting
  27. 27. Computer Vision - Notes • Show line counting issue • Show the calibration issue • Show experimenting with color spaces • Show filtering challenges
  28. 28. Server Deployment
  29. 29. Server Deployment Incredible Free Tier Helpful for wrangling OpenCV
  30. 30. Android App • Founders on Android • Android is the harder platform of the two • Keep the app small
  31. 31. Code Sharing
  32. 32. • Cross-platform app development • Open-core • Use Case • Primarily an Android app, secondarily an iPhone app
  33. 33. • Functional, safe, and expressive • Minimal overhead compared to Java • EXCELLENT tooling, via IDEA plugin
  34. 34. Medical Calculations
  35. 35. (& future formulas)
  36. 36. Why Rust? • Very strict, strongly-typed, safety-oriented language • Easy C-compatible FFI • Cross-platform, server/client • Modern tools
  37. 37. Admin Dashboard • Review Results & Troubleshoot • In future: • Mark results valid/invalid • Build a corpus over time
  38. 38. Why Clojure(script)? • Incredible agility (REPL & Figwheel) • Functional Language • Not mission critical - dynamic types
  39. 39. Demo
  40. 40. Recap
  41. 41. Wrap • Very lighting-dependent • Would love to build a corpus and use ML • Would love to spend more time with a computer vision expert
  42. 42. Fin DavidYKay@gmail.com DavidYKay.com 404-624-6385

×