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

Hello All,
Here are 10 reads I thought were worth sharing this week. The total time to read this newsletter is 121 minutes.
It is not that we have so little time but that we lose so much. The life we receive is not short but we make it so; we are not ill provided but use what we have wastefully. – Seneca, On the Shortness of life

Continue reading “Issue #10: 10 Reads, A Handcrafted Weekly Newsletter for Humans”

Issue #9: 10 Reads, A Handcrafted Weekly Newsletter for Humans

Hey y’all,
Here are 10 reads I thought were worth sharing this week. The total time to read this newsletter is 155 minutes.
I have always imagined that Paradise will be a kind of library. – Jorge Luis Borges
  1. How I use Wireshark: 15 mins read. This is a quick tutorial that will help you understand how you can use Wireshark for debugging network related problems. Wireshark is a powerful tool but its user interface can be intimidating for the first time user. Julia Evans,  author of the post does a good job documenting how she uses Wireshark in her day to day job. I, myself, used Wireshark a month back to figure out why I am unable to connect to a VPN server. Wireshark helped me move in the right direction.
  2. The Facebook Nevers: 5 min read. And yet, the tectonic plates are shifting. But they’re shifting under Facebook, as tectonic plates do. The fall of Facebook was never going to be people quitting the service en masse — it’s too interwoven into the fabric of the way many of us use the web these days — it was always going to be the people who never really use the service in the first place. Kids.
  3. YAML: probably not so great after all: 15 mins read. A good post talking about shortcomings of YAML as the language for configuration files. I was not aware of most of the issues with YAML. The author points out that YAML is insecure by default, hard to edit when files are large, has complex specification, not portable across programming languages, and has surprising behaviours. I personally have not used YAML much so was unaware of most of the issues.
  4. React Native at Airbnb: 30 mins read. This is a 5 post series talking about Reactive Native usage at Airbnb. Airbnb is considered poster child for React Native. Airbnb has decided to stop using React Native for any new project and they will be migrating their highly used screens to Android and iOS native screens. Airbnb team faced technical and organisational challenges while building their hybrid applications. React Native for the most part fulfil the promise of write once and run on multiple mobile platforms but you start hitting limitations when you are a big company like Airbnb trying to push React Native to its limits.
  5. The War on Developer Productivity: 10 mins read. A couple of weeks back I gave a talk and touched upon the same point. I personally don’t use Slack even when Slack is the preferred tool in our organisation. As outlined in the post, tools like Slack forces you to give immediate reply. They make others feel that you are always available to answer or entertain them. I think tools like Slack are our servants and they should not drive us like they are our masters. We should use them wisely else our productivity will suffer.
  6. PostgreSQL Features You May Not Have Tried But Should: 15 mins read. A good list of PostgreSQL features that one can use in their work. I personally like Pub/Sub Notifications feature the most. I am thinking of using this feature to update the cache as soon as my database is updated by another process.
  7. Introversion as an Excuse: 20 mins read. Author writes In the last several years, these once common currents of thought have been undergoing a silent sea change. While the extrovert remains the ideal culturally, on the individual level, seemingly more and more people are identifying themselves — quite proudly — as introverts.
  8. How Pusher Channels has delivered 10,000,000,000,000 messages: 5 mins read. I used Pusher 4 years back when I was working with Red Hat. Pusher is a publish subscribe channel that you can use to build real-time applications. Few days back they processed 1 trillion messages. In this post which lack details, they give a 10,000 feet view of how Pusher Channels work. The main workhorse in their architecture is Redis.
  9. The Machine Fired Me: 15 mins read. Amazing read. Once the order for employee termination is put in, the system takes over. All the necessary orders are sent automatically and each order completion triggers another order. For example, when the order for disabling my key card is sent, there is no way of it to be re-enabled. Once it is disabled, an email is sent to security about recently dismissed employees. Scanning the key card is a red flag. The order to disable my Windows account is also sent. There is also one for my JIRA account. And on and on. There is no way to stop the multi-day long process. I had to be rehired as a new employee. Meaning I had to fill up paperwork, set up direct deposit, wait for Fedex to ship a new key card.
  10. Pinterest Founder Ben Silbermann’s Lessons on Decision Making, Values, and Taking Time for Yourself: 15 mins read. The best point for me in this post was Write down decisions you make — and your rationale at the time — into a “decision journal.”

