| Simon Eskildsen
Whenever I create a dashboard for an application, it’s generally the same handful of metrics I look to. They’re the ones I always use to orient myself quickly when Pagerduty fires. They give me the grand overview, and then I’ll know what logging querie| Simon Eskildsen
Kafka Producer Pipeline for Ruby on Rails| sirupsen.com
Personal website and blog of Simon Hørup Eskildsen about napkin math, computers, books, ideas, and whatever else interests me.| sirupsen.com
Podcast with Geek Narrator on Object Storage Databases| sirupsen.com
| Simon Eskildsen
In this edition of Napkin Math, we’ll invoke the spirit of the Napkin Math series to establish a mental model for how a neural network works by building one from scratch. In a future issue we will do napkin math on performance, as establishing the firs| Simon Eskildsen
Often I’ve come across technical proposals along the lines of: In 6 months we will outgrow our MySQL/Postgres instance. We will need to move our biggest table to a different horizontally scalable datastore. If we have a database o| Simon Eskildsen
A common problem you’ve almost certainly faced is to sync two datastores. This problem comes up in numerous shapes and forms: Receiving webhooks and writing them into your datastore, maintaining a materialized view, making sure a cache reflects reality| Simon Eskildsen
Database queries are all about filtering. Whether you’re finding rows with a particular name, within a price-range, or those created within a time-window. Trouble, however, ensues for most databases when you have many filters and none of them| Simon Eskildsen
Since last, I sat down with Adam and Jerod from The Changelog podcast to discuss Napkin Math! This ended up yielding quite a few new subscribers, welcome everyone! For today’s edition: Have you eve| Simon Eskildsen
You may have heard of a “circuit breaker” in the context of building resilient systems: the art of building reliable systems from unreliable components. But what is a circuit breaker? Let’s set the scene for today’s napkin math post by setting u| Simon Eskildsen
Napkin friends, from near and far, it’s time for another napkin problem! Since the beginning of this newsletter I’ve posed problems for you to try to answer. Then in the next month’s edition, you hear my answer. Talking with a few of you, it see| Simon Eskildsen
Napkin friends, from near and far, it’s time for another napkin problem! As always, consult sirupsen/napkin-math to solve today’s problem, which has all the resources you need. Keep in mind t| Simon Eskildsen
There are 100s of cases of important discoveries being made independently by different people at almost exactly the same time: calculus (1600s), the telegraph (1837), the light bu| Simon Eskildsen
Napkin friends, from near and far, it’s time for another napkin problem! As always, consult sirupsen/napkin-math to solve today’s problem, which has all the resources you need. Keep in mind t| Simon Eskildsen
Napkin friends, from near and far, it’s time for another napkin problem! As always, consult sirupsen/napkin-math to solve today’s problem, which has all the resources you need. Keep in mind t| Simon Eskildsen
Napkin friends, from near and far, it’s time for napkin problem number 6! As always, consult sirupsen/napkin-math to solve today’s problem, which has all the resources you need. Keep in mind| Simon Eskildsen
Napkin friends, from near and far, it’s time for napkin problem number 5! If you are wondering why you’re receiving this email, you likely watched my talk on napkin math and decided to sign up f| Simon Eskildsen
We’ll cover a neat little utility called progress(1). Many common utilities like cp or gzip don’t spit out a progress bar by default. progress finds t| Simon Eskildsen
Napkin friends, from near and far, it’s time for napkin problem number four! If you are wondering why you’re receiving this email, you likely watched my talk on napkin math and decided to sign u| Simon Eskildsen
Napkin friends, from near and far, it’s time for napkin problem number three! If you are wondering why you’re receiving this email, you likely watched my talk on napkin math. This weeks p| Simon Eskildsen
Fellow computer-napkin-mathers, it’s time for napkin problem #2. The last problem’s solution you’ll find at the end! I’ve updated sirupsen/napkin-math with last week’s tips and tricks—consult that r| Simon Eskildsen
Every year, I spend some time reflecting on the year that passed. After reading last year’s post, I noticed a fair bit of self-indulgent tangent chasing. Most of which should likely have been separate posts. I’m attempting less of t| Simon Eskildsen
Until a few years ago, I didn’t spend much time reading. Today, I spend a few hours every week reading, amounting to somewhere between 30 and 50 books a year. My reading habit has evolved significantly over the past couple of years and surely will cont| Simon Eskildsen
We have playlists for our favorite music, but don’t re-consume great information nearly enough. Almost certainly you’ve once watched a documentary (or read a book) about the environment, after which you pon| Simon Eskildsen
When we make decisions, it’s useful to be cognizant of unknown-unknowns. Almost in every case, we think about unknown-unknowns in a negative sense. If we’re venturing into unknown territory, we accept that it’s likely we’ll stumble upon| Simon Eskildsen
With the teams I work with, we operate with the idea of peak complexity: the time at which a project reaches its highest complexity. Peak complexity has proved a useful mental model to us for reasoning about complexity. It helps inform decisio| Simon Eskildsen
Towards the end of every year, I take a moment to reflect on the arbitrary time-frame of a year. This is a stream of consciousness of some of the topics that have dominated 2017. Growth as a Lead In 2016, I started building a team to be| Simon Eskildsen
Writing is known for its ‘shitty first drafts.’ The initial incoherent braindump is part of the process of writing. As the quote goes: “It is by intuition we discover, and by logic we prove.” Intuition is what sparks into the first draft, and logic is| Simon Eskildsen
Last year I posted mostly numbers from the year of 2015. This year, more text, fewer numbers. Reading In 2015, I focused on developing a reading routine. I kicked the news habit years ago. I found| Simon Eskildsen
Recently the team I work with completed a project to allow Shopify to run in multiple datacenters. This project was a refactoring project in disguise. When you undertake large refactoring of a c| Simon Eskildsen
My favorite new app of the year is Airtable. It complements Workflowy well, which I use for unstructured notes. Airtable is for anything where structure is starting to form in thes| Simon Eskildsen
In March, 2016 I decided to take upon myself the project of creating an internal podcast at Shopify. When I signed in early 2013, there was 150 people on the team. In 2016 when the podcast started, Shopify was ten times that size with over 1,500 employ| Simon Eskildsen
Recently I’ve started experimenting with forcing visuals into nearly all problems I solve to gain perspective. Whenever I feel the complexity of a problem rises above me, I try to stop and draw a suiting visual for the problem. I’ve found that even for| Simon Eskildsen
While there’s nothing special about the arbitrary time frame of a year it provides a good time to do long-term reflection and goal-setting. 2015 has been a great year. What I’m most proud of is building a solid exercise routine, reading 40 books, becom| Simon Eskildsen
Last year, I focused on eating more healthy. This year I’ve focused on eating increasingly seasonally and local. This made everything coming out of my kitchen taste more delicious, with little effort and many benefits beyond taste. One of my favorite b| Simon Eskildsen
Docker’s momentum has been increasing by the week, and from that it’s clearly touching on real problems. However, for many production users today, the pros do not outweigh the cons. Docker has done fantastically well at making containers appeal to deve| Simon Eskildsen
A few months ago when Letterpress was hot, I thought about an efficient algorithm for a cheater application. A trivial solution in Ruby is quite slow for this problem, which motivated me to check out alternative approaches. Abbreviated, the problem is| Simon Eskildsen
For a side-project to be run on a single machine I needed a background queue. I like self-contained software like sqlite, but I didn’t know of any self-contained background queue. They usually rely on some kind of broker, whether that is Redis or a dat| Simon Eskildsen
I’ve been using Ruby for over 3 years and have written tests for about as long. That’s something great about the Ruby community, it encourages you to do proper testing. Through this time I’ve worked with many dif| Simon Eskildsen
In November, I dropped my iPhone 4 while running and the screen broke. My first instinct was to go and buy the new iPhone 5, but before doing that, I decided to go without a smartphone for at least a month to find out how much I really depended on it a| Simon Eskildsen
Throughout November, inspired by Sebastian Marshall, I decided take on the challenge of having the 30 most productive days of my li| Simon Eskildsen
As part of researching for my 30 days of super productivity, I have explored the topics of context switching and multitasking. I found that multitasking has a tremendous effect on how we| Simon Eskildsen
Back in January Hailey Somerville told me about her participation in the Australian Informatics Competition, a competition| Simon Eskildsen
In modern development, and in particular with web frameworks such as Rails that offer and encourage extensive use of database ORM libraries, some developers skip learning SQL in favour of using ORMs. It is as if developers think they no longer need to| Simon Eskildsen
Unicorn is an interesting Unix Ruby HTTP server which makes great use of Unix: Unicorn is an HTTP server for Rack applications designed to only serve fast clients on low-late| Simon Eskildsen
A simple Imgur Bash screenshot utility| sirupsen.com
When To Write a Simulator| sirupsen.com
Minimum Viable Airtable| sirupsen.com
Inteview on Data Engineering Podcast on Data Diff| sirupsen.com
Interview on Changelog on Napkin Math| sirupsen.com
Pig Pit| sirupsen.com
Interview with Every.to/Superorganizers: How I Learn| sirupsen.com
Logging Cost| sirupsen.com
Talk at SRECON EU: Advanced Napkin Math: Estimating System Performance from First Principles| sirupsen.com
Interview with The Kindle Chronicles Podcast about Reading| sirupsen.com
Interview with Scale Your Code on Scaling Shopify, Round Two| sirupsen.com
Talk at GOTO Copenhagen: Shopify's Pods Architecture| sirupsen.com
Talk at @Scale: Resiliency Testing with Toxiproxy| sirupsen.com
Talk at Railsconf: 5 Years of Rails Scaling to 80K RPS| sirupsen.com
What Happens To a Webserver When Clients Refresh Really Fast?| sirupsen.com
Talk at Full Stack Fest: Multi-DC| sirupsen.com
Talk at QCON Sao Paulo: Shopify at Scale| sirupsen.com
Talk at CUSEC: Reliable Software in a Chaotic World| sirupsen.com
Talk at Euruko: Super-Reliable Software| sirupsen.com
Interview with Scale Your Code on Scaling Shopify and Running Docker in Production| sirupsen.com
Talk at Dockercon: Resilient Routing and Discovery| sirupsen.com
Talk at Goruco: Building and Testing Resilient Applications| sirupsen.com
Talk at GOTO Chicago: Patterns for Docker Success| sirupsen.com
Building and Testing Resilient Ruby on Rails Applications| sirupsen.com
Talk at DockerCon EU: From This-Looks-Fun to Production| sirupsen.com
Talk at DevOps Days Berlin: Docker at Shopify| sirupsen.com
Index Merges vs Composite Indexes in Postgres and MySQL| sirupsen.com
Increase HTTP Performance by Fitting In the Initial TCP Slow Start Window| sirupsen.com