Platform
Docs
Solutions
ContactLog In

The New Notification Stack for Developers - Maria Irizarry
Engineer Manager, Courier

Transcript

Noah:

Welcome back, listeners. Today we are continuing our series entitled The New Notifications Stack for Developers brought to you by our longtime friends and sponsors of the Code Story podcast Courier. As a reminder, Courier is developer infrastructure for product notifications, making it easier to deliver the notification experience that your customers expect. Check out their product to learn more at Courier.com.

Noah:

Well, today I have a special guest on the Code Story podcast, Maria Irizarry. She is a technical lead manager at Courier, has spent many, many years in software, spending time at Level, Google and Cisco. Maria, thank you for being on the show today.

Maria:

Of course, I'm super happy to be here.

Noah:

Before we jump into our topic for today, help me and my audience a little bit more about you.

Maria:

Well, this is my first time being on a podcast, so definitely super excited. I have quite a bit of years under my belt in the software engineering industry. Had a chance to work on consumer facing products for a while now at least six seven years and I'm super passionate about it as a developer. You know, I've had my own fair share of journeys with notifications and kind of honestly, the pain that it was to build them a little bit more about that.

Maria:

Like I worked at Google worked at Google Home on building out notifications for the home app there. It kind of just feels like full circle now. I'm here at Courier. I've been at Courier for eight months now and it feels like the time has blown by and I'm super excited to be stepping into not only the consumer facing product but the developer persona and thinking back to my experience of, oh man, what, what do I wish I would have had or what would have been easier for me, you know, if I could have and I get to execute on that.

Maria:

So that's really exciting. And personally, yeah, I've been living in the Bay Area for almost ten years now. I am completely, just utterly in love with birds. Kind of a funny coincidence that careers logo is a is a pigeon. So that's I feel like Courier picked me, you know, And I have two parrots and they're super adorable and they're like my little children.

Noah:

That's amazing. Okay, well, you mentioned your personal experiences, you know, Google and and you spent time at Level and Cisco too, and in personal experience of building notifications as a developer. Tell me more about that. Tell me about some of those experiences around, you know, building notifications and preferences.

Maria:

You know, you have a lot of activity happening with your smart home devices. And if you have a family, people are joining your household, leaving it. And it was very important for us to build out a system that could let users know what's going on in their home. The home app didn't actually have any sort of like infrastructure built to send out push notifications.

Maria:

I believe we had a very early iteration of emails, but I believe the infrastructure at that point was pretty outdated. Google's is like very nice and giant company, right? They have all the nice infrastructure, shiny things, resources. So put yourself in that context like you have probably the best of the best because they know what they're doing in terms of like involving that with their environment and their tools.

Maria:

And they had an internal infrastructure for notifications. And what I'll say about that is so it was more like a back end API actually kind of similar to Courier’s. But a key difference is that that project actually took around a quarter to build with two or three engineers. And part of that was not only making sure the right notifications are being sent at the right time, but what do those notifications look like?

Maria:

What if the user no longer wants to receive that notification? The actual infrastructure that we were connecting with didn't really have what we needed in terms of preferences management. So we had to build our own like plan out and build our own preferences, let's say database and thing and like, okay, well what are we how do we map a notification to preferences?

Maria:

And then like, do we really want to have a preference for every single kind of notification we send? Like. And really thinking through all of that, right. That was just in the beginning phases, like the quarter long project was actually integrating with the notifications infrastructure, but the preferences side like was after that. So imagine all the time that you're saving like that.

Maria:

That's why I was so excited when I heard about Courier because we not only have that infrastructure and more, right? Our pipeline supports a bunch of cool stuff, but we have the Courier web app, right? And you could just drag and drop and design your notifications for each of your channels and then you don't have to worry about it again because you have your template ID, you pass that on to the API.

Maria:

We worry about the rest and that's where preferences come in. It was really exciting to spend time working on this because I know firsthand the pains. And here's the thing Courier's product is notifications, notifications infrastructure, communications. That is our core product and that is what we should be working on. Notifications, preferences, automations, right. Anything regarding that? Other companies like they don't want to be spending time on that.

Maria:

That's not their core product, but every single product usually has some form of like communication with their customers, with their users. So it's really cool to be able to kind of take that on and then go and talk to customers and say, Hey, we took care of this for you so you don't have to spend a quarter's worth or resources in order to accomplish this and go build what you do best.

