1
00:00:01,655 --> 00:00:06,009
Hello, everyone, and welcome back to another episode of Adventures in DevOps.

2
00:00:06,009 --> 00:00:18,160
And I'm Warren, and here today I have senior staff engineer at Google working on Chrome,
who leads the Federated Credential Management, FCM project, originally from Brazil, I

3
00:00:18,160 --> 00:00:21,944
think, and at Google for almost 20 years, Sam Goto.

4
00:00:21,944 --> 00:00:23,785
Thanks for joining us today.

5
00:00:24,408 --> 00:00:25,626
Hi, nice meeting you.

6
00:00:25,626 --> 00:00:26,531
Yeah, thanks for having me.

7
00:00:26,531 --> 00:00:27,979
So excited to be here.

8
00:00:27,979 --> 00:00:36,269
Yeah, I think every engineer or anyone who's in the technical domain probably always has
the same question for you, which is your last name.

9
00:00:36,269 --> 00:00:38,303
That must break some systems.

10
00:00:39,033 --> 00:00:41,325
you'd be surprised how many systems I broke at Google.

11
00:00:41,325 --> 00:00:43,066
Yes, I am actually Sam Gotu.

12
00:00:43,066 --> 00:00:44,267
Gotu is my last name.

13
00:00:44,267 --> 00:00:52,974
It's technically a very popular last name in Japan, uh although I've been uh born and
raised in Brazil, which surprised a lot of people too.

14
00:00:53,055 --> 00:00:54,736
But I am Gotu at Google.com.

15
00:00:54,736 --> 00:00:56,338
I am Gotu at Chrome.org.

16
00:00:56,338 --> 00:01:03,564
And you'd be surprised the amount of systems that I broke, uh because obviously Gotu is a
reserved keyword in many computer systems.

17
00:01:03,564 --> 00:01:05,125
uh So yeah, I...

18
00:01:05,125 --> 00:01:06,006
uh

19
00:01:06,006 --> 00:01:12,160
Yeah, apparently that's my biggest legacy at Google is like the amount of systems that I
broke is what I'm most famous for, guess.

20
00:01:12,246 --> 00:01:14,506
But yeah, I can walk you through.

21
00:01:14,702 --> 00:01:19,918
is there like one particular story that just comes to mind, be like, it was this one time
that was the worst.

22
00:01:19,918 --> 00:01:29,163
I mean, there are many over the years because you'd be surprised the amount of systems
that have hard coded the fact that go to is a reserved keyword, but perhaps the most

23
00:01:29,163 --> 00:01:33,044
memorable one is that ah I broke.

24
00:01:33,044 --> 00:01:36,346
So internally, have something at Google internally.

25
00:01:36,346 --> 00:01:41,328
We have something like a URL shortener system called GoToLinks.

26
00:01:41,328 --> 00:01:45,030
And so the way that they work as you would normally think is that

27
00:01:45,882 --> 00:01:58,683
They have a go-to slash and then you can pick whatever string you want and I can point to
any URL and uh I broke them for about four hours at Google and the way that it happened is

28
00:01:58,683 --> 00:02:01,055
that uh it was fairly early in my career.

29
00:02:01,055 --> 00:02:03,877
was maybe uh five or six years in.

30
00:02:03,877 --> 00:02:05,138
I was on the Gmail team.

31
00:02:05,138 --> 00:02:12,294
This director comes along and says like, ah hey, uh you know, every engineer gets a new
desktop machine.

32
00:02:12,294 --> 00:02:13,925
You know, just here's a spreadsheet.

33
00:02:13,925 --> 00:02:15,310
Pick your machine name.

34
00:02:15,310 --> 00:02:18,130
And then, and if you don't pick any, I'll just use your username.

35
00:02:18,210 --> 00:02:22,630
And so, I saw, I saw like, sure, happy to get a new machine.

36
00:02:22,630 --> 00:02:24,370
And then I just get lazy.

37
00:02:24,370 --> 00:02:25,930
It's like just using my username.

38
00:02:25,930 --> 00:02:28,730
My original one was brazil.corp.google.com.

39
00:02:28,730 --> 00:02:32,970
And then my, then my second one was goto.corp.google.com.

40
00:02:32,970 --> 00:02:36,250
And so like new machines arrive, everybody's excited about them.

41
00:02:36,250 --> 00:02:39,170
I was like, ah, this like a new corp machine that's wonderful.

42
00:02:39,170 --> 00:02:44,210
The moment I plugged my machine into the network with the ethernet cable in,

43
00:02:44,322 --> 00:02:54,956
the DNS stuff starts kicking in, registered my machine as goto.corp.google.com, and then
all of a sudden, all of the goto links start coming into my machine as opposed to the goto

44
00:02:54,956 --> 00:02:55,947
service.

45
00:02:55,967 --> 00:03:06,111
so uh for, it was actually pretty fast that um people realized what the problem was, but
it took a long time for the DNS cache to expire.

46
00:03:06,111 --> 00:03:14,094
And so like it was uh for a good morning of the company, the company was much smaller,
maybe five or six thousand each.

47
00:03:14,094 --> 00:03:20,174
people at the time, but it was enough that he created a big commercial company.

48
00:03:20,174 --> 00:03:24,514
All the Goat links were coming to my machine for a good, good morning or so.

49
00:03:24,714 --> 00:03:30,154
for a good amount of time, I kept the company unproductive.

50
00:03:31,638 --> 00:03:35,413
That's like one of those secret pieces of knowledge from Google.

51
00:03:35,413 --> 00:03:39,339
I feel like that all the user identifiers are actually email addresses, right?

52
00:03:39,339 --> 00:03:45,988
So getting the email address in there had a real impact on the URL shortener.

53
00:03:46,208 --> 00:03:47,228
Yeah, for sure.

54
00:03:47,228 --> 00:03:48,590
Yeah, I'm GoTo.

55
00:03:48,590 --> 00:03:51,600
And then so many things rely on the username, right?

56
00:03:51,600 --> 00:03:55,806
And so the other story that I tell people is that at Google, it's a monorepo.

57
00:03:55,806 --> 00:03:59,088
And so everybody submits code to the same repository.

58
00:03:59,088 --> 00:04:06,193
And there's a special package called experimental packages that is slash experimental
slash username.

59
00:04:06,574 --> 00:04:11,918
And then I broke that too because mine was obviously experimental slash GoTo.

60
00:04:11,918 --> 00:04:18,085
uh which broke because as soon as you put that into a Java file, it goes into the package
name.

61
00:04:18,085 --> 00:04:23,931
It's experimental.go2.package name, and it also doesn't compile because it's a reserved
Java keyword.

62
00:04:23,931 --> 00:04:26,013
And so that also broke.

63
00:04:26,013 --> 00:04:35,062
um So yeah, you'd be surprised the amount of systems that people assume that the username
is a, it's a reserve, it's not a reserve keyword.

64
00:04:35,084 --> 00:04:40,684
It seems like you've been destined to be some sort of software engineer breaking system
since you started out.

65
00:04:40,684 --> 00:04:47,604
Did you always know that you would go into software engineering and potentially end up at
Google for 17 plus years?

66
00:04:48,062 --> 00:04:49,783
ah I mean, it's hard to say.

67
00:04:49,783 --> 00:04:55,547
I have to say that when I was in eighth grade, I fell in love with computers.

68
00:04:55,547 --> 00:05:02,412
uh I guess in sixth grade, was already, in eighth grade was when I got a Visual Basic
book.

69
00:05:02,412 --> 00:05:06,515
And I remember that because it was the first time that I read a book faster than my
brother.

70
00:05:06,515 --> 00:05:09,909
My brother was always the kind of like the well-put and smart one.

71
00:05:09,909 --> 00:05:17,304
It was more the funny uh one, uh troublemaker some would say, but it was in eighth grade.

72
00:05:17,304 --> 00:05:23,109
that I remember getting my hands on uh a Visual Basic book and just falling in love with
computing.

73
00:05:23,109 --> 00:05:34,308
So yeah, I would say that since eighth grade is when I feel like I knew that I, not that I
knew, but it hasn't, my curiosity hasn't stopped since sixth grade, since eighth grade, if

74
00:05:34,308 --> 00:05:36,980
anything, just grew over time.

75
00:05:38,167 --> 00:05:48,078
How did you end up on the Chrome team working in probably one of the most cutting edge
technologies out there today when it comes to containerization and security, something

76
00:05:48,078 --> 00:05:49,303
that everyone's using?

77
00:05:49,303 --> 00:05:51,812
You mentioned that you were on the Gmail team before.

78
00:05:52,577 --> 00:05:56,758
I can't imagine before getting into Google, you're like, you know what?

79
00:05:56,758 --> 00:05:58,029
I want to work on browsers.

80
00:05:58,029 --> 00:05:59,921
That's going to be my thing.

81
00:06:00,912 --> 00:06:02,833
Well, I guess, yeah, mean, a long way.

82
00:06:02,833 --> 00:06:06,034
And man, I will just show how old I'm feeling now.

83
00:06:06,034 --> 00:06:13,057
But uh yeah, from eighth grade, I think, uh I ran into uh HTML, JavaScript, CSS.

84
00:06:13,057 --> 00:06:17,278
I remember just feeling like uh this permissionless environment.

85
00:06:17,278 --> 00:06:23,481
remember feeling like as a high schooler, feel like I can't believe that I'm able to do
this without asking for anyone's permission.

86
00:06:23,481 --> 00:06:26,522
I was thinking like a civil engineer.

87
00:06:27,062 --> 00:06:32,222
require centuries to have a bridge approved, or my parents were doctors.

88
00:06:32,222 --> 00:06:39,963
There's just no way they would ever operate on anyone without, and I remember this kid, a
17-year-old, just writing code on the web and just feeling like, man, it feels so

89
00:06:39,963 --> 00:06:51,623
wonderful to be able to do stuff without having, uh just not requiring a fancy, uh a lot
of economic bootstrap.

90
00:06:51,623 --> 00:06:53,584
um There's a...

91
00:06:53,584 --> 00:06:56,006
uh

92
00:06:56,334 --> 00:07:02,599
uh cinematographer in Brazil that says like an idea in your head and a camera in your
hands.

93
00:07:02,599 --> 00:07:12,747
I forget if it's Brazilian or not, but there's this thinking of like all you need to do
some wonderful stuff in film is to have an idea in your head and a camera in your head.

94
00:07:12,768 --> 00:07:14,969
And I felt the same way about computers.

95
00:07:15,590 --> 00:07:20,654
So I remember building some of my first websites when I was in high school.

96
00:07:20,686 --> 00:07:24,286
uh I spent a year in Italy, which really saved me as a student.

97
00:07:24,286 --> 00:07:28,078
It really was a life-changing event for me as an exchange student, spent a year in Italy.

98
00:07:28,078 --> 00:07:38,251
And then when I came back, uh got into college, and I remember in college feeling like
that my dream job was to work at Mozilla.

99
00:07:40,431 --> 00:07:48,944
My high school idols were folks like um Linos and doing the Colonel, and in college it was
Mozilla.

100
00:07:48,944 --> 00:07:50,159
I've always felt like.

101
00:07:50,159 --> 00:07:52,459
Mozilla was the perfect job.

102
00:07:52,919 --> 00:07:54,679
And Google was just starting along.

103
00:07:54,679 --> 00:07:58,159
It was like, remember, because I went to college in 2002.

104
00:07:58,379 --> 00:08:03,199
And so Google was still like in its infancy, but it was already something that people
would talk about.

105
00:08:04,599 --> 00:08:08,719
At the time, ARCA.com was one of the largest social networks in Brazil.

106
00:08:08,719 --> 00:08:12,179
don't know if you, ARCA was TikTok before TikTok was cool.

107
00:08:12,619 --> 00:08:18,539
Or at least the grandfather of TikTok, perhaps, was Facebook and then ARCA before that.

108
00:08:19,929 --> 00:08:25,448
I have to, I sometimes wonder whether or not the audience actually thinks that TikTok is
cool.

109
00:08:25,448 --> 00:08:26,900
you know, the...

110
00:08:26,990 --> 00:08:30,510
Yes, yes, a little bit bit of a boy, yes.

111
00:08:31,790 --> 00:08:34,690
But yeah, Orchid was comparable to what TikTok is today.

112
00:08:34,690 --> 00:08:38,510
It was a social network and it was the largest social network in Brazil.

113
00:08:39,370 --> 00:08:55,406
somewhere in the fourth or fifth year of college, I got an internship at Orchid and I was
super excited to come to California to help be one of the engineers on the Orchid team.

114
00:08:55,406 --> 00:09:06,211
ah Again, I felt like this feeling of like, man, I just can't believe that they let like a
22 year old write code for the millions of users and just push things out to production.

115
00:09:06,211 --> 00:09:10,473
And I remember just feeling wonderful about being able to uh have an effect on ArcGut.

116
00:09:10,473 --> 00:09:19,176
uh then uh somewhere uh after that, I uh passed the Google interview.

117
00:09:19,176 --> 00:09:22,358
And then at Google, I would say it's been 20 years now, so it's a lot of...

118
00:09:22,358 --> 00:09:22,830
uh

119
00:09:22,830 --> 00:09:25,430
not 20, 2006 was when I was an intern.

120
00:09:25,430 --> 00:09:27,410
So technically next year will be 20 years.

121
00:09:27,410 --> 00:09:32,070
But I would say that maybe in my career at Google is maybe divided in three big parts.

122
00:09:32,070 --> 00:09:34,570
I would say the first part is like the social network part.

123
00:09:34,570 --> 00:09:42,130
So I did Orchid, Google Buzz, part of Google Reader, part of Google Docs, Gmail, and then
Google+.