Issue #8: 10 Reads, A Handcrafted Weekly Newsletter for Humans

Hey y’all,
Here are 10 reads I thought were worth sharing this week. The total time to read this newsletter is 125 minutes.
Everything we hear is an opinion, not a fact. Everything we see is a perspective, not the truth. — Marcus Aurelius
  1. Introvert or Extrovert? Here’s How to Boost Your Productivity: 10 mins read. I consider myself an introvert and I have no issues accepting that. I agree with post’s author that few people are pure introverts or extroverts. It could depend on the situation or people we hang out with. For me the best part of the post was productivity tips for introverts. Interesting I also came with the same conclusions as shared in this post for boosting my productivity. The four productivity tips for introverts — 1) Control your environment 2) Focus on one-on-one interactions 3) Slow down 4) Prepare for meetings.
  2. Survivorship Bias And Startup Hype: 5 mins read. Luck plays a significant role in business success. Not just in the mere fact of success, but in the magnitude of any given company’s triumphs. We tend to overlook this reality because of a mental distortion called survivorship bias. It is a common cognitive failure, and a dangerous one because it obscures the distastefully harsh nature of the world.
  3. Don’t Eat Before Reading This: 20 mins read.  Anthony Bourdain shares some trade secrets of chef industry. He writes Being a chef is a lot like being an air-traffic controller: you are constantly dealing with the threat of disaster. You’ve got to be Mom and Dad, drill sergeant, detective, psychiatrist, and priest to a crew of opportunistic, mercenary hooligans, whom you must protect from the nefarious and often foolish strategies of owners. Year after year, cooks contend with bouncing paychecks, irate purveyors, desperate owners looking for the masterstroke that will cure their restaurant’s ills: Live Cabaret! Free Shrimp! New Orleans Brunch!
  4. The Bullshit-Job Boom: 15 mins read. We all have seen people bullshitting around and reaching the top and then building a senior team with all bullshitters together. This happens in most organization. I love the definition of bullshit job. Author writes a form of paid employment that is so completely pointless, unnecessary, or pernicious that even the employee cannot justify its existence even though, as part of the conditions of employment, the employee feels obliged to pretend that this is not the case.
  5. Becoming a dramatically better programmer : 15 mins read. It is always beneficial for me to read posts like these. They either teach me a new way to look at how I can become better programmer or they assure me if I am doing something right. I also realized most of the suggestions mentioned in the post and trying to follow them. The post is divided into two parts — 1) Learning skills directly 2) Learning meta-skills. The first part Learning skills directly talks about importance of building new skills that complement your existing skillset and learning things that you think you don’t completely understand. The second part learning meta-skills is about deliberate practice, identifying common mistakes, and deep work.
  6. Pain Plus Reflection Equals Progress : 10 mins read. Author writes, The easy path means being the same person you were yesterday. It’s easy and comfortable to convince yourself that the world should work differently than it does, that you have nothing to learn from the pain. The harder path is to embrace the pain and ask yourself what you could have done differently or better or what your blind spot was. It’s harder because you stop living in the bubble of your own creation and start living in reality.
  7. Seven Reasons Why RightSizing AWS EBS Capacity Is Hard : 10 mins read. Right-sizing EBS volumes can provide a handsome return on investment. The reason is simple: AWS charges for provisioned capacity, not consumed capacity, and almost all AWS customers over-provision their EBS volumes. In our experience, the average amount of unused storage is about 75%. That’s a lot of empty storage that AWS customers are paying for!
  8. CPU utilisation is wrong : 5 mins video. This is a 5 mins video by Netflix’s Brendan Gregg on why %CPU is not the right way to measure performance.
  9. Go code refactoring : the 23x performance hunt: 15 mins read. These days I am also working on a piece of code where I am trying to do performance optimisation. This blog give me some ideas to explore. A good post at the right time for me.
  10. Building A Pub/Sub Service In-House Using Node.js And Redis: 20 mins read. The primary reasons for building an in-house Pub/Sub system are 1) Reliability 2) High Performance 3) Cost effectiveness.

Issue #7: 10 Reads, A Handcrafted Weekly Newsletter for Humans

