[MUSIC PLAYING]
SEBASTIAN TRZCINSKI-CLEMENT: Good afternoon, "Ghent."
Is this the way to pronounce your name?
GANT LABORDE: That is correct.
SEBASTIAN TRZCINSKI-CLEMENT: All right.
Listen, thank you for making the time to meet with me today.
We're going to spend about 10, 15
minutes to talk about you and your contribution
to Dev Library.
Woo-hoo.
GANT LABORDE: All right, my favorite subject.
SEBASTIAN TRZCINSKI-CLEMENT: Before we do anything else,
I'd like for our viewers--
because this is going to be on YouTube--
I'd like for our viewers to know a little bit about you.
Do you have three keywords or maybe
three numbers that would define you?
GANT LABORDE: Oh, OK.
One is a hyphenated word, "mad scientist."
Two, we'll go with "entrepreneur"
because we've got the Laborde or French theme a little bit.
And then I'll end with a number, the number phi.
And if you don't know what that number is, that's on you.
You have to go know about the number phi.
SEBASTIAN TRZCINSKI-CLEMENT: I guess you can use your favorite
search engine--
I'm not going to say which one--
to figure out a bit more about phi.
GANT LABORDE: It's Ask Jeeves.
SEBASTIAN TRZCINSKI-CLEMENT: Of course, of course.
By the way, question for you and for our viewers--
do you know how many search engines existed before Google?
How many?
GANT LABORDE: Good question.
Ooh.
SEBASTIAN TRZCINSKI-CLEMENT: Well, what is your guess?
GANT LABORDE: Three.
SEBASTIAN TRZCINSKI-CLEMENT: It's a bit more than that.
GANT LABORDE: Well, there, see?
That's excellent marketing.
SEBASTIAN TRZCINSKI-CLEMENT: There were actually 18 search
engines--
GANT LABORDE: Oh, wow.
SEBASTIAN TRZCINSKI-CLEMENT: --before Google.
Today, we want to talk about open source projects.
And you have contributed many of those to Dev Library,
and quite a bunch of those have been selected
to the Dev Library website.
We'll put the link down in the description.
We'd like to talk a little bit about those projects
and what led you to work on TensorFlow, because most
of what you work on, if I'm not mistaken,
is using TensorFlow.js.
Do you want to talk a little bit about what you do?
GANT LABORDE: Yeah, absolutely.
So I have been a--
dare I say, a app developer at heart with a computer science
degree.
It's always been fun to dig into math and computer science.
But in the end, I don't want to write papers.
I want to build things that actually affect my life.
And that's brought me directly into websites early on.
Websites going-- while my teachers were giving me classes
on making sure that I've learned Haskell correctly,
I was building.
I was building ASP pages and then-- before ASP.NET.
So it was a lot of fun.
And then that, of course, if you're a pragmatic person,
you end up in mobile development,
where I've strongly landed for a while.
And I work with the best company in the world
for mobile development, which I am now part owner in,
Infinite Red, and we've gone through a myriad
of different kinds of levels of technology--
Native, Ruby on top of Native, and then ending
with things like JavaScript, actually ultimately controlling
those experiences.
And I've fallen in love with the world of--
the ubiquity of JavaScript.
So TensorFlow, being one of the coolest things in the world,
I decided, hey, they're doing TensorFlow but now
in JavaScript, so TensorFlow.js.
I can actually run my models on the client side.
I could put them on edge devices.
I'm jumping in on this pretty hard.
So we've really been delivering quite a bit
in the world of TensorFlow.js.
I'm actually been on quite a few Google shows, been
a contributor back to TensorFlow.js in the repo,
as well as I actually wrote the O'Reilly book,
"Learning TensorFlow.js."
SEBASTIAN TRZCINSKI-CLEMENT: Very nice.
Is there anything that surprised you
as you explored and became more proficient with TensorFlow.js?
Anything that surprised you?
By the way, it can be in a positive way or a negative way.
I'm curious either way.
GANT LABORDE: I have to say the--
I think that we're always been like,
"These machines, the AI, it's going
to require a supercomputer."
And then you have it work on a browser and a phone.
And you're getting almost 30 frames per second on a phone,
doing visual AI.
Just very hats off to the team that's optimized,
tapped into the GPU, tapped into WebAssembly,
created all these different backends
so that it could actually be dynamic
and land on different platforms and still not fall over.
So the performance, that's been the surprise.
I was expecting it just to be able to do it
and not to do it well.
It does it well.
SEBASTIAN TRZCINSKI-CLEMENT: In fact, two of your projects
that I played with a little bit earlier today
to prepare for this interview are
Rock Paper Scissors and a recognition
of facial expressions.
And I think for the Rock Paper Scissors,
you can actually try it live.
You have a demo app or web app link.
Do you want to talk a bit more about these two
projects or any other projects that you've contributed to?
GANT LABORDE: Yeah, absolutely.
One of the weird things that I wanted to see--
have you ever seen the movie "WarGames"?
SEBASTIAN TRZCINSKI-CLEMENT: No, I have not.
GANT LABORDE: OK.
I actually just recently watched it again,
and one of the great things that happens
here is there's a scene in "WarGames" where
the computer is learning.
And I wanted to see that.
As a matter of fact, most famously, it actually
learns from playing tic-tac-toe.
And what's great about it is I want to see the idea here--
as a computer programmer, I have the idea in my head,
and then I code out that idea, and then the thing
does what I've coded it to do.
And if I don't think of it, it doesn't think of it.
But with the Rock Paper Scissors example,
it actually was beautiful to me because I have a model that's
seen no data whatsoever.
And so it's just created.
It's not seen any information.
And then what happens is you can actually ask it,
"Is this rock or paper or scissors?"
And that's from a data set by Laurence Moroney,
and it was a wonderful data set, but it's terrible.
It fails.
It falls over.
It thinks everything is scissors,
or it does this or that.
It just basically-- it's based on randomness
on the way it's set up, so it really doesn't know anything.
And then you can take a look at the data,
then basically give it a test.
You know, "Here's information.
I'm going to give you 80% of these questions,
and then I want you to learn from that.
And then I'm going to test you on the other 20%."
And then so you just give it, "This is what rock looks like.
This is what rock looks like.
This is what rock looks like."
And it does it in your browser.
It's not going off to any server.
It does it in your browser thousands and thousands
and thousands of times, like flash cards, right?
And then you get to come back and say,
"OK, what did we learn?"
And then you say, "What is this?"
It says, "Oh, that's rock.
This is paper.
That's scissors."
And then I say, "OK, let's--
surprise exam, a pop quiz.
Turn on the webcam, and then what are you actually seeing?
Is this rock, or is this paper or scissors?"
Or like, as I do over there, this is scissors.
That's a mean scissors right there, the thumb coming out
like that.
But we do scissors like this.
And then you actually get to see how much it's learned,
and it's all been sitting on your machine the entire time.
It didn't go off to a server.
And then you got to watch it train in a matter of seconds.
That's just a beautiful sort of "aha" moment for developers
who exist in this world of, "I have to tell you
where this finger is," or "I have
to tell you where that is."
And we have this insane control.
And here's a problem that none of us
could probably code ourselves.
But in seconds, it coded for itself.
It figured out how to look at this and do that.
And we just simply gave it the data
and the test and the training of that.
And then I think that's a real nice moment for everybody
coming into TensorFlow to say, like, "Wow.
I just saw this go from nothing to something
right on my screen."
SEBASTIAN TRZCINSKI-CLEMENT: Any challenges
that you've encountered when you wanted to build
machine learning models?
You make it sound very easy and it's-- and visually,
it's very appealing, as I can attest when I play with what
you've built. Any challenges that you've encountered when
building maybe this model or other models?
GANT LABORDE: Yes, very much so.
I actually have a very funny tweet that I did a while ago,
so when I first tried to do the Rock Paper Scissors.
So here's the hard part--
taking information, whether it's video, audio, the set of--
just like when the next full moon
is going to be, or a Fizz Buzz data, like whatever
you have there, and you're going to put it in there.
It's figuring out how to take that and put it
into data that patterns could be found in.
And when I first did the Rock Paper Scissors, I did--
I was trying to get this large group of data,
and I had the RGB channels wrong.
So it was actually grabbing the R channel, the red,
from one picture, putting it over the green
and the blue of other pictures, and it looked crazy.
It looked like pop art.
And so I had a mistake in my code
in just getting the data encoded.
And so I actually put it on Twitter,
and that's actually one of the first communications I
had with Laurence is, I said, "Look at this."
And he said, "I want that, and I want to print it up and put it
on my wall," because it's his data set,
but it looked really cool when it's suddenly changed.
Yeah.
SEBASTIAN TRZCINSKI-CLEMENT: You should sell it as an NFT.
What do you think?
GANT LABORDE: Yeah.
Yeah, exactly.
I wound up fixing it, and I was sad to see it go.
But I went back, and I made a high resolution version
for Laurence, and I sent it to him on Twitter.
I'll have to send you the link to the thread.
SEBASTIAN TRZCINSKI-CLEMENT: Please do.
GANT LABORDE: But there is the moment of mistake
where I'm just looking at the hands, and they are not right.
SEBASTIAN TRZCINSKI-CLEMENT: What
would be your advice for someone who
starts playing with either machine learning or TensorFlow,
someone who's maybe a programmer and has
heard about machine learning and AI for ages
now but is still a bit afraid of getting into?
And what would be your piece of advice?
GANT LABORDE: Don't let any eggheads push you around.
You don't need a PhD.
Now, it's true you used to.
You used to need a PhD.
Then, for a while, you had to have a master's in order
to go ahead and be hired in AI and in machine learning.
The barrier to entry is decreasing.
The market and the pragmatic side of it
has been growing exponentially.
I'd say don't be dissuaded.
Look at dev libraries.
Look at open source.
Look at the stuff that's happening.
I have seen it accelerating more and more cool things.
You're seeing people hook it up to do music videos,
to play "Street Fighter" with their actual hand movements,
and stuff like that.
The things that are coming out now, latch onto that.
Get your passion project idea, and then go after it.
Yes, you might end up--
because it's early, you might end up a little bit deeper
into some of these places, but that's a great way to learn.
That's a great way to learn.
If you have something that's really interesting,
you have a good community, and then you
have to go a little bit deeper here and there,
that's the safe place to learn this.
I think all the best development projects I've ever
done in my life have been--
I had a reason why I need to go a couple layers deep and take
a look at linear algebra for a minute or something like that,
and it's not scary then.
It's only scary when you don't know what it's for.
SEBASTIAN TRZCINSKI-CLEMENT: Conversely,
is there any worst piece of advice
that you've heard around you or on Twitter
or in our tech industry that you feel,
"Really, we should not say this,"
or "We should not think that way"?
GANT LABORDE: Yeah.
It's the people shutting people down.
It's saying, "You need a PhD."
I wrote a blog article on "Hacker News."
It was a really good one-- well, I
wrote this one called "Machine Learning, Zero to Hero."
And it had so many views.
It had so many people getting interested.
It says, why do you want to be interested in this
and what's coming in here.
And in the comments, there was one person who said, "Oh,
you can't think of things like that.
That's not exactly how it works,"
and then went into specifics and identified this and that.
And you could tell there was a lot of their personal life
coming out, right?
Now, fortunately, a whole bunch of people
came back and responded to that comment,
saying, "That's not what the purpose of the article is.
That's not this is.
That doesn't even sound like something
that would happen to someone getting started,"
all kinds of stuff.
So might say, ignore the haters.
SEBASTIAN TRZCINSKI-CLEMENT: There's an interesting
article--
GANT LABORDE: That's my advice.
SEBASTIAN TRZCINSKI-CLEMENT: I don't know if you've seen it.
A few years ago, I think a couple of years
ago, by Paul Graham, the co-founder of Y Combinator.
He has an article called--
an essay called "Haters."
And the interesting perspective that he has
is showing how haters seem to be the exact minus sign
of the fanboys or the fangirls.
So whatever you do, they will hate,
just like a fanboy or a fangirl will just love whatever you do,
even if you say the wrong thing.
GANT LABORDE: Yes.
SEBASTIAN TRZCINSKI-CLEMENT: And when
you see it that way, where there's this lack of distance,
and a critical mind is just hating what you do
or what you say just for the sake of hating,
it allows you to just realize, "OK,
this person is set on their mindset
and not going to change."
So I like your advice of ignoring it.
GANT LABORDE: Yeah.
SEBASTIAN TRZCINSKI-CLEMENT: Any piece-- go ahead.
GANT LABORDE: Yeah.
The critical thinking skills are fantastic.
They really are.
And they have their place, and they have their time.
And when you're just starting out,
that's not the place or the time.
SEBASTIAN TRZCINSKI-CLEMENT: A couple more questions for you.
Any piece of Google technology that is exciting
you going forward?
Anything you'd like to play with or that you'd like to see
come in?
GANT LABORDE: The advancements of what's
been happening with TensorFlow.js
have not slowed down.
So the trick coming in with that is all the things that they're
building, all the AutoML things, all the new backends
for TensorFlow.js, there are a lot of stakeholders.
And that just means that new bells and whistles
will be showing up inside of websites for the next 10 years.
Sometimes-- and I hate to say this--
there's this sort of Death Star staring down every Google
project, and you wonder if you're
going to grab on to something, and then
it might not be the thing that's around next year.
That's a very valid fear.
Seeing so much buy-in makes me very happy.
Instead of that, you get the other side
of it-- plenty of user adoption, plenty of new features,
plenty of cool, new things.
So I'll say that that's what I'm very excited about because it
seems to be accelerating.
SEBASTIAN TRZCINSKI-CLEMENT: Very nice.
Any last words you'd like to share with fellow developers?
GANT LABORDE: I would say that, quite specifically, we
are entering a new world.
You probably have been in the developer
world for a while or brand new to it,
but you've seen this "hurry up and hustle" kind of mentality.
You might have seen "Get your code out" or some
of these other kinds of things.
I'll say with the AI revolution that's coming
in-- and it's entering into your emails,
finishing your emails for you, it's in your app putting fun
filters on your face, all these things--
here's my great tip for you.
It's not about hurrying up anymore.
It's about being creative and being the most human that you
can be and bringing humanity to these cool, new features.
We don't have to sit there and code thousands
and thousands and thousands of lines of code.
We have to actually architect what it's going
to be like when it's done.
And if you're like me, that's a very awesome thing
to look forward to.
And that's what I'm seeing--
be more you, be more human, bring humanity to AI.
SEBASTIAN TRZCINSKI-CLEMENT: Very cool.
Thank you very much.
Thank you so much for your time and for your contributions.
GANT LABORDE: You got it.
SEBASTIAN TRZCINSKI-CLEMENT: Thank you.
GANT LABORDE: Thank you.
[MUSIC PLAYING]