124
00:09:42,130 --> 00:09:50,510
And at that time, I like to tell people that I was responsible for the least successful
version of signing with Google, which I can tell you a little bit about.

125
00:09:50,603 --> 00:09:51,154
I'm with you.

126
00:09:51,154 --> 00:10:03,930
Honestly, I think that the cut over from, I think it was Twitter really that started
federated login in my book, but it was Google Plus identities after Wave that really made

127
00:10:03,930 --> 00:10:09,136
a huge impact of having the idea of federated login providers out

128
00:10:09,357 --> 00:10:10,697
Yeah, yeah, yeah, yeah.

129
00:10:10,697 --> 00:10:16,889
Twitter, a lot of this comes from folks like Brad Fitzpatrick and a lot of the folks that
came into Google afterwards.

130
00:10:16,889 --> 00:10:18,900
uh Orchid had some of these ideas too.

131
00:10:18,900 --> 00:10:21,581
There was something called OpenSocial that we tried for a long time.

132
00:10:21,581 --> 00:10:28,673
I think it's comparable to what Blue Sky and Macedon are today, but a way to have social
networks talk to each other.

133
00:10:28,673 --> 00:10:37,456
And even at that early stage, I feel like I was already kind of fascinated by this idea of
having things interoperate with one another.

134
00:10:37,456 --> 00:10:38,517
I work on Google Reader.

135
00:10:38,517 --> 00:10:39,317
uh

136
00:10:39,317 --> 00:10:45,422
with uh where Fitzpatrick and uh Brad were doing PubSubHubbub and RSS.

137
00:10:45,522 --> 00:10:50,907
And then after that, uh the second third of my career Google was in Google Search.

138
00:10:50,907 --> 00:10:52,788
I was like, enough of developing websites.

139
00:10:52,788 --> 00:10:54,870
Let me try to crawl websites.

140
00:10:54,870 --> 00:10:56,311
And then I spent a good.

141
00:10:56,311 --> 00:10:57,672
four or five years in Google search.

142
00:10:57,672 --> 00:11:02,454
uh For the most part, uh also in doing standards in interoperability.

143
00:11:02,454 --> 00:11:07,396
So I did schema.org for uh semantic web sprinkles for Google search.

144
00:11:07,396 --> 00:11:11,617
Trying to do the Google system before we had LLMs, and it was really hard.

145
00:11:11,617 --> 00:11:13,178
I can talk a little bit about that.

146
00:11:13,178 --> 00:11:15,259
And I'm so excited about LLMs today.

147
00:11:15,259 --> 00:11:21,561
then about eight or nine years ago, I uh came to the Chrome team.

148
00:11:21,561 --> 00:11:25,487
uh Because I spent like 10 years of my life

149
00:11:25,487 --> 00:11:28,207
building websites, five, crawling the web.

150
00:11:28,207 --> 00:11:33,127
So I figured at some point, I should try to design the web from within it or from the
browser.

151
00:11:33,307 --> 00:11:41,387
then so nine years when I joined the Chrome team and have been developing a web platform
API since.

152
00:11:42,547 --> 00:11:43,727
Did I answer your question?

153
00:11:43,727 --> 00:11:45,887
It was a big, big, big answer.

154
00:11:45,887 --> 00:11:48,896
But yeah, that's how it got into Chrome, at least.

155
00:11:48,896 --> 00:11:50,947
Yeah, no, that's absolutely great.

156
00:11:50,947 --> 00:11:56,893
I think it's a really interesting story and something that at least resonates for me and
hopefully some of the listeners as well.

157
00:11:56,893 --> 00:12:07,673
And I really liked that you brought up the Federation story because I think that's one of
the selfish reasons that I wanted to get you on for today's episode ah is because I feel

158
00:12:07,673 --> 00:12:10,517
like the Federated Credential Management...

159
00:12:10,517 --> 00:12:20,604
FedCM is such an important innovation in not just the auth space but really browsers and
getting the word out there that this is now a technology that not only can be used but

160
00:12:20,604 --> 00:12:27,188
companies such as Booking.com and Shopify I think are the two canonical examples that have
already created support for this.

161
00:12:27,188 --> 00:12:34,643
uh I'm sure you've got like a cornerstone FedCM elevator pitched down so let's hear it.

162
00:12:35,260 --> 00:12:44,190
I don't know if I do, think, and it's funny because I think the way that we talk about it
internally is somewhat different than the way that we talk about it externally.

163
00:12:44,190 --> 00:12:52,839
um But I can tell you at least what's in my heart at least, which is, it's just this
intuition.

164
00:12:52,909 --> 00:13:03,344
that ah if the browser was more involved with identity, uh if it took identity as a
first-class citizen, then it would be able to assist the user in constructive ways.

165
00:13:03,344 --> 00:13:15,470
So it's just this intuition that of like, in what ways can the browser help, uh can the
browser take identity as a first-class citizen and help the user?

166
00:13:15,470 --> 00:13:22,833
so, because if you think it's kind of like, it's a missing layer in browsers, right, in
the internet,

167
00:13:22,833 --> 00:13:25,915
that identity is something that is done on top of it as opposed to in it.

168
00:13:25,915 --> 00:13:35,151
uh Identity, tell people that, Federation specifically, both SAML and OAuth have been done
despite of the browser, not because of the browser.

169
00:13:35,151 --> 00:13:44,107
You surprise the amount of workarounds that people have gone through ah because they
assume that browser vendors were kind of like this immutable thing.

170
00:13:44,307 --> 00:13:47,169
I tell people, I understand where they're coming from.

171
00:13:47,169 --> 00:13:52,705
When I'm designing a browser, I don't think of like, oh, what if I changed the laws of
gravity?

172
00:13:52,705 --> 00:13:58,665
What if I publish this paper about how quantum physics works or how gravity works or even
operating systems, right?

173
00:13:58,665 --> 00:14:00,405
You take the operating system for granted.

174
00:14:00,405 --> 00:14:05,585
You don't go like, oh, maybe if only Windows worked that way, if only Linux worked that
way, right?

175
00:14:05,585 --> 00:14:11,945
You operate it with the constraints that you have and the layer that you're in and that's
what you have.

176
00:14:11,945 --> 00:14:21,945
And for the most part, think that we went so far in a wonderful way without the help of
the browser and both SAML and OpenID Connect and OAuth.

177
00:14:22,609 --> 00:14:35,914
We also created really convoluted systems that have uh bad properties that are
fundamentally not solvable unless you assume that you can change a layer under it.

178
00:14:35,914 --> 00:14:42,836
uh For a good amount of time, I tried to go to the identity uh conferences.

179
00:14:42,836 --> 00:14:45,177
IAW nearby happens a lot.

180
00:14:45,177 --> 00:14:48,508
I would tell people, hi, I'm a browser engineer.

181
00:14:48,508 --> 00:14:49,938
I'm here to help.

182
00:14:51,881 --> 00:15:01,455
I think people assume that browser engineering is done by completely uh unrelated people
that have five eyes or three legs.

183
00:15:01,576 --> 00:15:08,839
But they're just done by people the same way that other layers are, and they're as
accessible as other layers are.

184
00:15:08,839 --> 00:15:17,363
And if you only ask people, how far would you be able to take you if you could assume that
the browser could change?

185
00:15:17,363 --> 00:15:19,924
And I would just keep asking that question.

186
00:15:19,924 --> 00:15:21,745
you'd be surprised the amount of people who said, oh,

187
00:15:21,745 --> 00:15:30,585
If only the browser could change this in that way, then we wouldn't have to have these and
this problem in the system.

188
00:15:30,585 --> 00:15:34,105
It would make this part here less convoluted.

189
00:15:34,105 --> 00:15:38,823
Some of my pet peeves are...

190
00:15:38,989 --> 00:15:41,371
Redirect your eyes is one example.

191
00:15:41,371 --> 00:15:46,927
In all the many ways in which we have to hide the response back to the sample response.

192
00:15:46,927 --> 00:15:58,159
um The NASCAR flag also comes up too as like, if only we had uh a neutral party that would
be able to help you discover your identity, that might help too.

193
00:15:58,199 --> 00:15:59,166
So yeah.

194
00:15:59,166 --> 00:16:10,024
actually want to dive into that because I think the idea of what's called the NASCAR
problem comes up and I think it's worth spending one second explaining why I'm so

195
00:16:10,024 --> 00:16:21,642
personally invested in seeing FedCM come and make its show for the browsers because
realistically it was always the case that in order to select a federated identity provider

196
00:16:21,642 --> 00:16:25,995
to log in, the application has to support that specific one and

197
00:16:25,995 --> 00:16:35,222
with the number of data providers that we have out there or identity providers that are
now available in order to give every user their own control over which identity provider

198
00:16:35,222 --> 00:16:44,870
they want to actually use, the list on that login page would have to be, the scroll wheel
would have to be involved on the mouse in order to select, and then remembering which

199
00:16:44,870 --> 00:16:46,542
identity provider you actually picked.

200
00:16:46,542 --> 00:16:55,971
And so for me, I think FedSame is all about eliminating the list, letting the user pick
who they log in with, and then most importantly, I think remembering.

201
00:16:55,971 --> 00:16:58,392
Yeah, for sure.

202
00:16:58,392 --> 00:17:01,313
mean, that's also one of my biggest pet peeves.

203
00:17:02,534 --> 00:17:04,595
when I talk to the...

204
00:17:04,595 --> 00:17:06,135
I talk a lot with...

205
00:17:06,756 --> 00:17:10,077
I try not to run into the same walls that people have already run into.

206
00:17:10,077 --> 00:17:13,438
I talk a lot to the original people that designed some of these things.

207
00:17:13,438 --> 00:17:15,179
um

208
00:17:15,179 --> 00:17:24,423
And they are all kind of like very supportive of, they said, a lot of them say, like, we
designed OpenID Connect early on so that you could bring your own.

209
00:17:24,423 --> 00:17:26,261
It was just really hard to explain to users.

210
00:17:26,261 --> 00:17:32,527
Like you said, right, you either have to have an infinite uh select box with infinite
scroll, right?

211
00:17:32,527 --> 00:17:38,850
But what they actually did was initially you could enter your OpenID provider in a text
box, right?

212
00:17:38,850 --> 00:17:40,451
Like you entered an email address, right?

213
00:17:40,451 --> 00:17:43,752
And then from there it would like bring in the right things, right?

214
00:17:43,752 --> 00:17:45,055
And obviously, like that was hard

215
00:17:45,055 --> 00:17:46,786
for users to understand, right?

216
00:17:46,887 --> 00:17:50,770
Who on their right mind say, like, this is my open ID provider, you know?

217
00:17:50,770 --> 00:17:52,241
And then they announce themselves as that.

218
00:17:52,241 --> 00:18:04,701
so, in as much as it was a good intention, the intention of the design, the properties of
the system that they wanted was so that you could bring your own as opposed to have this

219
00:18:04,701 --> 00:18:09,485
enumeration of, like, uh preconceived, pre-anticipated, ahead-of-time ones.

220
00:18:09,485 --> 00:18:14,979
ah But it turns out that it was just really hard to explain to users in comparison to this

221
00:18:14,979 --> 00:18:18,273
it on a signing with Google button or logging with Facebook button, right?

222
00:18:18,273 --> 00:18:19,895
Yeah, for sure.

223
00:18:19,895 --> 00:18:29,013
think now you're actually in a better place to sort of describe the benefits because we
can see, I think what you're describing realistically there is like Webfinger for Macedon

224
00:18:29,013 --> 00:18:36,650
or Matrix uh or AT Proto for that uses, there's pretty much just OAuth 2 under the hood
for Blue Sky.

225
00:18:37,051 --> 00:18:39,233
As a user, you still have to remember.

226
00:18:39,233 --> 00:18:42,824
what your email address is or your domain every single time you want to log on.

227
00:18:42,824 --> 00:18:48,345
And one of my big challenges with even Macedon is that every time I go there, I'm not on
my home domain.

228
00:18:48,345 --> 00:18:55,437
I'm on some other domain and I have to then type in infosec.exchange every single time I
want to actually authenticate.

229
00:18:55,437 --> 00:18:57,268
And that step just completely goes away.

230
00:18:57,268 --> 00:19:07,500
And I think for me, as you brought this up a lot, is that the browser being a layer that's
been neglected in a way and it's become so powerful.

231
00:19:07,581 --> 00:19:09,131
And I think...

232
00:19:09,131 --> 00:19:18,145
One of the flavors to this is that we're seeing more and more attacks that rely on
compromising the application layer that's running in the browser, like malicious packages

233
00:19:18,145 --> 00:19:26,388
that get in, or we talk about cross-site scripting, XSS attacks or injected JavaScript
into browser agents.

234
00:19:26,388 --> 00:19:36,412
even outside of everything else, it makes a lot of sense to start migrating the
responsibility of critical components into a more secure layer that doesn't change.

235
00:19:36,432 --> 00:19:39,213
personally as an auth provider, my company,

236
00:19:39,618 --> 00:19:47,433
But really anyone who's offering any sort of service, we see that our customers, if they
all need to do the same thing, if every application in the world needs to do the same

237
00:19:47,433 --> 00:19:58,259
thing, then there's an opportunity to recapture that duplication that every application
has to build in the integration with OpenID or OAuth or AT Proto, et cetera, and move it

238
00:19:58,259 --> 00:20:01,341
out to a cornerstone area that it only has to be once.

239
00:20:01,341 --> 00:20:05,221
And now only the browsers necessarily have to uh provide that sort of thing.

240
00:20:05,221 --> 00:20:07,803
Yeah, no, I 100 % agree, but it comes at a cost.

241
00:20:07,803 --> 00:20:14,987
before I go over the cost, um so I think ergonomics is a big important factor.

242
00:20:14,987 --> 00:20:18,410
Not having so many people rewrite the same software, it's useful.