Hey y’all,
Here are 10 reads I thought were worth sharing this week. The total time to read this newsletter is 135 minutes.
  1. 10 Practices to be a better Scrum Master : 10 mins: This is a good read for any Agile team. For me the best practice among the list is Don’t Beat the Team over the Head with an Agile Rule Book. This is what most Agile coaches or Scrum master get wrong. They try to force rules that they themselves have never followed. Other thing that I have observed is that many of the Agile coaches have either never done software development or if they did it was 5 or 10 years in the past. I think they can be more helpful if they have real Agile software development experience.
  2. Your IDE as presentation tool: 10 mins. I do that is most of my talks as well. It is difficult to get it right but if you are confident and prepared well your talk can be more informational to the audience.
  3. Remote Only: 15 mins: I worked remotely for couple of years when I was working with Red Hat. I enjoyed the experience most of the time but there was times when you feel lonely or wanting to work with people. I plan to do remote work again in future as I think it is more productive than working in open space offices. This post shares practical tips, advantages, and disadvantages of working remotely. The best point for me is Writing down and recording over verbal explanations. In the book Rework by Basecamp guys, they talked about if they had to hire between two equally competent people they would prefer to hire a person who is a better writer.
  4. The Day You Became a Better Writer (2015): 5 mins. This is small useful post giving advice on how to write effectively. The key point for me is Simple writing is persuasive.
  5. Replacing jQuery with Vue.js: No Build Step Necessary: 15 mins: The post uses simple examples to demonstrate how we can replace jQuery with Vue.js. Vue.js looks simple to use and you can introduce it to your project incrementally.
  6. Fear of Better Options (FOBO) is The Reason You Can’t Make a Tough Decision : 15 mins. The post talks about why having more choices and optimising for the best option leads to frustration, stress, regret, and unhappiness. The reality of the matter we will never have complete information so we will never be in position to make the best bet. The author suggests instead we should look at option and the first that meets our criteria should be chosen. This decision making paradox happens to us in all walks of your life. This is relevant when you are trying to make decision about partner you want to settle or what next thing you should learn. I usually get overwhelmed when I have to decide what should I learn next.
  7. The Scientific Argument for Mastering One Thing at a Time: 5 mins. The counterintuitive insight from all of this research is that the best way to change your entire life is by not changing your entire life. Instead, it is best to focus on one specific habit, work on it until you master it, and make it an automatic part of your daily life. Then, repeat the process for the next habit.
  8. Building Services at Airbnb, part 1 and Building Services at Airbnb, part 2 : 30 mins. Airbnb is moving its infrastructure at an accelerated pace towards a SOA (Service-Oriented Architecture), but moving from a monolithic Rails service towards a SOA while building out new products and features is not without its challenges.
  9. 6 things I’ve learned in my first 6 months using serverless : 10 mins. The six lessons are 1) Ditch Python 2) Burn the middle layer to the ground 3) Enjoy the Vue 4) Learn to love DynamoDB 5) Serverless Framework FTW 6) Authorization is the new sheriff in the town.
  10. Genius as Circumstance : 15 mins. There is a way of thinking about genius that could powerfully encapsulate the creative process. It begins by no longer applying the term to individuals. If calling an individual “a genius” sounds pompous and grandiose, describing some thing as “genius” is commonplace. “That was a genius move,” I find myself saying too often for it to actually mean very much.

Issue #6: 10 Reads, A Handcrafted Weekly Newsletter for Humans

