The Changelog: Software Development, Open Source - Internet Connected Things Using Spark (Interview)
Episode Date: April 4, 2015Zach Supalla joined the show to talk about Spark - a complete, open source, full stack solution for creating amazing internet connected things. We talk about making connected hardware easier, using Ki...ckstarter to fund hardware projects, and Amazon's new Dash Button. Zach also gave us a crash course on how to get started with making your own hardware.
Transcript
Discussion (0)
welcome back everyone this is the change log and i'm your host adam stachowiak this is episode 150
jared and i talked to zach sapalo the founder and ceo of spark spark is a complete open source
full stack solution for creating amazing internet connected things
you may have seen it on kickstarter it's fully open source on github from hardware to software
and zach goes deep to school us on everything we need to know we have four awesome sponsors for
the show today code ship app quality bundle top townOcean. We'll tell you a bit more about TopTile and DigitalOcean
later in the show, but our friends
at CodeShip released a new feature
called Parallel CI. It lets
you deploy your code to production 10 times
faster than you've been able to do before.
If you want faster tests,
you have to run your builds
in parallel. With Parallel CI,
you can now split up your test commands
into up to 10 test pipelines. This lets you run your test suite in parallel. With Parallel CI, you can now split up your test commands into up to 10 test pipelines.
This lets you run your test suite in parallel and drastically reduce the time it takes to run
your bills. They integrate with GitHub and Bitbucket. You can deploy to cloud services like
Heroku, AWS, and many more. Get started today for free or use our offer code when you upgrade to a paying plan the change law podcast is the code
again the change law podcast that will get you 20 off any plan you choose for three months head to
codeship.com slash the change law to get started and our next sponsor super awesome to have them
come on it's a time limited deal so listen up app quality bundle it's a time limited deeply
discounted bundle of web services for building better mobile and desktop apps this offer expires
it ends on april 15th so there's little time to buy but not little time to use. It does not expire. But what do you get? First off, you're going to save 89% on a year of Sentry, RunScope, Code Climate, CircleCI, and Ghost Inspector.
When combined together, each of these services give you complete app quality coverage from mobile to web.
Here's the best part.
What would normally cost you well over nine thousand dollars tons of money
i mean tons of money for all these services together you're going to get all of them for
999 that's one full year of service of each of those services combined together that's a huge
savings beyond the deeply discounted price once you purchase it like i said it won't expire
if you're just
starting out a new project that needs complete app code quality coverage this will pay for itself
this is perfect for new projects projects that are growing up and need end-to-end quality coverage
from mobile to web or for development shops taking care of their clients services for them
there's only one single caveat to mention and that it's strictly for new accounts only there
may be some exceptions to the rule but you'll have to check out the fine print or get in touch with
them if you've got specific questions check out build better dot software yeah you heard me right
build better dot software and now onto the show
welcome back everyone we got zachappala here with us.
Zappala, not Zappala.
You know, Zach, I was practicing, and it was the Z in your first name
that just had to enunciate the Z in the second name.
Founder and CEO of Spark.
Hardware, cool stuff happening in your space.
Jared's on the line as well.
Jared, what's up, man?
Excited to be here.
Excited to get schooled on some hardware stuff.
Yes.
Where do we begin?
I mean, let's get started with, I guess, knowing more about you, Zach.
In the pre-call, we talked a little bit about China and the firewall and GitHub.
So it seems like you've got some internationalization behind your belt.
What's up?
Yeah.
Yeah.
So I started Spark a couple of years back,
uh, beginning in 2012. Originally we were trying to make a like consumer consumer products. Really?
We were really inspired by nest and what they're doing with connected thermostats and now, uh,
what is the smoke detector? Um, and I wanted to do the same thing with lighting. So my dad is deaf,
uh, and I really wanted to make his lights flash when my mom texted him.
And so, you know, it's like he's got these hardwired systems to flash the lights when someone rings the doorbell.
But you can't integrate a cell phone with something like that.
So I thought, well, what if I just added or figured out a way to add a Wi-Fi module to his lights?
And then I could create an API and hit that API from, you know, do an API
integration with Twilio or something so that he could get a text message and his lights would
flash. And that turned into this whole product that was called the Spark Socket. And this was
a consumer product that you could screw into a light bulb socket and screw a light bulb in the
other end and it would bring it online. And I launched that on Kickstarter late 2012 with an unsuccessful Kickstarter campaign. So we were
asking for 250 grand. We raised 125 grand. Kickstarter's all or nothing. So we got nothing.
But we had been invited to join an incubator program in China. And so we said, well, whatever,
we're going to go to China. We'll figure it out. So early 2013, flew to China with a couple other guys who joined the team since then. And
that's when we started, we sort of over the course of a few months in Shenzhen,
decided what was interesting about what we're doing was a lot broader than just lighting. And
what if rather than trying to build our own consumer products, we took the tech that we'd built
to make our product work and, and provide it as a platform, both on the hardware and the software side.
And so we relaunched a Kickstarter campaign a few months later
for the Spark Core, which was our first Wi-Fi development kit.
Open source hardware development kit, cloud backend, open source as well.
And that Kickstarter campaign was very successful.
So that's kind of what put us down the path that we're on now.
Interesting.
One thing we've got to say before we get started here is a shout out to member and listener
Chris Beauchamp, who has been encouraging us to do more hardware shows.
In fact, he gave us a long list of ideas.
I actually found you guys, I'm not sure how I found you, Zach, but I found Spark.
Maybe it was on your Kickstarter, I don't know.
And I asked Chris, I'm like, is this interesting to you? And found you, Zach, but I found Spark. Maybe it was on your Kickstarter, I don't know.
And I asked Chris, is this interesting to you?
And he said, yeah, absolutely.
Thanks to Chris for doing that.
We actually have a question from him which we'll ask a little bit later.
On your homepage it says, Spark is a complete open source full stack solution for cloud connected devices.
As a software guy, that sounds a bit vague
as we get into what you guys offer
it looks like you have the photon you have the electron what's your guys's core offerings yeah
so it's it's it's hard to describe honestly because we like the the most important thing
is for us is full stack so like we basically want to provide all of the tools that somebody needs to
create a connected hardware product uh and this is if you're a hobbyist and you're building something on a weekend, or if you're actually a manufacturer
and you want to build something in production. But if you think about what you need, so let's
say you are a coffee maker company and you want to make a connected coffee maker. Well,
so you probably already know how to make coffee makers. So you've got that covered.
And you got to get online. So you got to add something, some hardware bit
that's going to bring it online.
So Wi-Fi module or a cellular module
or something like that.
So we make those
and provide development kits
for easy prototyping,
Arduino-like development tools,
but with a focus on connectivity.
And then you need the hardware
to talk to something.
Hardware, these products are embedded.
They have RAM that's measured in kilobytes.
There's no operating system.
So it's not like you can just run oftentimes JavaScript or something on there.
You have to run C and C++.
And you still want to have something abstracted, something easier to work with than just writing this super low-level code.
So we provide some firmware libraries,
a protocol to communicate to a cloud service.
The protocol is very efficient.
We're trying to do encryption in a very small memory overhead.
And then it hooks up to the cloud,
and the cloud, quote-unquote cloud, right?
Everything's cloud.
When you say the cloud, you just mean the internet?
Well, we have our own
hosted messaging service.
You have your own services that are cloud, okay.
Yeah, exactly.
I think the best way to think about it is we try to make hardware look
like software. So you can make a REST API
call and tell
a device. You can post
to a device's URL
slash brew. And it'll actually call the brew function
in the firmware of the, of the coffee maker. So we've tried to abstract all of the connectivity
in the middle. And in order to do that, where we have a hosted cloud service that provides the API
endpoint, and then the device hooks up to that same cloud service kind of on the other end,
on the, on the, on the backside where you might usually
expect a database. Instead, you have hardware. So that's kind of how the platform looks. And so
we call it full stack because it's web, we have front-end tools, JavaScript libraries,
but then it's also firmware and hardware and everything in between.
Interesting. I think one way that helps people kind of understand is to say,
what can I possibly do with this Wi-Fi development kit?
And honestly, I wasn't sure until you sent me to spark.hackster.io,
which is kind of a community site where people have built things
on top of your guys' technologies.
And I'm just going to go ahead and read a few of these.
There's just some hilariously cool stuff here.
For instance, the Warkidde.
Oh, that's one of the best.
The description there is using the Spark Core GPS and an SD card
to turn your cat or dog into a Wi-Fi scanning platform.
Yep.
It's like going out there looking for Wi-Fi hotspots
with your cat.
Marty McSleeves is another one, which is a jacket
with Back to the Future style variable length sleeves.
There's a product called the FUBAR,
which is a spark-powered automated cocktail dispenser.
And one last one, the Biff Shocker,
which is a DeLorean security system to prevent uninvited drivers.
It appears that it wraps around your steering wheel
and I don't know if it shocks people.
There's some seriously cool stuff
and you just kind of provide
what it seems like you guys are providing,
which is a higher level of abstraction
on top of cool connected devices.
Yeah. Well, you know, hardware is hard and, and it doesn't have to be.
It's, it's that when you're working in that sort of embedded environment and
with, with so many constraints usually what you're dealing with is like,
you know, you're, you're, you're poking your registers.
And that makes it really hard to there's so many layers you have to put in place
to solve problems. And I think in the web world, we're used to all of these layers being handed
to us, these trusted layers of abstraction. You get things like Rails is like very complete
framework for solving web problems. You don't have to deal with like TCP sockets, but usually
when you're building hardware, you're starting all the way down at the bottom. And that means
that it can take months to even get a functional prototype. So that's something we really wanted
to try and solve is let's, what can we do to make it as easy to build a connected hardware thing
as it is to deploy a rail site? Um, and that's where, you know, all the stuff we had to build
comes into place.
So you started at Wi-Fi, and I believe, was that your first Kickstarter for the Photon?
Actually for the Spark Core, which is sort of the predecessor to the Photon.
So we launched the Spark Core in May 2013.
We've sold something like 50,000 of those so far.
The Photon is its sequel, and that will be shipping next month.
Very similar, just next generation.
So cheaper, faster, better,
kind of everything all rolled into one.
And then we just recently launched the Electron,
which is our cellular development platform.
Which is interesting because for the Electron,
you did another Kickstarter.
This one, a massive success.
I believe it closes by the time the show airs,
it will have closed.
But over $500,000 pledging.
Only a $30,000 goal on that one.
So were you once bitten, twice shy?
Or what was the deal with your goal there? Well, the SparkCore Kickstarter campaign was a $10,000 goal.
So we tripled the goal, actually.
We raised more than half a million last,000 goal. So we tripled the goal actually. Okay. Last time we raised up more than a half a million last time too. I mean, for us, you know, we're, to be honest, we're going to
do this stuff anyway. Um, we now we've built a community. We've got lots of people building all
our tools. We know that we know that people wanted this, you know, cellular is interesting
because it's a whole other set of products, like, uh, uh, stuff that's built with wifi tends to be
smart home products, right? So you're thinking about connecting appliances or your aquarium or toys or stuff with pets.
But when you get into cellular, it's industrial.
You've got people who want to connect sensors on farms and heavy equipment.
And so it's a totally different area.
And we had a lot of pull. So we knew people
wanted it. So we said, well, let's just set a low goal because we know we know we know we're
going to make this thing. Yeah, there's some space happening in the on the on the outside thing.
You mean you think of a company I know called Skycatch that does drones? Oh, sure. And they're
doing, you know, drones and, you know, they're flying around. These drones actually have sensors
on them or they're talking to sensors on the ground and pulling back data
and pulling that back to a main repository of data
and collecting big data for farming and for industrial camps
and all sorts of crazy stuff.
Does this potentially tie into those types of other hardware options?
I think that the Internet of Things is a big buzzword
and I think there's a lot of questions in people's minds is like, well, what is it?
What exactly does that mean?
Right.
Do I really need does this is the Internet of Things about my Fitbit talking to my microwave?
Like, yeah, that's that.
It's all that stuff sounds gimmicky.
But a lot of that, I think a lot of the applications, we see this very common thread that it's about closing a feedback loop.
So like a good example is, you know, you're, let's say you're farming or you've, or even
gardening, right.
And you have, so you have an input, which is how moist is the soil.
And you have an output, which is like running a sprinkler.
And these two things, like, you know, they're next to each other.
Like maybe you can have some sort of closed loop that can automate that. But what if you have a big farm and everything's sort of further away
and you don't necessarily want to like run a bunch of wires underground. So you need everything to be
wireless. Well, these tools make it possible to close that feedback loop so that your input can
drive your output. And like, I think comfort in your home is another example of, well, you've got,
let's say you have a Nest thermostat and that's trying to get the temperature right in your home, make you comfortable,
save you energy. And you also might have ceiling fans and they also have a role to play in that.
And separately, you might have sensors for, well, what's the temperature and what's it,
obviously the thermostat knows what the temperature is at the thermostat, but what about
in 30 other places in your home?
And what if you could also have moisture or motion sensors all over your home that could
detect whether you're there or not? So you can sort of take all that pool of knowledge that all
these sensors are collecting and, and use that to drive the, you know, your radiator or HVAC system,
whatever it might be. And those are kind of- How much more efficient a system
could be built around that kind of knowledge.
Yeah, exactly.
But a lot of times the people
who are building all these products are different.
So like what you're trying to do
is pull all these things together
to close these feedback loops.
Yeah.
I might just hover on Kickstarter for a second
because it seems like there's a trend recently.
I think yours would be an interesting perspective
to get on it.
And some criticism that Kickstarter has come under
as kind of turning into pre-order starter
where it's not let's start this new thing
that may or may not even be successful.
I think Pebble is an interesting other example.
Of course, here we have a huge surplus of money
according to the goal.
What's your take on that?
Do you think that's fair?
And if so, do you think that's a bad thing for Kickstarter,
kind of this change of pace, or a good thing?
I think that it is fair to some extent.
We're a very different company now than we were
when we first went on Kickstarter for the first time.
At that point, we didn't know what we were going to become.
Now we're a going concern, right? We, we exist. Um, and so our,
our interaction with Kickstarter and with backers is very different, but I think that, um, it's
still what's, what's great is that it still provides an opportunity for people to do things
a little differently. So Pebble is obviously like, I mean, they were going to make that watch,
um, the, the, the time and they raised $20 million.
I mean, it's crazy.
But that if they didn't have that platform, they'd be falling way behind Apple and, you know, Android Wear.
So it gives a company like them the ability to actually compete with these behemoths that they're going up against.
And for us, the story with the Electron is kind of interesting because, like I said,
we knew we were going to make this thing. And when we went into the Kickstarter campaign,
we've spent close to a year probably trying to negotiate telco deals to be able to provide the back end, the SIM cards and the data platform for our cellular product.
And this is, I mean, you can imagine what it's like to negotiate with, with carriers. It's not,
it's, uh, it's long and, and, uh, opaque and you have no idea what's going on. You don't know who
the right people are to talk to. But so we talked to a couple of carriers and sort of ongoing
relationships and we found a deal that we were excited about that, that gave us just us and
us Canada, um, uh, to start off with. And then when the deal that we were excited about that gave us just US and US Canada
to start off with. And then when the Kickstarter campaign went live, we knew this was going to
happen is that it was very visible. And all of a sudden, every major carrier emailed us within the
first month of the of the campaign. And we were very public about this on the campaign that like,
well, we have a deal in front of us, but, you know, part of why we were
going on Kickstarter was to create this visible platform to tell carriers, hey, this is important,
pay attention to us. And it worked. And all these carriers came to us and we were able to work out
a deal with Telefonica where we're building with them a global MVNO, which is a sort of a virtual carrier that covers 100 countries.
And that was only possible because we went on Kickstarter.
I don't think we ever would have been able to do that
if it weren't for the visibility that we got during the campaign.
So, you know, it's definitely different second, third time around,
but I think Kickstarter is totally game changing
um regardless of what your status is going into it on that note you said this is your second
successful kickstarter and jared you know kind of teased you about having a thirty thousand dollar
goal but going to half a million in actual i don't know funding starting i don't know what
you call that yeah pledges yeah pledges umges. So I guess for someone who's done it successfully,
do you go back because that's a good place to go
or you don't mind giving them the 25% or 30% that it is?
What's the percentage, like 10%?
No, it's actually less. It's just 5%.
5% because you don't mind giving them 5%
to go back to the Kickstarter model and reuse that platform.
Right. I mean, the people who are on Kickstarter are a unique set.
I get it.
They're really engaged.
They're the best customers you could have because they're really, really engaged.
They really want you to be successful.
They invest in you, especially as an open source project.
They're people who want to participate and want to be involved and want to provide feedback. And, you know, if you treat them poorly, they're an angry mob because they're so engaged,
right? If you don't give them an outlet for that and you're just silent and, you know,
they'll come after you. But if you're good at managing them, then it's an amazing set of
customers to have. And so that's really powerful. Kickstarter, like the people who work at
Kickstarter, we've gotten to know their team well, they're awesome. They really just want to
help people do new things. And they're really, really excited when people are trying to, you
know, do something different. They love open source stuff, anything open source, they just
get way behind because they see it as, you know, their mission is to, is to empower people to do
new things. And that's all, that's what open source is about, right?
So I think everything about the experience
is just, it's phenomenal for us.
Like we just love working with them.
Well, now that we're on the note of open source,
let's take a quick break.
We've got to hear a word from an awesome sponsor
that makes this so possible.
But when we come back, we're going to talk about open source.
So give us a second.
We'll be right back.
I want to share a more personal note today with you about our awesome sponsor, TopTile.
You've heard us talk about TopTile several times.
For long-time listeners, you know that TopTile has been supporting the show for the better part of a year to a year and a half now.
If you want to go to their website while I'm talking here,
it's T-O-P-T-A-L.com.
It's one of the best places to work as a freelance software developer.
We've been working with TopTal, like I said,
for about a year, year and a half now.
And over this year and a half,
I've gotten to know their co-founder, Brendan, very, very well.
I love what they're doing for the software development community.
They care deeply about software developers having awesome engagements to work on.
And they also care about awesome engagements having really awesome software engineers to work with them.
So they really make the marriage between a business with great opportunities and an engineer needing great opportunities to work on.
They make that marriage possible.
Well, we took our relationship to the next level and went there ourselves.
We're building something very cool behind the scenes here at The Change Log to power the future of what we're becoming.
You're going to love what we're doing.
We hired a software engineer through TopTiles.
His name is Rafael.
So if you're a member and you're in the members only Slack room, say hi to Rafael.
He's in there.
But I wanted to tell you just how deeply we care about our relationship with TopTile and how much we trust who they are and if you're freelancing right now as a software developer
and you're looking for a way to work with top clients maybe even us on projects that are
interesting to you challenging and using the technologies you want to use I will go as far
to say that TopTile is the place for you head to t-O-P-T-A-L.com slash developers.
That's TopTile.com slash developers.
Learn more and tell them the change law sent you.
All right, Zach, we're back.
Let's talk about open source.
I know we got several open topics
that we can sort of go down when it comes to open source.
But I guess the first question would be,
I guess, why open source?
Which you kind of teased on, but in what way are you engaging open source?
Yeah, yeah, it's a good question.
So, you know, open source for us is, like, we're building a business.
We hope to build a viable business and, you know, profit as a company.
And so, you know, building open source businesses is challenging
because in a lot of ways you're giving away a lot of what you do. So the question is, well, how do you, how do you build a viable business that way? And for us, the reason that we're open source is because what we're trying to do is build a platform for other people to, those people are very wary of platforms like us because they're worried that we are trying to take all the value that the products might generate.
Right. That like, you know, if you have someone who makes hardware, they sort of feel like commoditized.
Right. Like they're just one thing of many on the shelf.
And they're trying to escape that by building connected products. That if we come in and we say, well, we're, you know, keeping all the data, like everything you learn is ours and all the money that you make is coming to us.
And I think people are worried about that.
They're worried about, you know, an iTunes kind of thing where like, you know, Apple sort of like collects a lot of the value that used to be distributed to other companies in the music industry.
And they're very cautious of that.
For us, open source is a way for us to say,
look, we're really not here to screw you over.
We're actually just trying to help and provide a valuable infrastructure.
We hope to be paid for the work that we do.
It's a good value statement there.
We're not trying to screw you over.
Right. Yeah, exactly.
And the way that we prove that is by saying it's open source. And basically we say, well,
look, there's, you know, some of our, a lot of what we do is open source. Our hardware is open
source. Our firmware is open source. The basic functionality of the cloud platform is open
source. Our SDKs and our IDE and everything, they're all open source. And there are parts
of our platform that are closed source, that are proprietary, higher level parts, sort of like, you know, GitHub versus Git,
like the tools that you use to oversee and manage your connected products. Those are,
those are, those tools are proprietary. And our thought is, well, you know, if we're,
if we're doing a good job with those tools, then you'll stick around and you'll pay us money and,
and for the services that we're providing and we'll build a viable business.
And if not, then you can take our open source stuff and go.
You can leave at any time.
And that means that we're only there if we're valuable.
We don't create any lock in.
We don't force you to stick around if we're not providing value in the long term.
So it's for us.
It's a way to keep ourselves on our toes.
It's a way to mitigate risk for our customers. Startup risk risk too. Like, you know, what happens if we exit,
we get acquired or we go out of business or startup. So, you know, being open source,
I think helps solve a lot of those problems. And, and so, yeah, it's, it's, you know,
it's very important to us. Open source hardware is, is relatively young compared to us. Open source hardware is relatively young compared to software. It's still
something that's being figured out.
On that hardware front, when
you share the hardware
piece of open source, what is that
like? When you build a software
program, it makes sense that you see JavaScript
or a particular language.
Eagle, man.
My eagle question. What's eagle?
Eagle.
On Spark Core's GitHub page,
you check out what's on there in the repo
and the language is 99.8% Eagle,
which is the first time I've ever even heard that
in the context of anything open source.
So with that being said, go ahead.
So hardware and open source is really interesting. It's totally different. Um, cause, uh, uh, software, the whole premise behind,
um, the reason that you can open source software is because, uh, software is managed under the same,
um, IP laws as novels, right? Copyright. It's a, it's copyrighted. And so you can provide a
license to use your copyright. And that's what every open source license is.
Hardware is different.
Hardware is not, you can't copyright hardware.
You can patent hardware.
It's treated under a different set of laws.
So it's funny because when we say open source hardware, what we're basically saying is we make hardware designs, like circuit designs.
And we give them away and we allow people to use them however they want. The funny thing about hardware is that's
true. So long as you don't patent it, that's always true. Like if I give you a circuit board
and you take an x-ray and you look at it and you reverse engineer it and like build the same
circuit, like that's, that's legal. So for us, it's, you know, it's almost more of a statement
than anything else. It's like, we, we, we really want people to feel free to use these design files if they so choose.
Eagle is CAD software, so computer-aided design.
So if you want to design a circuit board and basically draw all the little copper traces that are going to connect this bit to that bit, there's a bunch of software tools out there that you can use.
Most of them are really expensive, you know, $5,000 plus. CAD software is not cheap.
And Eagle is one where it's not open source, but it is free to use for sort of smaller projects and
non-commercial projects. So it means that we can give people these tools and say, well, you can go download Eagle and you have access to it. You don't have to go buy a $5,000 program to
open our design files. And Eagle has become sort of the de facto standard for open source hardware.
So when Arduino and companies like that deliver their hardware design files on GitHub, they typically use Eagle.
I'm just excited that I guessed it right.
You'd think I would just go Google it and figure it out, but I didn't.
I bet that's CAD stuff.
That's as close as I got to figuring that out.
Well, I'm glad it says Eagle now.
It's funny, actually.
The last time I checked, GitHub didn't know what Eagle was.
And so it said that, if you looked at GitHub page, like a year or two ago,
it said that I was like a Prolog developer. I was like, what? I am not a Prolog developer.
But it's because I think the file type or something of the Eagle files was very similar
to the Prolog one. So it just thought everything Eagle was Prolog. So I'm glad that they've added
Eagle as a language. You don't want to be a Prologue. So I'm glad that they've added Eagle as a language.
You don't want to be a Prologue developer?
Come on.
I mean, you know, if somebody asked me a Prologue question,
I would be lost.
Well, now you know how I feel about Eagle.
So Spark Core out there, open source,
it's not the only thing you have out there.
You guys got a lot of repos.
The firmware itself, I assume that's
firmware for the Spark core.
That's in C++.
And then you do kind of hop
higher up pretty quickly.
You have Spark.js.
You can take these in order. You get Spark.js, Spark.cli,
Spark.dev. And these are all
kind of in JavaScript-y,
CoffeeScript-y languages.
So maybe tell us about Spark.js.
Yeah, so basically when you build a connected product,
you're often building a couple things.
You're building the hardware, and then you're building the app
to interact with the hardware.
And the cloud acts as a gateway in between.
So the app, it might be a mobile app, might be a web app, whatever, whatever.
We started with JavaScript because, you know, JavaScript is pretty popular.
So SparkJS lets you write an application that interacts with your hardware, either from
on the server side using Node or in a browser.
And so it makes it easy to interact with the hardware without digging in too deep.
Also, it's all going through this REST API,
so it's sort of a wrapper for the REST API
to interact with the hardware.
And then the same concepts are baked
into the command line interface, which is our CLI,
so you can use the CLI to sort of poke at the hardware
and ask it questions and call functions,
monitor data coming off of the device.
So you have the JS library to talk to Spark Core
and it says Spark Cloud.
So it seems like both interfaces.
What does Spark Cloud add?
I'm assuming that's your proprietary side.
Maybe you can talk about if that costs extra or how you do all that stuff. But what does Spark Cloud add? I'm assuming that's your proprietary side. Maybe you can talk about if that costs extra or how you do all that stuff.
But what does Spark Cloud add feature-wise?
Right, so actually there's an open source.
Spark Server is the open source implementation of our cloud platform.
But basically, there's a few things that are challenging about talking to hardware directly.
One is that often the hardware is in,
it's on a local network.
So let's say you have a thing at home
and you're at work and you want to preheat your oven,
your connected oven, right?
So it's on your home network.
So now you're talking about doing natural reversals,
dealing with firewalls, right?
All this nasty stuff
that you really don't want to deal with.
The device, the hardware holds open a long connection, a TCP socket to the cloud. And that means that it's
always available. So you can communicate with it from anywhere. Another thing that's really hard
on the hardware is authentication. So like, I want us basically say, well, I want to be able
to talk to my oven. I want to be able to tell my oven to preheat.
But I don't want anyone else to be able to tell my oven to preheat because that would be a fire hazard, among other things.
There's a lot of issues there.
And I might not even want people on my Wi-Fi network.
If I tell my friends my Wi-Fi password, should they have access to it?
What about my kids?
If they download an app, should they have access to it?
So by using the cloud as a gateway, we can put in place authentication that you wouldn't be able to do on the hardware.
So we use OAuth.
You can log in and have access and an access token that you can use for API calls.
But also you can integrate with third-party services.
So you could provide access to somebody else, uh, to an app, um,
that could interact with your hardware thing.
And so like,
you could never do that just on the hardware that you need this,
you need the cloud platform to,
um,
sort of stand in the middle.
And so the,
so those are the reasons that people,
there's value in a,
in a cloud platform.
Um,
and also like,
it makes a lot of sense because I mean,
you're,
you,
you bake all that
smartness into the cloud right into your cloud you know user authentication things like that
and interoperability um you know we use slack a lot so it's easy to think about integrations
and stuff like that so it's easy to sort of pull in other web platforms or other web clouds yeah
exactly exactly to sort of add on without really having to do much and just provide access to this
open source api like you've done.
Right, exactly.
And it makes it much easier to integrate with other web services.
And also encryption, you have so little memory on this thing,
it's hard to do full implementation of web protocols.
So instead we use a protocol called CoAP,
Constrained Application Protocol.
It's like a super byte-efficient version of HTTP that's designed for hardware, for embedded systems.
And so we use that to talk to the cloud, and then the cloud can do HTTPS.
So the stuff that's a little bit heavier, that requires more overhead, you don't have to do from the hardware directly.
And we can also do stuff like you can send code.
You can send a code snippet to the cloud through the API.
And we have a compile service that will compile that code into a binary that can then be dropped over the air onto the hardware.
So you can reprogram your hardware wirelessly.
That's amazing.
And the compile service is what makes that possible.
So like stuff like that, you couldn't you couldn't do without something in the middle.
Again, it's open source, so we're not trying to be the ecosystem.
We're trying to open it up.
You can use our proprietary one.
Our platform, there's some differences between ours and the open source one.
Ours has a bunch of scaling infrastructure in place so that we can do like really, really
large deployments.
Whereas the open source platform is really just a single JavaScript application.
So it can handle as, you know, as much traffic as the application can, as your system can.
So our proprietary platform scales better.
But yeah, that's pretty much what the cloud does.
You mentioned authorization and getting a little timely here,
I'm sure you saw Amazon Dash Button launch today.
We're talking about the Internet of Things.
Here we have a new thing from Amazon,
which is basically a button that is locked, it seems like,
to a specific vendor or a specific product,
and you stick it on some device.
I think their canonical example is your dishwasher, or excuse me, your laundry machine.
Right.
And you got your Tide button there, basically.
And when you're getting low on Tide, instead of having to do whatever it is you previously
had to do, now you just hit your Tide button, and it fires off a purchase order to Amazon,
and it magically shows up at your door.
Authorization, I think, is an issue with the Tide button.
I have four kids, I don't know about you,
but that would be their favorite button in the world, I'm sure.
But that's the kind of...
Jared goes broke by buying too much Tide.
Yeah, a pallet shows up one day.
So authorization and everything.
Is this the kind of thing that you could easily build on top of Spark?
Yeah, absolutely.
And it's actually a great example of closing the feedback loop.
And I think that when it's a button, you still have a human element,
which creates, in some ways it makes it easier because you can just tap the button,
but it also creates problems because your kids can tap the button.
Whereas I think the end goal is like anything anything that has a consumable element should be able to recognize when it's running out of the consumable and
reorder it right so like and that so okay like dishwashers great and laundry machines great and
they you know um or what about oil for your car or anything that uses oil, right?
Or food, you know, if, and this is like the connected fridge is always just like,
people get really annoyed at it because they make these connected fridges
and they're really just like iPads duct taped to the front of a fridge.
Like it's not really a connected fridge, right?
But what if you actually did a connected fridge, right?
Which is like, it had a camera in it and it can sense what's in there and how long it's been in there.
And it could reorder stuff when like it knows that your milk's been in there for like four weeks. And you, yeah, okay, it's full, but it's definitely expired.
So it could reorder your milk.
Or maybe if you're not drinking your milk, you shouldn't reorder milk.
But, you know, like it's always, it's very often the same story of closing the feedback loop.
And consumables are a huge part of it.
I think what Amazon's doing is really smart.
And actually, in addition to the button, they opened up an API so that you can use their
reordering system without the button.
So we looked at that and we're like, oh, we totally have to integrate that into our web
service.
Because what if our customers want to build products
that can hit this API to reorder the consumable from Amazon?
So that's like a huge, we're super jazzed about that.
Yeah, instead of everybody having to do it themselves,
you could do it once and then your customers
could all just use that.
Exactly, exactly.
Yeah, I just remember, I don't know what episode, Adam,
do we have Chris McCord on with Elixir?
148.
I was just speaking skeptically of the Internet of Things
and noting how it's all very novelty
and vague.
There's not real value propositions yet.
But I think it's just a matter of time.
Even just when I saw the Amazon button,
I was just like, okay, that's actually a really good use.
And you start to be like, okay, soon we're going to start to see things
where we're like, wow, that's life-changing in a very small way.
And I think you're right on par with closing the feedback loop.
And that's why things like Spark are exciting
because you don't have to be Amazon
to put something together anymore.
You have these open source options
and you have these small, cheap entry ways
to building stuff,
which is why I think this Haxor site is so cool
because here you have people just basically having fun
and building things that I would never have imagined
just with the capabilities.
Well, and that's where I think the hardware world still has a lot to learn from the web world.
If you're building web tools or web software,
the tools that you use in a production environment are the same tools that you use
as an individual building a hobby weekend project.
It's the same programming languages, it's the same frameworks.
It's not like there's some set of tools that are hidden to you as an amateur.
And in the hardware world, there's still generally a pretty big gap
between the professional tools and the hobbyist tools.
So you've got Arduino and Raspberry Pi for these hobbyist projects,
and then professionals are using an IDE like like ide like keel it costs like 10 grand and and uh you know they're using
a different set of microcontrollers they're purchasing components from like qualcomm and
broadcom who won't sell them they will not sell you anything if you're not buying a million units
right so like you don't have access to them as an individual. And so there's this rift in tooling between professionals and amateurs.
And that's one of the problems that we're trying to solve is say, well, look, if we could take the best stuff that the professionals have, give access to everybody, then it could close the gap.
And the world would start to look a little bit more like the web, where I think it's fascinating in hardware.
You have the concept of a hobbyist, right?
Like what about a hobbyist software developer?
Well, you don't really have a hobbyist software developer
because they're just software developers on weekends, right?
It's the same people as the professionals.
And I think that's kind of true of the hardware world too.
There's a perception that you have these two different groups,
hobbyists and professionals,
but I think that they're mostly the same people.
It's just whether you're talking to them on Saturday or on Tuesday.
Good point.
Let's loop back to some more open source projects you guys have here.
Spark Dev, which you term as a professional hackable IDE for Spark based on GitHub's Atom.
Interestingly, Facebook just released Nuclide, or Nuclide-E.
I don't know how they pronounce that,
but it's a unified IDE for React and React Native
based on GitHub's Atom.
And so it seems like you guys beat them to the punch on this.
Tell us about it.
Yeah, so when we launched the Spark Core,
we had a web IDE, which people could use, which is great, because you don't have to have a tool chain or anything installed locally.
You can just go to a website, write some code, hit the flash button, and it reprograms it wirelessly.
Awesome for getting started.
But it's hard to build a web IDE that's as sort of complete and as comprehensive as a professional would want. And so we'd been looking for a while to figure out like, well, we want to do something that you can download on your local machine and really have like a professional experience with.
And, you know, when people are doing embedded code, usually the common tools are like the expensive proprietary IDEs or like Eclipse.
And Eclipse is great.
And, you know, it solves a lot of problems, but it's cumbersome.
And there's a big rift, there's a big gap between Eclipse, I think, and like, you know, the simpler tools.
And so when Atom came out, we thought, oh, this is perfect.
This is a great platform for us to use.
GitHub is clearly investing a lot and making this thing awesome.
They've done so much development on it and it's also web connected, so we could do stuff like hit our cloud APIs from the same IDE where you can also deploy firmware locally using a local tool chain.
So we took Atom and sort of added a couple layers specifically for our hardware to turn it into a standalone IDE, which I don't know if that was what GitHub was intending that people would do
with Atom, but it's really well suited for it. And so I think we were the first people to do it.
And then when Facebook, I mean, I was not surprised to see Facebook do something like that,
because it felt somewhat obvious to us, like somebody else needs to be using it in the same
way.
But yeah, they've built a pretty great tool there. I like it a lot.
Question for me, I guess, on this note is, when we look at Atom or we look at Sublime Text or other text editors out there,
why fork Atom, create your own version that sort of adds
ability specifically for your infrastructure? Why do that versus
sort of a plug a plugin or a bundle
as TextMate does or Sublime Text?
Why go and actually create the own IDE?
What's the value add there for Facebook or for you?
Well, that's a good question.
And here's the trick.
Really, we just did create a plugin.
So actually, you can just go install the Spark core plugin in Atom and you end up with
the same thing. But for a lot of our customers, like, um, you know, we don't, our customers
aren't typically web folks. Like we have a lot, I shouldn't say that there are a ton of web
developers who, who use, uh, who use Spark, but I would say the majority of our customers are,
um, like more of sort of embedded developers.
And they come from a different place and are used to a different set of tools.
So GitHub is not necessarily a brand name that they recognize.
It's just a little bit of a different world.
So for them, for us to say, well, go download this Atom thing
and then install this, it feels like, wait, whose website am I going to?
I don't trust these GitHub people.
And of course, we think that's silly, but whatever.
So we package it up and say, look, here's a downloadable thing.
It's an application that you can download and double-click on it.
It'll work.
But if you're familiar with Atom, you can just install the plugin
and it'll work the same.
I'm looking familiar with Atom, you can just install the plugin and it'll work the same. I'm looking for the Atom license.
I'm assuming it's pretty liberally licensed.
I think that's some of the value of open sources.
It's okay, you can take that, you can put your name on it
as long as it adheres to their license and their copyright and all that.
And it bolsters your company.
And to your customers who may or may not be
interested in Atom, here it is.
It's Spark Dev, it's all included.
And then you don't have to just maintain a little plugin
and fit inside of that box.
If you have more deep ingrained things that you want to change,
you can go ahead and do that.
Yeah, exactly.
We weren't sure because we did
it pretty early in adam's life so we didn't know how github felt about we didn't know what really
really they wanted to do with adam so we had a couple friends there and they're like hey so we're
building this ide with adam like is that is that cool like you know i know it's open source but
like we don't want to you know i don't want to piss anybody off and um they're great they loved
it they were like oh yeah that's great it's awesome go for it so that's i love it's i don't want to piss anybody off. They were great. They loved it. They were like, oh yeah, that's great.
It's awesome.
Go for it.
So that's, I love it.
I don't know if you found it, Jared, or not,
but it's under the MIT license.
And when they announced it,
they actually said, Adam, free and open source for everyone.
So I guess the MIT license does afford you the ability
to fork it, kind of repackage it.
So long as you're not doing things
that are against the MIT license, you're good to go.
Yeah, right.
Yeah, exactly.
Well, this is probably a good place to pause and hear a word from our sponsor.
When we get back, I want to talk to you about getting into the hardware scene as a web developer, as a software developer, and get some tips from you.
But we'll be right back.
Sure.
Over 400,000 developers had deployed DigitalOcean's cloud.
DigitalOcean is simple cloud hosting built for
developers. In 55 seconds,
you'll have full root access to a cloud server
and it just doesn't get any
easier than that. Pricing plans start
out affordably at $5 a month
for half a gig of RAM, 20 gigs of
SSD drive space, 1 CPU
and 1TB of transfer.
All DigitalOcean servers run on
blazing fast SSDs
with tier one bandwidth and come with private networking.
Use the promo code CHANGELOGAPRIL
to get a $10 hosting credit when you sign up.
Again, CHANGELOGAPRIL, 10 bucks when you sign up,
new accounts only.
Head to digitalocean.com to get started.
And now back to the show.
All right, we're back, Zach.
I'm a web developer, Adam's web developer.
A lot of our listeners are web developers.
Of course, we do have the crispy champs in the audience
who are probably sitting there wishing we're asking
more hardware-y, hackery questions.
But we just don't have that in our arsenal right now.
If I'm interested, maybe in Spark,
maybe just in making my own thing,
what's a break-in point?
How do I get involved in open-source hardware?
Yeah, great question.
So I think the best way to get into hardware
is by having something that you want to build.
Like having a project in mind, because I think you learn better.
You learn a new area better if you have some intent, right?
It's more important to you.
So like when I started, the first thing I built was,
I had a little garden and I was trying to make it
use an Arduino, which is,
so an Arduino is a platform very similar to ours,
but it's just a microcontroller.
So it's really just the brain and not the connectivity.
You can get shields, accessories that bring it online.
But so I got an Arduino and I built a little moisture sensor for my little garden and had it connected to a pump and was trying to pump the water when it got dry.
Actually, I never got that to work, but, you know, let's be honest.
But, you know, having some project like that.
And then I think that, like a lot of the concepts, platforms like ours, so I think Spark is a great tool for web developers because we've tried to abstract everything so you don't have to go sort of too deep.
There's definitely some level of knowledge you
have to pick up along the way of circuit design. But I think one of the things that's important to
know, and it's like, you almost don't know this if nobody tells you, it's really hard to hurt
yourself with hardware. So like, I think a lot of people are a little nervous cause they're going
to like electrocute themselves. Like this stuff is all super low voltage. You're, unless you're
plugging into the wall, uh like you are it's
basically impossible to hurt yourself and the worst thing that you're gonna do is uh there's a
there's a term of art in the hardware world called letting out the magic smoke which basically is
like you know you have a a chip that is expecting 3.3 volts and you give it 10 and you see this
little like this little right and then like the this little black smoke comes out3 volts and you give it 10 and you see this little like this little right and then
like the this little black smoke comes out of it and you're like oh i just destroyed that but
you know it's like so that you don't do that sound effects was awesome too i like that
it does make that sound uh and uh it's like well that's okay as long as your hardware is cheap, right?
Like if, you know, the Photon's 20 bucks.
So I would typically say, especially to someone who doesn't have any hardware background, buy two.
Because you'll probably let the magic smoke out of one of them.
Consummate salesman.
Yeah.
Go for the upsell.
Buy two.
Yeah, buy two.
But like, you know, it's cheap.
So it's not that big of a deal. And
if you put something in backwards, and like, you know, whatever happens, like, it's fine,
you just, you just buy a couple of everything. So you have extras, and you have to learn some
basic concepts of like, you know, adding resistors so that you can limit current to things as some
sort of basic, basic stuff like that. But a lot of it's available online. YouTube is YouTube's your friend. Uh, there's websites, spark fun and Adafruit are
both retailers that sell like, um, uh, DIY kind of hobbyist electronics. Um, and they've got tons
of tutorials that walk you through stuff. If you Google anything like sort of plus Arduino,
you'll get like great tutorials on how to do something. So if you Google, for instance, like moisture sensor Arduino,
you'll find an unbelievable wealth of knowledge.
And our platform is Arduino compatible.
So that all the code, like basically everything that you do in Arduino
works exactly the same on Spark.
So all that stuff will work.
But then with our platform, you can also bring it online
if you want to add sort of web stuff to it.
So I think that the best thing to do is like, you know, buy a dev kit, like a SparkCore, a Photon,
or if you're doing embedded stuff in Arduino, you know, if you're doing stuff that you don't
need to be online, or a kit where like a lot of the companies like SparkFun and Adafruit have
these kits that have the dev board and like other stuff. So like a bunch of jumper wires
and a bunch of extra sensors and actuators, like little motors and stuff so that you,
you have everything you need in the box to, to get started. So those are really great.
SparkFun has one called the SparkFun inventors kit. That's really what I started with. It's
awesome. We sell something called the spark, the spark maker kit, which is very similar,
same kinds of things, but again, designed for something that's connected.
And so that stuff is great for getting started.
And then you can go buy more components online.
I was about to say RadioShack, but actually I guess that's not true anymore.
Yeah, don't do that.
Bad face.
But online, you can still get it.
And yeah, it's just find a project, get started,
Google around, same learning process
as learning a new programming language, I think.
But I think to anyone who's done software development,
a lot of this stuff, it'll come naturally
because it's mostly the same concepts,
it's just a little bit lower level.
I think I'm kind of inspired by this spark.hackster.io site
because the stuff on here is so freaking cool.
What I picture myself getting into hardware,
I imagine the first couple of weeks or the first month,
I get this little LED light to go back between yellow and red.
And to me, that doesn't really do it for me.
I don't want to invest time and money and frustration
into an LED light going yellow and red.
But if I can see some end goals like this,
and maybe these are way outside my league or something,
but it seems like there's just some really cool,
actual useful things and some just silly, like war kitty,
that might be within the realm of possibility nowadays
for a starter.
Oh, totally.
So I'll give you one actually actually, that's a good, like, a really good starter project, which is one that we did at the end of last year.
So when the last Hobbit movie came out, we were inspired to create, and actually this was also inspired by War Kete, which is one of our favorite community projects.
So we built something called War Sting.
And so I assume you guys are familiar with the Hobbit and Lord of the Rings.
Of course.
You know, the sword Sting that turns blue when there's orcs nearby.
So they sell, you can buy on like Amazon or wherever, these $30 like toy swords that turn blue, like They have a little blue LED in them that you can flip a switch
and then it makes hacking and slashing noises.
So we bought one of these and we opened it up
and realized that the circuit's really simple.
And there was room for a spark core inside the hilt of the sword.
So we published a project.
So if you go to our blog, which is blog.spark.io,
and scroll down a bit, you'll find instructions for building your own war sting.
So this is a hobbit sword that will turn blue near any unsecured Wi-Fi network.
And if you swing the sword, it will hop on the network and publish a message that says this network has been vanquished.
Well, it publishes, too.
Well, it publishes. We have an event stream that comes out of our cloud.
So it's available globally through the cloud as a public message.
And then you could very easily, you could do a webhook.
We have this really simple webhook command using our CLI.
So you could pipe that over to someone else's API, like Twitter or Twilio or whatever, but it's like, it's a cool project and it's really easy because all you do is you
like literally snip a wire in the, um, uh, in the hilt and then like solder, uh, you do have to use
a soldering iron, but it's good learning experience. Uh, you can, you solder out.
You lost me.
Me too.
You solder the wire to two of the pins on the Spark Core and then you copy paste the code
and put it in the web IDE
and flash it over the air.
And now you've got this
connected sword.
Nice. New talents.
Yeah. That sounds so awesome.
That sounds so awesome.
The soldering part does a little lose me
because I have a hard time
plugging USB cords.
I got these fat fingers.
Who doesn't, right? Try it twice.
We'll link this up in the show notes, by the way.
I'm looking at this blog post right now
and I'm thinking,
my kids would think I was so cool with this thing.
My wife, not so much. But my kids, they would love it.
We were super excited about this.
It was totally like a gag, a stunt.
Maybe we'll get some attention online.
We posted it, and no love.
The first three days, a thousand people saw the blog post and were like,
oh, this sucks.
Then a week later, it got put up on Reddit and it got up to number 26 on Reddit,
which is the one away from the front page.
So I'm like so close.
But now I think the YouTube videos got like something like 300,000 views.
So a lot of people have checked out our very ridiculous.
Also, the YouTube video is like silly.
One of the guys on the team is dressed up like Gandalf, and another one's dressed up like Frodo.
Or Bilbo, I guess.
It's silly,
but it's fun.
Let's switch gears here, and let's ask a question
from Chris himself, the
requester of the show, and
the hard work guy, Chris B. Champ,
who told me that
what an interesting conversation would be,
and this will probably be a one-sided conversation
because I've got nothing to bring to it.
But I'm going to ask it and you can speak to it.
He says,
what would be interesting is the process that they,
meaning you guys, and other board makers follow
to get their boards manufactured and to market.
He says, something tells me that they're not fulfilling orders
by soldering surface mounts all day in their garage.
Can you speak to that?
So we did start in a garage, like making them by hand.
I made, I'm very proud because when we did our first, so, so basically, yeah, I'll go, I'll go through the process.
So circuit boards are, in some ways it's, you know, it's a little challenging to figure out how they're made, but it's there, there's a million places that do it, right?
It's, it's, there's a lot of expertise out there.
So, um, in a lot of ways, you're just kind of finding a factory and letting them solve
a lot of the problems.
Um, but basically the way that it works is, um, when you design a board that you're going
to use in a mass manufactured product. You use Eagle to design the board
and sort of find all of the components that you need,
the sensors and the microcontroller, everything like that.
You lay them out on the board
and the layout on the board is like,
you know, it's an optimization problem.
It's like, what's the smallest surface area
that I can get all of these things on
and also draw a little copper lines between each of them
and not have any of the copper lines cross. So it's, you know, it's, it's just a good old fashioned engineering problem.
So you lay out the board, you usually go, it takes a couple iterations to, to get something
that, that you like, and then you send them to a PCB, uh, PCB manufacturers, uh, printed circuit
board manufacturers. So these are the guys who actually give you the circuit board. And in the U S this costs, it can cost a lot of money. The best for prototyping,
there's a company called Osh Park, OSH, open source hardware, OSHpark.com. I think is their,
I think is their website. And they make these purple boards that have become very well known.
You see a purple board, you know exactly where it came from. But you can send them a design file
and you export from Eagle and something called a Gerber file. So a Gerber file is like the output
that all of these PCB manufacturers know how to speak. Um, uh, so you send them a Gerber file and
then depending on how much money you pay and who you use, like sometime between two days and three
weeks later, a circuit board arrives.
And now, so you buy the components,
you go somewhere like DigiKey is a common one,
or Mouser, there's companies that sell all these components.
And then if you're overseas, you use someone else.
And they'll send you the components.
You take solder paste.
So in low volume, what you do is you take solder paste, which is like a liquid form of solder, and you put little drops of it on all of the pads on your board.
And then you take a pair of tweezers and you put all the components on the pads and you put it in an oven.
And there's particular ovens that you use for this that are called reflow ovens that are designed to make the solder paste flow. But actually you
can use like, there's tons of stuff online about how you can use a convection, like a little toaster
oven or a little frying pan to do this. So you can do it with anything. You don't need it. You
don't need fancy equipment. And then that's, so that's like how you design it in low volume. When
you go high volume and you go to a manufacturer, so you find some manufacturing partner, the places that do this are called PCBA. So, uh,
printed circuit board assembly. Um, and typically they will then order the circuit boards for you
and they'll order the components for you. So they build, they get all the inventory and then they
have machines, um, that are called pick and place machines that are basically like, you know, us
using tweezers,
except on steroids. So they have these little like arms, robotic arms that will like, you know,
take these little tiny components, like less than a millimeter squared and pick it up with a little
vacuum and drop it on that thing. And they can do thousands of components per minute, super fast,
like unbelievably fast. And then it'll be this like sort of a conveyor
belt that brings something down through the oven or sort of through the pick and place machine and
then into the oven. And then it comes out baked and, and ready. Um, and then you, and then you
program them. So you'll have like a programmer, which is usually just like a PC with like a port
that you can hook up to this thing and program the board, like the micro
controller with your software. And then, and usually these will be done in panels. So you'd
have like 10 boards on a panel. And so somebody will snap all of them off and then put it in a
box or a bag or whatever. And that's, then that's the process. So, you know, to go through all this
and figure it out, like a lot of it is finding the right partner and, you know, and finding a manufacturing partner who's willing to work with a startup, getting them on board, going through these iterations with them.
There's a lot of work that's called DFM, which is design for manufacturer.
So optimizing things so that they're more manufacturable.
And a lot of times that's like, make sure to label which direction the LED is supposed to be pointing so that somebody doesn't accidentally put it on backwards.
Or make these two components for their part so So they don't accidentally like bump into each other. So it's, you know, it's in comparison to software development.
I think one of the things that makes running a hardware startup hard is that you can't just do
like, you know, it can't be two guys in a garage can't build a billion dollar business in the same way that you can with software.
Like you have to partner with other people.
It's messy.
It's dirty.
You know, it's not like like software.
You write the right software.
It works like manufacturing.
Even if you design the circuit board right, you still have yield.
Like one percent of your boards aren't going to work for some reason that has to do with the
physical world and all of its imperfections. And so you have to test everything because you have
to throw that 1% away. You don't want to ship that to a customer. So it's way messier than software.
But in the end, like, you know, it's engineering. A lot of the same concepts apply and it's hard,
but it's rewarding. And the fact that it's hard means that fewer people are doing it.
So it's not like software development where if you're making a mobile app,
there's probably 20 other people making the same mobile app
that you're going to be competing with.
Hardware, you do something cool, probably nobody else is doing it.
And Engadget will probably write about it
because there's just not that many things.
They need more and more content on that side for sure.
It's a smaller market.
Less people willing to do that.
It's messy and that's a nice barrier around your business.
You figure it out and you figure out how to make something
and then you know that it's not like somebody can just come rip you off
because it's actually pretty hard to do this stuff.
Well, one way to be successful is to do something that no one else is willing to do right right yeah that's how you get there yeah as if uh if i'm willing to do it and you're not
guess what i win right that's how you're winning exactly that was a nice crash course into
the hardware side of this i mean that i mean it seems like we could probably have an entire other show on just that with you schooling us on all facets of the hardware side of it.
Because like you said, there's a huge barrier there because no one's really willing to do that hard work.
I'm not saying no one, but it's less enticing.
It's less easy to – there's a lot more moving parts and a lot more fail and even costs.
Right.
So we actually just recently launched a blog because we're trying to explain all this stuff so that more people can do it.
And so we launched a blog a couple weeks ago.
It's called Prototype to Production.
So the website is protoO-D.com.
Number two or spelled out?
Number two, yeah.
And the goal with Proto2Prod is to answer all these questions
and to show people the path that they can follow
and teach each of these steps.
Our head of supply chain, Will, wrote a blog post
on selecting your bill of materials and like finding all these components.
And it's this it's a massive blog post, but he's an incredible writer.
And so it's, I think, actually pretty easy to follow.
Like you can read it and you come out of it and you're like, oh, I get that now.
Like that sounds like totally crazy.
And like, you know, like so far from anything you've done before. And you read the
blog posts and you're like, Oh, this makes sense. Um, so, um, we're trying to, we've,
we've got a couple of posts up now, but over the next couple of months, we're trying to tell that
whole story of like literally, you know, from, from a single prototype to making a hundred
thousand products. Well, Zach, we would love to keep you on the line for much longer, but our listeners tend
to be commuters, so they love commuter-friendly shows, tend to be around an hour or a few
minutes after.
But we have a few awesome closing questions we'd love to ask that sort of let us know
a bit more about who you are.
So the first question that we like to ask is, who's your programming hero?
Or even your hardware hero, I guess, in this case for you oh yeah so uh my my hero is a guy named bunny huang
bunny is uh uh he's he's well known for do you guys remember a product called chubby
doesn't ring a bell for me it's like i don't know what it is it's a little like alarm clock
kind of thing that sat on your nightstand like Like pre, it was like apps before the iPhone had apps.
It was like, like, you know, six months.
They had an app store before the iPhone did like by six months.
So Bunny was the hardware lead on Chumby and Chumby was like one of the first big open
source hardware projects.
And he's one of our advisors.
And the guy is like so smart, like unbelievably smart.
You guys should actually have him on the show. Um, he, uh, so he's basically the godfather of
open source hardware. Um, he also wrote a book called, I don't know if I'll get the title right,
but like reverse engineering, the Xbox, where he literally like, you know, walks through the
process of reverse engineering an Xbox.
Since leaving Chumby, he advises a lot of hardware startups like us.
He launched a product called Novena, which is an open source laptop that has FPGA.
It's got all sorts of crazy stuff in it. Um, he, uh, recently did a talk on reverse engineering, a 3g baseband, uh, to, so that
you could take these like really cheap chips that you can find in China, um, and use that
are like cellular chips and use them for, uh, like basically like without, like you
can basically build up the same baseband and not pay like
massive licensing fees to them or they probably won't let you do it anyway but like just basically
build it as an open rebuild it open source um and so he is an he's an epic guy and we ask him
questions like you know we say oh we're trying to figure out how to like get good rf performance on
the wi-fi chip like can you give us some he, he, he always sends us an email that says, well, I'm not an expert in this,
but, and then there's this like three page response with every detail that you could
possibly need to solve the problem. Right. So it was like, I wish, like, I hope that I can
be as knowledgeable as that one day. Um, and also be as willing to teach other people and to help other people succeed
as he is.
He writes a great blog,
Bunny's blog.
And he's,
he's a huge mentor of mine.
So your hero is the founder of Chubby?
I don't actually know if he was the founder,
the hardware lead at Chubby.
Okay.
Cool.
We'll put,
we'll try and find that link.
If not,
we'll work with you to get a link on that,
put in the show notes for anybody who wants to follow up on that.
For sure.
Next question I'd like to ask is more or less,
I think you might have answered a little bit during the call,
but if you were speaking to the world of open source to a degree,
what's a call to arms to some of the projects that are open source for you?
How can people step in and get involved?
Where are the most immediate needs today for you?
Yeah. So for us, our firmware libraries are the area where we'd love to have more people participating.
Firmware is unique. It's different.
It's C and C++. It's low-level stuff.
But what we're trying to do is make doing low-level embedded development easier by taking all of the nasty low-level bits and providing that layer of abstraction.
And so we'd love help.
So github.com slash spark slash firmware is our main firmware repo.
And we'd love help from anyone who's interested in participating. And I guess if you weren't doing what you're doing today, like hardware, software, what
would you be doing?
If you weren't doing X, which is today what you're doing, what would you be doing?
That's a good question.
I don't know.
It's hard to imagine doing anything different now.
I really like, I like being an entrepreneur.
I like running a company.
I like making new things.
I think if I weren't doing this, I'd still want to make something. I like, I like hardware. I like gadgets. company. I like making new things. I think if I weren't doing this,
I'd still want to make something. I like, I like hardware. I like gadgets. That's what got me into
this in the first place. Um, so if I, you know, if, if spark disappeared overnight and I had to
do something again, I'd, I'd want to not start another hardware startup and, and like build
something else. And maybe it would be a consumer product, which is where we started and it didn't
pan out for us.
But, you know, I could I would try that again and find something like, you know, to your point earlier, like Internet of Things is super gimmicky.
And it doesn't have to be like I think that, oh, I'll give you one.
OK, here's one thing that I think somebody should build.
And if I weren't doing Spark, this is what I would build. I want a two factor authentication safe.
I want a safe that as a
code, just like every safe does. And I type in the code and I want that safe to send me a text
message with a second code. And then I type that code in also using the same two-factor authentication
principles that we use on all these web services with physical security. That's my, like, if I
weren't doing Spark, I would love somebody, that idea is for free.
If anybody wants to make that,
we'll give you dev boards and tools to get started.
So if someone steals your safe or tries to break into it,
they got to have your phone too.
Yeah, they have to have your password,
but also they have to have your phone.
Just like the same way you'd use that for security
for your web service.
So I'm waiting for somebody to build that.
2fasafe.com.
Yeah.
Kickstarter that thing.
Oh, yeah.
That's an awesome one.
And I guess the last cool question we have, and this one is sometimes fun because it could be your own stuff.
It could be something that you hack on that's not your stuff.
But what's on your open source radar?
What are projects that if you had a weekend and you weren't potentially hacking on Spark,
what would you hack on? What would you play with?
That's a good question.
Despite the fact that we're talking all about hardware, I'm really a front-end guy.
I do a lot of our web design.
A lot of the stuff that I'm involved with from a tech perspective is on the front-end web development.
And so I've been playing around, especially the last couple weeks, with using, like we were building Express apps and doing a lot of stuff.
I think that we were originally using Jekyll for some things, some static sites, Ruby library, and then switched over to doing stuff in Node.
And there's a project called Metalsmith that I think comes from Segment.com that's sort of a JavaScript version of Jekyll that we were playing around with.
And I think it's awesome.
I love tool chain stuff, like playing with gulp and, and projects
like, um, uh, metal Smith. I love developer tools. So things that are making it easier for
other people to do other things. So, um, I'd love to be participating in projects like those.
Well, Zach, it's definitely been fun having you on the call today. I know we can, uh,
learn a lot from you, even though you may not say you're an expert in everything, like your mentor says.
You seem to have quite the expertise in this internet thing, software,
hardware space that you're operating in.
For the listeners, if they want to catch up with you,
what's the best way to reach out via Twitter, GitHub?
What's some of the common social URLs you share for people to get in touch with?
Yeah, so on Twitter, I'm Zsupalla
Z-S-U-P-A-L-L-A
and on GitHub I'm Zsup
Z-S-U-P
and also
we have forums for Spark
that we love very much
community.spark.io
and my username there is just Zach
Z-A-C-H
all those places, always happy to chat and happy to help.
In particular, if people are building stuff and they need some advice, always happy to offer some help.
Good deal.
We'll make sure we link up those profiles and places you mentioned in our show notes.
So if you're a listener, head to the show notes for this show, which is actually the changelog.com slash 150 because
this is episode 150 congrats um yeah thank you it's it's been uh it's been an adventure that's
for sure uh and speaking of adventures we have awesome sponsors that make this adventure possible
code ship top town digital ocean love those guys they're so awesome to us they you know they've
supported us to to make this show possible and we're just so thankful for all the ways that they support not only us but also the community themselves.
So those people, awesome, just awesome.
We do have another show coming up.
Episode 151 is featuring Steve Klabnick and Yehuda Katz talking about Rust.
Jared, are you excited about that call?
You know I am, man.
You know it?
Yeah, you know it.
You got the show notes ready already?
They're ready already.
They're ready already.
In my head.
We'll be ready.
Yeah, we've been dying for this show,
so I hope everyone tunes in.
Episode 151 again.
Steve Kladnick, Yehuda Katz talking about Rust.
Can't wait for that show,
but until we get there, let's say goodbye for now.
So goodbye, everybody.
Bye.
Bye.
Bye.