#246 — December 11, 2019

Read on the Web

Covering the week's news in software development, infrastructure, ops, platforms, and performance.

Bootstrapping Understanding: An Introduction to Reverse Engineering — A fascinating walkthrough of how someone reverse engineered some data files from an old game, but the principles extend into many other areas. At the least, you might pick up some neat command line tricks here.

Brian Raiter

Low-Cost VPS Testing Results — This is partly neat because it’s from the original creator of PHP but also because it’s rare to see a balanced look across 22 different providers like this.

Rasmus Lerdorf

Continuous Deployment Without Downtime — Do you know what it takes to automate all of the steps necessary to deploy? Learn more about this final stage in the process of software development automation.

CircleCI sponsor

WebAssembly is Now a W3C Recommendation — This is a really big, formal step for WebAssembly and the Web as a whole as languages like Rust, Go, and C# begin to target browsers directly by compiling to WebAssembly. This press release doesn’t explain WebAssembly particularly well, so if you want to learn more about it, enjoy this illustrated guide or this if you want something more advanced. WebAssembly is also making moves into the server side.


ICANN Delays The Sale of the .org Registry — They’ve not exactly stopped its sale, but ICANN has issued an ‘additional information request’ to the Public Interest Registry over the sale of the .org registry.


The “Great Cannon” Has Been Deployed AgainGreat Cannon is a coined term for a mechanism within the ‘Great Firewall of China’ that can be used to create DDoS attacks fuelled by JavaScript injected into pages that pass through that firewall.

AT&T Cybersecurity

Quick bytes:

💻 Jobs

Data Pipelines, Reinvented. Find Your Place at Fivetran — Rooted in Oakland, we are a fast-growing company hiring across software engineering, SRE, product, and data analytics. Come join us.


Find a Job Through Vettery — Make a profile, name your salary, and connect with hiring managers from top employers. Vettery is completely free for job seekers.


📕 Tutorials

Using Kafka to Throttle QPS on MySQL Shards in Bulk Write APIs — A thorough look at how Pinterest has a bulk write platform built on top of Kafka to manage load on core databases.

Qi Li (Pinterest Engineering)

▶  AWS SNS vs SQS? Whats The Difference? — A concrete, practical example of why you might use AWS’s Simple Notification Service (SNS) versus their Simple Queue Service (SQS).. something that even Amazon doesn’t tend to explain too well.


▶  A Crash Course in Varnish, the HTTP Accelerator — An engaging 50 minute video that covers how Varnish works, setting it up, using it with Caddy (for TLS termination), and why you might (or might not) use Varnish.

Hussein Nasser

▶  Bringing Automation to Web App Hosting and Deployment — A talk from GOTO 19 centered around a live demo of using modern systems to automate deployments.

James Beswick

[Expanded] Top GitHub Best Practices Guide for Developers

Datree.io sponsor

How Threads Can Infect Each Other with Their Low Priority

Tobias Hermann

Making Games with Kotlin — If you’ve ever fancied dipping a toe into the Kotlin pool.. here’s an excuse. Kotlin, an easy to pick up language for the JVM, is also increasingly being used server-side.

Vegard Veiset

▶  Andy Pavlo's Advanced Database Systems Lectures — There’s a lot to go through here and there’s an interesting sense of humor on display (the presenter gets maced in the first video) but for the grand price of free, this is a goldmine of database knowledge.

Carnegie Mellon University

💡 Stories and Opinions

▶  JRuby: From Zero to Scale — Two of the creators of the JRuby project (a popular JVM-based Ruby implementation that’s now 18 years old) talk about its history, how it compares to CRuby/MRI, how to scale it, and more.

Charles Oliver Nutter and Thomas E Enebo

Faster Cloudfront Log Queries using AWS Athena and Serverless — How a Python-based Lambda function was used to partition Cloudfront logs so they could be queried 13x faster with AWS Athena.

Ben Hoyt

The Nintendo Switch 'Switch' — More a bridge than a ‘switch’ but a pretty neat project nonetheless.

Cynthia Revström

How Linux Exists Only Because of a Happy Accident — Sadly, when most people accidentally delete their OS, they don’t start working on their own one :-)

August Lilleaas

Latency, Throughput, and Walking on Escalators

Andrew Certain

🛠 Code and Tools

Amazon Launches a Managed Apache Cassandra Service (MCS) — Cassandra is a powerful system for working with large amounts of structured data but can be tricky to maintain and manage ops-wise at scale. Enter AWS. It’s serverless-style pay-as-you-go pricing too which is neat. It’s only in 5 regions for now, but can be trialed at a low scale under the ‘free tier’ for three months.

Amazon Web Services

DockerSlim: A Tool to Slim Down Your Docker Containers — A tool that aims to ‘throw away what you don’t need’ both reducing the attack surface of your containers and their size too.


Communicate Incidents Internally and Externally — Reduce downtime impact, take advantage of automation and save time. Get systems back online with less stress.

StatusHub sponsor

Benthos: A Stream Processor for 'Mundane Tasks' — Define pipelines to connect together various sources and sinks (e.g. S3, DynamoDB, Elasticsearch, files, Kafka, Redis, etc.) and perform operations on the payloads. GitHub repo.

Ashley Jeffs

CurlMail: Quickly Send Email Notifications with cURL — Or any HTTP request, really. An interesting example of a loginless service.


New: AWS Step Functions Express Workflows — AWS Step Functions is heavily used for building multi-step workflows in the cloud, now Express Workflows have entered the picture and provide an option specifically for ‘high-volume, short-duration use cases’.

Jeff Barr (AWS)