243
00:20:18,410 --> 00:20:22,733
uh But I often tell people that uh it goes in this order.

244
00:20:22,733 --> 00:20:32,559
uh Security, privacy, capabilities, performance, ergonomics, uh and there's a fifth.

245
00:20:32,729 --> 00:20:34,320
But there's a priority of things.

246
00:20:34,320 --> 00:20:45,648
And when you said about both making it useful for developers, I think useful, making it
useful, performing for users in not having to remember things, I think it's useful too.

247
00:20:45,648 --> 00:20:51,712
But I think there's many things that can only be made private if it's at that layer.

248
00:20:51,772 --> 00:20:59,978
A lot of this came from the perspective of the uh seven laws of identity.

249
00:20:59,978 --> 00:21:01,391
There's uh one.

250
00:21:01,391 --> 00:21:14,351
property of a law, is just to fight parties or data minimization for constraint use, which
is that there's just that social login today as it's currently done, it reviews more to

251
00:21:14,351 --> 00:21:16,391
parties than it necessarily needs to.

252
00:21:16,391 --> 00:21:24,611
And so, you know, as you go along the web and you click on signing with Google and you
click on logging with Facebook, both Google and Facebook learns more about their, about

253
00:21:24,611 --> 00:21:27,575
what you're aware about than they necessarily need to.

254
00:21:27,575 --> 00:21:31,837
And that's partially because of the construction of the protocol that was used without the
browser.

255
00:21:31,837 --> 00:21:41,623
But if we introduced the browser, one of the premises was, would it be possible to make it
so that you could decouple presentation from issuance and in doing so, being able to have

256
00:21:41,623 --> 00:21:46,846
uh you go to websites and log into them without phone homing your identity provider.

257
00:21:46,846 --> 00:21:50,268
It's a lot less compelling for enterprises and for research and education.

258
00:21:50,268 --> 00:21:56,343
But for consumers, we've always felt like, it would be wonderful if you were on the web
and that...

259
00:21:56,343 --> 00:22:03,065
And that tracking by identity providers weren't necessary, a necessary uh primitive if you
provided a better one.

260
00:22:03,065 --> 00:22:10,467
So there are many angles as to why FEDCM in terms of like both ergonomics and NASCAR flag
user performance.

261
00:22:10,467 --> 00:22:16,009
But I think uh both the security and privacy aspect I think are pretty important too.

262
00:22:16,009 --> 00:22:23,031
In performance, I always tell people um that I think unification across authentication
mechanisms is a key one too.

263
00:22:23,031 --> 00:22:23,491
And so...

264
00:22:23,491 --> 00:22:24,429
um

265
00:22:24,429 --> 00:22:29,142
So like the browser is the only entity that knows about your passwords and your pass keys,
right?

266
00:22:29,142 --> 00:22:31,133
But Federation has been done on top of the web.

267
00:22:31,133 --> 00:22:41,188
so browsers couldn't really unify everything in a single account user between passwords
and pass keys in Federation because it never understood what Federation was about because

268
00:22:41,188 --> 00:22:45,070
it was always like a user land construct, not a kernel land construct.

269
00:22:45,070 --> 00:22:46,703
But if you move them to the kernel,

270
00:22:46,703 --> 00:22:50,703
then you can unify those three things and offer to the user a meaningful connection.

271
00:22:50,703 --> 00:23:00,163
So for example, the NASCAR flag isn't just a problem of reconciling kind of like the five,
Facebook, login Facebook, you're signing with Google and it's logging with Twitter

272
00:23:00,163 --> 00:23:00,643
buttons.

273
00:23:00,643 --> 00:23:07,243
It also has to do with the fact that you don't know if you used a username and password or
if you used social logging before.

274
00:23:07,243 --> 00:23:12,903
I tell people, my concrete use case is that I personally have two accounts on Yelp.

275
00:23:12,963 --> 00:23:15,545
I have two accounts on Yelp because Yelp is a product.

276
00:23:15,545 --> 00:23:19,017
that I use like once every five years when I need to fix my house.

277
00:23:19,017 --> 00:23:25,402
And I always forget like what did I use the last time that I went to the DELP?

278
00:23:25,402 --> 00:23:30,385
And uh in doing so over the amount of years, I end up like having two accounts.

279
00:23:30,385 --> 00:23:37,030
One that I use my username and password and the other that I use Facebook login and
there's probably a third one that I use signing with Google.

280
00:23:37,030 --> 00:23:38,273
But it has to do with that.

281
00:23:38,273 --> 00:23:40,702
The NASCAR flag isn't just the social login providers.

282
00:23:40,702 --> 00:23:44,905
It also is the inability of Federation to be reconciled with

283
00:23:44,905 --> 00:23:46,360
usernames and passwords.

284
00:23:46,360 --> 00:23:53,156
See, and I think historically that's been a requirement on the individual application to
deal with that reconciliation.

285
00:23:53,156 --> 00:24:01,494
Like just in our own product, I know one of the things that our users keep coming back and
being like, we really like this feature is that users, doesn't matter which mechanism they

286
00:24:01,494 --> 00:24:02,234
pick to log in.

287
00:24:02,234 --> 00:24:06,478
If the email address is the same, automatically I'll log them in with the previous one.

288
00:24:06,478 --> 00:24:07,208
then.

289
00:24:07,457 --> 00:24:09,718
Consumer applications, as you pointed out, this is critical.

290
00:24:09,718 --> 00:24:18,450
And for business applications, you should never do this ever, because it's like a security
risk to even do this and like trust whether or not the flag that says email is verified is

291
00:24:18,450 --> 00:24:19,110
true or not.

292
00:24:19,110 --> 00:24:28,233
Like, I can't imagine just a number of vulnerable applications out there that are
vulnerable to data exfiltration by users that logged in with their corporate identity

293
00:24:28,233 --> 00:24:36,105
provider, then left the company, still was able to access the email, logged in with the
email with a password, the email was never verified, and now can get access back to those

294
00:24:36,105 --> 00:24:36,945
systems.

295
00:24:36,945 --> 00:24:42,405
And I feel like this is just another one of those situations that just completely goes
away.

296
00:24:42,405 --> 00:24:47,313
I do like that you brought up Paschis, though, because I do want to get to the comparison
there.

297
00:24:47,313 --> 00:24:51,339
But you told me to ask you, what about the cost?

298
00:24:51,951 --> 00:24:53,544
oh, the cost.

299
00:24:53,544 --> 00:25:01,777
yeah, because a lot, I mean, um it's the accessibility web manifesto.

300
00:25:01,777 --> 00:25:04,309
Have you ran into accessibility web manifesto?

301
00:25:04,309 --> 00:25:11,963
Not me personally, but I have like three or four colleagues that just every single day are
talking to me about accessibility and it's just things that are changing.

302
00:25:11,963 --> 00:25:14,685
No, it's not extensibility.

303
00:25:16,086 --> 00:25:21,810
Extensibility Web Manifesto, it's a trade-off between low-level APIs and high-level APIs.

304
00:25:21,810 --> 00:25:25,153
um How can I put this in a way?

305
00:25:25,153 --> 00:25:26,333
There's so many analogies.

306
00:25:26,333 --> 00:25:29,956
mean, to some extent, it has an analogy to Democrats and Republicans.

307
00:25:29,956 --> 00:25:32,898
But let's not go there yet.

308
00:25:32,898 --> 00:25:38,902
uh But it uh has to do with how much responsibility the operating system pulls for itself.

309
00:25:38,982 --> 00:25:40,623
And the more that it does,

310
00:25:40,815 --> 00:25:49,427
uh the the the the the more how would I put this so um

311
00:25:49,889 --> 00:25:54,780
I like states versus states rights versus federal union, right?

312
00:25:54,780 --> 00:26:05,248
Well, guess, so the intuition is, topologically speaking, there are lot fewer browser
engineers than there are website engineers.

313
00:26:05,248 --> 00:26:11,973
And so if you count the number of browser engineers, there's maybe like, I uh mean, maybe
like a couple thousand in the world.

314
00:26:11,973 --> 00:26:13,154
There aren't that many, right?

315
00:26:13,154 --> 00:26:16,366
And they are writing C++ and they're busy fighting fires.

316
00:26:16,366 --> 00:26:19,098
And so there aren't that many C++ browser engineers.

317
00:26:19,098 --> 00:26:20,569
Like if you count Firefox and...

318
00:26:20,569 --> 00:26:22,050
Chrome and Safari and whatnot.

319
00:26:22,050 --> 00:26:30,795
If you put all of them together, I was just at a meeting last week in Kobe, and so there
were fewer than 2,000 people, which doesn't represent everybody, obviously.

320
00:26:30,795 --> 00:26:32,987
But it's in that order of magnitude.

321
00:26:32,987 --> 00:26:37,464
Web developers, on the other hand, you have millions of web developers, right?

322
00:26:37,464 --> 00:26:45,254
And so in terms of innovation and ideas, there's just a lot more brain power in user land
than there is in kernel land.

323
00:26:45,254 --> 00:26:47,257
So usually, browser vendors try to

324
00:26:47,257 --> 00:26:56,172
pull as little as they possibly can and enable the ecosystem to do things in user-line as
much as they possibly can because it is so much more efficient to do things uh on top of

325
00:26:56,172 --> 00:26:57,953
the browser than inside the browser.

326
00:26:57,953 --> 00:27:04,917
And so I always tell people that it's useful to have stuff in the browser when they're
boring and uh uncontroversial.

327
00:27:05,478 --> 00:27:11,381
Kind of like there's an architectural principle for this, like paving the cow paths.

328
00:27:11,381 --> 00:27:15,213
So have you read into that story before, the cow paths?

329
00:27:15,637 --> 00:27:17,148
No, I haven't.

330
00:27:17,381 --> 00:27:20,213
okay, well, this is an easy one to explain.

331
00:27:20,213 --> 00:27:22,063
I promise that it has to be.

332
00:27:22,063 --> 00:27:27,076
But it's the story about an architect that was building uh in a university.

333
00:27:27,076 --> 00:27:34,300
He was tasked to uh help students uh walk through the campus, right?

334
00:27:34,300 --> 00:27:41,623
And then ah what he proposed was, let's have everything be grass for a couple of years and
let's let people walk.

335
00:27:41,623 --> 00:27:48,088
And then we'll let them walk, and then whatever there are places where there's a brown
patch, we'll pave that.

336
00:27:48,088 --> 00:27:53,151
As opposed to anticipate what they want to go to and then just have them cut through
corners.

337
00:27:53,151 --> 00:27:57,655
And so that's what they mean by paving the cow paths, which is just let the cows move.

338
00:27:57,655 --> 00:27:58,615
And then they will move.

339
00:27:58,615 --> 00:28:04,039
And then once they move, they will have discovered what is the optimal path from point A
to B or where they want to go.

340
00:28:04,039 --> 00:28:05,560
And they just pave that.

341
00:28:05,560 --> 00:28:09,603
And so the same way for brownstone engineering, um that's the

342
00:28:09,603 --> 00:28:22,861
Paving the cow path is term used for kind of like let web developers figure out how to uh
innovate and compete in this beautiful boiling pot of ideas, Where competition and just a

343
00:28:22,861 --> 00:28:24,051
massive amount of them.

344
00:28:24,051 --> 00:28:30,835
And then whenever things sediment and they settle down and they become boring, bake that
into the browser, right?

345
00:28:30,835 --> 00:28:37,399
Because once you bake that into the browser, Once you pave something, it just stays there
forever.

346
00:28:37,399 --> 00:28:39,890
Right, like when you use pave something, it's just really hard to take out.

347
00:28:39,890 --> 00:28:43,162
And so, because it's a lot more durable and solidified, right?

348
00:28:43,162 --> 00:28:44,963
But it's also not as flexible, right?

349
00:28:44,963 --> 00:28:49,086
People walking by places a lot faster than people like paving things.

350
00:28:49,086 --> 00:29:01,072
And so, browser vendors are, the trade off is that, uh yes, it's not always better to have
stuff in the browser because once you stick into the browser, it just becomes a lot more

351
00:29:01,072 --> 00:29:02,173
ossified.

352
00:29:02,173 --> 00:29:06,635
You know, it's harder to change, takes longer to recompile, to redeploy.

353
00:29:06,635 --> 00:29:08,647
and you have to agree with a lot of people.

354
00:29:08,647 --> 00:29:14,043
Whereas if you do this on the user land, it's a lot more innovative and it's more
exploration.

355
00:29:14,043 --> 00:29:19,038
So when things are bubbling and things are exploring a lot, then it's not very useful to
big data to the browser.

356
00:29:19,038 --> 00:29:19,769
That's a trade off.

357
00:29:19,769 --> 00:29:21,888
It's called accessibility web manifesto.

358
00:29:21,888 --> 00:29:22,828
for sure.

359
00:29:22,828 --> 00:29:32,328
You have to deal with this principle really of you can't, not that you can't break the
clients, the websites, et cetera, but realistically what you're doing, no one will adopt

360
00:29:32,328 --> 00:29:34,628
the new thing if they don't have to.

361
00:29:34,628 --> 00:29:38,108
And if you do break existing websites, no one will adopt the new browser.

362
00:29:38,108 --> 00:29:40,328
So you're sort of a host there.

363
00:29:40,328 --> 00:29:48,368
It's interesting you draw that analogy though, because I've always considered engineers to
be more like herding cats than cow paths, but.

364
00:29:48,784 --> 00:29:50,653
Maybe that's just my experience.

365
00:29:50,723 --> 00:29:51,687
There's a lot of that too.

366
00:29:51,687 --> 00:29:52,711
There's a lot of that too.

367
00:29:52,711 --> 00:29:53,515
Yeah.

