Issue 4: 10 Reads, A Handcrafted Weekly Newsletter for Humans


Welcome to the fourth  issue of 10 Reads weekly newsletter. Below are the 10 posts that taught me something useful and unique that will help me become better software engineer. Total time to read this newsletter is 190 minutes.

The more I read, the more I acquire, the more certain I am that I know nothing –Voltaire

  1. You probably don’t need AI/ML. You can make do with well written SQL scripts : 5 mins read. It’s always fun when I speak to founders and potential founders and they are quick to tell me how they want to use AI/ML to improve customer retention and improve LTV. Truth is, they don’t even need ML. A properly written SQL is what you need.
  2. Jeff Bezos’s Annual Shareholders Letter : 10 mins read: How do you stay ahead of ever-rising customer expectations? There’s no single way to do it – it’s a combination of many things. But high standards (widely deployed and at all levels of detail) are certainly a big part of it. We’ve had some successes over the years in our quest to meet the high expectations of customers. We’ve also had billions of dollars’ worth of failures along the way. With those experiences as backdrop, I’d like to share with you the essentials of what we’ve learned (so far) about high standards inside an organization.
  3. Software Testing Anti-patterns : 45 mind read: There are several articles out there that talk about testing anti-patterns in the software development process. Most of them however deal with the low level details of the programming code, and almost always they focus on a specific technology or programming language. In this article I wanted to take a step back and catalog some high-level testing anti-patterns that are technology agnostic. Hopefully you will recognize some of these patterns regardless of your favorite programming language.
  4. Designing very large (JavaScript) applications : 40 mins read: Malte Ubl, tech lead of AMP project shares his thoughts on how Google build large JavaScript applications. The lessons shared are not only relevant to JavaScript but building large applications in general. The key takeaways for me are:
    1. There are few decisions that you make in designing large applications that change the programming model of building applications. Make sure you understand those decisions well.
    2. Avoid central configuration at all cost. Example of central configuration files webpack.config.js, package.json, etc.
    3. Another way you can use tests is to ensure infrastructure and major design decisions remain true as application become big.
    4. No abstraction is better than wrong abstraction.
    5. Empathy and abstraction is what enables you to choose the right abstractions for your application.
  5. PostgreSQL 10, Performance and You : 20 mins read: It is a slide deck by Heroku PostgreSQL team. It goes over reasons why you would use Postgres and then covers major performance improvement features introduced in PostgreSQL 10. The main features that improves performance are Native Table Partitioning, Hashes, Full text JSON search, Parallel Query support.
  6. Postgres as the Substructure for IoT and the Next Wave of Computing : 15 mins read: This post outlines difference between OLTP workload and time series workload. And, then talks about how Timescale team built a time series database on top of Postgres. They key takeaway for me on why to choose Postgres:
    1. Relational model + JOINs
    2. Reliability
    3. Ease of use
    4. Broad ecosystem
    5. Flexible datatypes (Including JSON)
    6. Geospatial support
    7. Momentum
  7. A Modest Guide to Productivity : 5 mins read. I agree to some of the points mentioned by author to improve productivity. Give it a read to see if you can learn a new tip to improve your life.
  8. Lessons Learned — A Year Of Going “Fully Serverless” In Production : 10 mins read: This article gives a good idea on how you can build your next app using Serverless technologies. I like their breaking Serverless app into three parts:
    1. Static websites. These are frontend websites, written in React and statically generated at build time.
    2. Background jobs. These are jobs that are scheduled or triggered by events such as file uploads, webhooks or any other asynchronous event.
    3. API Server. A REST API server interacting with our databases and serving all client requests.
  9. The deepest reason why modern JavaScript frameworks exist: 10 mins read: The essential, fundamental, deepest reason is this one: Keeping the UI in sync with the state is hard.
  10. What’s New in MySQL 8.0? (Generally Available) : 30 mins read: So many great features made to MySQL 8.0 release. Window functions, JSON support, Common Table Expression, GIS (Geography support), any many other.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s