Articles by Elmer Thomas

Elmer Thomas is SendGrid's Developer Experience Engineer. His mission is to help SendGrid live up to its slogan: "Email Delivery. Simplified" by improving the lives of developers, both internally and externally. Via all sorts of hackery, of course. Follow his exploits on Twitter and GitHub.

Follow Elmer

Tracking Email Using Microsoft Azure and the SendGrid Event Webhook (Part 1)


At the end of this three-part blog post, you will have created a Windows Phone app that can receive push notifications when certain email events happen (e.g. email opened or link clicked), in near real-time. In this first post, we’ll implement the SendGrid Event Webhook listener. Specifically, a C# ASP.NET application on Azure. Part two will cover creating a Windows Phone 8.1 app that displays email tracking data via the SendGrid Web API. In part three, we’ll send push notifications from our SendGrid Event Webhook listener when certain events, such as a bounce, occur. Prerequisites/Assumptions This code (source) was developed within VMWare Fusion 6 on Mac OS X Mavericks, running Windows 8.1 in Visual Studio Express 2013 for Web. You Read More ›

Quantify Thyself: Creating a Personal Life API


I recently had the great privilege to speak at self.conference 2014 in Detroit. I used this opportunity to share the idea of creating a Personal Life API with Detroit’s amazing developer community. Following is the summary of that talk. Be sure to check out all the other interesting talks at Github. We all know that data is easy to collect, but difficult to collate and decipher. With the Personal Life API, we will simplify that process and liberate your personal data. In this post, we will learn what data to quantify, how to automagically gather that data, and then we will discover the tools for creating a Personal Life API to access and analyze your data for tasks ranging from Read More ›

Develop Native Android Apps on Your Chromebook

chrome development

If you were fortunate enough to receive a Chromebook Pixel at last year’s Google I/O (or picked one up on the after-market), your glee was likely replaced by frustration as you tried to use it as a dev machine. Enter Crouton, a solution that allows you to run Ubuntu Linux within your Google Chrome environment, no reboot necessary. When I wrote a blog post about sending email within a native Android application, I decided to give Crouton a spin and find out if it was possible to do Android native development on a Chromebook Pixel. I came across a few stumbling blocks during that process, but I was ultimately successful. My goal with this post is to get you developing Read More ›

Create and Use Life Automation Bots


If you’re expecting to build a Terminator, this is probably the wrong post. But you may remember from my earlier bot automation post that bots are clever pieces of software or hardware that automate one or more tasks. Hopefully your mind is stimulated with a list of tasks for your Bot Army, so let’s look at platforms, APIs, and other tools to help you create your own customized Bots from scratch. Apps There are a ton of ready made apps dedicated to the overall umbrella topic of Productivity. Here, I’ll point you towards a few that I have found to be most helpful. I would love to hear about the apps you find useful in the comments. Mobile Cross Platform Read More ›

Automate Your Life with a Bot Army


When I upset my 8 year old daughter, she sent me a text message with a digital Poop Army. In this post, I want to show you how to create your own digital Army, but instead of Poop, our Army will consist of Bots. And instead of wielding your Bot Army in anger, we will use our Army for peace and happiness. Why do we need a Bot Army? Because there are only 24 hours in a day and we need more like 48 hours these days, so lets train the Bots to handle those extra 24. For the purpose of this post, I define a Bot as some piece of software or hardware that automates one or more tasks. Read More ›

Your Programming Style Guide Checklist


Every programming language or framework has a defined coding style guide. It’s generally a good idea to conform to that style guide for the sake of collaboration and maintainability. In this post, we will walk through the process of creating a personal programming (project level) style guide and templates that will combine to serve as a checklist for your projects. Over time, you will have created several checklists for various development scenarios. The upfront investment to create these documents should save you many hours of time throughout your hacking adventures. Location I suggest you create a directory to store these checklists. You will want two sub-folders, one will contain the templates and the other will contain working checklists for particular Read More ›

How To Write Technical Blog Posts


I love technical blog posts, especially those that can take you through the entire process of building an app, A to Z. After reading thousands of technical blog posts and writing many myself, I’ve decided that it’s time to share a workflow that I hope will help those who are creating amazing things to blog more easily and often. The specific tools utilized in this workflow are Mac OSX based, but the concepts can be applied to any toolchain. Check out to find similar apps for your OS. Use the Natural Planning Method When I write a technical blog post, the goal is to create something that saves the reader time and inspires new ideas. Before I get started, Read More ›

Create the Ultimate Interactive Presentation: Reveal.js, Leap Motion, Google Glass and SendGrid


When a developer demos their software, especially at a hackathon, it’s best to “do it live.” For longer form presentations, a slide deck is generally the tool of choice, either using Keynote or Power Point. Having attended hundreds, if not thousands, of technical talks and hackathon presentations in the past few years, I can tell you definitively, even a small dash of interactivity goes a long way towards keeping the audience engaged. Of course, a slick presentation is not necessary, but it doesn’t hurt either, especially if it does not cost a great deal of time to create. In this post, we’ll use the best interactive presentation tools available today to create a beautiful and interactive presentation in minutes. In Read More ›

Quickly Prototype APIs with Apiary


I love the idea of API Driven Development (ADD). It provides great flexibility and by default makes your app developer friendly from the beginning. The challenge is that it’s hard to demo an API without an application tied to it. The goal of this post is to help you get past the API design and creation phase as quickly as possible, so you can focus on creating killer apps and encourage others to build upon your exposed data. This tutorial should be especially useful for hackathons and prototypes. With the platform we’ll create documentation that your whole team can interact with and contribute to. Then, we’ll create a working version of the API using Python/Flask. To demonstrate the process Read More ›

Google Glass Tutorial Sends Email Visually


I have been spending a lot of quality time with Google Glass and Android lately. I’ve already shared a few of those experiences, like sending trackable email on Google Glass using its Mirror API and my Android email tutorial. Most recently I have been working on a native “Glassware” app, which I’d like to share here. Using the Google Glass GDK I’ll show you how to: Create native Glassware (Glassware is the name Google has given to apps running on Glass) Activate and interact with your Glassware by voice Use menus to edit your Glassware’s data Manipulate Cards in an Immersion Send email using the SendGrid Java library If you experience any issues with the source code or this tutorial, Read More ›

Send Email From Android Applications


I have been playing with Google Glass lately, which got me working more with Android. Since I recently built my first native Android app, I thought I’d share how to send email and retrieve statistics using the SendGrid Java library. Since this is my first attempt, please send a pull request or open an issue if I did something unholy. You may find the complete source code at Github. If you are not interested in native Android development, check out our tutorial based on the AppMobi platform. If you are new to Android native development, I suggest you start with the tutorial at the Android Developer website. Complete all lessons under “Building Your First App.” If you want to skip Read More ›

Collect Inbound Email Using Python and Flask

Partnerships, Product, Technical

Our Inbound Parse Webhook allows your app to receive an email formatted as a JSON object for easy processing. Any script will do for creating the webhook endpoint, but in this tutorial I’ll share a simple Python microframework called Flask. Set Up and Configure your SendGrid Account The Incoming Parse Webhook is available through our free, Silver and higher plans. If you don’t have a SendGrid account, go ahead and sign up here. After completing your SendGrid account setup, we will need to create an email address to be used for receiving emails. This is achieved by setting your MX records to point at Each host will have a different method, so please check with your provider. You may Read More ›