Articles by Nick Quinlan

Nick Quinlan is a SendGrid Developer Evangelist based out of San Francisco. He works to make developers lives easier by providing them with the help they need to grow their ideas. Give him a shout, @YayNickQ.

Send Emails That Don’t Bite With Barke


People are different. They read their email at different times and in different ways. But it’s not easy to track and react to different users’ habits. That’s the idea behind Embarke, a partner of ours that optimizes the delivery time of each email you send. Embarke mimics our Web API and then consumes data provided by our Event Webhook to allow users to continue sending through SendGrid with minimal changes on their end. To start using Embarke, all one needs to do is change their endpoint from: to and pass in a few extra values through the x-embarkeapi header. Typically, its fairly easy to switch one of SendGrid’s API Clients to an Embarke client. For example, to send

The SendGrid Internal Hackathon!!

SendGrid Internal Hackathon Small

If this were a normal hackathon, I’d start this post by telling you the thirty hackers still at the event at 2:00am sat heads down, faces lit by the glow of their screens, frantically coding and debugging in a rush to finish their hacks. But this wasn’t a normal hackathon, this was the SendGrid Internal Hackathon, and instead hackers jumped on two-hundred feet of bubble wrap. The SendGrid Internal Hackathon Thursday and Friday of the last week of June, we held the first SendGrid Internal Hackathon. Technically speaking this wasn’t our first run at a hackathon for the company, but its the first one we treated like the ones we do in the community. At SendGrid, we attend a bunch

What’s a Webhook?


A webhook is an API concept that’s growing in popularity. As more and more of what we do on the web can be described by events, webhooks are becoming even more applicable. They’re incredibly useful and a resource-light way to implement event reactions. So, what exactly is a webhook? A webhook (also called a web callback or HTTP push API) is a way for an app to provide other applications with real-time information. A webhook delivers data to other applications as it happens, meaning you get data immediately. Unlike typical APIs where you would need to poll for data very frequently in order to get it real-time. This makes webhooks much more efficient for both provider and consumer. The only drawback

The Importance of Projects

light bulb

Time and time again, people ask me the best way to get into programming, or the best way to learn a new language, or the best way to understand a framework, and time and time again, my answer is to start a project. Over the years, I’ve worked on countless projects, ranging from stupid ideas that got featured on tech blogs, to stupid ideas with vulgar names, to a few useful open source works. Each of these projects have taught me a great deal about one concept or another. From learning how to scale a site, to learning how to effectively deal with times, I learned and was able to show off my learning with a product. Projects can be

Schedule Email with SendGrid and


There are tons of reasons to schedule an email: maybe you want to send an email daily or weekly, or perhaps, you just want to send an email in the morning rather than the evening. Luckily, with and SendGrid this is easy. is a cloud platform that gives developers tools to solve many common problems. One of these tools is the Iron Worker, a way to asynchronously run code in a number of languages. Workers are run by “tasks” which can be queued, scheduled in advance, or even repeated. Tasks can contain JSON Payloads which the worker can then process. Writing the Worker Using a worker, scheduling an email becomes a simple task. In this case, our worker

The Magic of Email Headers

Magic hat

Email amazes me. It’s an open, decentralized, and evolving means of communication that allows you to message someone on the other end of the world–-and it’s been around for fourty years. One of the amazing things about email is the depth of the specification. Email has many intricate and little-known parts, many of which are hidden in message headers. Message headers are essential to any email communication–they describe the message, who sent it, and who it’s going to. To, From, Date, and Subject, are all headers most people are familiar with, then there’s the commonly discussed DKIM and SPF, however there are many more email headers that do much more. Due to the nature of email, there are a number

Don’t Tell Developers What To Build


Don’t tell developers what to build–simple advice that should be central to all hackathons. However, it’s all too frequently ignored by hackathon organizers. Hackathons are a time for developers to learn new technology, meet new people, and pick up new skills. As a rule, it’s better for open exploration to have an unstructured environment rather than a highly regulated one. However, organizers often make the mistake of thinking that rules and structure will create a better event that better conforms to their preferred outcome. A developer’s job is to solve problems and get around obstacles. When an organizer tells a developer what to build, they’re putting up an obstacle and a developer’s mind automatically goes to figuring out ways to

Teach Coding Concepts With GitHub


Getting started with coding is hard. We’ve addressed it many times on the blog, including posts on building a conceptual framework and thinking about it from a program design standpoint. In my mind, one of the easiest ways to get going is to be sitting near someone who knows what they’re doing and can offer advice when you get really stuck. There are, naturally, problems with this method–the person helping can become a crutch and of course you need the person to be there with you. One interesting solution that I and others have been exploring is moving the process to GitHub. GitHub gives developers an amazing set of tools to comment on each others’ code, down to the line

How to Judge a Hackathon

Hackathon in the dictionary

At the end of a hackathon, when hacking is done, and presentations have just finished, there’s a pause, and a giddy excitement fills the air. The judges leave to some private room and begin to talk about which hacks were the best and which deserve prizes. As an evangelist, I’ve taken part in many of these sessions, and sat in on many more. I’ve seen great judging sessions, and terrible ones. At the end of the day, everyone wants the right person to win, but selecting the winner can get tricky. However, if the judges are picked well and good criteria can be established, this decision becomes easier. What Makes a Good “Hack” To understand what makes a good hack,

A/B Testing Explained and Used in Transactional Email


A/B testing, also called split testing, is extremely useful to determine if a particular action is better than another. Today, A/B tests are run on many websites, by many services. However, it’s relatively simple to A/B test anything you want. In this post, I’ll discuss A/B testing, the statistics behind it, how to run your own A/B test, and how to do it with SendGrid’s General Statistics Endpoint. If you just want to compare A/B test results of SendGrid transactional emails, you can use this handy app I made. A/B Testing Explained A/B Testing seems simple at its surface. Simply display two different versions of whatever you’re testing (e.g. webpages, ads, emails) and compare their statistics. Essentially, that’s all it

Save All App Email to Amazon S3


Sending email is great, but sometimes you want a little more. Maybe you want to store every email you send your users. Or maybe you want to allow your users to share your emails on their social networks. Maybe, you simply want to allow users to see the email online, in case their email reader breaks it. Well, I made a simple app to do that, with Amazon S3. The app (available on Github) is relatively small and easy to implement. Follow the Quick Start Guide to get an instance of the app up and running. This will get you a Heroku instance running the app and the SendGrid Parse Webhook configured. Now you have an application that will store

Use a Mongo REST Interface to Store SendGrid Event Data

Job For

Perhaps one of SendGrid’s most useful features (other than email sending, of course) is our Event Webhook. This webhook notifies you whenever an email is sent, opened, marked as spam, and clicked through, among a variety of other events. Notification is all well and good, but the real power comes in storing and analyzing the events. You can do this with third party services like or store it yourself for slightly more power. Our event webhook POSTs JSON documents to any URL, this sounds like a job for… A Mongo REST Interface! Mongo has a number of community built RESTful interfaces and hosted solutions. In this post I’ll go through a few of them, but know that there are