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