368
00:29:53,515 --> 00:29:55,893
You'd be surprised how much of that there is for sure.

369
00:29:56,354 --> 00:30:05,816
So one of the biggest problems I've seen with browser technology, especially when it comes
to optional things and specifically in the security domain is first of all, security

370
00:30:05,816 --> 00:30:07,177
doesn't like reduce costs.

371
00:30:07,177 --> 00:30:10,737
doesn't like actually, people don't actually care about security in a lot of cases.

372
00:30:10,737 --> 00:30:14,178
And I have this feeling that pass keys failed.

373
00:30:14,378 --> 00:30:15,919
I'll say WebAuth and Fido too.

374
00:30:15,919 --> 00:30:18,539
uh There are a lot of things that it's good for.

375
00:30:18,539 --> 00:30:21,120
It's pretty much just an evolution of smart cards though.

376
00:30:21,120 --> 00:30:26,141
Second factor, uh attestations and replacing TPMs or

377
00:30:26,157 --> 00:30:33,122
uh HSMs that most desktops and laptops just don't have the ability to have a black box
private keys.

378
00:30:33,122 --> 00:30:35,544
And I think it's not about the technology because it's great.

379
00:30:35,544 --> 00:30:43,037
I think just with that, and hopefully everyone knows what I just said there, and if you
don't, I probably have like 20 or 30 blog posts about what those things are.

380
00:30:43,037 --> 00:30:49,934
I think the biggest challenge realistically is that the buyers are not the users, right?

381
00:30:49,934 --> 00:30:54,061
Like the people that have to actually implement that technology are at

382
00:30:54,061 --> 00:31:04,841
companies and I think you're gonna have a similar problem with the application development
today with FedCM, whereas you need to convince all four sides of your platform to start

383
00:31:04,841 --> 00:31:05,961
picking up this technology, right?

384
00:31:05,961 --> 00:31:17,881
You have the end users and you have the browsers, you have auth providers and you have the
application or federated identity providers and you have the application level there.

385
00:31:18,603 --> 00:31:19,933
Some people really want this, right?

386
00:31:19,933 --> 00:31:28,456
think everyone will jump up and down, especially me saying, FedCM, best thing ever as a
user, I want this yesterday, all the browsers support, et cetera.

387
00:31:28,456 --> 00:31:36,718
But if you look at the internet ecosystem, there's still something like 50 % of websites
on the internet are still being run on WordPress.

388
00:31:36,718 --> 00:31:41,819
And I don't know if I trust this number anymore because WordPress is the one pushing it.

389
00:31:41,819 --> 00:31:48,235
ah But even if it's remotely correct, I think the biggest challenge there is how do we
convince

390
00:31:48,235 --> 00:31:57,297
the application developer teams and really their companies to do this migration, do this
change and support this new technology which will really be better for everyone.

391
00:31:58,249 --> 00:32:00,301
man, that's a really tough question.

392
00:32:00,301 --> 00:32:09,897
I can't say that I have a perfect answer, but I can tell you that I've spent an absurd and
unreasonable amount of time thinking about it and that my strategy is at a minimum

393
00:32:09,897 --> 00:32:14,550
deliberate in that, but it's hard to say if it's gonna work or not.

394
00:32:16,685 --> 00:32:20,878
I mean, if I understood you correctly, you're asking, like, how do you bootstrap the
ecosystem?

395
00:32:20,878 --> 00:32:23,160
know, there's a cold start problem.

396
00:32:23,160 --> 00:32:30,374
It's a four-way cold start problem, because you have to convince users, developers,
identity providers, and browser vendors that this is a good path to take.

397
00:32:30,374 --> 00:32:35,868
And you're right uh that it is a four-way cold start problem.

398
00:32:36,108 --> 00:32:37,492
Did I understand your question right?

399
00:32:37,492 --> 00:32:46,345
that what you're Yeah, so it's um a...

400
00:32:47,503 --> 00:32:51,160
um How would I put this in a non-conflutated way?

401
00:32:51,160 --> 00:32:56,299
Maybe I should just give up and give you the confluent way.

402
00:32:56,299 --> 00:32:58,983
um

403
00:33:00,899 --> 00:33:12,193
The um way that I would explain the strategy so far, which I think is reasonable strategy.

404
00:33:15,183 --> 00:33:20,656
So it's based on the essay by m one of our internal strategists.

405
00:33:20,656 --> 00:33:23,248
left Google recently, a couple of years ago.

406
00:33:23,248 --> 00:33:26,689
He called this the um self-sustaining flame.

407
00:33:27,190 --> 00:33:29,571
Have you heard that term before, self-sustaining flame?

408
00:33:29,869 --> 00:33:32,807
uh not outside of the Kabbalah.

409
00:33:34,176 --> 00:33:47,487
So self-sustaining flame is a, I would say it's a ecosystem strategy, uh which uh is in
opposition to uh what Alex Komorowski called the flamethrower.

410
00:33:47,707 --> 00:33:57,294
So I'll tell you, like, since I've been about 20 years at Google, I've seen a lot of
ecosystem place, but the more traditional one is what one would call the flamethrower.

411
00:33:57,595 --> 00:34:02,569
The flamethrower, which some would argue that Pesky takes some of this approach, but...

412
00:34:02,569 --> 00:34:04,140
not to...

413
00:34:04,140 --> 00:34:10,963
uh So the flamethrower analogy is the typical ecosystem play that you...

414
00:34:10,963 --> 00:34:19,587
It was in opposition to this ecosystem play, but the typical ecosystem play was that we
would come up with something and then we would go at Google I.O.

415
00:34:19,587 --> 00:34:25,329
and then we would just throw a flamethrower at something and say like, use this, right?

416
00:34:25,329 --> 00:34:29,611
And like that happened for things like Dart and...

417
00:34:29,983 --> 00:34:39,181
know, Wave, and I forget exactly all the many other products, but like all the other, was,
that is one ecosystem strategy, is to come up with something and then just throw a

418
00:34:39,181 --> 00:34:48,158
flamethrower, using the loudest flamethrower that you can possibly have, and Google IOU is
probably one of the largest that Google has, and other one of those.

419
00:34:48,699 --> 00:34:57,365
So this product manager came up with an alternative ecosystem play, which he called the uh
self-sustaining flame.

420
00:34:57,506 --> 00:34:59,075
And the self-sustaining flame,

421
00:34:59,075 --> 00:35:02,918
was a much more, it had to do with feedback loops.

422
00:35:02,918 --> 00:35:06,570
And it find a way to have the feedback loop feedback in a constructive way.

423
00:35:06,570 --> 00:35:07,601
So set up a feedback loop.

424
00:35:07,601 --> 00:35:16,967
And so his premise was instead of throwing a flamethrower, because a flamethrower goes
very fast and it burns the thing, but then it kind of goes down afterwards.

425
00:35:16,987 --> 00:35:19,368
Instead of that, do this instead.

426
00:35:19,969 --> 00:35:24,112
Find a minimal viable audience for something that you need.

427
00:35:24,112 --> 00:35:28,505
And then from that, start, uh

428
00:35:28,505 --> 00:35:40,700
building an ecosystem in such a way that the more entities you start engaging with, start
providing value, the bigger this becomes and the more it will pull other people into.

429
00:35:40,700 --> 00:35:52,885
He called this the gravity well, which is if this was uh a solar system, the more planets
come, the more it pulls, the more uh shapes the fabric of space and the more it pulls

430
00:35:52,885 --> 00:35:54,466
other people into that space.

431
00:35:54,466 --> 00:35:57,627
And you do that incrementally as opposed to as a flamethrower.

432
00:35:57,869 --> 00:36:08,727
And so many of these things I think will give you a couple concrete examples is I love, I
don't know if you heard about QUIC, but QUIC is my favorite internet protocol, uh TCP IP

433
00:36:08,727 --> 00:36:21,336
over UDP, and that was only possible to be done um because uh Google kind of owned both
Chrome and YouTube, and they were able to design something that was good within that

434
00:36:21,336 --> 00:36:23,998
small, minimal, viable audience.

435
00:36:23,998 --> 00:36:25,475
But as soon as you do that,

436
00:36:25,475 --> 00:36:28,187
You know, other people like at Akamai say like, wait a second.

437
00:36:28,187 --> 00:36:33,781
No, I could take benefit of this too, cause you know, yeah, this sounds a bit faster to
CPAP for sure, right?

438
00:36:33,781 --> 00:36:38,589
And then other brands are saying like, yeah, why would my users be slower on my browser?

439
00:36:38,589 --> 00:36:39,875
Am I all take quick too, right?

440
00:36:39,875 --> 00:36:44,469
And then it kind of create this feedback looping, which quick just turned into like this
wonderful, beautiful thing.

441
00:36:44,469 --> 00:36:46,250
It's my favorite project for what it's worth.

442
00:36:46,250 --> 00:36:50,513
wish I had done quick, but unfortunately I don't have a time machine.

443
00:36:50,733 --> 00:36:53,655
But Fetsyam, it operates in a similar way.

444
00:36:53,943 --> 00:36:57,585
which is, like I said, was the tech lead for signing with Google like 15 years ago.

445
00:36:57,585 --> 00:37:08,291
And so I figured, you know, what would happen if I was able to have been the tech lead for
signing with Google 15 years ago and kind of like know a lot of the people and also be

446
00:37:08,291 --> 00:37:12,394
able to change the client, you know, what would happen, you know, if I could do both,
right?

447
00:37:12,394 --> 00:37:14,045
And it just happens.

448
00:37:14,045 --> 00:37:16,766
again, a lot of this is not new ideas.

449
00:37:16,766 --> 00:37:21,999
lot, I credit a lot of the ideas for FetchCM actually they derive from Mozilla personas.

450
00:37:22,447 --> 00:37:26,849
from whom I took a massive amount of inspiration and talked to a bunch before starting
FETCM.

451
00:37:26,849 --> 00:37:34,032
But it was this idea of if you were able to change the client and the server, would you be
able to create a gravity well?

452
00:37:34,032 --> 00:37:44,456
And so for the most part, we did Chrome and signing with Google in a way such that we
asked ourselves, let's do this such that it creates a gravity well, but let's make it so

453
00:37:44,456 --> 00:37:50,379
that any browser could take advantage of this too, and any identity provider could take
advantage of this too.

454
00:37:51,151 --> 00:38:03,091
And so having that first connection with Signing Google and Chrome, always obviously doing
in the open, meaning that a lot of this was developed in the open, right?

455
00:38:03,091 --> 00:38:06,311
But it was important for us to find a minimal viable audience.

456
00:38:06,671 --> 00:38:17,711
And because Signing Google is a massively successful consumer product, and it has massive
penetration across many websites, we were also really smart about

457
00:38:17,711 --> 00:38:30,551
And this is, I think, I can say it is my credit, which is we figured out a way to redeploy
signing with Google without asking for the relying parties to change, largely through

458
00:38:30,551 --> 00:38:32,311
JavaScript SDKs.

459
00:38:32,311 --> 00:38:40,463
And more recently now we're doing HTTP headers, but the trick that we played is that a lot
of...

460
00:38:40,463 --> 00:38:49,763
The way that sign-in Google is deployed across these many websites is that they embed a
JavaScript SDK that the website embeds in pools, in the user pools dynamically, right?

461
00:38:49,763 --> 00:39:00,083
And so we said, well, what if we have the JavaScript SDK call FETCM as opposed to do a top
level redirect so that they could call FETCM into this as opposed to do, and would that

462
00:39:00,083 --> 00:39:00,943
work, right?

463
00:39:00,943 --> 00:39:04,423
And so it spend like a year and a half testing technical feasibility.

464
00:39:04,423 --> 00:39:08,591
At some point, we convinced ourselves we think we can deploy this across every website in
the world.

465
00:39:08,591 --> 00:39:16,671
that uses the JavaScript SDK that Signing Google does without just changing the browser,
just changing the identity provider.

466
00:39:16,671 --> 00:39:27,431
And so today, if you fast forward from that initial intuition to today, 3 % of the, we
migrated most of the Signing Google traffic to FedCM, and about 3 % of the websites on the

467
00:39:27,431 --> 00:39:33,411
web uses calls into FedCM, just because we managed to deploy that over JavaScript SDKs.

468
00:39:33,411 --> 00:39:38,223
And so that created a gravity well that I won't say that it,

469
00:39:38,223 --> 00:39:47,910
We should take for granted it will actually work, but it created a gravity well in which
uh the vast majority of the web uses FedCM in terms of websites that you go to.

470
00:39:47,910 --> 00:39:53,394
There isn't any that you can go to that wouldn't have an integration apart from banks and
healthcare providers.

471
00:39:53,394 --> 00:40:02,711
But from a consumer perspective, there isn't anywhere on the web that you can go with
Chrome that uh you wouldn't be able to take advantage of FedCM because both Chrome and the

472
00:40:02,711 --> 00:40:06,231
IDP and uh the JavaScript is to get changed.

473
00:40:06,231 --> 00:40:12,875
And that created the, and that we hope, right, that that created the beginnings of a
self-sustaining flame.

474
00:40:12,896 --> 00:40:22,472
Because right after that happened, a couple years ago, Shopify came along and said, wait a
second, we have, can redeploy RPS and IDPs the same way.

475
00:40:22,472 --> 00:40:25,954
We're gonna, what if we did that for all, merchants, right?

476
00:40:25,954 --> 00:40:35,791
And so Shopify came along and then in a similar, but different, they don't use JavaScript
SDK the same way, but in a similar way, they were able to deploy FETCM across

477
00:40:35,791 --> 00:40:47,551
all of their merchants, and there are hundreds of thousands of merchants that Shopify
supports, And then PayPal came along, then email providers are coming along in terms of

478
00:40:47,551 --> 00:40:50,451
email providers, and then Firefox is coming along.

