Getting started with Puppet

There are many Puppet tutorials out there, but I don't think any of then adequately explain why Puppet is a good choice, start from a sufficiently basic level, cover enough features to be actually useful, and have an end goal in mind to focus them. In this tutorial, I'll be working towards creating a Puppet manifest for a server to run a Django project with a Postgres database behind nginx. I'll be assuming you already have a Django app to deploy, and are comfortable with the command line and basic server administration.

Debugging a race condition with client-side load balancing

While working at StudyRoom, the social learning network for online students, I recently faced a very difficult-to-debug problem that ended up being caused by a race condition between different parts of a distributed system. In this article I'll take you through the steps I used to isolate, debug, and ultimately solve the issue. I'll start off with some context on our systems architecture.

Automating pip and virtualenv with shell scripts

pip and virtualenv are extremely useful tools to manage dependencies for a Python program. But they tend to not be used as often as they should be due to the cognitive overhead of having to use them properly whenever running and deploying the program. In this post I'll present a set of scripts I use to make this process as easy and automatic as possible.

Hybrid mobile apps: Navigation

This is part 2 of a series of posts about the conversion of OneSchool's fully native app to a hybrid HTML/native app. Read part 1. When convering part of an existing native app to HTML, the most important part is making sure the new HTML parts fit seamlessly with the existing native code. To do so, we will employ some clever tricks involving custom schemes.

Hybrid mobile apps: Introduction

I've been working at OneSchool for seven months now. In that time, I've overseen development of our core product: a mobile application for college students to connect to the people, places, and things around them. We decided to go native on iPhone and Android from the very beginning to provide the best possible user experince. However, lately I've begun to realize that our fullly native architecture is increasingly unsustainable. In this series of posts, I'll be exploring all the different aspects of making a hybrid HTML/native app.