Category Archives: Technical

SMTP and the Evolution of Email

Posted on (0 Comments)

We worked with our friends at Windows IT Pro to take an in-depth look at the history of Simple Mail Transfer Protocol (SMTP). The following is a guest post from their team that covers the origins of SMTP, the evolution of email, and what SMTP does, and doesn’t do. SMTP Defined The Simple Mail Transfer Protocol (SMTP) has a name that perfectly describes its origin and intended purpose. SMTP was built to be a lightweight, easy-to-implement means to transfer plain-text messages between devices. The original SMTP standard distinguished between a mail transport agent (MTA)—what modern administrators would call a server—and

READ MORE »

In-App Email Simplified with Appery.io & the New SendGrid Mail API Plugin

Posted on (0 Comments)

The following is a guest post from Max Katz at Appery.io. Learn more about Max at the bottom of this post. SendGrid is one of those services that makes adding in-app email capability way too simple. SendGrid is a provider of a cloud-based email solution and provides an elegant and easy-to-use REST API to send emails from a mobile app. It is very likely that your app needs to send emails, such as registration confirmations, password reset emails, two-step verification emails, general notification emails, or any other type of email communication. SendGrid is the perfect solution. Appery.io, the most complete mobile and web

READ MORE »

Learning Configuration Management as a DBA

Posted on (0 Comments)

Before SendGrid, I used to deploy all my databases by hand. I’d have a documentation page, (a Google doc, internal wiki page…whatever) and it would be a long bulleted list of “Install this, then install this.” If you have ever maintained “How to” documents like that, this picture to the right will eventually ring true. This was obviously not a good approach. Especially when small details start changing, but the “documentation” lags behind. Then you have a situation that enables tribal knowledge, which means a 3AM Ops person, who is not the DBA, and has even less of an ability

READ MORE »

How to Open Source Your Code in 11 Steps

Posted on (0 Comments)

Before you open source a library, there are a few things that you need to do to ensure you’re following all the rules and that the code is ready for the community. Here’s the 11 step pre-flight checklist that we put together internally at SendGrid: Check the code to make sure that no proprietary information like usernames and passwords are present, and that configuration uses environment variables where necessary. Your code isn’t portable if there are hardcoded database names and credentials. Environment variables are convenient and are a secure default. Make sure that dependencies are encapsulated and explicitly declared. People

READ MORE »

The Top 5 Code Challenge Posts from the 15 Day Code Challenge

Posted on (0 Comments)

Toward the end of 2014, one of our great developer evangelists, Kunal Batra, took on the challenge of learning 15 new technologies and blogging about them in a Code Challenge series. The Code Challenge series was a great way for Kunal to experiment with new technologies and provide readers with some great new tools and introductions to software they may have been unaware of. Now that some time has passed since his last post in January, we’re looking back on the most popular Code Challenge blogs. Below are the top five posts based on number of visits: 5 – Learning

READ MORE »

Intro to Elixir Lang

Posted on (0 Comments)

An Introduction to the Elixir Programming Language (And Why I Love It)   I wrote an article a few months ago introducing you to Golang, and why I loved it so much. While I do indeed still love it, lately I’ve been playing around with a new language; Elixir. I bought the book Programming Elixir and have been following it through. I’ve already come to love Elixir and hope to show you why in this article. Whilst I worked for Couchbase a couple of years back, I took a great interest in Erlang, and distributed systems. To me, Erlang is

READ MORE »

Simple Webhook Testing Using Sinatra and ngrok

Posted on (0 Comments)

Webhooks allow for simple, deep integration between apps and services, but debugging them can be a little painful. We have a general guide to debugging webhooks, but you probably want to know what the quickest webhook test environment is for setting-up and using. It’s hard to beat Sinatra and ngrok for this purpose. Or, if you’d rather use node.js, you can check-out Martyn’s post on Testing Webhooks. Getting Started First, you need a ruby environment that has rubygems. If you are new to ruby, then check out rbenv for getting your environment going. Create a new directory and run gem install sinatra. Now let’s

READ MORE »