Last month I needed to create a cluster of elixir nodes. There seems to be extensive literature on this topic. Unfortunately, since the solution is extremely dependent on your infrastructure needs and cloud provider, none of them worked for me. Here are the constraints I had:


Pulling data from companies where software isn’t their first priority can be challenging.

I’ve been working at Singularity for about two months now. We’ve been working on our data platform product the whole time. This means that we’ve done the painstaking work of dealing with disparate energy data so we can provide the luxury of a single format for all data, no matter what format it was in originally. In this article I’m going to highlight the painful lessons we learned by integrating with all the ISOs.

If you aren’t familiar with the US Energy markets, you can get a…


The electric grid is complex and I haven’t seen a simple explanation of it yet.

At Singularity we’re solving the problem of navigating a confusing industry to give you simple insights into carbon emissions via energy usage. This article gives you a taste for how complicated the industry is.

quick note: If you’re an industry expert, this article is not for you. There are many missing details and simplifications here.

The US energy market it big and complex. How does it work?

The grid is a complicated system that delivers electricity to you as soon as you request it. It works without fail (mostly) and has to work for a few hundred…


Lessons learned after my first month of being the only engineer at a time series event processing company.

About a month ago I left Drift. Working there was one of the best things I could’ve done for my career, and leaving was a difficult decision. In the end, though, I wanted to work on something that helped the environment. I decided to take a leap and join Singularity Energy. A company with only one full-time employee: Wenbo Shi, the CEO.

In this blog post, I’m going to highlight three lessons I’ve learned. I learned these things earlier & applied them…


In this article I’m going to go over how to set up a React project if you wanted to build something like Drift. At Drift I often work on the chat widget. Outside of work, I recently open sourced a side project called Weasl. Weasl allows you to add pain free user login to your website. These are complex projects that leverage React and Redux to manage rendering and application state. In this blog post, I’m going to do a high level walkthrough of the architecture, client side API, and management of loading your embedded widget on a client’s page.

Credit to Simon Abrams

Anatomy of the Embed


We all want fast APIs. We want to see the charts in NewRelic or Heroku show high request volume and low latency. In this article I’m going to show you three tips to make sure your most critical API endpoints are dazzlingly fast.

Make Your APIs Faster Than This Time Lapse of a Highway — Photo by zhang kaiyv from Pexels

At Drift, we have a few critical endpoints that we call “critical path”. If these are slow, then something critical to Drift is hurting. The example that I’m going to use in this article is the “create a new message” endpoint.

Example Setup

from flask import Flask, request, session
...
from drift.message.utils import extract_message_params
from drift.conversation.models import Conversation
from drift.geo import…


Passwords suck. Every app and every website wants you to sign up and create a specific password for them. But not any normal password, oh no. It needs to be between 8 and 49 characters long, have at least one capital letter, one special character (as long as it’s not {, %, or -), two lower case letters, six non-sequential numbers, and be able to juggle while blindfolded.

Chances are you’re not going to make a new and unique password for every app or website. Do you use the same password with Facebook as you do with Twitter? …


When building web apps, creating a beautiful and responsive experience comes first.

Trying to control experience beyond the bounds of the web app is often left as an afterthought. Engineers forget to handle all the things that can go haywire in requesting data from APIs. In this article, I’m going to arm you with three patterns (complete with code snippets) to make your app resilient in the face of unpredictability.

Make your users as happy as this silly man

Pattern 1: Timeouts

The timeout is a simple pattern. Boiled down, it says: “Cancel my request if you’re slower to respond than I want”.

When to use

You should use timeouts to set an upper bound on the length of time you want the request to take. What…


Ship product that solves real problems. Make sure your peers do the same. These are the most important things software engineers can do. I use this cycle to give myself feedback, request it from others, and share what I’ve learned.

Ship, learn, share, then move on.

Ship

A software developer ships product for a company. Do that. But do more, too — make sure you understand why the thing you’re working on is important. Nobody will slap you on the wrist for asking what the problem is. Ok so you asked, and somebody who is closer to the customer explained it to you, do you get it…


In a previous job, I didn’t find myself solving many problems. At least, not problems that I felt had weight and importance.

Hi, I’m Ryan, and I’m a software engineer who cares about solving problems, and I recently joined Drift.

The hidden pain

Everything seemed right. We were solving difficult technical challenges. We had a team that had fun and cared about each other. The company’s mission and motivation were absolutely philanthropic. So why wasn’t I happy working there?

It all may have just been bad timing: my role, the company’s position in the market, the work I was given, and the direction…

Ryan Baker

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store