Maria:

You know.

Noah:

It's, you know, followed Courier for a long time. I've worked with you, you guys for a long time. And, you know, I know that it you've provided developers with the ability to integrate user preference management before. How has this feature evolved, though? Tell me about what's new and tell me about that evolution.

Maria:

We've offered several solutions to preferences in the past, and I think it helped some of our customers out. So I'll kind of walk through the most recent one prior to what we're calling Preferences Center and Preferences Designer. So we had this thing called categories and you could lump a bunch of notification templates into a single category. That's great, right?

Maria:

That's a step in the right direction. I think that what was missing there is that UI view of what does your preferences page look like? So kind of like providing a solution for not only the back end but also the front end and that previous solution. You would need to go into your code base and modify the way you're calling us with our send API and you would need to pass that category along with your send call.

Maria:

Right? That would involve engineering work and with preferences center what changes here is that when you go to that preferences tab, you have this nice UI that you can drag and drop and design what you want your preferences to look like. And instead of categories, we're calling it subscription topics and similar experience. But now you get to easily like drag and drop your notification templates onto a single subscription topic.

Maria:

You get to say what the default state of it is. If you want to add channel customization. And the important piece here is that you can go on made those changes and the web app and then there's a publish button similar to our designer where you can immediately just produce a hosted page that you can easily integrate into your notification templates where your users can click into that URL and see that beautiful page in a matter of literally 20 minutes.

Maria:

And that's being generous.

Noah:

Okay, so that sounds super easy and really, really exciting that that's available now as an engineer, like my mouth is kind of watering about, you know, being able to do that in search of at such a fast way. So, okay, What has your experience been like and what challenges have you faced in the process of building this? Right. Because it's you know, I heard you say this towards the beginning and something we've all, you know, faced and is a big problem that Courier solving is not having to build this again.

Noah:

Right. And tell me about some of the challenges that you faced while you were building it.

Maria:

There's several aspects to this. When you think about Courier, what is our bread and butter and what is our, like, precious gem? And that is our send infrastructure, our what we call our send pipeline and integrating preferences into directly into the send pipeline. We have to be very, very careful with not breaking the send pipeline right. So we really had to make sure that we made changes incrementally.

Maria:

Where in the pipeline do we go and check for those preferences and where do you block it? Where do you block that notification? How do you let the user know in the logs that it was blocked and why? Right. And so that's one piece. And then there's the user experience piece too, because what happens if a user is part of a list and they unsubscribe from that list, right?

Maria:

Like what takes precedence, the unsubscribe from that list, unsubscribe from that subscription topic or just from that single notification template, which we are like veering away from why we want to think about notifications as a, you know, a theme. What are you trying to tell with your notifications? And that's going to be your subscription topic, right? Like user activity, let's say transactional notifications you want those are required, right?

Maria:

Really making sure that that pipeline was well tested and worked and there was a hierarchy respected within our pipeline in terms of the the catch conditions of when we're actually sending versus not, it definitely led to a lot of discussions and you know, people, especially engineers, we can be very opinionated. So it's definitely a healthy discussion there. And I think what was important for us is to not only place ourselves in the developer persona, but also our customers users persona, right?

Maria:

Like as a user, like bring it back to you. Forget that you're an engineer, you're interacting with an email like, we all know that pain. You don't have to be an engineer to notice the pain of getting a ton of emails, opting in and opting out. Still getting those emails right, like what do you expect to happen? And that's what we need to do.

Maria:

So I would say on the technical side, the send pipeline on the other side kind of talking through what the our customers user experience is and really defining that and sticking to that.

Noah:

That makes a ton of sense. The need to make sure you're not breaking your core product when you're integrating this next piece of of functionality. And that's challenging, right, Because you're essentially having to test two things. One of them, you're not necessarily touching as much that can be super challenging. Okay. So tell me your vision, right? Tell me your vision on how developers will be using this feature.

Noah:

You know, I, I would imagine as you're creating and you even mentioned this, you know, thinking about not only how developers are using this, but how the end users are going to be experiencing it. How do you see developers using this feature?

Maria:

There's a double answer there. One of them is I actually don't foresee them using it a ton after they set it up. Right? And that's great. Honestly, like developers love to code, interact with APIs. I know that myself, but when I can offload something like set it up real quick, right? Like my hope is that they're able to set this up and only interact with that when they need to tweak a subscription topic or something like that.

Maria:

They don't need to spend like maintenance, they don't need to set up pagers. I mean, they can if they want to. So I imagine them, if you're a developer jumping in, setting it up and you know how we you go into a tool or something like this happens to me with Notion because they like to have this like the coding snippets or the formulas.

Maria:

And then I'm like, Well, can I do this? Can I do that? Like finding like how I can customize it? So they definitely can go in, you know, they're not limited to only the preferences designer experience, but they can go into our repo Courier react components that we have publicly accessible and they can go and grab that preferences component that we offer and embed it into their app and customize styles.

Maria:

And we can go even further than that. Let's say they don't care for the actual, you know, UI that we provide. We also provide the APIs where they can interact just directly with our infrastructures. You know, for, for those that really just wanted the backend, we're not taking that away from them. So I think that as a developer you get to choose your own adventure there.

Maria:

And if you're saying, Hey, no, like I don't want to spend two weeks working on this, I think that it'll be better if we just have this first like iteration of the hosted page and then we can work on this other thing. That's a P00, right? And then we can iterate on maybe embedding that component and customizing the look and making that a stop page within our app.

Maria:

I think it gives you a lot of flexibility and honestly, especially if you're fast prototyping and some of our customers have shown interest in that, right? Like eventually they want to go towards customizing the look and feel of their preferences, but to get up and running, they have to host that page right? And there's other customers that are like, Hey, actually your hosted page looks amazing.

Maria:

This works great. And they just go and embed our component so that, you know, they can actually show it in their application and that's it. You know, it should just be something that you set it and forget it. You don't have to allocate that one single engineer or those two engineers that just infinitely maintain that infrastructure that truly no one wanted to build.

Maria:

They had to. Right. And especially with anti-spam laws and things like that, it's crucial infrastructure. You want to you don't want to spam your users.

Noah:

It's super cool. And it brings up a question for me, because I immediately think, you know, if I'm going to implement, you know, or utilize the React component, drop it in my page. I'm going to want it to look like my brand, right? I'm going to want I want Courier's component to wear my t shirt, so to speak.

Noah:

And so how customizable is the components? How how easy is it to go customize them?

Maria:

You bring up a very good point. The branding piece, the t shirt piece, our hosted page actually uses your brand that you've set up with us in the Courier Web app. You already have a bit of the look of your company, right? Kind of like the t shirt. But in the React component, you can actually override. So let's say you import it in, you can override these styles to make it look how you want.

Maria:

So let's say that, hey, Courier, I love it that my company's t shirt can be purple with that logo, but I actually want that t shirt to be fitted and the collar to be more square or more cornered. You know, all of that is just easily over rideable and the component and the functionality, right, is containerized within it.

Maria:

So you can make it look how everyone and make it fit your product.

Noah:

That's fantastic. I mean, that's basically giving, you know, giving all the wiring hooked up to the preferences while giving you a blank canvas on the front end to make it look, you know, wear the t shirt. So that's super cool. Okay. So then tell me about some of the use cases where that preferences feature is useful.

Noah:

So, you know, I'm thinking like from a product standpoint, I use a ton of apps, I use a ton of applications and there's different types of preferences, settings and all those sorts of things. But I'm curious, you know, what sort of use cases out of the gate, the team and you have identified as as something to to really sort of illustrate the power.

Maria:

Yeah. I mean let's kind of talk through that, the one that comes to mind first. Right. And I think it's on all of our minds is marketing emails. So marketing emails off the bat is a subscription topic. And maybe as a product owner, you don't want to proactively start spamming your users. You know how sometimes you sign up for something and they automatically click and the like the checkbox to get newsletters?Isn't that like super annoying?

Noah:

Super annoying.

Maria:

So we pass that decision on to our customers. Like, do you want to do that? Do you want it to be on an opt out, opt in basis? So yeah, sure, that's one of them. Another one is let's talk about more crucial notifications like, hey, your password needs to be reset. Hey, your payment has expired. Hey, like something that requires user action immediately.

Maria:

You don't want your users to miss those, so you want to restrict them from opting out. But if you are one of our customers that opt in for a custom routing, you can add that. And you can say, Hey to my users for password reset. Some people don't like to get bombarded on their email. They already get too many.