Hey y’all,
Here are 10 reads I thought were worth sharing this week. The total time to read this newsletter is 130 minutes.
Half of everything you hear in a classroom is crap. Education is figuring out which half is which. — Larrabee’s Law
  1. The 5 Lies We Love to Tell : 10 mins read. The author makes the point that we all lie to ourselves. We should stop fooling ourselves that we don’t lie. The biggest problem with lies is that they consume a lot of your mental power in the background. You have to expend your mental energy to keep reminding yourself what lie you made to your inner self so that you don’t deviate from it.
  2. Please Stop Using Adblock (But Not Why You Think) : 10 mins read.  The key point in this post is that Adblock is making a lot of money by making advertisers like Google to whitelist their ads. I was shocked to read the dark side of AdBlock. The author recommends that people use free and open source uBlock Origin.
  3. Tech’s Two Philosophies : 15 mins read. The author makes the point that there are two main philosophies in the tech industry. The first philosophy shared by Google and Facebook is that computers should do work for humans. The second philosophy shared by Microsoft and Apple is that computers empower humans and help them do their work efficiently.
  4. It’s about time to design in the real world. Introducing Hadron! : 10 mins read. Hadron is a tool aimed to make designing through code visual, fast and easy by embracing the web platform. Even though you will use code, the great thing is that not only very little writing is needed to get started, but also your designs can be progressively enhanced. Meaning that you can start designing with only simple HTML and CSS, and later make your design do more by adding behaviour through other Web Components or even writing JS yourself.
  5. The Economics of Writing a Technical Book: 15 mins read. This is a good post that will help you understand economics of writing a technical book. In my opinion, author made good money from writing his first book. Part of it has to do with the fact that he wrote for O’Reilly Media. Writing a book is tiring and cumbersome so kudos to the author on publishing his first book.
  6. Three-day no-meeting schedule for engineers: 5 mins read. It is great to see organisations understanding the need for focussed time. I strongly believe what Paul Graham wrote in his essay on Manager vs Maker schedule. Software development is a creative endeavour that requires an undistracted, peaceful environment for good work. I hope my organization also does the same one day.
  7. High availability and scalable reads in PostgreSQL : 20 mins read. A detailed primer on streaming replication, complete with performance measurements.
  8. How Postgresql analysis helped to gain 290 times performance boost for a particular request : 10 mins read. This is an interesting read as the guy tried many difficult solutions before figuring out a simple change to improve performance of his query by 290 times. Simple solutions are difficult to find. This post shows  how query and data model design minor mistakes can lead to performance bottlenecks and how extremely useful explain analyze command can be.
  9. Experiences with running PostgreSQL on Kubernetes : 20 mins read. Kubernetes is not aware of the deployment details of Postgres. A naive deployment could lead to complete data loss. Here’s a typical scenario when that happens. You set up streaming replication and let’s say the first master is up. All the writes go there and they asynchronously replicate to the standby. Then suddenly the current master goes down but the asynchronous replication has a huge lag caused by something like a network partition. If the naive failover leader election algorithm kicks in or the administrator who doesn’t know the state manually triggers failover, the secondary becomes the master. That becomes the source of truth. All of the data during that period is lost because all of the writes that were not replicated disappear. Whenever the admin recovers the first master it’s no longer the master any more and it has to completely sync the state from the second node which is now the master.

Issue #5: 10 Reads, A Handcrafted Weekly Newsletter for Humans

Welcome to the fifth  issue of 10 Reads weekly newsletter. Below are the 10 posts that I found good to read this week. Total time to read this newsletter is 145 minutes.