479
00:40:50,451 --> 00:40:55,591
Firefox has always been very supportive of FETCM, although they're massively understaffed.

480
00:40:55,591 --> 00:41:02,125
And every time that it goes through around that basic gravity wall, it pulls more and
more.

481
00:41:02,125 --> 00:41:09,997
And then Safari has always been also supportive, but also kind of like a little bit more
cautious about like how you relate to other stuff.

482
00:41:09,997 --> 00:41:16,159
ah But we never got anyone from Safari saying like, oh, this is like directionally
incorrect.

483
00:41:16,159 --> 00:41:26,182
ah so, I mean, it's yet to be seen if it's gonna work, but it is a very deliberate
strategy called self-sustaining flame, which is one in which you try to find a minimal

484
00:41:26,182 --> 00:41:30,647
valuable audience to kick off the ecosystem and then pull more and more and have...

485
00:41:30,647 --> 00:41:43,704
and have each entity that joins the ecosystem provide value to the ecosystem itself, and
then in the hopes that at some point it will have gained enough momentum that ah any other

486
00:41:43,704 --> 00:41:47,135
entity could just pull and it wouldn't destroy the gravity well.

487
00:41:47,217 --> 00:41:48,317
Makes makes a lot of sense.

488
00:41:48,317 --> 00:42:00,280
So just to clarify here the since the integration in Chrome and you know, it's to be
Firefox or is supporting fedcm applications that Support login with Google are actually

489
00:42:00,280 --> 00:42:07,162
already using fedcm to authenticate and letting the use login Does that mean that without
any changes on the application side?

490
00:42:07,162 --> 00:42:15,604
users that bring their own identity provider or you know other identity providers that are
Supporting fedcm can already be used to log into those same websites

491
00:42:16,013 --> 00:42:19,806
Well, there's a limit to how much backwards and compatible things you can do.

492
00:42:19,806 --> 00:42:30,195
And it is the case that we have been able to deploy signing with Google, for the most
part, in a backwards compatible way from the client side perspective.

493
00:42:30,195 --> 00:42:36,420
The application server, though, does expect that it's harder to redeploy at scale.

494
00:42:36,420 --> 00:42:44,687
Every application has to be deployed individually for it to enable things that go beyond a
signing with Google integration or a signing with Shopify integration, right?

495
00:42:44,687 --> 00:42:53,632
um except that Shopify controls both the RP, the application, and the identity provider,
so they're able to uh augment it with things like you suggested, like being able to bring

496
00:42:53,632 --> 00:42:54,443
your own, right?

497
00:42:54,443 --> 00:43:06,640
There are other parts of the ecosystems like uh Axle Springer and the NetID folks, they
also have more control over the line party and the identity provider, so they can augment

498
00:43:06,640 --> 00:43:13,043
with more of those things, like the bring your own IDP uh premise, but for the...

499
00:43:13,043 --> 00:43:19,870
But it's not true that you can like out of a sudden just redeploy all the applications and
provide all the features that you want to provide them.

500
00:43:19,870 --> 00:43:21,261
There's a limit to that.

501
00:43:21,532 --> 00:43:25,554
I think I want to reiterate the relying party is just the application running in the
browser.

502
00:43:25,554 --> 00:43:37,711
So the problem I think realistically is here is it's not replacing the mechanism by which
uh you're consuming the JWTs, the JOTs that are coming from the identity providers.

503
00:43:37,711 --> 00:43:39,522
Those are still exactly the same.

504
00:43:39,522 --> 00:43:51,153
The only difference is the user experience that causes those tokens to get generated,
which means that realistically as a application maintainer or developer, you are now going

505
00:43:51,153 --> 00:43:59,055
The thing to do is not change any of your technology, but change your assumptions on where
those tokens can be generated from.

506
00:43:59,055 --> 00:44:09,167
And it's still a real problem that you'll need to figure out, okay, if the token came from
Google, how to verify uh tokens from accounts, google.com slash OAuth, or if the tokens

507
00:44:09,167 --> 00:44:10,118
came from somewhere else.

508
00:44:10,118 --> 00:44:13,849
So likely you still need uh some attention there.

509
00:44:13,849 --> 00:44:20,300
However, I will say that if you're using uh some sort of identity aggregator, so uh either

510
00:44:20,524 --> 00:44:25,164
not to say that my product's the best in the world, but if you're using Authress that
solves it for you.

511
00:44:25,164 --> 00:44:36,144
you're Fusion Auth or Auth0, potentially they have solutions as well that automatically do
this aggregation for FedCM-based providers, which means that if you are using an identity

512
00:44:36,144 --> 00:44:44,584
aggregator and you didn't just roll, log in with Google yourself or log in with Shopify,
you already have this capability of providing this functionality to your users in a way

513
00:44:44,584 --> 00:44:47,300
that's completely transparent to your applications as well.

514
00:44:47,341 --> 00:44:48,002
Yeah, for sure.

515
00:44:48,002 --> 00:44:50,117
And I think that's the next trick to play.

516
00:44:50,117 --> 00:44:53,243
Like we played a trick with JavaScript best decades, and I think it was pretty cute.

517
00:44:53,243 --> 00:44:55,718
But I think the next trick to play, I call these frameworks.

518
00:44:55,718 --> 00:44:58,233
I don't know if that's the right term, but it's, but yeah, for sure.

519
00:44:58,233 --> 00:44:59,247
Like, um.

520
00:44:59,247 --> 00:45:02,487
off zero, Okta, Fusion off, your company, right?

521
00:45:02,487 --> 00:45:07,047
All these companies that provide off services for other companies, right?

522
00:45:07,047 --> 00:45:12,567
Have the ability to change so many applications just by changing that one entry point,
right?

523
00:45:12,567 --> 00:45:14,407
It all has to do with leverage, right?

524
00:45:14,407 --> 00:45:21,207
What is the leverage point that we can insert the thing so that we can move a mountain,
right?

525
00:45:21,287 --> 00:45:27,307
And I think that frameworks, that's why I said, like we said, WordPress accounts for 50 %
of the web.

526
00:45:27,307 --> 00:45:29,201
That to me is actually good news because

527
00:45:29,201 --> 00:45:38,461
that means that we can just go to WordPress and say like, hey, do you mind supporting
FedCM up from the get-go, And then we just enable 50 % of the web, right?

528
00:45:39,821 --> 00:45:45,081
I mean, I always say that because like they don't even have their own like sign in widget
for a federated identity providers.

529
00:45:45,081 --> 00:45:48,061
You need to first install like a third party plugin to make that happen.

530
00:45:48,061 --> 00:45:55,961
But I'm sure if you search for the WordPress plugin store right now, there's already a
FedCM, you know, identity provider plugin.

531
00:45:56,001 --> 00:45:58,981
I know, you know, we have one and all zeros got one and et cetera.

532
00:45:58,981 --> 00:46:03,807
So that's just one way to make the WordPress stuff just work out of the box.

533
00:46:03,807 --> 00:46:09,687
economically, the way that I see it, at least, that economically, it's just one website
competing with one another.

534
00:46:09,687 --> 00:46:17,867
So the one that has the least, the higher conversion roles in acquisition funnels just
have the feedback loop.

535
00:46:18,247 --> 00:46:27,027
Off Zero just have the desire for competitive advantage to perform higher conversion rates
in acquisition funnels than Fusion Off and other companies.

536
00:46:27,027 --> 00:46:27,127
Right?

537
00:46:27,127 --> 00:46:29,063
And so they would just...

538
00:46:29,596 --> 00:46:33,781
Not using FETCM would just be a competitive disadvantage to the other one.

539
00:46:34,664 --> 00:46:37,448
But I always tell people, go to the second one, not the first one.

540
00:46:37,448 --> 00:46:45,909
It's always easier to have the second place uh jump the incumbent, then have the incumbent
adopt something.

541
00:46:46,764 --> 00:46:51,164
Well, I love this, so it's coming for us and our users specifically.

542
00:46:51,164 --> 00:46:56,244
I still think the selling point actually is out of the application developer hands.

543
00:46:56,244 --> 00:47:02,624
It's in the business organizations that are deciding where to put their development
resources.

544
00:47:02,624 --> 00:47:12,224
So the question at the end of the day becomes, if you're using one of these open source
frameworks or using a SaaS provider, what is the complexity for validation, for testing?

545
00:47:12,684 --> 00:47:14,484
What is the configuration required?

546
00:47:14,986 --> 00:47:17,267
I know for open source stuff, it's a little bit of a challenge.

547
00:47:17,267 --> 00:47:25,441
You have to probably upgrade five semantic versions and deal with breaking backwards
compatible changes.

548
00:47:25,441 --> 00:47:31,294
But for SaaS providers, you click a checkbox, and you're ready to go out of the box there.

549
00:47:33,446 --> 00:47:38,519
I think that we didn't really touch on it, but it's worth reiterating.

550
00:47:38,519 --> 00:47:42,582
One of the things that really comes down here, I feel like, the user experience.

551
00:47:42,582 --> 00:47:51,868
If we're improving anything here, it's the UX over uh security or ease of development or
anything like that.

552
00:47:52,524 --> 00:48:02,895
Yeah, I agree that we have a design principle at the tech called the priority of
constituents, which is user first, developer second, browser engine third, and technical

553
00:48:02,895 --> 00:48:03,796
purity fourth.

554
00:48:03,796 --> 00:48:09,041
And you'll be surprised how often that is to be said, because you'll be surprised how much
technical purity comes first.

555
00:48:09,182 --> 00:48:13,867
But users first is for sure like uh is what I think

556
00:48:14,267 --> 00:48:24,114
myself included, is most obsessed about in FedCM's design, which is um how do you provide
a really good compelling user experience?

557
00:48:24,114 --> 00:48:31,279
um it's something that think, it's something that, it's the role of the browser is to.

558
00:48:31,279 --> 00:48:34,579
is to make it so that it serves the user for the most part.

559
00:48:34,959 --> 00:48:44,819
There are a few things that think we, that we think that occurred to us that we felt like,
okay, we're gonna be, you know, like, let's not win by playing the same game, but by just

560
00:48:44,819 --> 00:48:49,287
inventing a new one, was access to...

561
00:48:49,958 --> 00:48:53,139
user access to real estate that developers don't have access to.

562
00:48:53,139 --> 00:48:57,719
So for the most part, a website or identity provided only has like a rectangular box that
it can work with.

563
00:48:57,719 --> 00:48:58,859
It's a pretty big one, right?

564
00:48:58,859 --> 00:49:02,759
But it's a rectangular box that you can put your HTML, CSS, JavaScript.

565
00:49:02,759 --> 00:49:06,019
Everything outside of that has never been accessible by websites, right?

566
00:49:06,019 --> 00:49:08,959
You can't change the back button or the reload button.

567
00:49:08,959 --> 00:49:12,199
And the part that I like most about the UI is the URL bar.

568
00:49:12,199 --> 00:49:18,833
I don't know if you've seen some of the UX explorations for it, Sam, but a lot of them
have to do with like access

569
00:49:18,833 --> 00:49:24,585
browsing uh browser UI, parts of the UI that just are inaccessible for websites.

570
00:49:24,585 --> 00:49:31,057
And so the URL bar, that's what I mean by like, what would happen if you pull identity
into the browser as opposed to over the browser, right?

571
00:49:31,057 --> 00:49:33,998
Because on top of the browser, you only have this rectangular page here.

572
00:49:33,998 --> 00:49:40,021
But if you bake it into the browser, then you have access to like places that you wouldn't
normally have access to.

573
00:49:40,021 --> 00:49:46,989
Like I like the URL bar because I think my hope is that it could represent uh logging
state on the web.

574
00:49:46,989 --> 00:49:54,392
that when you get logged into the website, you at some point, like the URL bar lights up
and says, you're logged into the website, right?

575
00:49:54,392 --> 00:49:55,963
So then we can do log out too, right?

576
00:49:55,963 --> 00:49:57,843
As opposed to clearing cookies, right?

577
00:49:57,843 --> 00:50:02,895
But then when you're logging into the website, you're able to offer a set of options.

578
00:50:02,895 --> 00:50:10,929
You can log into the website with your passkey, your password, your federated assertion,
or whatever would come up in the future.

579
00:50:10,929 --> 00:50:14,299
But it's the ability to go to a...

580
00:50:14,299 --> 00:50:16,871
uh

581
00:50:18,363 --> 00:50:23,263
anticipated, a predictive place, right, that you go to and think, oh, this is where you
click to log in to the website, right?

582
00:50:23,263 --> 00:50:25,343
Or this is where you click to, like, reload the website.

583
00:50:25,343 --> 00:50:27,743
This is where you click to go back or forward on a page.

584
00:50:27,743 --> 00:50:29,243
But this is where you go to log in.

585
00:50:29,243 --> 00:50:38,087
And for the most part, like I said about CalPath, right, most websites, like, there's a
user behavioral...

586
00:50:38,467 --> 00:50:39,347
thing that we form, right?

587
00:50:39,347 --> 00:50:43,639
Which is most people when they see like when I'm logging this website, they look at the
top right corner, right?

588
00:50:43,639 --> 00:50:47,191
There's a login or sign up link that you click and stuff happens.

589
00:50:47,191 --> 00:50:52,113
What if we pull that out of the corner of the page into the corner of the browser?

590
00:50:52,113 --> 00:50:54,534
Would that create the right dynamics?

591
00:50:54,954 --> 00:51:06,479
So yeah, so the UX, I think, has always been important for us to not compete in UX that
you'll be able to compete in user land.

592
00:51:06,606 --> 00:51:13,766
You know, like, let's, let's, because we will never write more CSS and JavaScript and CSS
than two million developers.

593
00:51:13,766 --> 00:51:18,766
know, C++ Turbo is the worst, it's like the least ergonomical language that one can choose
to write.

