Episode Transcript
Transcripts are displayed as originally observed. Some content, including advertisements may have changed.
Use Ctrl + F to search
0:00
Netlify is a popular hosting platform
0:02
that provides build, deploy, and serverless
0:04
backend services for web apps. The
0:07
platform enables deployment directly from source
0:09
files stored in a version control
0:11
system like GitHub. Erika
0:13
Passani is a senior software engineer
0:16
at Netlify. She joins
0:18
the show to talk about how she got started
0:20
at Netlify, edge computing, edge functions,
0:23
private integrations, and more. This
0:26
episode is hosted by Josh Goldberg,
0:28
an independent full-time open source developer.
0:31
Josh works on projects in the
0:33
TypeScript ecosystem, most notably TypeScript ES
0:35
Slint, the tooling that enables ES
0:37
Slint and prettier to run on
0:39
TypeScript code. Josh is also
0:42
the author of the O'Reilly Learning TypeScript book,
0:45
a Microsoft MVP for developer
0:47
technologies and a live code
0:49
streamer on Twitch. Find
0:51
Josh on BlueSky, Mastodon,
0:53
Twitter, Twitch, YouTube, and.com
0:55
as Joshua K. Goldberg.
1:10
With me today is Erika Passani, senior
1:12
software engineer at Netlify. Erika, welcome to
1:15
Software Engineering Daily. How's it going? It's
1:18
going great. Thank you so much for having me
1:20
on today. It's my pleasure. I have to note,
1:22
we'll talk about this at the end of the
1:24
interview, but I'm on your About page on your
1:26
website, and there is significantly more space dedicated to
1:28
your dog, Ada, than anything else on that page.
1:31
That's great. Thank you. Thank
1:33
you. Yeah, I feel like of Ada and
1:35
I, Ada is obviously the one people want to see when
1:37
they visit my website, so I made sure to feature her
1:39
very prominently as much as I could. She's
1:42
doing great on there. Props to the dog. But
1:45
let's talk about you for a little bit. You're a software developer.
1:47
How did that come to be? Honestly, it
1:49
was a little bit of a roundabout journey. I
1:51
was definitely that kid growing up that
1:54
liked hearing the clickety-clack of keyboards, and
1:56
I loved playing video games. And so
1:58
at one point... early on, I remember
2:00
thinking, yeah, I'm going to be like a lot of
2:02
developers. I imagine, yeah, I'm going to work on video
2:05
games. This is going to be great. And
2:07
then somewhere around high school, I ended up
2:10
thinking that I think I took like a general
2:12
tech course in high school, did a bit of
2:14
programming. It felt like it wasn't for me. So
2:17
I ended up deciding to not continue
2:19
with it and instead decided to
2:21
focus on history because I just love
2:23
that subject and a
2:26
bit of time later, it was like maybe two years
2:28
after I, this would have been like the 11th grade.
2:30
So I don't know how, how will that translate to
2:32
16, 17. I
2:35
was trying to get courses
2:37
to work out my schedule to work out. And
2:39
there was a bit of a clash and I
2:41
needed to pick a course to fill this last
2:43
slot and it was either hair and
2:46
makeup styling, which is if anyone knows me for
2:48
more than 10 minutes, you know, that is definitely
2:50
not my jam or retaking
2:52
programming. And I had a bunch
2:54
of friends that were in that class. So I was like,
2:56
sure. I used to dream of
2:59
maybe being a video game programmer. I'll
3:01
take the class again. I'm sure it'll
3:03
be fine. And around
3:05
that time, my mom was actually in the
3:07
middle of a career change. She was going back
3:09
to school to be a teacher and she
3:12
was going through teachers colleges to that final
3:14
year in Ontario where you're, you're doing placements
3:16
and stuff. And she was like, unless you
3:19
are really set on like,
3:21
you love history so much and you really like
3:23
the idea of teaching, this might not be for
3:25
you. So you might want to consider something
3:27
else. Cause she was just having a really hard time with
3:29
it. And I'd never pictured myself
3:32
being a math whiz. Like that's kind of the
3:34
picture I grew up. I guess those software engineers
3:36
is you had to be really good at math.
3:38
You had to be good at snacks. You had
3:40
to be living and breathing code throughout
3:43
high school. And then you, you go into
3:45
college or university continuing to
3:47
program. And fortunately
3:50
for me, and like, honestly, half of my career
3:52
is just a lucky set of coincidences where I
3:54
spoke to the right person at the right time.
3:56
But I had a classmate that actually was like,
3:59
Eric, you're actually. pretty decent at this,
4:01
you should consider studying it and pursuing it
4:03
as a career. And if you don't like
4:05
it, you can always go back to studying
4:07
history. So that's what I did. I ended
4:10
up like going into programming and university. And
4:12
then there were a few times I almost
4:14
dropped out, like in my second year of
4:17
university, I almost quit and switched things because
4:19
I found it not my
4:21
style. And again, I
4:23
ended up that so in Canada, we have this
4:25
concept of co ops, I think they're paid internships
4:28
in the US. And I
4:30
had this fantastic co op with this amazing team.
4:32
And I just they kept me sticking with them.
4:34
And I had these incredible mentors. And then, yeah,
4:37
just one after the next, I ended
4:39
up in these amazing jobs with amazing
4:41
mentors. And they kept pushing me and
4:43
helping me be better and got me
4:45
excited about tech and kind
4:48
of stuck with me. And here I am
4:50
today still describing myself as maybe not the
4:53
typical programmer because I identify more as a
4:55
humanities kid than a science kid. But
4:58
I still really love technology and all the things
5:00
that you can do with it. There
5:02
is something kind of funny about the large
5:04
number of people who achieve titles such as
5:06
senior software engineer and Netlify who are still
5:08
on the fence of whether to call themselves
5:10
a comp sci person. Was
5:12
there ever a moment in your career when
5:14
you really started to think more of yourself
5:17
as comp sci and humanities rather than just
5:19
pure humanities? Oh, that's a
5:21
good question. I think I can't
5:23
say a specific moment per se. But
5:25
I remember when I
5:28
became more aware of the
5:30
so called soft skills, actually
5:33
being very helpful and impactful in my
5:35
day to day job. And
5:37
especially like now fast forward to now where a
5:40
lot of us are working in a remote world,
5:42
things like being a good
5:44
written and verbal communicator, being
5:46
able to take these concepts and break it down
5:48
and change the language depending on who you're chatting
5:51
with, whether that's marketing
5:53
products, fellow engineers, even
5:56
like I would argue in this like my geeky
5:58
little theory, I think that one One of
6:00
the things I enjoyed about history was
6:02
seeing how all these various pieces tied
6:04
together into certain events. And I think
6:06
that that kind of mindset for me
6:08
really applies well in software engineering as
6:10
well. So when I started
6:12
realizing these kind of parallels, I
6:15
felt more comfortable identifying as
6:17
a software engineer instead of being more
6:19
exclusively like this humanities kid that
6:21
just managed to sneak in with the cool
6:23
software engineers. For sure.
6:26
It almost feels on the nose to compare
6:28
history to software because we do so much
6:30
archaeological digging within software. But I think you're
6:32
absolutely right that a lot of the core
6:34
skills of explaining, of researching, of learning why
6:37
are really applicable in day-to-day development. I
6:39
love that. And at least when I
6:41
was still visiting my old university, often
6:44
in talking with other students that were
6:46
looking for their paid internships and some
6:48
folks had maybe taken
6:51
computer science as a minor
6:53
or as a side thing and they were thinking
6:55
of transitioning and not feeling it was for them.
6:57
I think when I highlighted these parallels
7:00
between whatever humanities or even a
7:02
science that maybe wasn't, it
7:05
didn't seem directly related to computer science but
7:07
showing how it could be, I think got
7:09
more people excited about the potential of working
7:12
in technology, maybe not necessarily their full-time
7:14
careers, by being
7:16
aware of the possibilities that they can bring that
7:18
into their fields of study. Let's
7:27
face it, no one likes writing or
7:29
maintaining documentation. But when you start a
7:31
technical project or pick up a new
7:33
task, missing information can cost you valuable
7:36
time. GITbook is a technical knowledge platform
7:38
that fills that information gap, making it
7:40
easy for your team to capture, maintain,
7:42
and find information from a single source
7:44
of truth. Here's a couple of examples.
7:46
With GITsync, you can set up a
7:48
two-way sync between your repo and GITbook,
7:50
so you can turn markdown files into
7:52
awesome user-friendly docs. And if you make
7:54
a change in your code base or
7:56
a technical writer updates the docs in GITbook,
7:58
the edit sync between the two automatically.
8:00
Or what about when you need to find something
8:02
in your knowledge base? Forget about searching,
8:04
just ask Gitbook AI. You'll get a neat
8:07
summarized answer sourced directly from your docs. Those
8:09
are just a few examples of what Gitbook
8:11
can do, but it has plenty more tricks
8:13
up its sleeve. So why not give it
8:15
a try? Head to gitbook.com to find out
8:18
more. Do
8:26
you have any one particular piece of
8:28
advice that you would want to impart on anyone who
8:30
is like you many years ago now listening to
8:32
the podcast? Oh, I
8:35
would probably say like don't feel like
8:37
you need, this isn't gonna be like a very
8:40
succinct piece of advice, but don't feel like you need to
8:42
focus really hard on the latest
8:44
frameworks or the latest technologies and
8:46
instead keep an open mind and
8:48
stay curious and maybe follow your
8:51
instincts on what interests you because you honestly
8:53
will never know what thing
8:55
you're interested in, how that might
8:58
tie into technology and you will be that
9:00
person who is uniquely positioned to be able to
9:02
draw that relationship together and maybe be able to do something
9:05
no one else can do. I think
9:07
that's the best thing I can give is just stay curious, stay
9:10
just enjoy what you're looking into because you know
9:12
careers are long and tech
9:14
is changing so quickly and I think just being exposed
9:16
to so many things is only good for you. That's
9:19
absolutely true and I think it's doubly true
9:21
given your career history. Have you ever actually
9:23
gone into games because it looks like you've had
9:25
quite a few areas of tech but
9:28
everything except that original. Never games,
9:30
no. I briefly dabbled
9:32
with the idea as a
9:34
side project doing a, I
9:37
always loved the game Snake in
9:39
high school like on you know the older cell phones
9:41
that that's one of the few games that you could
9:43
have and I love the idea of building a little
9:45
Nintendo version of Snake where Yoshi's the head of the
9:47
snake and the eggs pop out and so that was my
9:49
only like idea of like oh I can make a game
9:52
but after hearing about
9:54
some of the challenges of working in the
9:57
gaming industry I think when I was like
9:59
in university like the gamer gate had happened
10:01
and just seeing not just
10:03
the culture of it, but also just the amount
10:05
of hours that people are
10:07
working there. I didn't
10:09
want to dedicate my life to games. I
10:11
didn't love it that much, unfortunately, and like
10:15
nothing against people who love it, like good for
10:17
you. But I knew that that wasn't my path.
10:19
So yeah, I just never ended up working in
10:21
the gaming industry. Welcome
10:30
to a world where your reading
10:32
list becomes your listening playlist. Introducing
10:34
listenlater.net, the new service that turns
10:36
articles into podcasts. Have you
10:39
ever stumbled on an interesting article but
10:41
just didn't have the time to read?
10:43
Maybe you're driving, working out or just
10:45
relaxing at home. With listenlater.net, email us
10:47
the URL and voila, our AI transforms
10:49
it into a captivating podcast narrated by
10:51
a voice that you'll love listening to.
10:53
And that's not all. listenlater takes your
10:55
inbox to the next level. Send us
10:57
any email and we'll convert it into
10:59
your personal podcast. It even handles
11:01
text from attachments, whether it's work
11:03
documents, newsletters, or that long article
11:05
you've been meaning to read, we've
11:08
got you covered. Crossing language barriers?
11:10
No problem. listenlater.net now offers multilingual
11:12
translation and narration. Choose your preferred
11:14
language and enjoy a world of
11:16
content right in your ears. Join
11:18
the revolution of convenience and versatility.
11:20
listenlater where your articles, emails, and
11:22
documents come to life and audio
11:24
form. Visit listenlater.net to start your
11:26
free trial today. That's listenlater.net to
11:28
start your free trial and transform
11:30
articles into your personal podcast. So
11:40
you worked at previous companies, cover, bench-side, Way Financial.
11:42
What's the journey that you've taken and how did
11:44
you end up at Netlify? Yeah, so
11:46
I kind of I did that in reverse orders. So started with
11:49
small business software because at the time when
11:51
I joined, that was kind of my quote
11:53
unquote area of expertise because I'd worked at
11:55
another competitor to Way Financial actually based in
11:57
Toronto called Freshbox early on in my career.
12:01
And the reason I kind of,
12:03
I jumped a little bit in different domains is
12:05
a little bit because I like
12:08
just exploring all these different problem domains. I
12:10
like just learning new things. When
12:12
I started my career, I wanted to be truly full
12:14
stack. I really liked the idea of jumping all over
12:16
the place. I love that there's so many different
12:18
problems in both the front end and the back end,
12:21
and I felt early on in my career that based
12:23
on what was needed in my various teams,
12:26
it tended, full stack tended to mean more
12:28
front end. And so my
12:30
first two roles, way financial and bench side kind
12:32
of gravitated toward that, even though there was a
12:34
little bit of backend development. But at the point
12:36
where I joined lever, I really wanted to do
12:38
more backend development. It was kind of a sticking
12:40
point for me that my next role at that
12:42
time was going to be back and focused. And
12:45
that's how I ended up on the API integrations
12:47
team at lever. And then
12:49
while I was there, I remember feeling
12:51
like in a way I was kind of still somewhat
12:54
doing the same problems over and over again, it was
12:56
always like the same, like,
12:58
and I imagine a lot of listeners who have a few years
13:00
under their belt working in software, you start noticing that
13:02
you're solving the same problem over and over again for
13:04
the same types of customers. So
13:07
I was telling a friend about this one day and
13:09
he was like, you know, you should try and do,
13:11
you should maybe look at like the developer tooling space
13:13
because it's very different. That's not
13:15
going to be the stuff you've been dealing with so far.
13:17
You're going to be working with a lot of people that
13:19
are like you and you'll end up learning a lot more
13:21
than maybe you feel like you're learning right now. That's
13:24
very different. So that's when I started looking
13:26
into that space. And fortunately for me, Netlify
13:28
was hiring at the time. And
13:30
so here I am today, almost two years later.
13:32
That's great. How has Netlify been for you
13:34
enjoying it? Oh, it's been really great.
13:36
It's been, and I'm not saying this because
13:38
I currently work there. It has been one of the best places
13:40
I've worked at. I find that
13:44
the people that I'm working with are, there's
13:46
so many experts in different domains that
13:50
I, especially the first like eight months, I
13:52
felt like such a dummy where I was like, yeah,
13:54
I'm coming in as a senior engineer and then there's
13:56
these people who have been like, you know,
13:58
reverse engineering for the first time. frameworks for how long,
14:01
like Matt Kane and some people
14:03
who have been working, like they just know the ins
14:05
and outs of how like CDNs work and all this
14:07
other low level stuff that I just took for granted
14:09
about building on the web. So
14:11
it was very humbling when I joined because
14:14
I was learning all these things that I
14:16
just did not think about that are like
14:18
fundamental building blocks of web development. And
14:22
I don't know of many other places that
14:24
would be as supportive as Netlify has been
14:26
with allowing me to pursue things
14:28
that I've always wanted to pursue, but it took
14:30
a bit of time like conference speaking,
14:32
which is how you and I met Josh. So
14:34
being able to do that last year was an
14:36
incredible opportunity. I'm forever grateful that Netlify let me
14:38
do that. And then just the problems that I'm
14:40
solving there, I've been able to work in so
14:42
many different areas that it feels like it's a
14:44
constant challenge every day. And I haven't been bored
14:47
since I joined. Well, there you go.
14:49
Your problem was solved. Yes. Is
14:59
your code getting dragged down by joins and
15:01
long query times? The problem might be
15:03
your database. Try simplifying the complex with graphs.
15:05
A graph database lets you model data the
15:08
way it looks in the real world instead
15:10
of forcing it into rows and columns. Stop
15:13
asking relational databases to do more than they
15:15
were made for. Graphs work
15:17
well for use cases with loss of
15:19
data connections like supply chain, fraud detection,
15:21
real time analytics, and gen AI. With
15:24
Neo4j, you can code in your favorite
15:26
programming language and against any driver. Plus
15:29
it's easy to integrate into
15:31
your tech stack. People are
15:33
solving some of the world's
15:35
biggest problems with graphs. Now
15:37
it's your turn. Visit neo4j.com/developer
15:40
to get started. That's neo4j.com/developer.
15:49
I want to jump into one of those areas
15:51
a bit because you've given talks, quite a few
15:53
talks in fact, about the edge. And
15:56
for some, the edge is still kind of a
15:58
nebulous term. Could you define for us? what
16:00
the edge is when it comes to computing. So
16:02
I'm happy to give my definition of it and it's the
16:04
best one I was able to come up with but I
16:07
also give the one that I've seen floating around the internet.
16:09
So the one floating around on the internet that I've seen
16:11
before, it's been around since about the 80s and
16:13
the edge is sometimes referred
16:16
to as the network edge. So for those who work
16:18
in an enterprise space, the network
16:20
edge is probably a term that you're
16:22
familiar with and that's where enterprise networks connect to
16:24
third party services. So it's
16:26
still a valid use of the term today
16:29
but when we're talking about the edge in
16:31
its modern context and we're seeing like Netlify
16:33
edge functions and Vercel edge functions when CloudFiller
16:35
workers come into the conversation, they're
16:38
referring to code and
16:41
locations that are executed much
16:43
closer to users than they maybe have historically
16:45
been. I like to joke
16:47
that on-prem is becoming a little bit
16:49
fashionable again in the form of edge. That's not
16:51
entirely accurate but to some extent it's a little
16:53
bit true because the edge
16:55
is entirely context dependent. The edge
16:58
depending on your these case could be the
17:00
phone that you hold in your hand for a
17:02
mobile application where the application is
17:04
maybe running some code or storing some
17:06
data on your phone as opposed to just storing everything
17:08
in a server far away or
17:11
it could be a webpage that
17:13
is caching stuff at
17:15
servers that are located by cell towers instead
17:17
of at a very distant server farm in
17:20
North Virginia or in Montreal, Canada. So
17:22
it is a very nebulous term and
17:25
the best way I can describe
17:27
it is whatever is closest to
17:29
your user depending on the
17:31
problem that you're solving or the use case that
17:33
you're dealing with. So
17:36
we have the umbrella term for edge which is as
17:38
you're describing, putting the logic, putting the
17:40
code in locations much closer to users
17:43
and you've listed a few of those
17:45
locations. The phone, the network edge closer
17:47
to say the cell tower, perhaps the
17:49
data compute if it's actually necessary to
17:51
be near there. If I were
17:54
a large enterprise with 9,001 different
17:56
types of
17:58
data and compute any data. happen? How do I
18:01
know which place to put which part of my
18:03
stack or part of my logic? Oh,
18:05
that's a great question. And I hate to
18:07
be that senior software engineer. That's like, it
18:09
really depends. So I've, in
18:11
my research for this, I've read
18:14
about larger enterprises like FedEx and
18:16
Walmart, the edge being their own
18:18
warehouses, and running operations from there.
18:21
And I'm not exactly sure what those
18:23
operations are necessarily. But that
18:25
is like one example of it. If
18:28
you're looking at something like, let's
18:30
say you're just, you have a
18:32
web application, you're modifying request to
18:35
response headers, or applying, let's say,
18:38
geo fencing, like you don't want to allow some
18:40
people in certain areas of the world, access
18:43
some content because of licensing agreements,
18:46
then you might be looking at data centers
18:48
that are run by your cloud provider of
18:50
choice, whether that's AWS, Google Cloud Platform or
18:52
Microsoft Azure. So yeah,
18:55
if you've got like 9001 data points, it's
18:57
hard to say necessarily what that looks like for
18:59
you, because it depends on the industry that you're
19:01
working in. Heck, I even remember speaking
19:04
with someone from a telecom company in
19:06
Australia that I'm talking to farmers and
19:08
like, there's like edge related to that. And I
19:10
wish I got a chance to talk to that person before
19:12
I hopped on this call, because I'm very fascinated that
19:15
you can imagine that the edge for
19:17
them might be the various
19:20
vehicles, it could be the warehouses that
19:23
they're storing stuff in, it
19:25
could be a lot of things. I
19:27
think one of the really common use cases that
19:29
gets brought up is edge functions. Can
19:31
you describe or define for us what
19:34
an edge function is in terms of,
19:36
say Netlify or typical web apps and
19:38
websites? Yeah, sure. So
19:40
edge functions are just imagine your
19:42
standard, I guess serverless
19:44
function, but rather than having it run at
19:46
a data center in an availability
19:49
zone, which is what you imagine being
19:51
the stereotypical data server farms. These
19:53
are functions that are run at servers
19:56
that are optimized to run
19:58
your code very, very quickly. they
20:01
tend to have much more
20:04
constrained hardware capabilities than the
20:06
standard serverless function, but they are run
20:08
physically much closer to your users, then
20:11
you imagine running that same function
20:13
in a in a distant server far away.
20:16
So from an end user perspective, what
20:19
is actually different or behaviorally different about
20:21
these edge servers compared to say traditional
20:23
Azure or AWS and Google Cloud hosted
20:26
cloud solutions? Well as far as
20:28
developers that are building stuff on
20:30
the edge, a lot feels
20:32
the same. There's some constraints
20:35
that are applied that involve let's say
20:37
like more limited memory, lower CPU time,
20:39
which is and I always need to
20:41
refresh my memory when I look up
20:43
CPU time versus wall time, CPU time
20:45
referring to the number of operations
20:47
you can do as opposed to like literally seconds
20:49
taking away on a clock. So there
20:51
are some some hardware constraints,
20:54
but generally speaking unless you're doing
20:56
something particularly intensive, moving
20:58
functionality to the edge generally feels the same
21:00
as if you were just writing normal functionality
21:03
in a data center, whether that's like normal
21:05
serverless functions or an edge function. Walking
21:07
through an example use case then, suppose that
21:10
I want to change some
21:12
text on a page for A-B experiments and I want
21:14
it to be very very fast and in
21:16
theory stretch goal it would be lovely
21:18
if I could base that A-B split
21:20
for people if they are logged in
21:22
not anonymous on their user data in
21:24
my old user data service. How
21:27
would that start to look like in
21:29
these new edge environments? That's
21:31
a great question. So assuming that the
21:33
user is already logged in and you're rendering
21:35
I guess custom content to this person, what
21:38
that might look like is and the
21:40
example I like to use is let's
21:43
say transitioning from a server-side rendered
21:45
page because I work in the web space
21:48
so that's what I'm familiar with.
21:50
So you have a server-side rendered page that
21:52
previously would maybe take the data that you
21:54
needed conditionally render the content and send it
21:56
back to the user and maybe you cache
21:58
that on the user's browser. When
22:00
you use the edge, what you can do
22:02
instead is you could take the common elements
22:04
of that page and make it static. So
22:07
now you can cache that at the CDN.
22:09
So in the way the CDN is
22:11
the edge, but it's just focused on storage,
22:13
whereas the edge is storage and compute capabilities.
22:17
So you've got the static value. And then
22:19
at the edge, what you can do is
22:21
basically whatever conditions you need to apply. So
22:23
using that user as an example, you know,
22:25
you want to show a certain
22:28
piece of content or some promotional item or
22:31
whatever your use case is, what you can
22:33
do is you can take the response, the
22:35
static response, and rewrite the HTML,
22:38
maybe update props if you're
22:40
using a React framework or whatever the
22:42
equivalent is in your framework of
22:44
choice. And then you can return
22:46
that response to the user. And what's also great, and
22:48
as I mentioned before, the edge also allows you to
22:51
cache stuff at the edge as well. So
22:53
you can cache that response going forward as
22:56
well for even faster response times going forward.
22:59
So if I were to try
23:01
to make that caching key dynamic,
23:04
could I then make it
23:06
completely cached for all anonymous users for speed's
23:08
sake? You could, yeah. And like,
23:10
if we're talking something generalized like a homepage,
23:12
that's very straightforward to do. If
23:15
you're doing something that
23:18
is highly personalizable, let's say you can
23:20
cache it, but your cache might not
23:22
be as long lived as you would
23:24
maybe ideally want it to be, just
23:27
because the cache size available
23:29
at the edge is much smaller than maybe what you
23:31
might have available in an AZ. That
23:34
being said, there's ways around
23:36
that. The talk that you mentioned before,
23:38
I referenced that there are regional edge
23:40
caches available, which they give you
23:43
a little bit of wiggle room so that you can
23:45
refer to these edge caches before you have to go
23:47
all the way to a distant AZ. So
23:50
there's that available to you. But generally
23:52
speaking, like, yeah, you can cache the personalized
23:54
stuff at the edge, but just be warned it
23:56
might not be as long lived as you would
23:58
hope it would be. Sure.
24:02
That's cool. That makes sense. I want
24:04
to switch topics a little bit because
24:06
you mentioned working on a feature a
24:08
bit back and that feature is of
24:10
interest. Private integrations. What are private integrations
24:12
when it comes to Netlify? Yeah,
24:14
sure. Netlify has always
24:17
had, or they've had for a very long time, this
24:19
concept of integrations. It's mainly
24:21
focused on hooking into
24:23
the build system. What
24:26
private integrations is, we're
24:29
trying to allow folks to do
24:32
much more on the Netlify platform than
24:34
just hooking into build events. We're trying
24:36
to make it easier for external developers
24:38
to maybe create custom tooling that leverages
24:40
more of Netlify's products, including Netlify functions,
24:43
the build events or the build hooks that I
24:45
mentioned before, and maybe going forward
24:47
other stuff as well. Private
24:50
integrations allows folks to package whatever custom
24:53
repeatable things that they need for their
24:55
sites, make an integration that
24:57
is available only to their team, and
24:59
be able to distribute it to all users
25:01
that use their Netlify team. We
25:04
think it's going to be pretty exciting for folks,
25:06
but maybe just have stuff that they're sick and
25:08
tired of everyone having to just run MPMI for
25:10
this one specific package. Updates are
25:12
just rolled out a lot more easily with the
25:15
use of something like private integrations. Do
25:17
you have an example of an update or a
25:19
set of things that someone would want to package
25:21
into an integration? Yeah, so the
25:23
first integrations that we've said, this is a public
25:26
integration, not private, but one of the first things
25:28
that we switched over was Sentry.
25:31
We have two different Sentry integrations and we
25:33
package them into one. But
25:35
something that we're, let's
25:37
say someone wanted to extend that further. Let's
25:39
say there's another feature of Sentry that's not
25:42
available in there, they don't want to wait,
25:44
and they also have some extra stuff that
25:46
they're doing on the side, maybe because they're
25:48
doing a migration between Bugsnag and Sentry. Someone
25:52
could package a private integration that
25:55
maybe sends events that they need to send to both
25:57
parties while they're in the middle of that transition. and
26:00
then allow people to install it on their sites as
26:02
they need it. I can see
26:04
this being the big time saver, as you
26:06
mentioned, especially for larger teams, where their entire
26:08
teams are sections of dedicated to helping other
26:11
teams spin up new products or services. Yeah,
26:13
yeah. That's the hope, anyway, is just kind of
26:16
remove a lot of the toil that we
26:18
sometimes deal with. Let's hold in on
26:20
that in the general sense. The industry
26:22
we're in programming always has these cycles
26:24
come through that, in retrospect, seem obvious,
26:26
but in foresight are hard to detect.
26:28
We keep making things that were difficult
26:30
easier. We're automating, we're finding better ways
26:32
to do things, and we've already touched
26:34
on two points for that. The edge,
26:36
which makes it easier to put stuff
26:38
closer to users and have more finely
26:40
tuned computing, and then things like integrations,
26:42
which quite a few companies are doing
26:44
something like the ability to package little
26:46
reusable chunks of logic or code. Do
26:49
you have any other particular areas in Netlify you're
26:51
excited about on that trend of making things
26:53
easier for people? Oh, personally,
26:56
and I know this isn't like
26:58
a Netlify roadmap item, but for
27:01
me personally, I want to make
27:03
it really easy for folks to
27:05
create more environmentally conventional software is the best
27:08
way I can describe it. I
27:10
saw Sarah Bergman do a talk at QCon London,
27:12
I think it was last year, and she talked
27:14
about the Green Software Foundation and what they're pushing,
27:16
and there were other talks like it, but I
27:20
got really motivated when I realized
27:22
that I work in a space
27:24
where developers are interacting with us
27:26
all the time, and
27:28
we're helping them build software
27:30
ideally faster, easier, more
27:33
bug free, and at least
27:35
for me, I'm now having, I've
27:38
seen the light a little bit where it's like, yeah, this is
27:40
a huge problem. I'm trying my best to keep
27:42
my eye out for opportunities where
27:45
I can highlight some of the things people can do to
27:49
improve the, I
27:51
guess, almost the energy efficiency of their software
27:54
or at least highlight things for
27:56
people to be mindful of as they're building
27:58
software so that we can try the
28:00
carbon footprint of the
28:02
things that we build and that people are using every day. Do
28:05
you have an example of a good technique
28:07
that can help folks build more efficient green
28:09
software? Well, I'm going to sell
28:11
the edge on this right away. The
28:14
edge is one area where people can
28:16
look to adopt it for maybe some
28:18
high traffic, but very focused pieces of
28:20
functionality. So I mentioned before about setting
28:22
requests and response headers, maybe split testing
28:24
is another great example, setting session cookies.
28:26
They're all things that we
28:28
do on thousands, hundreds of
28:30
thousands, sometimes millions of
28:32
requests. And even just
28:34
like small little things that move to the
28:37
edge. And if you're caching very popular requests
28:39
at the edge, the reduced energy
28:41
that's consumed from transmitting that data can
28:43
add up to something really meaningful. And
28:46
I know generally measuring these in
28:49
more concrete terms can be a bit
28:51
challenging because you've got geographic considerations, you've
28:53
got machines that people are using to make
28:55
the requests. You've got cloud providers
28:57
that have various pieces of hardware running that all
29:00
tie into this. And so I know the hard data
29:02
is sometimes a little bit hard to come by. But
29:04
generally speaking, it's safe to say that the
29:07
most environmentally friendly thing is to not run
29:09
things if you can at all avoid it,
29:12
or reduce the amount of machines that
29:15
you're running. And if you have to run these things,
29:17
make sure that they're fulfilling it as
29:20
fast as possible or reduce the amount
29:22
of machines needed to fulfill that overall request.
29:24
And so that's where the edge can be
29:26
kind of helpful as it can reduce that
29:28
need maybe for bigger databases potentially on your
29:30
use case, reducing the distance that
29:32
the request has to travel, which means not just better
29:35
performance for your users, but a reduced
29:37
environmental footprint because the resources that are
29:39
making requests aren't waiting idly for as
29:41
long and consuming electricity, just waiting for
29:43
a response to come back. So
29:45
it adds up to little things. But I think that's one thing
29:47
that people can do to at least
29:49
start moving in that direction. And hey, you get
29:52
better performance out of that, right? Which is win-wins
29:54
all around. That's a win for
29:56
the users win for whoever has to foot the bill
29:58
for your servers. Exactly. It's
30:01
funny, there's been a lot of talk about
30:03
accessibility, about how there is a concept of
30:05
this electronic curb cut, things that were maybe
30:07
originally intended for one segment of users, for
30:10
physical curbs that was folks in wheelchairs, and
30:12
are actually also very beneficial for other segments,
30:14
such as people with a lot of shopping
30:17
carts or wheel strollers. And
30:19
then what you've just brought up strikes me as a
30:21
parallel to that, where one avenue of
30:23
exploration could be trying to make more green
30:25
software for the very noble good cause of
30:28
destroying the planet slightly less. But also
30:30
there is the really strong business use case
30:32
of paying less for servers and giving it
30:34
better experience for users. It's kind of fortuitous
30:36
that those all kind of blend together and
30:39
work well. Yeah, and I think it's
30:41
worth calling out too, like just from
30:43
an accessibility standpoint, I think one
30:45
thing that we do need to
30:47
note is depending on, especially for bigger companies that
30:49
are operating in different places all over the world,
30:52
I think one thing that especially folks
30:54
like me living in North America with
30:56
pretty reliable internet access, that's not always
30:59
true for a lot of people. And
31:01
something like the edge where you focus on
31:03
running things as close to the user as
31:06
possible in a way that they don't need
31:08
to rely on constant internet access for the
31:10
functionality that they need to work
31:13
reliably. I think that
31:15
that's something that is worth keeping in
31:17
mind, because yeah, depending on who your
31:19
users are, your business product may fail
31:22
if your users are folks
31:24
that live in areas with unreliable internet.
31:27
And so I think the edge can help at
31:29
least make some software much more accessible than it
31:31
has been previously. Let's talk
31:33
about that a little bit. Suppose I'm
31:35
in rural farmland or a city with
31:38
overworked overloaded ISPs. What
31:40
about the edge makes it so that I would
31:42
be able to better use a company's services and
31:44
ideally also pay for those services as a user?
31:47
Yeah, so there are some design patterns
31:49
out there that leverage this a little bit.
31:51
And there's also some products out there that
31:53
they are a form of cloud computing on
31:56
the edge, but they're targeted toward people that
31:58
are entirely remote. talking about
32:00
the design pattern first, there's,
32:03
I saw this in a talk, his name
32:05
was Carl's Fair, I think, I hope I pronounced his name
32:07
right. If you're, if you're listening, Carl, that
32:09
talked about offline first architectures. So
32:11
the idea being that you have
32:13
this device or you have the
32:15
server that all these other,
32:17
I guess, nodes, so other applications, other
32:20
machines are making a request to that
32:22
are updating data. And the
32:24
requests aren't immediately going to the
32:26
remote or to the AZ data
32:28
center that's storing the majority of
32:30
data. Instead, it happens every
32:32
so often, or when the network
32:35
becomes available again. So that
32:37
is one approach where the edge can
32:40
help keep things accessible. And let's say
32:42
you're overloaded ISP example, where you just
32:44
wait until something becomes available, you try
32:46
a few times, and then eventually it gets going. But
32:48
at least the people that need a
32:50
response now are able to continue what
32:53
they need to be doing. The
32:55
other bit with hardware, and this
32:57
like blew my mind when I found out about it, I
32:59
didn't even know about it until someone that I used to
33:01
work with who worked at AWS briefly told me about it.
33:04
There's devices out there that
33:06
in this case, AWS snowball that
33:09
it gets shipped to you and you just like hook
33:11
it up to your servers and it gives you cloud
33:13
computes, like right on site. And
33:15
so you can keep it around to run
33:18
cloud compute functionality, but you can also use
33:20
it in situations where you maybe need to
33:22
migrate a lot of data and you're a
33:24
bit constrained by the bandwidth and being able
33:26
to upload the data fast enough, given your
33:29
intermittent or non-existent internet access. And
33:31
so in such a case, you would just load it
33:33
onto the device, ship it back and it gets uploaded
33:35
to the cloud for you. And there's much more like
33:38
scaled up versions of that storage thing. I think
33:40
the one that most people know about is like
33:42
snowmobile or something where it's the giant transport truck
33:44
that gets driven out. But snowball
33:46
gives you compute capabilities, not just storage. So
33:49
it's UPS for your data. Basically, I know
33:51
there's some joke on the internet around like
33:54
NASA and cassettes in a station wagon or
33:56
something that it's kind of that problem. That's
33:59
the funniest thing. We've gotten so advanced at
34:01
storing our data that we can now ship
34:03
exabytes of it manually
34:05
to your needs. Exactly. I
34:09
love it. So, green software, a highly
34:11
efficient software, sustainable software, this is a relatively newer
34:13
area and at least public discourse, although I know
34:15
quite a few folks have been working on this
34:17
for a while. Is there some
34:19
kind of sustainability guideline from a larger consortium that
34:22
we can refer to for how to build this
34:24
kind of software? Yeah, I
34:26
actually found out, I think it was
34:28
in last September. There was
34:30
the W3C published these web
34:32
sustainability guidelines that people can refer to
34:35
and they cover sustainability from
34:37
a number of different angles. Accessibility
34:39
is one of those components, environmental is another,
34:42
social equity is another and that doesn't cover
34:44
the whole list obviously, but that's one
34:46
document that's pretty easy to digest. It's
34:49
not, when I read it, it wasn't overly dry.
34:52
Like I know some specifications can go on for a bit,
34:54
but these were very short and to the point and very
34:56
helpful. And although it's not a
34:58
spec, I would encourage people to maybe take
35:00
a look at the Green Software Foundation that
35:02
I mentioned earlier because they do have design
35:05
patterns and resources that people can refer
35:07
to that also can help guide people
35:09
toward making more efficient software
35:11
that also will end up producing your
35:13
spend more than likely. That's
35:16
great. I want
35:18
to end the interview with a few fun questions.
35:20
We started talking about your dog. Could you just
35:22
give us a little more information on your dog?
35:25
Oh yeah, I would love to. So
35:28
her name is Ada. She is not
35:30
quite two years old yet and she's
35:32
one of those poodle mixes. I know
35:34
they're quite popular. She's
35:36
like Bernice Mounted Dog Poodle Makes it,
35:38
honestly. She looks all poodle. She's got
35:40
legs for days. And
35:42
yeah, she is a joy. She likes to sit
35:44
at my desk when I'm programming and somehow
35:46
get involved in all my meetings. And
35:49
yeah, she's just in general a very happy bean. If
35:51
folks want me to post more pictures on Twitter, you're going
35:53
to have to ping me for them. But
35:56
she also has her own Instagram if people really if
35:58
they want to follow her. It's like. data.beans with
36:00
a Z. Completely or
36:03
mostly unrelated, you have something
36:05
called the 418. What is the
36:07
418? Ooh, I'm so
36:09
happy you asked me about this. So the 418 and
36:11
for the folks who are very familiar with
36:13
the HTTP status codes is like that teapots
36:15
one, which I thought was a nice fun one to
36:18
name Azine, which is what this is after. The
36:20
418 came out of this idea that I've been
36:22
kicking around in the back of my head early
36:24
last year that I told a
36:27
friend of mine, Christina Berger, who is my co-founder in
36:29
this, about this idea where
36:32
I wanted to capture that
36:35
excited, inspired feeling that I was
36:37
getting from interacting with so many
36:39
awesome people at conferences, where
36:41
we're not just trading ideas about,
36:45
you know, what cool things technology is doing
36:47
in our lives, but also just
36:49
the fun hobbies that we were having and how
36:51
they may be, whether or not they tied into
36:53
technology, but just generally just having fellow
36:55
tech people that we just were
36:58
excited about different things in life. And
37:01
in general, like it tied into this feeling
37:03
to where the traditional tech meetups didn't really
37:05
feel like my place. Like I just never
37:07
felt like I fit in. And
37:11
I pitched this idea to Christina, like,
37:13
Hey, what if we take a page
37:15
out of this playbook that goes
37:17
back to the, at least mine exposure that
37:19
was the nineties with the riot girl movement,
37:21
I had read a book a few years
37:23
ago about how zines were part of that
37:25
culture with trading ideas
37:28
and art and building a
37:30
community across geographic distances. And
37:33
why don't we do a essentially attack version
37:35
of that. And the four
37:37
18 was born. So we're actually
37:39
like really, really close to putting out
37:41
our first issue. We got a couple of
37:43
features from some fantastic people
37:45
in the industry. And
37:48
we also added a few fun things in there. I
37:50
even built a crossword puzzle for this, which I was
37:52
like, so excited to do. And I hope that the
37:54
people who do do it have a good time with
37:56
that. So I think we need to clarify
37:58
what is a zine and is it. not pronounced
38:00
design. I'm gonna say zine. I'm not
38:02
going to get into a holy war of whether it's a zine
38:05
or zine. The zine is a much
38:07
more so you imagine a magazine is super glossy.
38:10
It's professional. It's got like, you know, a team
38:12
of 20 people or so working on it. Zine
38:14
is a much more small scale,
38:16
homespun version of that. It's often
38:19
people who are artists that
38:21
are maybe trying to you know, show a
38:23
story or something and they're drawing it out
38:25
themselves or you know, way back in the
38:27
day, some people would like cut out magazine
38:29
things, glue stick them on paper and then Xerox
38:31
and send it off to people. And
38:34
they also have some roots in
38:36
exchanging, you know, really ambitious
38:38
ideas, stuff that maybe wouldn't get published in
38:40
mainstream publications. And they have a really fascinating
38:42
history to them where I think they date
38:44
back like as early as the 1940s. And
38:48
they provide a picture for people that do study
38:50
history of what life is like in different communities,
38:52
because this was the way that they communicated was
38:54
maybe to the circulation of zines.
38:57
And so, yeah, they're everything
38:59
from like, you know, art
39:02
projects to political statements to
39:04
just sharing a love of a particular niche
39:07
interest like gardening, it can be so many
39:09
things. So honestly, if people
39:11
wanted like just a sense of just how many
39:13
there are in the world, go to like XZ
39:15
zine category, because there's so many different things out
39:18
there. And that's like just touching the surface. So
39:20
the 418 is a zine about tech
39:23
and adjacent areas? Yeah,
39:26
so I guess our slogan on is like
39:28
thoughts on tea and tech, although we
39:30
don't focus too much on tea. But our general
39:33
theme is what are the things that we would
39:35
talk about with our friends over tea? What
39:37
would make us excited? What would we have
39:39
fun doing with our friends? And that
39:42
could be, you know, talking
39:44
about this new recipe we're trying
39:46
or working on a puzzle together, which I
39:48
think that might be a very Canadian thing.
39:50
I don't know. There's like this trope of
39:52
people who I don't have a cottage, but
39:54
for people who do have cottages, they go
39:56
up in the summer and they have this
39:58
big newspaper crossroads that everyone works on over
40:00
the course of the weekend. Yeah,
40:03
so I don't want to spoil too much of what we've
40:05
got in there, but it's meant to be
40:07
things that you would do with friends and
40:09
exchanging ideas that we get really excited about
40:11
with tech, that like, that keeps us excited
40:13
about all the things that are happening in
40:15
the industry. Because it's not necessarily
40:17
the newest framework, but it could be how
40:19
tech is being applied in a particular area
40:22
of our lives. Well, that
40:25
might have invalidated my next and last area of
40:27
question, but I want to talk to you a little bit about that,
40:29
what's coming next in tech area. You've looked
40:32
at and worked with a few different areas,
40:34
more recently, Netlify, Edge, Private Integrations, and we've
40:36
talked a bit about how things are making
40:38
it easier for folks to develop. What excites
40:40
you about the next five to 10 years
40:43
in tech? And where do you see your
40:45
personal areas going with that? Oh,
40:47
that's a hard question. I sometimes don't even
40:49
know what I'm doing next year, sometimes in
40:51
tech, because it changes so quickly. I
40:54
think at least, I can't speak
40:56
to 10 years, but at least for the next five
40:59
years, I am
41:01
really excited to see the focus
41:05
on the impact of software that we're starting to see.
41:08
And there's just like with
41:10
AI and things being able to run much
41:13
closer to people, a much more
41:15
powerful hardware. I imagine, I
41:17
can't even imagine the different
41:20
things that are gonna come out as a result
41:22
of all that power basically being available to us.
41:26
At least for me, I'd love to continue
41:28
working with developers and
41:31
chase my newfound passion to like figuring out
41:33
how to maybe push green
41:35
tech forward, because I think
41:37
it's super important, especially right now. And
41:40
yeah, I hope I get the chance to make an impact
41:42
there over the coming years. Well, that's
41:44
an excellent note to close out on. Erica, this
41:46
has been fun. Is there anything else you would
41:48
want to cover or mention before we hang up?
41:51
No, I think that's it. Thank you so much again
41:53
for having me on the show. It's been a
41:55
pleasure chatting with you. Cool. Well,
41:57
with that, this is Josh with Software Engineering Daily. Thanks.
42:00
and benefit
Podchaser is the ultimate destination for podcast data, search, and discovery. Learn More