Trading Fish The website of Hector Castro

Production Engineering for Youngbloods

A lot can be learned about shipping software through books, tutorials, and coursework, but there are a whole class of lessons that only ever show up in production environments. Those lessons are extremely valuable, but the barrier to learning about them is high. I’m hoping to lower that barrier a bit with this talk.

This talk contains a handful of lessons I’ve learned through operating production environments, as told to beginner engineers. Some are obvious, and some are surprising, but none are fiction. Not in-depth, but a good starting point for engineers who want to learn about production engineering.

Speeding up an AWS RDS for PostgreSQL Migration

Every once in a while, you find yourself in a situation where you need to migrate data from one PostgreSQL database instance to another. Whether it’s 10 gigabytes or 1,000 gigabytes, being able to execute the dump/restore process as quickly as possible is always desirable.

In this talk, we’ll go through a handful of steps that’ll minimize the amount of time it takes to dump the contents of a local PostgreSQL database instance and restore it to Amazon RDS for PostgreSQL. First, we’ll walk through the process of exporting the contents of a local PostgreSQL instance with pg_dump. Then, we’ll go over a variety of EC2 and RDS specific tweaks. Finally, we’ll use pg_restore to load it into the target PostgreSQL RDS database as quickly and efficiently as possible.

HTTP/2: Pipeline Bling

Despite the major version change, HTTP/2 is not a ground-up rewrite of the HTTP protocol. In fact, HTTP/2 preserves the concept of HTTP headers, methods, and status codes. HTTP/2 refines how HTTP is expressed on the wire to help reduce end-user perceived latency.

In this talk we’ll explore the changes introduced by HTTP/2 and identify areas where it can be applied today. Finally, we’ll cover common hacks around HTTP/1.x that simply go away as a result of adopting HTTP/2.

Throw Some Keys on it: Data Modeling For Key/Value Data Stores

Most Computer Science curriculums offer at least one course that focuses on databases. Most of the time, these courses promote relational database management systems (RDBMS) by emphasizing the relational model, relational algebra, data normalization, and Structured Query Language (SQL).

Key/value data stores are increasing in popularity but our mental model for storing data is still primarily relational. In this talk, we’ll explore data modeling for key/value stores using the Uber mobile application as an example.