594
00:51:18,766 --> 00:51:20,666
And there's just so few of us, right?

595
00:51:20,666 --> 00:51:23,286
It's so, like, let's not compete there.

596
00:51:23,286 --> 00:51:26,286
Let's compete in a place that just wasn't accessible.

597
00:51:26,286 --> 00:51:28,526
What is the thing that would be just different from everywhere else?

598
00:51:28,526 --> 00:51:34,986
And I think that both in terms of UX construction, but also in terms of the ability to
unify across websites, right?

599
00:51:34,986 --> 00:51:36,621
As you're going across websites,

600
00:51:36,621 --> 00:51:40,214
is also something that a website can't jump across websites.

601
00:51:40,214 --> 00:51:43,768
So if you use your site in Google account here, maybe you also want to use it there.

602
00:51:43,768 --> 00:51:46,861
If you use your enterprise account here, maybe you also want to use it there.

603
00:51:46,861 --> 00:51:53,036
And maybe the choice that you make across passwords are consistent as you go across
websites, and we can reuse that too.

604
00:51:53,441 --> 00:51:59,437
And so those are the UX advantages, I think, that the browser has that we're trying to
take advantage of.

605
00:51:59,437 --> 00:52:10,117
I think it's a long time coming, honestly, because the more control, with authentication,
that moves out of the application land into browser really prevents vulnerabilities in the

606
00:52:10,117 --> 00:52:14,477
number one attack vector of all time, which is social engineering through phishing
attacks.

607
00:52:14,497 --> 00:52:23,077
And by moving that out, you pretty much are, I mean, it's not a direct elimination
because, I mean, of course people can still fake what is being shown there and displayed,

608
00:52:23,077 --> 00:52:26,437
but eventually there's no way that...

609
00:52:26,784 --> 00:52:32,167
browsers will allow applications to make real changes to the outside that window as you
mentioned.

610
00:52:32,167 --> 00:52:35,108
Because historically it was the case a long time ago, right?

611
00:52:35,108 --> 00:52:38,720
Browsers allowed websites to make change to the URL bar, to the back button, right?

612
00:52:38,720 --> 00:52:45,373
Like even that's gone out the window, you can't really stop back pushing or uh blocking
navigation.

613
00:52:45,373 --> 00:52:47,294
There used to be a thing about pop-ups.

614
00:52:47,294 --> 00:52:51,306
Safari does this really annoying thing where if you wait too long before...

615
00:52:51,306 --> 00:52:58,179
making a page switch or URL change, it blocks the action, saying that the user didn't
cause it to try to prevent, you know, pop-up explosion.

616
00:52:58,179 --> 00:53:07,593
So, I really do hope that there's more configuration to come with the configure, like
interactions with the browser from the application land.

617
00:53:07,593 --> 00:53:11,634
The number one thing that's always on my mind is, can we get access to the TPM?

618
00:53:12,254 --> 00:53:14,310
for sure, have you run into DBSC?

619
00:53:14,560 --> 00:53:17,912
So I tried engaging with DBSC.

620
00:53:17,912 --> 00:53:20,925
So DBSC is the device-bound session credentials.

621
00:53:20,925 --> 00:53:30,810
And I think the idea is pretty fantastic, that it locks away token uh session continuation
into the browser.

622
00:53:30,810 --> 00:53:39,637
My problem with it is that it doesn't solve any attack vector that I care about.

623
00:53:40,838 --> 00:53:43,342
Well, yeah, but only during uh

624
00:53:43,342 --> 00:53:45,042
after the session's been started.

625
00:53:45,362 --> 00:53:57,002
the real problem is that you can force cookie regeneration, a new login, as a malicious
attacker, anytime you want, and then control that session instead.

626
00:53:57,002 --> 00:54:09,202
And realistically, I want a way for the whole OAuth 2, or iOpenID, or SAML process to
happen without the application being able to do anything about it, or access to the TPM in

627
00:54:09,202 --> 00:54:10,982
a way that can secure the credentials.

628
00:54:10,982 --> 00:54:13,009
And DBSC doesn't solve that for me.

629
00:54:13,009 --> 00:54:15,531
So I love FedCM.

630
00:54:15,531 --> 00:54:16,811
really hope that there's a strategy.

631
00:54:16,811 --> 00:54:28,842
Access to the TPM will get it for me because that will allow us to verify, like basically
fingerprint the devices and ensure that they're secure and that the credentials are never

632
00:54:29,063 --> 00:54:29,663
taken away.

633
00:54:29,663 --> 00:54:35,569
And it allows us to do really interesting things where we can bind the JWTs that are
generated to the actual device.

634
00:54:35,569 --> 00:54:41,015
Whereas what's happening right now is with DBSC, the JWTs aren't being bound to the
device.

635
00:54:41,015 --> 00:54:45,348
they're being bound to an area of the browser which is not accessible by the application.

636
00:54:45,348 --> 00:54:53,834
And while it's nice, it would be really nice to have something like a delegated proof of
possession, and I'm going to use some complicated OAuth 2 stuff here, so anyone who's not

637
00:54:53,834 --> 00:54:55,615
following, don't worry about it.

638
00:54:55,615 --> 00:55:00,479
That's just me from the OAuth 2 working group that is paying attention.

639
00:55:00,479 --> 00:55:10,155
That allows you to restrict who can actually use those JWTs, and allowing you to restrict
them to the specific device is really critical, and I would really like to see someday

640
00:55:10,241 --> 00:55:22,350
like the spiritual successor to DBSC where the browser is starting the off-flow, it's
ensuring device credentials, it's signing tokens with the TPM, the onboard black box

641
00:55:22,350 --> 00:55:25,875
private key to ensure that the communication is actually tamper-proof.

642
00:55:26,261 --> 00:55:27,252
Interesting.

643
00:55:27,252 --> 00:55:27,953
don't know.

644
00:55:27,953 --> 00:55:35,881
mean, the other thing that I can, at least I can give you sense of something that we're
working on is called delegated FAT-CM, heavy-run delegation-oriented FAT-CM.

645
00:55:36,642 --> 00:55:45,712
We're probably using delegation-oriented in a different way, but it's kind of like a
three-party model, like an issuer-holder-verifier model.

646
00:55:45,712 --> 00:55:49,165
ah Have you run into that, the SDJOTs?

647
00:55:49,934 --> 00:55:58,778
I've seen SD Jots uh mostly for, I think the canonical use case, especially in Europe is
like, you want to get into, mean, obviously, no one cards you at a bar here, but in the

648
00:55:58,778 --> 00:56:07,481
United States, you know, just as an example, you want to get into a bar and there's an age
limit, you know, you to be 21 or older, you shouldn't have to tell everyone who you are in

649
00:56:07,481 --> 00:56:11,323
order to verify that you have, you're holding a credential that verifies your age.

650
00:56:11,323 --> 00:56:17,803
And so basically the issuer is the government institution, the verifier is of course the
device that the bar is holding.

651
00:56:17,803 --> 00:56:22,209
you as the user contain that credential and you can just pass the necessary part over.

652
00:56:22,352 --> 00:56:24,025
So, go ahead.

653
00:56:24,025 --> 00:56:26,907
that's roughly it, but for social login, I think.

654
00:56:26,948 --> 00:56:36,026
In the sense that, for account login, in that, I mean, the feature, like I said, it would
be wonderful if we could make it so that you could log into websites without phone homing

655
00:56:36,026 --> 00:56:37,537
your identity provider.

656
00:56:37,578 --> 00:56:47,373
And so that's one of the ways, and the reason I bring it up is because we are, the browser
is, for the first part time, like actually signing something.

657
00:56:47,373 --> 00:56:48,187
Yeah.

658
00:56:48,526 --> 00:56:54,775
taking something that gets issued by an identity provider and then gets presented by the
browser.

659
00:56:54,775 --> 00:56:57,278
And so in doing so, we are going to be signing things.

660
00:56:57,278 --> 00:57:02,785
so having it be like bound to a TPM, for example, could be an incremental step for us.

661
00:57:02,785 --> 00:57:04,326
Yeah, I think it's the other direction.

662
00:57:04,326 --> 00:57:06,567
I don't particularly care if the...

663
00:57:06,567 --> 00:57:07,808
You mentioned Google, etc.

664
00:57:07,808 --> 00:57:14,642
So one of the biggest concerns with logging in with Google everywhere that people have
often is exposing to Google that they've logged in.

665
00:57:14,642 --> 00:57:20,334
Now, I don't believe Google does anything useful with this information whatsoever.

666
00:57:20,375 --> 00:57:25,858
But if you're logging in with Facebook, they are for sure using that data for malicious
practices.

667
00:57:25,878 --> 00:57:28,159
And maybe I shouldn't say that.

668
00:57:28,279 --> 00:57:30,380
I believe they're using it for malicious practices.

669
00:57:30,380 --> 00:57:31,551
ah

670
00:57:31,551 --> 00:57:38,103
It's my opinion, I have no evidence, let me get that on record right there and so no one
will challenge me specifically.

671
00:57:38,103 --> 00:57:49,166
ah But I think that's really the problem and I actually am more concerned about providing
my email address to the individual applications because they're going to take it and turn

672
00:57:49,166 --> 00:57:58,751
around and sell it or they're just going to have a data leak where someone gets it anyway
and now I get spam in German all the time because I live in Switzerland so why not.

673
00:57:58,751 --> 00:58:04,873
And I know someone sold my data, sold my email address, and I would really love to just be
able to have infinite aliases for email addresses.

674
00:58:04,873 --> 00:58:12,895
And FedCM solves this for me because I can spin on my own identity provider or using our
product and create dynamic aliases which are provided to the individual application.

675
00:58:12,895 --> 00:58:21,237
So I don't need um an extra level here for delegation, et cetera, passing it along, I
think, with FedCM.

676
00:58:21,237 --> 00:58:23,864
You've solved my biggest concern with...

677
00:58:23,864 --> 00:58:30,778
browser authentication, user identity management for applications, and honestly, the last
20 years.

678
00:58:31,443 --> 00:58:33,364
Well, that's an over.

679
00:58:33,364 --> 00:58:35,974
I would love if that was true.

680
00:58:35,974 --> 00:58:37,274
It wouldn't be for the lack of trying.

681
00:58:37,274 --> 00:58:39,545
I'm glad that you're finding it to be of your service.

682
00:58:39,545 --> 00:58:41,416
And yeah, I'm super excited to see.

683
00:58:41,416 --> 00:58:43,046
It's hard to say.

684
00:58:43,143 --> 00:58:44,627
I mean, we have tried this.

685
00:58:44,627 --> 00:58:47,868
There's like 100,000 dead bodies before me.

686
00:58:48,508 --> 00:58:53,249
But I just know that it probably went farther than most people have in that specific
mission.

687
00:58:53,249 --> 00:58:58,251
uh But it's still a bit too soon to know if we're not going to run into another wall.

688
00:58:58,251 --> 00:58:59,926
But it won't leave you for the lack of trying.

689
00:58:59,926 --> 00:59:03,599
Yeah, and I think it will live ah and it won't just perish.

690
00:59:03,599 --> 00:59:12,865
So it will be there in the browsers and as long as it actually gets out in Firefox, ah
then I think we can be sure that it's gonna have a long lived history there, especially

691
00:59:12,865 --> 00:59:18,750
now that there's no Internet Explorer and Edge or Quantum or whatever they're calling it
is built on top of Chromium as well.

692
00:59:18,750 --> 00:59:22,159
We're gonna, we have PEDCM on the Microsoft side as well.

693
00:59:22,159 --> 00:59:24,339
Firefox has always been very supportive.

694
00:59:24,619 --> 00:59:28,319
I mean, because so much of it is inspired by personas.

695
00:59:29,119 --> 00:59:34,139
They were ahead of their time, I think, in many ways, or perhaps doing it the wrong
company, perhaps.

696
00:59:34,139 --> 00:59:39,219
They didn't have a big identity provider at the time, close by that they could work with.

697
00:59:39,899 --> 00:59:42,459
So Firefox has always been very supportive.

698
00:59:42,459 --> 00:59:47,619
But they are also massively unresourced.

699
00:59:47,879 --> 00:59:50,939
They have a lot of resourcing constraints.

700
00:59:52,145 --> 00:59:56,177
I don't blame them for pausing the development, the implementation of HCM.

701
00:59:56,177 --> 00:59:59,149
It's something that if I were on their shoes, I would probably make the same call.

702
00:59:59,149 --> 01:00:04,091
But it's good to see that they are just like a heaven.

703
01:00:04,335 --> 01:00:08,455
having philosophical alignment is already like 80 % of the way, you know?

704
01:00:08,455 --> 01:00:12,655
Like I think things just converge, like if it's just execution, they would at some point
converge.

705
01:00:12,655 --> 01:00:17,035
And I think to a large extent, I also feel that way with the Safari engineers.

706
01:00:17,035 --> 01:00:21,575
know, like almost everybody that I talk to, they're like, yeah, you know, this seems
directionally correct.

707
01:00:21,575 --> 01:00:22,795
And like, we just don't know.

708
01:00:22,795 --> 01:00:25,543
We were just partially waiting for you to like...

709
01:00:26,007 --> 01:00:31,880
A lot of people are skeptical if we can pull this off in terms of, like I said to you, the
bootstrap, the cold start problem.

710
01:00:31,880 --> 01:00:36,102
A lot of people are um skeptical that we can pull this off.

711
01:00:36,102 --> 01:00:40,714
And to some extent, I'm still also am not confident about it.

712
01:00:40,915 --> 01:00:45,267
So I do feel that it at some point converges, but it won't come for free.

713
01:00:45,267 --> 01:00:49,439
It would just be hard work that we'll do one step at a time and at some point we'll get
there.

