In this episode of Running in Production, Michael Lynch goes over building a
hardware device that lets you remote control your server without installing
any software. It’s been available since mid-2020.
Michael talks about how it works, using Ansible to provision a Raspberry Pi,
Using Flask with SocketIO, rendering 30 frames per second at 1080p with under
200ms latency, using web components, selling his devices on Shopify, hiring
quality freelance developers and more.
Topics Include
- 7:13 – The process to build a custom piece of hardware
- 12:33 – 3D printing a custom case
- 15:16 – The assembly process and selling about 150-200ish devices a month
- 16:20 – Ansible and a Bash script ensure everything gets installed on the device
- 20:16 – Everything including the OS can run on about 1.5GB of memory
- 22:01 – Motivation for using Flask and Python
- 25:29 – Using Python’s built in testing library and a few useful 3rd party packages
- 26:47 – Web components are being used quite heavily
- 31:44 – Getting started with web components
- 34:34 – Rendering everything at 30 frames per second at 1080p with SocketIO
- 38:34 – The differences between the regular and pro version
- 40:57 – There’s no bundling for JS and CSS
- 43:11 – Docker was considered but wasn’t included in the end
- 46:44 – Purchasing the pro version and ancillary services around the hardware
- 50:52 – Shopify is used as a store front and they make about 20-30k a month
- 54:26 – The deploy process and reviewing code from their freelance devs
- 1:00:09 – Hiring quality developers by making it a great place to work for
- 1:02:05 – Getting new versions of the code on user’s devices
- 1:07:35 – Is it possible to brick your own device? It hasn’t happened yet
- 1:11:40 – Best tips? Incrementally build and release your product as you go
- 1:16:26 – How Michael hired a few initial freelance developers
- 1:21:41 – Check out TinyPilotKVM, Michael has a blog and is on Twitter too
Links
📄 References
- https://en.wikipedia.org/wiki/Raspberry_Pi
- https://en.wikipedia.org/wiki/Intelligent_Platform_Management_Interface
- https://css-tricks.com/an-introduction-to-web-components/
- https://www.talkyard.io/use-cases
- https://runninginproduction.com/podcast/39-place-card-me-lets-you-create-printable-place-cards-online
⚙️ Tech Stack
-
flask →
-
python →
-
ansible →
-
bash →
-
circle-ci →
-
nginx →
-
open-source →
🛠 Libraries Used
- https://github.com/miguelgrinberg/Flask-SocketIO
- https://github.com/wtforms/wtforms
Support the Show
This episode does not have a sponsor and this podcast is a labor of love. If
you want to support the show, the best way to do it is to purchase one of my
courses or suggest one to a friend.
-
Dive into Docker is a video course that takes you from not knowing what Docker is
to being able to confidently use Docker and Docker Compose for your own apps.
Long gone are the days of "but it works on my machine!". A bunch of follow
along labs are included.
-
Build a SAAS App with Flask is a video course where we build a real
world SAAS app that accepts payments, has a custom admin, includes high test
coverage and goes over how to implement and apply 50+ common web app features.
There's over 20+ hours of video.