Building Analytics at Simple
In the past twenty months, Simple's analytics capabilities have evolved from ad-hoc queries against production databases to a team of five engineers and five analysts with access to a wealth of business data centralized in Amazon Redshift as a data warehouse. This post is about the details of what our data infrastructure looks like today, how we make use of it, and some of the decisions that led us here.
Safe Migrations with Redshift
Adopting a data warehouse has enabled the team at Simple to answer deep questions about our business, but it has also required changes in our operational thinking. We wanted to build an always-on data architecture that would provide updates in near real-time rather than in nightly loads as commonly practiced in data warehouses. We have realized this goal on top of Amazon Redshift, learning important caveats about implementing schema changes along the way.
iOS, Open Source, and Simple
Open source software is a part of our DNA here at Simple. Our product is realized because we stand on the shoulders of giants who came before us. Over the last year we also started using CocoaPods in our build process. It was the perfect mechanism to release some of the reusable components we've developed in house. I want to share four projects that came out of our work on Simple 2.0 for iOS.
Infrastructure as Code
At Simple, we take great care to ensure our infrastructure is easy to understand. This is so important to us that, over the past few months, we rebuilt the entire system from the ground up in order to simplify it. In this post, I’ll explain why we did such a crazy thing, and how we did it.
Increasing Assurance of Authenticity in Online Interactions
At Simple, we acknowledge that it’s our responsibility to be prudent about the extent to which we talk about how we ensure our customers’ safety. But there are many components of our business that are not appreciably strengthened by secrecy; obscurity is not a critically important part of our security program. In keeping with our core cultural commitment to be as open and transparent as possible, we’d like to take a few moments to describe some of the mechanisms that we use to keep our customers safe.
Calendaring on Android
Recently we released version 1.1 of Simple for Android. New in this release is the Send Money feature, which lets our customers schedule a payment in the form of a paper check. Our Web and iOS clients have had this feature for some time, so they paved the way in terms of hashing out the user experience and making the scheduling process easy to understand.
Open Source Tools from Simple
Open source software is a big part of our agenda at Simple. Beyond building a stronger community, it also complements our mission to be as transparent as possible while never compromising on security. We’ve used a variety of open source projects–such as Linux, HAProxy, and Nginx–to build Simple. We're always looking for ways that we can give back to the open source community and just recently, we open sourced three Chef projects that we use to more efficiently manage our infrastructure.
Our Infinite <table>
In the Simple web app, we display a customer’s transactions in a long infinitely scrolling list. Though there are many different implementations of infinite lists on the web, we still ended up rolling our own unique solution. Before I get into the technical details of what makes Simple's activity list different, I want to explain why we couldn’t use a normal <table> element.