714
01:00:49,590 --> 01:00:58,316
If anyone who works at Safari or Firefox, you know, wants to come on the podcast and, you
know, share the whole story and architecture and complexity there, I'm, I'm, I'm all for

715
01:00:58,316 --> 01:00:58,416
it.

716
01:00:58,416 --> 01:00:58,836
Definitely.

717
01:00:58,836 --> 01:01:03,680
think, as you said, because it's a four-sided platform, you do need each side to sort of
sign up for it.

718
01:01:03,680 --> 01:01:10,904
But the fact that basically applications and identity providers and users have all gone
full in with this.

719
01:01:10,905 --> 01:01:16,649
It's just a matter of having all the browsers there and Chrome, Chromium driving Chrome
and an edge there.

720
01:01:16,649 --> 01:01:19,308
It really is just Firefox, which.

721
01:01:19,308 --> 01:01:20,839
is going to, I think is going to convert.

722
01:01:20,839 --> 01:01:26,121
And then we have this technology and you know, this, like I said, I think it's a huge
success.

723
01:01:26,202 --> 01:01:34,205
One thing I do want to make sure that I get out of you though, as you said, you were at
the, I think it's the largest browser conference in the world this year, right?

724
01:01:34,205 --> 01:01:35,339
ah

725
01:01:35,339 --> 01:01:36,192
It's very technical.

726
01:01:36,192 --> 01:01:38,880
It's for browser engineers or browser vendors.

727
01:01:38,880 --> 01:01:40,605
it's very technical that way.

728
01:01:40,605 --> 01:01:41,426
Yeah.

729
01:01:41,581 --> 01:01:43,445
coming down the pipeline there?

730
01:01:44,639 --> 01:01:54,614
So TPAC stands for technical plenary something, but it's like an annual conference where
it's the biggest one from the WGC where all the browser people go, not just browser

731
01:01:54,614 --> 01:01:59,166
engineers, but just across product management, UX design, UXR, and engineering.

732
01:01:59,166 --> 01:02:01,367
But it's very technical in many ways.

733
01:02:01,367 --> 01:02:06,249
And it uh usually has, for the most part, representation of browser vendors, but also
developers.

734
01:02:06,249 --> 01:02:14,373
And so you have Safari, uh Edge, Mozilla, Chrome, Opera, Vivaldi, all the browser vendors
there, Brave,

735
01:02:14,373 --> 01:02:24,357
of like trying to find, tell people, I tell my family at least, the way they describe it
then, and it sounds like the UN convention, the United Nations convention, where each

736
01:02:24,357 --> 01:02:30,927
country sends their diplomat there to try to find, because it's like everybody there cares
about the web.

737
01:02:30,927 --> 01:02:33,287
So it's like the web against the world in that way.

738
01:02:33,287 --> 01:02:37,507
they obviously have their own companies and each browser event has their own angles,
right?

739
01:02:37,507 --> 01:02:43,487
In terms of, they don't always agree on things in terms of privacy, where to draw the line
of security, inconvenience, so on.

740
01:02:43,487 --> 01:02:45,667
But they're all like passionate about the web.

741
01:02:45,667 --> 01:02:47,047
They all want to defend the web.

742
01:02:47,047 --> 01:02:49,287
So that we have in common.

743
01:02:50,407 --> 01:02:51,347
And it's a whole week.

744
01:02:51,347 --> 01:02:53,507
It was in Kobe, Japan this year.

745
01:02:53,567 --> 01:02:58,767
It fluctuates between North America and no North America and...

746
01:02:59,243 --> 01:03:08,948
And then what you said you asked what what is it like so like every year I think uh like
people go there you have some of the persistent working groups like the same way you have

747
01:03:08,948 --> 01:03:20,713
ITF you have the all-off working group and the DNS people the SMTP and pop people and um
in the WTC you have like the payments group the Web of End group you have the you have a

748
01:03:20,713 --> 01:03:27,316
massive amount of like HTML rendering people, know CSS rendering people and You have
networking and so on.

749
01:03:27,316 --> 01:03:28,817
uh So you have these

750
01:03:28,817 --> 01:03:30,977
that people actually need to get work done.

751
01:03:30,977 --> 01:03:40,497
But the best part of TPAC, as most people would say, is what we call the hallway track,
which is not what happens on the sessions themselves, but what happens on the hallway.

752
01:03:40,497 --> 01:03:44,817
Because it's like, I told my son, he asked me, what was it like?

753
01:03:44,817 --> 01:03:49,697
And I told him, it's a lot like a science camp that you go to, that you sleep together
with.

754
01:03:49,697 --> 01:03:54,363
We're all in the same hotel, so just think like 300, 400, like.

755
01:03:54,363 --> 01:04:02,316
People like they're passionate about the web they leave and breathe the web they want to
help the web and they all go to the same hotel where they sleep in the fourth floor and

756
01:04:02,316 --> 01:04:13,480
then they work on the the on the on the on the in the rooms and It's like a science camp
in that way And so the hallway and the dinners and the breakfast is where I would say most

757
01:04:13,480 --> 01:04:16,591
of the work gets done and I have to say that

758
01:04:17,135 --> 01:04:21,355
Like the discussions, they fluctuate as the year goes by.

759
01:04:21,355 --> 01:04:26,675
If you think about like maybe five or six years ago, blockchain was probably dominating a
bunch of stuff, you know?

760
01:04:26,675 --> 01:04:32,879
But if you go all the way back to like 2008, 2009, was a lot, the rise of...

761
01:04:32,879 --> 01:04:40,999
native apps like iOS and Apple and Android Play Store and how does the web compete with
those walled gardens?

762
01:04:41,059 --> 01:04:50,699
A few years ago it was the social web, it was the rise of Facebook and how do we make it
so that Facebook doesn't entirely make the web walled garden?

763
01:04:50,699 --> 01:04:53,229
So, kind like the...

764
01:04:53,229 --> 01:04:58,982
The concerns and the discussions, they fluctuate over the benefit of having been at Google
for 20 years.

765
01:04:58,982 --> 01:05:01,683
I've seen a lot of these things come and go.

766
01:05:01,863 --> 01:05:06,385
But I uh would say with confidence that this year it was a lot about AI.

767
01:05:06,385 --> 01:05:10,007
Just a lot of people were just, I think it's like one of the...

768
01:05:10,143 --> 01:05:21,330
most insane things that we've done in the world as humankind and most people was like,
yeah, there was a spectrum of like, man, we're gonna die to like, man, this is beautiful.

769
01:05:21,330 --> 01:05:35,828
And so AI was very polarizing as most good things are or most bad things are and I think
AI was probably the hot topic and uh I just think it's, I felt at least that it was

770
01:05:35,828 --> 01:05:37,219
beautiful because

771
01:05:37,423 --> 01:05:47,003
Like, if you go back to 2008, the period between 2008 and 2016 was the rise of native
apps, Android and iOS apps.

772
01:05:47,003 --> 01:05:49,343
It's like all the VC funding was going there.

773
01:05:49,343 --> 01:05:52,903
And I remember a time where people were like, is the web going to survive?

774
01:05:52,903 --> 01:05:56,923
Because when WhatsApp came along or Snapchat came along, they were like, I'm not going to
build a website.

775
01:05:56,923 --> 01:05:57,943
And they still don't, I think.

776
01:05:57,943 --> 01:06:00,083
TikTok doesn't have a website that you can go to.

777
01:06:00,083 --> 01:06:05,503
And so Uber, TikTok, and Snapchat, and WeChat, none of those things have websites.

778
01:06:07,039 --> 01:06:10,621
was a really dark period that a lot of people said, maybe the web's gonna die, you know?

779
01:06:10,621 --> 01:06:14,263
Maybe we don't, that was a good ride, but we're gonna need it anymore.

780
01:06:14,263 --> 01:06:23,988
But so, it was wonderful that we, that the time that we're in right now is like this AI
thing where everybody's asking, you know, no, no, my AI browser is better than your AI

781
01:06:23,988 --> 01:06:24,378
browser.

782
01:06:24,378 --> 01:06:31,053
like, my AI protocol is better than your, MCP is better than A2A and whatnot, More so than
like, you know,

783
01:06:31,053 --> 01:06:32,946
Does the web even have a role here?

784
01:06:32,946 --> 01:06:39,354
So it was a different vibe, but I think in many ways more optimistic than a few years ago.

785
01:06:39,694 --> 01:06:45,087
Has the building of walled gardens, I think a lot of the data is being sequestered behind
these.

786
01:06:45,087 --> 01:06:55,264
Like we can see that the reddits of the world, even Google search is limited in what it
has access to and that the data has almost priceless.

787
01:06:55,264 --> 01:07:00,648
Like these companies don't even want to sell what they have, instead use it to train up
LLMs, et cetera.

788
01:07:00,648 --> 01:07:04,370
Has that had a big impact on say the direction that you're?

789
01:07:04,844 --> 01:07:09,988
you may have or your thoughts on where a browser such as Chromium would go in the future.

790
01:07:10,413 --> 01:07:22,290
I mean, some of the discussion, a lot of people are kind of like, they're trying to think
in terms of ah the web, like how do we monetize the web going forward?

791
01:07:22,290 --> 01:07:23,331
know, like...

792
01:07:23,757 --> 01:07:31,393
Yeah, and by that I mean like people producing content, like for example yourself pushing
a podcast out, right?

793
01:07:31,393 --> 01:07:33,995
You have to pay rent.

794
01:07:33,995 --> 01:07:36,736
If you live in Zurich, your rent is probably really high.

795
01:07:36,897 --> 01:07:41,239
And so the content creators, they create content.

796
01:07:41,280 --> 01:07:45,795
I mean, m someone brought that up.

797
01:07:45,795 --> 01:07:51,998
that a lot people create content not for the sake of paying the bills, but because they
actually want the content to be out, which is perfectly fair.

798
01:07:51,998 --> 01:08:00,943
But it is true that uh things need to be economically viable for them to be economically
viable at all.

799
01:08:00,943 --> 01:08:14,915
And so for the most part, uh for better or for worse, ads has really helped uh make a
massive amount of content on the web uh accessible, but just by having a few people

800
01:08:14,915 --> 01:08:26,260
pay it, you know, like, because a lot of people, I'm not an ads person, so I can't really
say this, but ads has, like, for the most part, like, funded a lot of the content creation

801
01:08:26,260 --> 01:08:32,423
on the web, right, with subscriptions being, the opposite uh monetization strategy.

802
01:08:32,423 --> 01:08:44,249
And subscription, think, um have completely different problems in terms of, who has access
to those things, and it tends to, like, have, like, content be produced for uh the rich,

803
01:08:44,249 --> 01:08:44,849
but the...

804
01:08:44,849 --> 01:08:50,333
that doesn't propagate back to the less financially uh able.

805
01:08:50,333 --> 01:09:07,626
And uh and ads has all these different set of problems of like click bait and all the,
yeah, ads isn't perfect either, But the challenge is that for the last few years with

806
01:09:07,626 --> 01:09:14,170
search engines, a lot of the content production on web has already been hard to monetize.

807
01:09:15,444 --> 01:09:25,002
there's a sentiment that it will get harder as we get into LLMs and things that traffic
doesn't go as back as it was for search engines.

808
01:09:25,002 --> 01:09:40,315
so um there's some questions about like, are asking, I think everybody is hoping that
we'll find a way in which the web will remain healthy and prosperous while we go through

809
01:09:40,315 --> 01:09:41,726
this change.

810
01:09:42,787 --> 01:09:46,754
I like the sentiment, both optimistic and realistic at the same time.

811
01:09:46,754 --> 01:09:53,526
ah I think that may be a good moment before we get too much into the philosophy of that to
switch over to picks for the episode.

812
01:09:53,526 --> 01:09:56,010
So Sam, what did you bring for us today?

813
01:09:56,695 --> 01:09:57,730
Sorry to say that again.

814
01:09:57,730 --> 01:10:00,284
Well, let's switch over to pics for the episode.

815
01:10:00,284 --> 01:10:05,281
So what pic did you bring for us, for our audience today?

816
01:10:06,544 --> 01:10:07,445
Yeah.

817
01:10:08,627 --> 01:10:09,128
okay.

818
01:10:09,128 --> 01:10:11,543
Ah, okay.

819
01:10:11,543 --> 01:10:12,491
Let me see.

820
01:10:12,491 --> 01:10:19,847
Well, you said before that you thought you had figured it out and now we've had a long
conversation and you're second guessing whether or not you want to go with what.

821
01:10:20,245 --> 01:10:24,497
I'm trying to find something that might be more related to what we talked about.

822
01:10:24,497 --> 01:10:33,128
don't you don't have to worry about that you know i just picked the thing that you know at
the most flavor that we were as a person more so that you know something that has to be

823
01:10:33,128 --> 01:10:34,089
relevant

824
01:10:35,172 --> 01:10:37,464
well, okay, just so that, just so that people have a...

825
01:10:37,464 --> 01:10:38,251
uh

826
01:10:38,251 --> 01:10:39,832
something to anchor on something concrete.

827
01:10:39,832 --> 01:10:46,695
uh I subscribe a lot to the Seven Laws of Identity that King Cameron published, along with
many other people.

828
01:10:46,695 --> 01:10:55,099
uh So I would refer to, in the identity of space, Seven Laws of Identity, uh I abide to
lot of those principles.

829
01:10:55,359 --> 01:10:57,360
And that has guided a lot of my work.

830
01:10:57,820 --> 01:11:02,102
If you haven't run into personas, Mozilla personas, I would encourage you to take a look
at that too.

831
01:11:02,102 --> 01:11:06,684
ah It should give you a sense of at least what my head is at in terms of inspiration.

832
01:11:06,684 --> 01:11:08,145
uh

