Monday Randoms: 2015-11-02

Previously.

Resiliency

Resiliency checklist
A fantastic checklist broken up into 4 categories: fault tolerance, scalability, operability and efficiency.

What happens when a dependency starts failing? What if it begins failing slowly? How can the system shed load? What is the chief metric with which the system scales? How can features be turned on or off? Does the system make use of work batching? Are you doing as little work as possible?

Lessons learned writing highly available code
A few tips from a developer at Imgur on his principles of writing highly-available fault-resilient systems.

Put limits on everything. Retry, but with exponential back-off. Prefer battle-tested tools over the “new hotness”.

Learn to stop using shiny new things and love MySQL
As developers, we are always attracted to new technology that promises to make our lives easier. Over time, experienced developers recognize the trap of new and becomes addicted to stable. Software will always fail. Choose the known failure modes (old) over the unknown (new).

Keep it simple. No matter what technology you’re using, it will fail.

Data

Data Infrastructure at IFTTT
A high level overview of data infrastructure and architecture at IFTTT. The tl;dr is MySQL, Kafka, S3, Redshift (elasticsearch, AWS data pipeline, and spark as well).

Since data is so critical to IFTTT, and given that our services generate billions of events per day, our data infrastructure must be highly scalable, available, and flexible enough to keep up with rapid product iteration.

Siberite
A simple, lightweight, leveldb backed message queue written in Go. What caught my eye about this project is that it is basically Kestrel/Darner rewritten in Go. I’ve used kestrel on 3 different systems over the past several years and had only two issues with it (leap second being one).

What I like about kestrel is that it is really easy to reason about (distribution model like memcache, nodes do not communicate with each other). I’m not saying I would throw siberite in production or anything, but it is exciting to see more work around message systems that work similarly to kestrel (which is seemingly deprecated despite twitter people mentioning updates coming soon).

Siberite is a very simple message queue server. Unlike in-memory servers such as redis, Siberite is designed to handle queues much larger than what can be held in RAM.

Communication

Why no one understands you and what to do about it
Establish trust. Get attention. Be awesome and likable. 25 minute video on how we think we come across to others and how we actually do. Includes practical advice on how to change how others perceive you.

Using research from her latest book, Halvorson demonstrates the importance of overcoming the assumption of false consensus, and how subtle cues like eye contact and nodding can make all the difference.

Mattresses

Casper
Better sleep for brighter days. Great marketing site for an interesting new mattress. 100 night trial, 10 year warranty and priced great.

While we didn’t set out to offer only one mattress, we discovered through user testing that nearly everyone prefers the same firmness and decided to cut through the clutter and confusion to offer a single, perfect choice.

Tweets

"People quitting is like Google ripping out hard drives." @skamille it's another failure mode in your organization.— Caitie McCaffrey (@caitie) September 26, 2015

What's cooler than an open source database? A Halloween costume based on one. /s This year I went as #PostgreSQL. pic.twitter.com/jid772lSHF— Kent English (@kentenglish) October 30, 2015