The time to read this newsletter is 160 minutes.
We change our behavior when the pain of staying the same becomes greater than the pain of changing. Consequences give us the pain that motivates us to change. — Henry Cloud
- Advertising is a cancer on society: 20 mins read. This is a long read. Author makes many valid points on why Advertising should be consider cancer. Advertising is a cancer because it has symptoms mentioned below.
- Privacy violations
- Outrage-inducing news reporting
- Decaying and ephemeral Internet services
- Some items from my “reliability list”: 15 mins read. This post make thoughtful points that software architects should keep in mind while designing or reviewing systems.
- Can you handle rollbacks?
Are new states forward compatible? This is related to Postel’s law
- > Be conservative in what you do, be liberal in what you accept from others
Do you use a strong data exchange format like Protobuf or Thrift?
Why should use JSON as data exchange format between systems?
How I built a spreadsheet app with Python to make data science easier – 15 mins read. One of the cool open source projects that I have discovered in recent times.
Announcing PartiQL: One query language for all your data – 20 mins read. Looks like finally we have found a way to standardise on SQL for working across different data storage solutions be it RDBMS or NoSQL or File based. PartiQL extends SQL by adding minimal extensions required for working with different data models. SQL won! Like it or not SQL is still the best and most powerful query language.
Parallelism in PostgreSQL – 15 mins read. The post covers how modern Postgres implements parallelism for sequential scans, aggregations, and B-tree scans.
Who Actually Feels Satisfied About Money? – 20 mins read. The post makes a good point on anxiety people have regarding money. More money does not always translate to more happiness. It’s not just how much you have — it’s what you do with it.
Top Seven Myths of Robust Systems – 15 mins read. The number one myth we hear out in the field is that if a system is unreliable, we can fix that with redundancy. In some cases, redundant systems do happen to be more robust. In others, this is demonstrably false. It turns out that redundancy is often orthogonal to robustness, and in many cases it is absolutely a contributing factor to catastrophic failure. The problem is, you can’t really tell which of those it is until after an incident definitively proves it’s the latter.
Safely Rewriting Mixpanel’s Highest Throughput Service in Golang – 15 mins read. This post covers how Mixpanel made use of Diffy to safely migrate high throughput service from Python to Golang. Diffy is a service that accepts HTTP requests, and forwards them to two copies of an existing HTTP service and one copy of a candidate HTTP service.
The Business Executive’s Guide to Kubernetes – 10 mins read. A lot of useful advice on Kubernetes. The key points for me are:
- Stateful data is hard. Don’t try to reinvent AWS RDS. Stateful sets have limitations.
- Upgrading Kubernetes is hard. The advice is to run more than Kubernetes cluster in production.
- Managed Kubernetes does not take away all the problems.
- When a rewrite isn’t: rebuilding Slack on the desktop – 15 mins read. The approach used was at once incremental and all-encompassing, rewriting a piece at a time into a gradually growing “modern” section of the application that utilized React and Redux. And the results? 50% reduction of memory use and 33% improvement in load time
Video of the week