What is common among mighty water dam, humble electric fuse, and i-dunno-what hysterix and hysterix-go? Take a moment to think of an answer. Yes. All of them are some sort of check that stops bad things from happening by deploying some safeguarding measure whenever a threshold is crossed. What exactly is circuit breaking? While researching... Continue Reading →
Is your API idempotent?
You would frequently find senior engineers asking this question in your code review. But what exactly is idempotency? Idempotency is basically operations that when done once or multiple times, gives you the same result. Have you used this two-way switch? If yes, do you think this is idempotent? (Last I heard, senior engineers were not... Continue Reading →
Timeouts are important.
But what are timeouts? Timeouts are a set of configurations that a developer provides when one service calls another service. Broadly, there are two types of timeouts. Connection Timeout Say, service A is calling service B. Service B has a total of 10 connections and assumes all of them are used. Now, if service A... Continue Reading →
Introducing Laminar | nurture farm’s very first open-source project
They say - “necessity is the mother of invention”. Laminar is our invention born out ofnecessity. The first order of business for the engineering team at nurture.farm was todecide on a tech stack that suits our domain. In the agricultural domain, we oftenserve users who might not have great access to the fast and reliable... Continue Reading →
Introduction to Software Engineering
This course is designed for someone who has a basic to no understanding of coding. The course intends to provide flavours of little bit of everything. There are also links to leetcode problems that you should solve. Leetcode problems are selected in a way to provide you familiarity with different data structures and algorithms. Week... Continue Reading →
Create End to End Application using React, Relay, GraphQL, Rejoiner and gRPC
We are going to create a stack where: Microservices are communicating using gRPC using protobuf for serializing-deserializing Frontend is consuming APIs through graphQL React is used to render UI Step 1: gRPC Service You need a gRPC server running for the tutorial. If you don't have one of your own, you can use the one... Continue Reading →
Run your first Go web server and read write value in MySQL
I wrote past few posts based on my notes from The Go Progamming Language by Donovan. In this article, we will try to make a go serverand expose rest APIs to read an write values from MySQL database. We will assume that your mySQL server is running at 3306 port in your local computer. net/http... Continue Reading →
Implement a file system in Java given n-bytes
Problem Statement Given n - bytes, implement a file system that supports following actions: Create File Update File Read File Delete File If you want a good start point for a small low level design problem, this post on designing a ride hailing service might be a good start. Demystifying Problem Statement When the problem... Continue Reading →
GoLang Journey – Composite Types
You might want to read the previous post in the series. Composite types created by combining the basic types like int, float etcetra. Arrays An array is a fixed length sequence of zero or more elements of particular type Because of the fixed length constraints, Arrays are rarely used in Go if "..." appears in... Continue Reading →
GoLang Journey – Basic Data Types
You might want to browse the previous post on this series. Integers Go provides both signed and unsigned integer type There are four different size of signed integer type; 8, 16, 32, 64 bits, represented by int8, int16, int32 and int64 Similarly there are four different size of unsigned integer types; 8, 16, 32, 64... Continue Reading →