The only true wisdom is in knowing you know nothing – Socrates

  1. Stack Overflow Isn’t Very Welcoming. It’s Time for That to Change. : 10 mins read: Stack Overflow has realized that new users are not finding it welcoming so they are taking steps to improve it. I think for me the bigger lesson is that when an organization like Stack Overflow can work towards recognising mistakes and work on fixing them why can’t other companies do the same. In most oragnizations,  senior management try to hide problems under the carpet never recognising their wrong doings. I am not expecting organisations to go public with their problems but instead their should be open communication.
  2. Is There A Fix For Impostor Syndrome15 mins read. Reading this post I realized I also suffer from impostor syndrome. The post author describes 5 kinds of impostor and their behaviour that she learnt from book The Secret Thoughts of Successful Women: Why People Suffer from Impostor Syndrome and How to Thrive Inspite of it.
    1. The Expert: This manifests as a state of cringing denial when called an expert.
    2. The Perfectionist: Perfectionism underlies a feeling that one could have (and should have) done better.
    3. The Superwoman/man: Some people can’t stop working, taking on every task they can. Young argues that this kind of workaholism is the expression of a need for external validation and can be countered only by focusing on setting one’s own metrics for personal success.
    4. The Natural Genius: This behavior involves judging one’s worth on the basis of raw ability as opposed to effort.
    5. The Rugged Individualist: Rugged individualism demands that all tasks be performed alone, and little to no help is sought.
  3. How To Get Your Coworker To Agree With You : 30 mins read. This is not a long read but I spent a lot of time thinking about times when I behaved arrogantly and tried to force people to think my way. Many times it just doesn’t work. The key points for me in this post are:
    1. If you say someone that they are wrong, they will become defensive straightaway and try hard to prove why their decision is correct. It does not matter if your intentions were good other person will not be able to see the point. The author suggests that we should avoid arguments at all cost. In one of the books that I read recently, author suggests The only way to get best of an argument is to avoid it.
    2. Before you expect others to listen to you build a strong relationship and trust. People will only listen if they consider you worth listening to. There is no magic solution here. You have to work hard on yourself before you can expect people to agree with you.
    3. Don’t force your decisions on others. Give them options & let them choose the best based on their expertise.
    4. Don’t distrust expertise of your coworkers. The wisest people are the ones who always empty their cups.
  4. Tips for High Availability by Netflix15 mins  read. In this post, Netflix engineers share how they are able to keep their services up. Netflix has built a continuous integration and delivery tool called Spinnaker that imbibes all the best practices Netflix engineers have learnt over the year. Some of the best practices that we can use to make our systems highly available are:
    1. Prefer regional deploys over global deploys
    2. Use Red/Black deployment strategy  for production deploys
    3. Use deployment windows
    4. Enable Chaos Monkey
    5. Know how to roll back your deploy quickly
  5. Why Our Brains Fall for False Expertise, and How to Stop It 30 mins read. If the people who offer the most valuable contributions to your organization aren’t appropriately recognized for it, they won’t stay long. Or, possibly worse, they will stay and stop trying.
  6. Rust in production at Figma : 10 mins read. The author mentions a lot of compelling reasons why people should consider Rust for writing performance sensitive back-ends. The main benefits of Rust are Low memory usage, Awesome performance, and Solid toolchain. Rust is new so there are rough edges as well. Read the post to learn about the pros and cons of using Rust.
  7. Bitcoin is the greatest scam in history :10 mins read: I am glad someone finally put it. Every other day I hear people talking about Bitcoin and BlockChain without understanding what they are getting into. Cryptocurrency is a scam because:
    1. Bitcoins are accepted almost nowhere, and some cryptocurrencies nowhere at all. Even where accepted, a currency whose value can swing 10 percent or more in a single day is useless as a means of payment.
    2. Extreme price volatility also makes bitcoin undesirable as a store of value. And the storehouses — the cryptocurrency trading exchanges — are far less reliable and trustworthy than ordinary banks and brokers.
    3. A bitcoin has no intrinsic value. It only has value if people think other people will buy it for a higher price — the Greater Fool theory.
  8. PostgreSQL 11 will finally have procedures5 mins read. Many people have asked for this feature for years and PostgreSQL 11 will finally have it. I am of course talking about CREATE PROCEDURE. Traditionally PostgreSQL has provided all the means to write functions (which were often simply called “stored procedures”). However, in a function you cannot really run transactions – all you can do is to use exceptions, which are basically savepoints. Inside a function you cannot just commit a transaction or open a new one. CREATE PROCEDURE will change all that and provide you with the means to run transactions in procedural code.
  9. pg_wal is too big… what’s going on?15 mins read. Here are two ways to go about it: the first – is to take an emergency action, this is the last resort when there is only 2% or less of free disc space, lack of time to find the cause of the problem and the main goal of your actions is to avoid the risk of the database crash halt. The second – is set of actions directed to find out the cause of the space consumption – something you can only do when there is no risk of the database’s emergency stop.
  10. Keep The Degree Of Difficulty Down5 mins read: So the better approach is to pick something simple to execute, nail it, then build on it with another relatively simple move, nail that too, and keep going.

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. Continue reading “Issue 4: 10 Reads, A Handcrafted Weekly Newsletter for Humans”

Issue 1: 10 Reads A weekly newsletter on Software Development that will make you think

Hello Everyone, Welcome to the first issue of 10 Reads, a free hand-crafted weekly newsletter on software development, programming, and technology. Each week I will share 10 articles that open your mind and give some food for thought. This newsletter is not about all cool Github projects or how to tutorials. I will be sharing posts that make you think and help you become better software engineer.  The number of articles is limited to 10 so that you are not bombarded with excessive content. I will also specify the time that it took me to read the article so that you have some real estimate on how much time it will take to go over the content. Total time to read all the content in this newsletter is 95 minutes. Continue reading “Issue 1: 10 Reads A weekly newsletter on Software Development that will make you think”