Platform
Docs
Solutions
ContactLog In

The New Notification Stack for Developers - Drew Youngwerth
Software Engineer, 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 another special guest on the Code Story podcast, Drew Young Worth. He's a senior software engineer at Courier and has spent the last 12-13 years in software, working robotics, working in motorsports and is today working on the automations portions of the Courier platform. Drew, thank you for being on the show today.

Drew:

Thanks so much for having me.

Noah:

Absolutely. Before we go too far into our topic for today, tell me and my audience a little bit more about you.

Drew:

I'm originally from Boise, Idaho. My whole career started at a company called Recluse Motorsports, working on their inventory management system. And then from there I was in robotics automating small factories, helping robots make just tiny parts that were made out of CNC aluminum and that sort of thing. And now I live in San Francisco working for Courier.

Drew:

I love to play video games, work out. I have a dog that I love taking at a dog park. And then I also code for fun. Believe it or not. But I've got a few side projects. I'm building a programing language and that sort of thing.

Noah:

Awesome. Well, let's let's dive into the meat of it a bit. So you're an engineer. You've got 12, 13 years experience being a software engineer. Tell the audience how much of an engineer's job is automating processes.

Drew:

Oh, it's a it's a huge portion of our job. So one side of things is just making user interfaces that look pretty. And I wouldn't call that automation, but I'd say pretty much everything else is automating processes. So in my current project automations, we're taking common repeated tasks and trying to break down the amount of work needed to accomplish those tasks.

Drew:

So, for example, we're introducing a feature called Digests, where you'd probably need at least a few engineers to introduce a feature like Digests. And we're we're breaking that down into just a couple of nodes in a user interface. And that's the sort of thing that I’d say most software engineers do. They find things that require a lot of work and they try to break it down into simple pieces and present it to users in a friendly way.

Noah:

That makes a ton of sense. And I totally get that. That split there between, you know, processes and then UI/UX. With engineering, with building things, especially nowadays with with no code, low code things like that. There are a level of abstractions that enable you to move faster. How are Courier and automations the right level of abstractions for specifically notifications?

Drew:

So Courier was founded on a realization that software startups and software services were building the same thing over and over again. They were starting with maybe one or two notification channels, and then they'd have more and more channels added over time. They'd have more features like localization added over time that eventually their company needed to scale up to an entire engineering team to build.

Drew:

And so Courier was built on those patterns. So that Courier could be that notification engineering team. But there's only so much Courier can do alone to build a good notifications experience. And at some level you're going to need to make a smart notification experience that's tailored for your specific product. But even then, there are still really common patterns, like checking whether a message was delivered or if a user has completed some sort of event.

Drew:

Like maybe you want to send a notification reminding them that they have a cart full of stuff in your e-commerce site and you want to remind them to check out or clear the cart. Courier automations makes eesigning experiences like sending out those reminders or not sending out those reminders if the cart has been checked out. Super simple, something that that scales to all skill levels.

Drew:

So maybe even a non engineer can design those sort of experiences.

Noah:

Brings up a thought for me from, you know, my side. So I'm CTO and co-founder at Variable and we have notifications in our platform like, like any sort of, you know, SaaS platform today. Right. And we, you know, notify our operators, we call them or workers when they are paid, when they are when there are new opportunities available.

Noah:

And those are a little bit more, you know, loose types of notifications as far as timing. But then there are other that are more timing critical. Like you have an app coming up, you have a work opportunity coming up. Is that kind of what this is? Is that what you're referring to when you say automations?

Drew:

Yeah. So that is actually one of our big use cases. So we have made it in such a way that scheduling a notification is as easy as it would be to schedule an event and a calendar app where we took inspiration from the event creation in Google Calendar because that is basically at the heart of what what an engineer would do when they're building a notifications schedule scheduler.

Drew:

So yeah, that's a huge use case for automations. We have a whole schedule trigger that's designed just for that.

Noah:

Really interesting because the scheduling aspect is is critical and really important to even notify the people at the right time. How else are you seeing, you know, users and customers using automations?

Drew:

There's a whole class of use cases that we're already seeing a lot of. You know, one of our biggest use cases is Segment customers who intake Segment events based on a user's action or what they're doing in their own products. And the best example, which I kind of alluded to earlier, is an e-commerce website that has a checkout experience.

Drew:

And, you know, when you add product to your cart Segment might send an event and our customers can easily say, Hey, I just got this event, I want to send this notification based on that event that we just received. They added that product to their cart and we think they might like these products too. So we'll send them a notification using automations and maybe they want to not send a notification every single time they add a product to their cart so they can do something as simple as drag over the batching or the digest node and say, Hey, here's all the products that they added to their cart.

Drew:

Maybe we want to perform some work. And after, you know, the end of the week, we'll send them a list of a few other products that they might find interesting. And so that is something that Courier has abstracted out in such a way that we hope a user experience designer or a product designer can build out with a visual designer that that we constructed.

Noah:

Oh, that's brilliant. I love it. Yeah, You mentioned Segment. You know, after speaking with Seth and Ben a couple of weeks ago or a week ago, it was really brought to light the power of the integration that Courier and Segment have and how, you know, existing Segment users and existing Courier users or new users for both can get up and running and connecting both of those platforms super easy.

Noah:

It's very, very powerful. I heard you previously had a version of automations that didn't really work out super well. What are some of the challenges you faced in implementing that and how is this new version different?

Drew:

We did. We had an earlier version. I think it took one of the goals of the Automations product a little bit too seriously, and that is to design an experience that scales across all skill levels from the non-technical to the very technical, but they kind of focused on the non-technical to the point that it made what you could deliver with automations very restrictive.

Drew:

You could only add sequential steps so you could say, All right, send a notification or wait five days and then send the next notification. But it was really difficult to break out of that box. So our next version, we wanted it to truly deliver on the scalability across all skill levels, but also all experiences. We took inspiration in from what's out there today.

Drew:

The earliest example that I can think of that I have seen a UI or a flow based programing system that we've now implemented was a game called Little Big Planet. When I was in eighth grade, it had a flow based visual programing environment and as an eighth grader I could build my own levels in a video game that were really cool and responded to the character interacting with the environment.

Drew:

And then we see other products like Blender or Unity, who use node flow based visual programming editors and their users have a lot of success, even if they're not familiar with code or comfortable coding. And so we've taken basically this mature visual language of building smart, interactive experiences, and we've applied it to the notifications abstraction that we've been talking about.

Drew:

And so now that game that I played as an eighth grader has carried over into helping customers build really advanced notifications experiences.

Noah:

That's brilliant. And I think it makes a lot of sense. But also at the same time, that sounds like a ton of work when, you know, what does it take to develop something like that. Can you give me a little bit of a of an insight into the journey there?

Drew:

Yeah, we really started with looking at prior art to see if there is any open source libraries out there that can assist us. And while we didn't find a whole lot in terms of the back end, we did find a really great library on the front end called React Flow. That gives you really the foundation that you need to build a flow based visual editor.

Drew:

So that gave us a huge headstart. And then we also took advantage of really great AWS services like step functions, AWS Lambda and Dynamo, and that's three. And we kind of pieced those all together into a really scalable product. So I would say a good portion of our time spent was just research on what's out there and then the rest was implementation.

Drew:

But it has been a wild ride for sure.

Noah:

Being a software engineer for 12-13 years, you know, you, you've done a lot of work, you've written a lot of code, and you're building something for engineers, which is has got to be super rewarding. Can you tell me a little bit about what is the most rewarding thing for you as being an engineer at Courier?

Drew:

Oh man, there is so much I love going into the office and getting to hang out with like minded engineers or even not like minded engineers that give you a different perspective tip on how to tackle a problem. I found that super rewarding. And then, you know, working together with all of our differences, building up a product at this scale, this is probably the single largest product I've ever worked on.

Drew:

And, you know, I learned a ton and we launched the initial version of this earlier in the month. And the reaction has been amazing. You know, we've gotten a lot of good feedback and it's really cool to see the light in people's eyes and see, hey, you know, I think we can do something with this. And then we'll get feedback like, hey, we want to we want to build this feature using automations.

Drew:

How would you do that? And we'd walk them through, but also at the same time realize that there's more opportunity, more room for improvement, and more things that we can make a lot easier for our users.

Noah:

That's amazing. Well, Drew, I really appreciate you being on the show today. I couldn't be more excited about the automations aspect and how it links in and provides the right level of abstraction for notifications through Courier. Great job on the product and I really appreciate you being on the show.

Drew:

Yeah, Thanks so much for having me.

Noah:

Wow, this is super exciting. Courier releasing automation. So automating the processes that need to happen when you need to send a notification enabling builders of all experience levels to get what they need out of their notifications. 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.