Maria:

Hey, I want to get my password reset stuff or my crucial notifications on my phone. I'm way better about looking at my text messages so they can't necessarily opt out of those crucial notifications, but they can select the channel they want have received them through. You know, I feel like that's kind of a happy medium there. Right? And then let's talk about a third case where it's like the user may be interested in some cases.

Maria:

So let's say it's like user activity or I like to use the Nextdoor example. So neighborhood activity, kind of same thing for the crucial notifications. One, you maybe don't want to opt them in right away, but maybe in your onboarding flow, you want to give them the option, hey, we send weekly stuff about what's going on in your neighborhood.

Maria:

Would you like to see that? Then you give them the option to opt in. You can even just like grab the component, put that in the onboarding and say, hey, click that switch to opt in, right? Maybe for that one, you don't want to allow custom routing where they can select the channels. That one, you could just make it a simple one.

Maria:

So that's where our sections fall in. So you can have one section of topics where you allow custom routing and then a different section where you don't, you know, hey, this sounds cool. I'm going to opt in to neighborhood updates. I want to make sure I know if someone's getting robbed outside of my door or something like that.

Maria:

Right. You know, I think that covers the story around like, hey, what the actual like product wants, Like we do want in some cases for our users to know about new features, maybe a little bit of marketing. I think it's good practice overall to not spam new users. Bloomingdales, I hear you, I see you. So I think that having these and being outright to your users saying, Hey, these are the kinds of notifications that you're opting into, do you want them right?

Maria:

Giving them that option establishes trust with your user. And I think that, you know, they're less likely to kind of like rage click or unsubscribe from all notifications. Having that two way communication I think is important and establishes trust and I think ultimately increases engagement.

Noah:

So you've done development for for quite a while now and you've landed in, in Courier, you know, building this, this amazing infrastructure. Tell me about how it is for you. You're a developer and you're building something to save developers time and make their lives better, make it better for them to focus on. They're building their core competency in their product.

Noah:

How does that feel for you as an engineer building that?

Maria:

So it's very rewarding from that aspect that I'm making people's lives easier. There's pieces where, let's say I jump in to one of our APIs or SDK and I'm like, oh man, we don't support this. And then there's like that empathetic aspect, like makes me a little bit sad that we can't prioritize that right now. It's kind of like, Oh wait, but like, oh, the developers are like, they're going to have issues and I don't want them to have issues, right?

Maria:

So like, there's that piece, and then there's the selfish piece, which is you get to get from your like pull from your experiences as a developer say, well, I want to do it this way because I think this is really what will make things easy for our users. And another piece to it is that because it's our core product, I get to focus on that right?

Maria:

That is our bread and butter. It's not a critical feature for us. It's a core feature. So we get to spend our time really building it right, like you're trying to launch this home automation thing and you know, your deadline is coming up in a week and you still haven't built out your notifications or your preferences, right? You know, I totally understandable it can come as an afterthought because truly, that's not their bread and butter.

Maria:

Right? And I get to spend my time building those things. Right. I don't have to worry as much on the critical side because I am building the critical side and the core site. So it's great.

Noah:

Well, Maria, thank you for being on the show today. I really appreciate our conversation and I've learned a ton around the preferences feature, how great it is for developers, how easy it makes life for developers, along with the amazing infrastructure and the notifications pipeline and how you're making developer’s lives better. Maria, appreciate you being on the show today.

Maria:

Thank you for having me Noah.

Noah:

Really cool conversation with Maria at Courier. You know, all of the components that we hear about coming from Courier make the developers experience in building out a notification strategy. It makes their lives easier, makes it faster to develop so they can focus on their core competency of their product. As a reminder, Courier makes it easier for you to deliver a world class notification experience that your customers expect to learn more about their product and get started today, check out Courier.com and thanks again for listening.

Build your first notification in minutes

Send up to 10,000 notifications every month, for free.

Get started for free

Email & push notification

Build your first notification in minutes

Send up to 10,000 notifications every month, for free.

Get started for free

Email & push notification

Platform

Users

Content

Channels

Sending

Workflows

Preferences

Inbox

Workspaces

Observability

API Status

Changelog

© 2024 Courier. All rights reserved.