Posts in Engineering

Checking domain availability in Elixir with the DNSimple API

How to check if a domain name is available to be registered using Elixir and the DNSimple API.

Why we ended up not using Rails for our new JSON API

After a few years of running our previous API in production, it no longer fit our domain management automation vision. This is the story of how we evolved the API to support our product vision.

Using the Go language to guide development design decisions

In this talk transcript you'll discover why Go was so important to us and why it was used to guide the development design decisions.

The mystery of Stunnel, ulimits, and maximum open clients

We use Stunnel to provide secure encryption to our redis instances. Recently we embarked on a voyage deep down the rabbit hole in order to fix an elusive error. This is the story of how fixed it.

Getting started with the DNSimple API in Elixir

A step by step guide to successfully make your first DNSimple API call from Elixir.

Tales of a Chef Workflow: Packaging

How to escape the anti-pattern of building packages from source in Chef Cookbooks.

Ruby Coercion Protocols Part 2

What's the difference between `#to_i` and `#to_int`? How to sum two value objects? Let's learn Ruby Coercion Protocols in depth.

The journey of simplifying our CSS

The steps that we are taking to simplify and ship faster projects with less CSS.

API Client Testing with HTTP Fixtures

As part of the development of the DNSimple API v2 we introduced HTTP fixtures as a way of testing behavior across multiple clients. Here is how it works.

Ruby Coercion Protocols Part 1

Ruby has powerful protocols to coerce a type into another one. We'll learn how to take advantage of this mechanism to make our code open for extension.

Building the DNSimple Slack app

A few months ago we released the DNSimple Slack app. This is how we built it and the challenges we faced.

Improve your Dev and Ops skills with Troubleshooting Theory

How to use basic troubleshooting theory to debug your code, your infrastructure, or your malfunctioning computer or router at home.

Purposes & Properties of Value Objects

What is and what makes a good Value Object? Learn how to implement their fundamental purposes and properties.

Overcoming Primitive Obsession

Ruby primitives are so powerful that we use them everywhere in our code, even when we shouldn't. Learn how to overcome this kind of maintenance problems.

Alerting at DNSimple

Effective monitoring and alerting can be difficult; here is how we handle it at DNSimple.

Learn the DNSimple API by Bulding a CLI in Golang

Ready to automate your domain management? This post will walk you through connecting to the DNSimple API and performing basic domain operations with the official DNSimple Go API Client.

Nil is a value

Lessons learned from a recent bug in our code, caused by nil not being handled as proper value.

How I use the DNSimple Chef Cookbook

David shows off some examples of the newly updated DNSimple cookbook.

Auto-publishing a static site to CloudFront using Travis

Instructions to deploy a static-generated site (Jekyll, Nanoc, ...) to Amazon CloudFront or S3 using Travis.

Operating Distributed Systems at DNSimple

We operate DNSimple across 5 data centers, this post covers some of the challenges we face, how we handle them today, and what the future may hold.

Technical reasons behind the ALIAS record

In this article I will try to explain the technical reason behind the ALIAS record and important limitations of the CNAME record you need to know.

A Go Redirection Service

An overview of how we switched the implementation of our redirector from Ruby to Go.

Domain Management Automation

Start your 30 day free trial today!

We won't charge you until the trial ends.

DNSimple is domain management automation