Web Development Basics: Security

In the previous article we discussed how requests through the Internet are protected using HTTPS. This is made possible through the use of TLS Certificates. In this article we will discuss what these certificates are, the different types, and how anyone can use them for their own web application.

TLS certificates

To establish a secure communication between a browser and the server, the first step is to do what is called a TLS handshake. In this process, the public key of the server is used to generate the key that is used for symmetric encryption. This public key is shared using a TLS certificate. read more

Web Development Basics: Transit

In the previous article we discussed how a user sends a request to a server by using URLs in a browser. Now we will explore what happens to that request once it leaves the user’s computer, how it travels through the Internet, and how it is protected.


Together with advances in transportation, the Internet made the world a much smaller place. As long as there is an Internet connection, your content or product can be accessed and purchased by anyone, anywhere.

Technically, the Internet is a network of networks communicating via TCP/IP. Networks located within a country are then connected to other countries through the use of submarine cables. These cables, laid deep in the ocean, carry Terabytes of information per second. read more

Web Development Basics: User

As software developers making web applications, most of the time we are engrossed in our own code. Designing features, thinking of the best ways to build it, and fixing bugs are what we do most of the time. We often treat our application as a black box, a standalone unit that accepts requests and spits out JSON or HTML. However, this is a shortsighted way of doing web development.

In this series we will explore the realm beyond the application that we are building. We will think of this as the journey of a web request starting from the user’s Web Browser (User), as it traverses through the Internet (Transit), and finally when it reaches the backend (Server). read more

Declarative vs Imperative Goal Setting

Declarative vs Imperative Goal Setting

Goals come in all shapes and sizes. Life goals, year-end goals, New Year’s resolutions, Quarterly targets, and so on. A common approach to goal setting is:

  • Step 1: Define end goal
  • Step 2: Enumerate the steps needed to achieve that goal
  • Step 3: Perform the steps that were identified
  • (Hopefully) achieve the goal

This simple flowchart illustrates this:

Figure 1. Imperative goal setting

In computer programming, when you define the actions step by step until you reach your desired state, it is called imperative programming. As this same concept is evident in the diagram above, we can call this Imperative Goal Setting. When your plan consists of executing specific steps and actions, then your plan is imperative. read more

On Consolation

On Consolation

My sister passed away on February 24 after almost three years of her battle with cancer. She courageously persisted, and fought till the end.

Seneca the Younger (4 BC – AD 65) was one of the great Stoic writers. A Roman senator, he was exiled in AD 41 as he went against the reigning emperor. He wrote To mother Helvia, On consolationwhile on exile to provide comfort to his mother.

In death, the comforters usually are the surviving friends and family, but as Seneca is still alive in exile, he was able to do this himself using his own words. This writing, together with his other works about the shortness of life, provided me with insights on how to deal with the death of my sister. read more