Episode Transcript
Transcripts are displayed as originally observed. Some content, including advertisements may have changed.
Use Ctrl + F to search
0:00
Thank you for tuning into today's full episode of the Breaking Changes podcast.
0:11
I'm your host and chief evangelist for Postman Kin Lane.
0:14
With Breaking Changes, we explore topics from the world of APIs, but through the lens of
0:19
business and engineering leadership.
0:21
Joining me today, we have Annyce Davis, vice president of engineering at Meetup.
0:26
Annyce shared with me the best answer to why a company has adopted GraphQL that I've seen
0:32
to date, leaving me impressed with what Meetup accomplishes with APIs.
0:36
I always start simple, start with the basics.
0:39
Who are you and what do you do?
0:43
Hey, I'm Annyce Davis. I'm VP of engineering at Meetup.
0:48
What do I do? Everything. But these days I'm primarily responsible for our GraphQL API, as well as our native applications.
1:00
So tell us a little bit about your journey. How did you end up in this role at Meetup?
1:04
Like where, where, where'd you get started with your career?
1:08
Uh, yeah, great question. It started a long, long time ago.
1:12
Um, as a little person, I used to love playing this game called number munchers.
1:18
Um, and my teacher told me, Hey, if you want to do something like this, when you get older,
1:24
you have to become a computer programmer. And so that was pretty much it for me.
1:28
Um, ever since then I wanted to become a computer programmer.
1:32
So I did, um, I studied computer engineering in college and then I started working as a
1:37
programmer. So, um, it's been, it's been a fun ride.
1:42
So, so tell me, I think most people are listening to the show are, are familiar with Meetup.
1:47
I think who has, especially in the tech industry, uh, we've all had quite a bit of exposure
1:53
to, to what, what the magic that I think you all make happen.
1:57
So what's, what's the role of APIs at Meetup?
2:00
Yeah. APIs are just central to everything that we do at Meetup.
2:05
Um, as I mentioned, I'm primarily responsible for our GraphQL API.
2:10
Keeping that performant, um, it serves all of our front facing clients.
2:15
So if you're using like your phone, the native applications, or if you visit our website,
2:20
um, the API powers all of that. Um, as well as we do offer, um, special API access for some customers who want to just
2:29
query it directly themselves, um, which is another interesting use case.
2:34
So, uh, a lot of, a lot of folks are, are aware of GraphQL.
2:38
It's definitely, I would say one of the top, uh, types of API flavors of APIs.
2:44
However, we want to frame it, uh, today, but what's, what's the decision making
2:49
behind choosing GraphQL and, and, and moving from a rest infrastructure?
2:54
Yeah, that's a great question. So I'll say like a few years ago, um, we wanted to experiment with Meetup.
3:01
Changing some of the core business model.
3:04
And it made sense to spin off a separate GraphQL API in order to power it.
3:10
Um, and then over time, we just started seeing how more of our full stack
3:15
engineers, um, even sometimes our apps engineers can contribute to the GraphQL
3:20
API, um, mostly because of some of the simplicity that it offers via the
3:25
resolvers, as well as on the client side, we've been able to use the API
3:30
on the client side, we can say, well, you know what I want to now show a save
3:34
button here, well, that's already exposed via GraphQL.
3:38
So just add that field to your query and you're good to go.
3:42
So that has really caused us to invest heavily in using GraphQL at Meetup and
3:48
it's been a really great decision for us. So I think one of the things I'm seeing GraphQL adopted is, is in fairly
3:56
large organizations, cause they have such a, uh, an expansive data graph
4:02
that they need to, to expose. I'm curious how, how big of an organization is Meetup?
4:08
Meetup is so small. Meetup is less than a hundred people.
4:13
And I remember when I joined Meetup about three and a half years ago, and I started
4:19
to learn about like the architecture and some of the functionality and it is
4:24
deceptively complicated for an app where you say like, I just want to go to an
4:29
event or I just want to host events.
4:32
But we offer so much customization, so many hidden features that you don't even
4:37
know about, um, honestly, I was just blown away by how much is actual Meetup.
4:45
Um, and also keep in mind Meetup is 20 years old.
4:48
So there's going to be a lot of legacy things that are still there that kind of
4:53
get in the way of, um, some, some of the things that we want to do at Meetup.
4:58
And so you always have to keep that portion of infrastructure or product work
5:03
in mind as you're moving forward, um, to make changes.
5:08
Yeah. It's a, it's a interesting just to hear that you're so small.
5:13
Cause when we first talked, I was kind of blown away that I was just had something
5:17
else in my head, cause y'all have been here for my entire, kind of the last phase
5:21
of my career. And so I just assumed it was like get up, GitHub or some other company and just
5:27
super large, um, but you're, you're in charge of engineering.
5:31
How much of your, your day to day is business versus technical things?
5:36
Uh, do you spend your time on? I'll say probably 20 to 30%, maybe business things and the rest is very technical.
5:48
Um, just to give you an example, business things, negotiating contracts, meeting
5:53
with a new vendor, uh, following up on these other kinds of things, like, uh,
5:58
there's always a lot of administrative work that needs to be done.
6:02
Um, and then as far as being technical, that's where I get to, um, kind of get
6:08
in the weeds a little bit, look at some performance optimizations, learn about new
6:13
things that are coming along and just monitoring the health of the organization.
6:18
Um, and our platform overall.
6:22
So how much, uh, I mean, as a technical person, how much of the business should us
6:28
developers, uh, understand when it comes to doing APIs, do we need to be intimate
6:34
and aware of, of how business works or, or is it all right if we just kind of stay
6:38
in our, our little, little rabbit holes and focus on the, on the code bits?
6:43
Yeah, I think it's good to come out every now and then and take a look around at
6:48
what's happening, um, with the business.
6:51
I know before as an engineer, when I was just an individual contributor, I, I
6:57
thought I knew what was going on with the business and I would say like, why
7:01
don't they just blink, you know, it's so obvious they should just blink.
7:06
What are the business people doing? They don't know anything, right?
7:10
Cause when you're a programmer, you know, everything. Um, and when you start to learn more about the business, learn about how
7:18
does a business make money, what counts as revenue versus an expense, what's
7:24
the difference, where are the buckets of money, how is it allocated?
7:28
How does it impact taxes? Do you need to know about every single thing?
7:32
No, but just knowing that there's more nuance there than you're probably aware
7:38
of, I think it's really healthy.
7:41
It helps you to build empathy for some of the decisions that the business makes a
7:45
lot of times that maybe you might not fully understand or agree with.
7:49
And I also think that it helps you as an engineer to make sure you're
7:54
optimizing for the right things. Um, so if I can just give an example, what if my company, um, is looking to
8:04
get rid of one aspect of our, of our project and use a third party solution.
8:09
Would it make sense for me to spend all my time?
8:12
Oh, let me make sure that this is redundant and I'm, I'm backing this
8:16
thing up and it says the perfect architecture and everything is abstracted
8:20
away or let's just make it work.
8:22
Cause next month we're giving it off to a third party.
8:26
Yeah, of course it would be a no brainer. So you need to know what's going on with business also to help you make
8:31
smart decisions as an engineer. Yeah, I agree.
8:36
And I see this divide between business and IT kind of narrowing.
8:40
I think it still exists and we need people who are, are specialization in
8:45
each area, but I see a lot of the classic divide closing up, but coming,
8:51
coming back to the, the, the graph go up.
8:53
Cause I think a lot of our audience is going to be very curious around, uh,
8:57
they're dabbling. They they've made a decision or they've been thinking about, uh, implementing
9:02
GraphQL what's, what's been the biggest benefit as far as having GraphQL
9:06
in place for your, for your team. Yeah.
9:11
So I'll say the biggest benefit is that we understand what is available.
9:19
I mean, I know like in the past, maybe we had swagger or we'll have the rest
9:23
CPI and, um, we were just pulling tons of, tons of data, too much data, um,
9:30
different rest requests over the years, as I mentioned, Meetup is super old.
9:33
So maybe there was some, some reason why we needed all of that data.
9:38
And then we changed the UI and we don't need that data anymore.
9:42
So on the apps, it was always so slow downloading tons of data that we didn't
9:48
even end up displaying to the user.
9:50
So I'll say one benefit is just performance that we only pull what we need.
9:55
I'll say another benefit is understanding the business.
9:59
Like this, these are the groups, the networks are comprised of groups.
10:04
These groups have events, attendees go, attendees have this, they have tickets.
10:10
They, this is the status. Um, I think for being so small, we can't even, we can't even, we can't even
10:16
Um, I think for being so small, we can't afford to have, um, knowledge silos where
10:23
only some people understand the business and know about, you know, what makes Meetup
10:30
tick, having the GraphQL API has really helped so much where I know personally, I
10:38
have such a much better understanding of Meetup and how the pieces fit together.
10:44
Yeah, I like that. Cause I think that reflects what I'm seeing with a lot of groups.
10:48
They're just trying to get a handle on that data graph, that sprawl.
10:53
It's almost become like Los Angeles or Atlanta when it comes to like, you know,
10:58
the neighborhoods, like it just goes on, you can get lost, you can get lost in
11:03
those neighborhoods sometimes, where am I? How did I get here?
11:07
Where am I going? And so I think that's a pretty good reason to, to jump in, but on the flip side,
11:14
what, what's been some of the challenges and adopting GraphQL, what'd you say?
11:19
I think the, I'll say one of the biggest challenges is not fully letting go of
11:24
rest and it just takes so long to deprecate the rest API.
11:32
So it's like, first of all, you have to make sure that you're instrumenting
11:35
everything properly to try to nail down who's even calling it.
11:39
And is it important enough that we don't want to break it for said person?
11:43
So it took us a while to just get like all of our pro clients off of rest
11:47
and onto GraphQL. Once we were able to do that, it's like, yay, victory.
11:52
Now we have to finish getting off of it ourselves and just going through,
11:57
okay, this team, can you make a corresponding query in the GraphQL API?
12:03
Great. Now adopt this new query. Wonderful.
12:06
Now wait two, three months for people to upgrade their apps and we no longer have
12:11
to support that one endpoint. And then while this is all happening, business happens.
12:18
You never stop building features. You never stop releasing things.
12:22
So it's, it's difficult to justify, oh, don't build any features instead, just
12:28
deprecate this endpoint, it will be exact same experience for you.
12:32
It will be exact same experience for, for the customers.
12:36
No. So it's like, it's for me, I think the biggest challenge is just completely
12:43
being on one system and, and fully deprecating the other one.
12:49
Yeah. It seems like it's really helping you manage change in a way that's, that's
12:53
positive and I don't think, not that rest can't manage change in some ways, just
12:59
knowing how to, how to manage change with rest, I think isn't a widely shared
13:04
knowledge and everyone is on board or knows how to do it and GraphQL definitely
13:10
kind of comes out of the box and in adapting and evolving with the different
13:14
applications you're going to use. Yeah.
13:17
I have definitely seen that to be the case.
13:21
So, uh, speaking of change, what's changed during COVID for y'all?
13:29
Yeah. Uh, so we're meet up and we were all about people meeting together in
13:37
person, real human connections.
13:40
And when COVID hit, we really had to make an adjustment and for the first
13:45
time ever we introduced online events.
13:49
And that was huge. Um, and I remember when we were initially thinking of it, everyone was like, how
13:56
in the world can we make meetup work for online events?
14:02
It just, there's nothing in our like schema or our database tables in the
14:08
fields that can support this, but we were already using GraphQL.
14:15
And so that was just like the perfect thing because, you know, it's an
14:18
abstraction layer, so we could say, Hey, everyone start calling this new query.
14:24
You'll get some online events data. Let's create a new mutation and then we'll call that mutation and we'll say,
14:30
Hey, this is an online event. And the venue just happens to be in the middle of nowhere.
14:35
Great. So we were able to sort of hack our own system using GraphQL to support online
14:40
events and we did the whole thing in about a week, so honestly, it was so
14:47
impressive and it's one of those make or break moments, um, in a company.
14:52
And thankfully meetup was able to pull it off because I do strongly believe that
14:58
it's good for humanity and it really does help people, um, do things with
15:04
someone that has similar interests.
15:06
So, um, really proud of us for the work that we did there.
15:12
Yeah, it's, um, and I think, I think y'all are straddling the line between,
15:17
we all still need to meet up and share knowledge and share information.
15:21
We're in this weird moment where we can't get together, but then we need to go back,
15:25
but maybe not all of us can go back to in-person and so hybrid events.
15:31
And I think that it sounds like GraphQL is allowing you to kind of really flex
15:35
with that and I liked the, the meetup is, is nowhere because the, the virtual
15:41
events, I feel we, we, my team, my dev rel team and we joke, it's like screaming
15:45
into the void, you know, because you'll be like talking sometimes and who are
15:50
you talking to, you know, and so I like the meetup and nowhere that fits well.
15:56
It's like, is this thing still on? It's, it's definitely, and I've done that and had, yeah, I, and I've done that
16:05
and had like three or 400 people listening like, yeah, we're all here.
16:08
We're listening. We're, we're, we're interested in like, oh, okay.
16:11
Okay. Well, thank you. It's, uh, um, so how about your consumers?
16:17
I mean, you say you're, you know, your website mobile or consumers, but how have
16:21
your partners adapted to GraphQL?
16:23
Are they pretty, pretty open to this change?
16:27
Yeah. Um, so a lot of the pro customers who had to switch from REST to GraphQL, um, we
16:34
tried to do it in a very like gradual fashion.
16:38
So we wrote some documentation. I tried to look at the REST requests that they were making the most often, and
16:45
then add that to the documentation as well.
16:47
So, Hey, you want to get a list of all groups in your network?
16:51
This is, this is the rest endpoint.
16:53
And now this is how you do it with GraphQL. And so I will go through just based on data, look at the types of
17:00
requests they were making and say, here's how you do it on GraphQL.
17:04
Um, and then for a few people actually just hopped on a zoom call and said,
17:09
okay, show me, show me your code, show me your queries.
17:13
What are you trying to find out? Oh, okay.
17:15
This is what you need to do. This is this sort of object.
17:20
Um, it was very, um, high touch white glove treatment, I'll say.
17:25
But in the end it worked out really well and they were appreciative and
17:30
grateful that they can still query our API in a way that worked for them.
17:35
And then also for several of the people, this was their first time working with GraphQL.
17:40
So they were just kind of excited as well to be able to, um, try out this
17:44
technology that is kind of taking over, um, the industry.
17:50
Yeah. Do you, do you feel like you learn from those, those high touch engagements
17:54
and, and learn from the consumers as well? Definitely.
17:58
You, I, you assume that, you know, what people are doing, um, because you
18:05
have some data, right? I can look in the dashboard and see, oh, they keep using this endpoint.
18:10
Great. I'll just make the same exact thing in GraphQL.
18:14
And then you meet with them and you find out actually we do these two requests.
18:21
Then we do this and put the data together ourselves.
18:24
And then we loop over and you're like, wait, wait, no, you don't have to do that
18:27
with GraphQL, one query, combine this.
18:31
And it's like, oh, nice.
18:34
So I think for, for me, it's always just don't make assumptions.
18:40
You, you think you know, but you don't know.
18:43
And you have to talk to people. Um, I know I tend to be kind of shy and introverted despite the fact that I'm
18:50
talking to you today and I'm like, Anisha, you just have to talk to people.
18:56
You have to talk to them, find out what they're trying to do, how they're
19:01
currently doing it and what are the pain points because people always have pain
19:05
points just because they're doing something and maybe not complaining about it.
19:10
Doesn't mean that it's working wonderfully for them.
19:13
Um, so I definitely get a lot of value out of talking to, to customers and just
19:18
finding out what are their pain points. Also, what were we missing?
19:23
There were a few things that I didn't even know they were querying for, and we
19:26
hadn't covered it in the graph. So I'm like, great.
19:29
Thank you for telling me that. I'll make sure that I get prioritized so we can expose that
19:35
information in a query for you. So yeah, definitely talking to customers.
19:39
I learned a ton. Yeah.
19:42
I think this has been the biggest advantage of, of API is being closer, more
19:47
closely aligned with business and not just the classic developers in a back room
19:51
that you feed pizza to and they, they deliver an API cause we, I get like that.
19:58
That's why I do API is cause it, I was an old database architect and administrator
20:04
and, and API has brought me out of that, that basement and got me closer to
20:07
business and closer to needs. And I found that more nourishing than, than just hacking away at things.
20:13
And I think we, we don't always realize it and we're happy being our, in our
20:17
little cocoons, but it's actually better that we're not.
20:20
Yeah. Because I, engineers, we solve real problems with technology.
20:28
It's not that we're just, oh, I love GraphQL or I love REST or I
20:32
love any particular thing. Our job is to solve a business problem using technology.
20:39
For the most part, most people don't, the business doesn't really care.
20:43
As long as it's not expensive. So it's, it's up to us to say, okay, well, what is the real business problem?
20:49
And what is the tech, the right technology that will solve it?
20:55
Yeah. Agreed. Can't agree more on that.
20:57
And that's well said. So what keeps you coming in every day to work?
21:03
I love my team. They're very smart and humble, which is a great combination.
21:09
One of my favorites. And I love the mission of meetup.
21:13
I love that we're small. It, cause I could just get to wear so many hats.
21:19
I mean, one minute it's like, I'm debugging some performance issue in the API.
21:24
The next minute I'm talking to the marketing team about how we're going to
21:27
put out a new program and everything in between.
21:31
And that's, that's really exciting for me.
21:33
I like to have, I like it to be mixed up and I like to be able to use my creativity
21:39
in different aspects of the business.
21:42
And also it's a challenge. I mean, we're still a business who is trying to help people form connections.
21:49
That's not a simple or easy problem.
21:52
And so I look forward to trying to develop technical solutions
21:57
to that business problem. So that definitely keeps me coming to work.
22:03
I like it. I have to kind of second that, that I kind of owe a lot of my career right now to,
22:10
to y'all and what meetup does. Cause like I'm an evangelist, I'm chief evangelist at Postman, but I have this
22:17
a blog called API evangelists that I've run since 2010.
22:22
And I've completely dependent on the meetup ecosystem in different towns and cities.
22:28
And I used to literally live on the road and travel from Chicago to DC, to New York,
22:34
to Atlanta, to LA and, and do meetups.
22:37
And I'm talking, you know, these are technical meetups.
22:40
So some of them are APIs, but some were like, you know, in DC that's like
22:44
Smithsonian data sharing for like African-American history.
22:50
And like, it's like 15 people that are very specialized coming together to use
22:54
the Smithsonian API to like tell a certain set of stories, you know?
22:59
And so it's that kind of enablement that really has given me a career and kind
23:03
of built up all the people that I know. So that's awesome.
23:07
I love hearing these meetup stories. It's like meetup is just even before joining, I also used meetup also very
23:17
huge part of my tech career and growing my network and yeah, we're still here.
23:22
We're still doing it. Yeah.
23:25
Well, thank you for being there. Thank you for doing it.
23:28
I love the GraphQL narrative. I think it was one of the, the, the healthiest, pragmatic views of
23:35
GraphQL that I've heard recently. So thank you for sharing that.
23:38
And thanks for coming by today. Thanks for having me.
23:44
Thanks again to Annyce for stopping by. You can find more about Annyce on LinkedIn and meetup.
23:50
You can find that meetup.com. You can subscribe to the Breaking Changes podcast at postman.com
23:56
slash events slash breaking dash changes.
24:00
I'm your host Kin Lane and until next time, cheers.
Podchaser is the ultimate destination for podcast data, search, and discovery. Learn More