~/

All Posts

Page 2

Git Merge vs Git Rebase

Some of the concepts in git are such that, however much you read about it, you won't fully grasp their mental models unless you actually are in a situation where you have to use them. This post is an attempt to explain rebase and merge workflows in git.

Getting Started with NextJS

This post explores what NextJS is, how it differs from the likes of Gatsby and CRA, and how you can perform basic tasks like Navigation, Routing, Data Fetching in NextJS. We'll also take a look at the flexibility that Next provides while choosing to prerender or server side render pages.

Know Thy (JS) Tools

Understanding the tooling is crucial to understand what exactly is happening to the code we write, which helps us write better, bug-free code. This post is a collection of notes I made to understand more about the tools used in the JavaScript ecosystem.

Using AWS Rekognition, Lambda & API Gateway to build ML Powered WebApps

AWS Rekognition is a powerful service which provides real time image & video analysis using deep learning. This post explains how to use the service by creating a simple web app using ReactJS and using Rekognition with AWS Lambda & API Gateway.

Deploy a Spring Boot Application using AWS Elastic Beanstalk

I wanted to learn more about AWS Services like Elastic Beanstalk, RDS, and EC2. So, I tried them out and deployed a simple REST API developed using Spring Boot that uses MySQL as a database. This post covers what these AWS services can do for you, and how you can start using them right away.

The Beginner's Guide to Spring Boot

As a developer, it is important to sometimes step out of the comfort zone and try out new tools and frameworks, as frameworks are mere means to an end that solve some problems for us. I tried out a Spring Boot, a Web Framework in Java. This post will help you understand & get started with Spring Boot as a beginner.

Correctly using state in setInterval with Hooks

Recently, I ran into a problem while using setInterval in React. The function you pass to setInterval is defined once and it closes over the old value of your component state. This becomes a problem when you want to use the state to determine whether to clear the setInterval. Read on to find out the solution that worked for me.

A Closer Look at React's Reconciliation Algorithm

Ever wondered what makes React so fast? When it was introduced, the killer feature of React was it's concept of "Virtual DOM", however it brought on it's own set of challenges, including how to efficiently update the DOM to be same as React's virtual DOM. Read on to find out how React solves this problem!

A Closer Look at Diffing Algorithms using Dynamic Programming

One of the most frequently used git commands is git diff. How does it work internally? The brute-force way to compare all possible subsequences of strings has exponential time complexity. There has to be something more efficient, right?

Project Case Study: GradGoggles

GradGoggles is a cross-platform Virtual Yearbook and Scribble Book App developed for the Class of 2020, which missed all the fun due to the pandemic this year. This post describes the process that went behind developing the app, the technologies used, challenges we faced, and so on.

Automate Deployment of React apps to AWS S3 using a CD Pipeline

Recently, I have been working on a ReactJS project which uses AWS services heavily, so, I chose S3 and CloudFront for hosting. However, manually building and deploying the React WebApp every time was a headache. Read on to find out how I automated the build and deploy process,

Using Netlify Lambda Functions & SendGrid to send emails in Gatsby

I wanted to implement a contact form on my website, which is developed using Gatsby. However, Gatsby sites are a static sites with no "backend". In this post, we will use Netlify's Lamba Functions with the SendGrid API to implement a Contact Form on static sites.

10 Practical SEO Tips to make your Personal Website SEO-friendly

Creating your own personal website/blog? Search Engine Optimisation is a factor which you cannot ignore. Find out 10 easy and practical things you can do to optimize your website to make sure it appears in relevant search results.

What is Gatsby & Why you should use it

I recently redesigned this website using Gatsby. Gatsby is a static site generator based on ReactJS which you can use to make blazing fast websites like this one. Read on to find out more.

A dive into Asynchronous JavaScript

A discussion about the asynchronous parts of JavaScript. Is JavaScript really asynchronous? How can it be asynchronous if the browser engine has only one thread? Well, read on to find out!

2 ways to upload files to Amazon S3 in Flask

Many times, you need the ability to allow users to upload files, mainly images, to your WebApp. Most efficient way to do that is to use Amazon S3. This post explores two popular ways to use S3 storage service in Flask.

'Learning In Public' and 'Digital Gardens'

Digital Garden is a relatively new term which describes a different standpoint on what a blog is. Instead of posting finished and polished pieces, Digital Garden is about focusing more on the process behind it, a relaxed, more "human" endeavour.

Clearing up the confusion between Concurrency, Parallelism and Asynchrony

Concurrency, Parallelism and Asynchrony are basic terms that are often confused with each other. This is a short post explaining the meaning behind the terms and how they differ from each other.