Indeed Reads: October 2017

The Indeed Engineering blog lets us write about the technologies we get to work with every day. We talk about what works, what sometimes doesn’t work, and how we’re scaling our technologies as a fast growing company. We participate in industry-wide conversations through this blog. We also read a lot of other tech blogs.

An open office lounge area with multiple people sitting down and using laptops or mobile phones.

Indeedians at the Austin Tech Campus

Here are a few interesting pieces recommended by Indeed engineers:

Engineering Personas

by Casey Rosenthal

We know that sales and marketing research often includes user personas for building software. This article looks at five engineering personas that also can help you with hiring decisions. These personas aren’t intended to define people, but they provide insight into the kinds of behaviors and characteristics that would most benefit your team.

Read post

 

Gray Failure

by Adrian Colyer

Working from the paper “Gray failure: the Achilles’ heel of cloud-scale systems” by Huang et al., Colyer explores the idea that breakdowns and performance anomalies in cloud-scale systems are often caused by gray failures, subtle failures perceived differently by various components of a system. Huang et al., describe these failures: “One entity is negatively affected by the failure and another entity does not perceive the failure.” Colyer takes this observation of gray failures and asserts that when we fail, we should fail properly.

Read post

 

How To: S3 Multi-Region Replication (And Why You Should Care)

by Jessica Lucci

Indeed’s Jessica Lucci provides step-by-step instructions to create a replica set by combining Amazon’s S3, SNS, SQS and Lambda technologies. As Amazon only provides two-region bucket replication, deploying your own replica set allows you to replicate data across as many regions as you need. A custom replica set also allows you to customize replication behavior via your Lambda functions.

Read post

 

The Pitfalls of A/B Testing in Social Networks

by Brenton McMenamin

A/B testing can be the perfect tool for most testing situations. This method helps determine whether a feature positively affects user behavior in a given test group. But if the purpose of your site is to get users to connect with as many other users as possible, like on the dating site OkCupid, keeping the feature away from your control group can lead to unreliable results. Tests for user-to-user features, such as chat or video, need interaction with as many people as possible to verify effectiveness. When A/B testing involves social interactions, it’s highly likely you’ll need to rethink and restructure your experiment methodology.

Read post

 

How to Do Code Reviews Like a Human (Part One)

by Michael Lynch

Code reviews are more than a technical process used to help identify bugs; they’re also social interactions that, when done mindfully, can improve the process itself. Delivering critical feedback is rarely easy, and when the feedback is focused on a technical subject, our instinct can often be to provide technical responses without considering the human interaction involved. But a human wrote the code that’s being reviewed, and the best way to iterate with that human is to follow guidelines that help you to be constructive and avoid miscommunications.

Read post

 

Floating Point Visually Explained

by Fabien Sanglard

Floating-point arithmetic is one of the trickier concepts in computer programming. This datatype has been called both esoteric and essential. To better understand floating points, Sanglard proposes visualizing the sections of the mathematical notation of a floating-point number (sign, exponent, and mantissa). Then, instead of exponent, Sanglard proposes thinking of a window between two consecutive power of two integers, and instead of a mantissa, thinking of an offset within that window. Redefining the components of a floating-point number in a more visual way provides a clearer path to explaining how this datatype works.

Read post