Issue 2: 10 Reads for Weekend Reading

Welcome to second 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 105 minutes.

  1. I wandered off and built an IDE: 5 mins read. A few years ago, I set out to build a small Excel plugin to help out my girlfriend at the time. I ended up building a full-blown IDE over the course of four years and spent the winter in Poland in a startup accelerator.
  2. The dots do matter: how to scam a Gmail user5 mins read. I recently received an email from Netflix which nearly caused me to add my card details to someone else’s Netflix account. Here I show that this is a new kind of phishing scam which is enabled by an obscure feature of Gmail called “the dots don’t matter”. I then argue that the dots do matter, and that this Gmail feature is in fact a misfeature.
  3. Building Real Time Analytics APIs at Scale: 15 mins read. We recently redesigned our analytics API from the ground up, in order to provide near real-time analytics to our customers on billions of search queries per day. Here’s how we did it.
  4. Why does “=” mean assignment?: 5 mins read. A common FP critique of imperative programming goes like this: “How can a = a + 1? That’s like saying 1 = 2. Mutable assignment makes no sense.” This is a notation mismatch: “equals” should mean “equality”, when it really means “assign”. I agree with this criticism and think it’s bad notation. But I also know some languages don’t write a = a + 1, instead writing a := a + 1. Why isn’t that the norm?
  5. First Principles: The Building Blocks of True Knowledge: 30 mins read. First-principles thinking is one of the best ways to reverse-engineer complicated problems and unleash creative possibility. Sometimes called “reasoning from first principles,” the idea is to break down complicated problems into basic elements and then reassemble them from the ground up. It’s one of the best ways to learn to think for yourself, unlock your creative potential, and move from linear to non-linear results.
  6. Amazon spent nearly $23 billion on R&D last year — more than any other U.S. company: 5 mins read. Tech companies claimed the top five spots in the U.S. for research and development spending again last year, investing a combined total of $76 billion. Amazon was at the top of the list, spending $22.6 billion in 2017, 41 percent more than in 2016
  7. Migrating 15 years of Meetup photos to the cloud: 10 mins read. Meetup has been around for quite a while, at least since 2002, and our members have always been fond of uploading photos: profile pictures and countless memories of every type of Meetup. So, after 15 years, we have hundreds of terabytes of beautiful pixels to keep good care of, and to move with us, wherever our platform goes.
  8. Why Bitcoin is bullshit, explained by an expert: 5 mins read. It turns out cryptocurrencies and blockchains have a few problems.
  9. Building a Text Editor for a Digital-First Newsroom:  15 mins read. Our primary task is to create an ultra-customized story editor for the newsroom. Beyond the basics of being able to type and render content, this new story editor needs to combine the advanced features of Google Docs with the intuitive design focus of Medium, then add lots of features unique to the newsroom’s workflow.
  10. India – Scaling People: 10 mins read. After one year of working with an off-shore team, we lost about a million Euros and needed to re-write most parts of the software. What actually was the problem? I’ve been thinking about that for quite some time. But let’s rewind to mid 2015.

Allow Yourself To Be Bored — Part 1

A couple of weeks back during my weekend morning walk to the neighbourhood park, like most people, I had put on my headphones. I was walking, lost in my favorite playlist, when someone tapped on my shoulder and asked me a question that why people of my age have headphones plugged into their ears. I candidly answered, Because it is boring.

When I came back home, my mind was constantly contemplating on what that elderly man asked me. And, I realized that it was quite a poignant question. I wondered what is really bad about feeling bored. Is it really bad? Why don’t we allow ourselves to be bored sometimes? Why there is a need to stay connected all day to our devices?

I came across a theory in my current read Thinking, Fast and Slow by Daniel Kahneman, where he talks about two different ways in which our brain form thoughts:

  1. System 1: Fast, automatic, frequent, unconscious
  2. System 2: Slow, effortful, logical, conscious.

My concept is when we walk without listening to music, our mind has a tendency to form thoughts using System 2. As most of us are uncomfortable and not used to System 2 thinking, we make it easy for us by listening to music. Music soothes us and takes us into an unconscious mode of thinking i.e. System 1. Kahneman also mentions that humans follow The Law of Least Effort i.e. we tend to do things that require least effort.

By the way, talking about the height of our obsession with devices and stay connected 24/7. The other day in the men’s washroom, I saw a guy peeing with one hand holding *** and his other hand was browsing Facebook with acrobatic skills.
I realized, this could be nothing but insanity.

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”

Always Be Reading

I became a software engineer by chance. I was offered a job by a software organization during my campus interviews. I took it. And I became a software engineer.

Because I had pursued bachelors in Mechanical engineering, there was little learned about computer science in four years of my undergraduate course. My only interaction with it was during the first semester, where one of the subjects was C programming language. As far as I remember I enjoyed programming a lot. After entering the job, it took me a couple of years to figure out how I can succeed in the professional world. I realized that my magic formula to do good in professional and personal life is Always Be Reading.

In this post, I will share my thoughts on having a beginner mindset and continuously improve yourself to live a meaningful and fulfilling life.
Continue reading “Always Be Reading”

Single sign-on in Spring Boot applications with Spring Security OAuth

This week I had to dig deeper into the world of Single sign-on. I learnt a lot of things about it from basic conceptual knowledge to how to setup your own Single sign-on server with Spring Boot. In this post, I will share my learnings with you. In case something is not clear please leave a comment and I will address it.

Continue reading “Single sign-on in Spring Boot applications with Spring Security OAuth”

5 Reasons I Should Wake Up Early

Last three years, one of my new year resolution is to start waking up early. And on each of the occasion, it only lasted few days. I have tried multiple times to wake up early in my life but each time I have failed miserably. I used to take pride in night outs — working the whole night hacking away stuff. Since, last three years I have become self-aware that staying up late in night and waking up late in the morning is not effective. It end up costing you more. So, in this blog I am writing 5 reasons I should wake up early. These are the reasons that resonates with me. Continue reading “5 Reasons I Should Wake Up Early”

Using wait-for-it with Oracle database docker image

Today, I was working with an application that uses Oracle as the database. We decided dockerize the application to make it easy for fellow developers to work with the beast. We found a working Oracle docker image by sath89. Oracle 12c Docker image is close to 5.7GB on disk so we are not talking about lightweight containers here :). Once image was dowloaded, running image was as easy as running the following command.
Continue reading “Using wait-for-it with Oracle database docker image”

Programmatically Generating Database Schema with Hibernate 5

Today, I was working with a code base that was using Hibernate‘s schema generation facilities to create the database schema for a customer on the fly. The application creates separate database schema for each customer. Then, depending on the client specific identifier it connects to the correct database. This blog will not talk about how you should design your application with multi tenant database. I will cover that in a future post. In this post, I will share the code snippet that helped me generate database schema with Hibernate 5. In this post, I am using MySQL database as an example. The same code snippet should also work with other RDBMS as well.
Continue reading “Programmatically Generating Database Schema with Hibernate 5”

Blog at

Up ↑