833
01:11:08,145 --> 01:11:11,349
like my Beatles, know, if Taylor Swift, it's my Beatles.

834
01:11:11,349 --> 01:11:23,444
it's, a lot of personas, if you read personas, think you will say, ah, I know where Sam is
going to, or like, I understand why he took these steps and I know where he's going to.

835
01:11:23,444 --> 01:11:23,784
And...

836
01:11:23,784 --> 01:11:26,727
um

837
01:11:26,999 --> 01:11:33,722
Yeah, so work-wise, think, sorry, not work-wise, but that I think is what I would uh
encourage you to read.

838
01:11:33,722 --> 01:11:39,205
um Just also work-wise perhaps, but a little bit more uh career guidance-wise.

839
01:11:39,205 --> 01:11:42,346
uh I ran into a massive amount of good stuff at Google.

840
01:11:42,346 --> 01:11:46,888
um Yeah, like I said, ecosystem building, I would encourage you to read Komorowski.

841
01:11:46,888 --> 01:11:49,589
He was a, he published a bunch.

842
01:11:49,589 --> 01:11:51,290
The Self-Sustaining Flame is a good essay.

843
01:11:51,290 --> 01:11:53,511
um

844
01:11:53,871 --> 01:12:05,659
um But just more um career-wise perhaps, um I ran into The Egg by Andy Weier, which I
thought was pretty cool and I think that helped me a bunch.

845
01:12:05,659 --> 01:12:11,181
um The selfie gene is probably a lot on top of mind for me too.

846
01:12:11,181 --> 01:12:13,681
Maybe let's jump into the egg.

847
01:12:13,681 --> 01:12:17,141
I find this really interesting because I also like the egg.

848
01:12:17,421 --> 01:12:23,621
I had read this probably at the dawn of the internet, because it's quite old at this
point.

849
01:12:24,041 --> 01:12:33,181
I never realized that much later I then read The Martian and Hail Mary and whatever the
one is that's on the moon.

850
01:12:33,341 --> 01:12:35,741
I didn't realize it was the same author.

851
01:12:36,165 --> 01:12:38,549
Yeah, that caught me by surprise too.

852
01:12:38,549 --> 01:12:41,504
Yeah, it's just such great and the egg is like pretty short.

853
01:12:41,504 --> 01:12:42,607
It's a short story, right?

854
01:12:42,607 --> 01:12:46,967
Very short, so yeah, so it's for one, it's easy to read, like it will take you less than
two minutes.

855
01:12:46,967 --> 01:12:48,567
Two is very entertaining.

856
01:12:48,787 --> 01:12:51,447
And three, I think it can really open your mind.

857
01:12:52,347 --> 01:12:59,367
If you don't mind me making concrete, I can tell you how it helped me, specifically when
it comes to ecosystem building and so on.

858
01:13:00,335 --> 01:13:04,455
So I guess, just in short, the egg is a story about a person that dies.

859
01:13:04,455 --> 01:13:05,975
It's a story, like maybe a couple of minutes.

860
01:13:05,975 --> 01:13:11,695
But the person that dies, they meet their creator, and then they're talking to their
creator, like, oh, I'm dead.

861
01:13:11,695 --> 01:13:15,075
the creator is like, welcome to this, and you're dead, and so on.

862
01:13:15,075 --> 01:13:22,295
And then as they realize what they're going through, the creator said, oh, get ready,
because you're going to reincarnate.

863
01:13:22,295 --> 01:13:24,095
And then this person goes like, oh, interesting.

864
01:13:24,095 --> 01:13:25,975
So the Hindus were right, and so on.

865
01:13:25,975 --> 01:13:28,195
It was like, well, every religion is right in one way or another.

866
01:13:28,195 --> 01:13:30,289
And then they say like, oh, wonderful.

867
01:13:30,289 --> 01:13:37,329
Oh, you're going to come back and, you know, you're reincarnate about 200 AC in a Chinese
village.

868
01:13:37,469 --> 01:13:39,489
And then the person was like, oh, wait, I can go back in time?

869
01:13:39,489 --> 01:13:40,669
I didn't know that.

870
01:13:40,669 --> 01:13:44,629
And then the person said, the creator says, yeah, yeah, you can go back in time.

871
01:13:44,629 --> 01:13:46,029
And then, and then so on.

872
01:13:46,029 --> 01:13:49,169
It was like, oh, well, if I go back in time, does that mean that I have running to myself?

873
01:13:49,169 --> 01:13:52,869
And he said, yeah, yeah, you probably run into yourself a lot and so on.

874
01:13:52,869 --> 01:13:54,349
I'm like, that's interesting.

875
01:13:54,349 --> 01:13:55,939
And then I was like, well.

876
01:13:55,939 --> 01:13:56,950
how does that even work?

877
01:13:56,950 --> 01:14:01,465
If I can go back in time and can run into myself, what happens if I interact with one
another?

878
01:14:01,465 --> 01:14:03,787
And then the creator goes like, well, you were.

879
01:14:03,887 --> 01:14:09,507
you were all the people, you're like everybody that lives in the world is you and you are
everyone.

880
01:14:09,547 --> 01:14:12,006
And the person was like, was I Jesus Christ?

881
01:14:12,006 --> 01:14:16,227
And then the creator was like, yeah, you were Jesus Christ as well as their disciples.

882
01:14:16,327 --> 01:14:17,887
And I was like, what was I, Hitler?

883
01:14:17,887 --> 01:14:22,547
And I was like, oh yeah, you were Hitler as well as the people that he killed and so on.

884
01:14:22,827 --> 01:14:28,087
And I was like, oh, I not only the one doing harm but also being harmed and so on?

885
01:14:28,167 --> 01:14:33,467
Am I the politicians that are laying everybody off and also the person being laid off and
so on?

886
01:14:33,931 --> 01:14:40,923
story because like it had this idea, thought-provoking idea which is you are everyone and
everyone is you.

887
01:14:41,124 --> 01:14:53,538
But I'll tell you how that made an effect on me concretely which is that uh I feel a lot
of things for a lot of people and uh since I ran into that I figured oh wait what if I'm

888
01:14:53,538 --> 01:15:00,691
that other person too you know and so like when I'm running to like at TPAC just last week
I ran into like

889
01:15:00,705 --> 01:15:09,583
I ran into a bunch of people that I love working with, they are hard, smart people that
are stubborn as hell, and I'm also stubborn as hell.

890
01:15:09,583 --> 01:15:21,403
But if you think about them as if they were you, you think of them as like, oh, wait, I
see where they're coming from, that they're trying something different from a different

891
01:15:21,403 --> 01:15:22,574
perspective.

892
01:15:23,247 --> 01:15:26,230
um Helping them is helping myself.

893
01:15:26,230 --> 01:15:42,083
So the way that uh I think of this is in terms of rationality and reductionism is that if
you think about a cell, like a unicellular life, like a cell at some point duplicates into

894
01:15:42,083 --> 01:15:51,661
two with mitosis, and the point of when the cell breaks into two and it's a well-known
thing, which one is the original one?

895
01:15:51,925 --> 01:15:53,796
Or are they both the same?

896
01:15:54,156 --> 01:15:54,526
Right?

897
01:15:54,526 --> 01:15:55,627
Like which one's the original?

898
01:15:55,627 --> 01:16:00,179
And if they keep doing that, like which one is the original one and which one's the same?

899
01:16:00,179 --> 01:16:07,933
So if you look at life, how life got started, and then if you have all those cells
propagating, duplicate, and have kids and so on, which one is it me?

900
01:16:07,933 --> 01:16:10,265
And which one is the one that originated me?

901
01:16:10,265 --> 01:16:16,188
Instead of like worrying yourself, you're like sitting like in Zurich and I mean, Mounted
View, like we're so far apart.

902
01:16:16,188 --> 01:16:21,751
But like we can almost trace both of our life choices as something trying different
things.

903
01:16:21,751 --> 01:16:22,292
Right?

904
01:16:22,292 --> 01:16:32,990
And then as much as I um can agree or disagree with you, I just feel like both you and I
are just the same in that coming from different perspectives.

905
01:16:32,990 --> 01:16:36,415
That has helped me actually get work done.

906
01:16:36,531 --> 01:16:40,074
It's uh very reminiscent of the concept that comes up in...

907
01:16:40,074 --> 01:16:49,332
There's actually a character in Invincible, the comic book and show, which is very good,
and the prestige, uh it comes up as well, like who is the original.

908
01:16:49,332 --> 01:17:01,152
uh And if anyone's interested, the Conway's Game of Life, the little uh cells that are
organized by a simple uh equation to drive the next state from the current one, is this

909
01:17:01,152 --> 01:17:05,681
idea that every single place in the universe is governed by the same equation.

910
01:17:05,681 --> 01:17:10,505
And there's no fundamental difference between individual cells from each other or
different people.

911
01:17:10,505 --> 01:17:12,266
So I really like the perspective.

912
01:17:12,266 --> 01:17:15,188
uh Always good to bring.

913
01:17:15,221 --> 01:17:19,963
I don't think anyone ever said that we needed more philosophy in software engineering.

914
01:17:19,963 --> 01:17:31,993
But in case you're just driven by the day-to-day tasks and don't ever get the enjoyment of
fighting about variable names, ah here's one more step on top of it of how you actually

915
01:17:31,993 --> 01:17:32,523
work effectively.

916
01:17:32,523 --> 01:17:33,964
So I love those picks.

917
01:17:33,964 --> 01:17:34,904
uh

918
01:17:34,904 --> 01:17:35,414
Thanks, Sam.

919
01:17:35,414 --> 01:17:37,295
So I guess I gotta share mine.

920
01:17:37,295 --> 01:17:46,898
ah I thought a lot before today's episode, and I thought the thing that could be relevant
is the platform revolution book, How Network Markets Are Transforming the Economy.

921
01:17:47,038 --> 01:17:53,320
It's by Jeffrey Parker, I use it, I think it says a lot of things, like what is a
platform?

922
01:17:53,320 --> 01:17:58,021
Like a multi-sided platform, and not necessarily like an engineering platform or a
development platform.

923
01:17:58,061 --> 01:18:00,686
And it shaped a lot of how I think about.

924
01:18:00,686 --> 01:18:09,529
how entities work together or against each other in building a platform with many
different-sided entities with their own ideology and what they actually want to do and how

925
01:18:09,529 --> 01:18:10,750
to extract value there.

926
01:18:10,750 --> 01:18:20,874
It's sort of how I've driven when I understand, like I shared earlier in this episode,
that when you have a product and all your users need to do the same thing and it's a not

927
01:18:20,874 --> 01:18:25,195
value-added activity, you should question, why are we making the users do that?

928
01:18:25,195 --> 01:18:27,086
Especially when all of them need to do that thing.

929
01:18:27,086 --> 01:18:29,535
If all of your users need to log in,

930
01:18:29,535 --> 01:18:34,810
or design their own login strategy for the browser, you get a question like, why are we
making them do that?

931
01:18:34,891 --> 01:18:45,143
Maybe it's you don't have the resources to build every feature known to humankind into the
browser so that applications just have a configuration file or a YAML file.

932
01:18:45,804 --> 01:18:50,599
But there is really something novel there that I particularly like and it has driven a lot
of my thinking around.

933
01:18:51,479 --> 01:18:52,081
Yeah for sure.

934
01:18:52,081 --> 01:18:53,966
Have you run into the master switch?

935
01:18:54,859 --> 01:18:58,077
I've heard of it, I haven't yet.

936
01:18:58,255 --> 01:19:02,575
It has to do with platforms and how a lot of them tend to centralize.

937
01:19:03,255 --> 01:19:13,135
How centralization, if you don't deliberately try to stop them, it's like the second law
of thermodynamics, it would just converge to centralization.

938
01:19:13,695 --> 01:19:23,075
It should also give you a sense of the effort, the deliberate effort of having things be
more open comes at a cost.

939
01:19:23,075 --> 01:19:26,455
yeah, that's a good, did you say platform revolution?

940
01:19:26,455 --> 01:19:28,592
Yeah, The Platform Revolution by Jeffrey Parker.

941
01:19:28,592 --> 01:19:30,830
The link will, like always, will be in the description.

942
01:19:30,830 --> 01:19:33,185
Okay.

943
01:19:33,308 --> 01:19:34,099
Yeah.

944
01:19:34,286 --> 01:19:40,395
I may counter the offer, uh the Master Switch is a pretty good uh platform analysis too.

945
01:19:40,395 --> 01:19:43,728
Okay, yeah, I love systems engineering books.

946
01:19:43,728 --> 01:19:47,321
Systems thinking really on complex problems and how to make sure the right thing happens.

947
01:19:47,321 --> 01:19:58,240
think the self-guiding flame, that's really, uh yeah, for sure, meadows, Yeah, yeah, for
sure.

948
01:19:58,240 --> 01:20:01,503
Okay, well, this has been an absolute pleasure, Sam.

949
01:20:01,503 --> 01:20:07,078
Thank you so much for coming on and talking with us about FedCM and Chrome and your
experiences at Google.

950
01:20:07,078 --> 01:20:07,798
This has been great.

951
01:20:07,798 --> 01:20:08,821
I know you're just here.

952
01:20:08,821 --> 01:20:09,925
on behalf of yourself.

953
01:20:09,925 --> 01:20:13,164
So I really do appreciate you taking the time out of your day to make this happen.

954
01:20:13,164 --> 01:20:13,735
Yeah, for sure.

955
01:20:13,735 --> 01:20:15,047
was a pleasure talking to you too.

956
01:20:15,047 --> 01:20:16,679
Nice meeting you.

957
01:20:17,203 --> 01:20:23,659
And thanks for all the listeners for jumping in for this episode, and hopefully we'll see
you all back next week.

