Field notes from the workbench

The Dev
Ledger.

A living collection of practical notes on distributed systems, big data, algorithms, and the engineering details worth remembering.

25 detailed notes06 topic collections curiosity
The complete notebook

Pick a topic, then move through related posts without losing your place.

01

Apache Spark

6 notes
Apache Spark10 min

Advanced and Intermediate Concepts in Apache Spark RDD with Java

Building on the fundamentals of RDD, this blog explores advanced and intermediate concepts including partitioning strategies, lineage optimization, broadcast variables, accumulator…

Read note
Apache Spark9 min

Complete Guide to Apache Spark Actions

Apache Spark actions are operations that trigger the execution of transformations and return a value to the driver program or write data to external storage. Unlike transformations…

Read note
Apache Spark11 min

Complete Guide to Apache Spark RDD Transformations

Apache Spark transformations are operations that create a new RDD from an existing one. They are lazy operations, meaning they don't execute until an action is called. This guide c…

Read note
Apache Spark2 min

Installing Apache Spark on a Local Machine

This guide installs Apache Spark on your local machine so you can run spark-shell, pyspark, and submit jobs with spark-submit.

Read note
Apache Spark3 min

Running a Spark Job on Kubernetes (Rancher Desktop)

This blog provides a step-by-step guide to run a Spark application packaged as a JAR on a Kubernetes cluster using Rancher Desktop.

Read note
Apache Spark5 min

Understanding RDD in Apache Spark with Java

RDD (Resilient Distributed Dataset) is the fundamental data structure of Apache Spark. It's an immutable, distributed collection of objects that can be processed in parallel across…

Read note
02

Big Data Development

2 notes
Big Data Development3 min

Hadoop Installation on Ubuntu

Install prerequisite software's

Read note
Big Data Development2 min

Steps for installation of Apache HBase (Ubuntu)

Set Java path: To set java path for HBase environment run the following command: bash $ sudo nano conf/hbase-env.sh

Read note
03

Data Structures & Algorithms

11 notes
Arrays7 min

Arrays: Fundamental Questions & Solutions

This guide covers fundamental array problems commonly asked in technical interviews. Each problem includes detailed explanations, step-by-step example walkthroughs, Python solution…

Read note
Arrays8 min

Arrays: Hard Level Questions & Solutions

This section covers hard array problems commonly encountered in technical interviews. Each problem includes the problem statement, the core idea behind the solution, an example, an…

Read note
Arrays6 min

Arrays: Logic Building & Problem Solving

This section focuses on essential array manipulation problems designed to build algorithmic logic, specifically focusing on in-place partition and two-pointer techniques.

Read note
Arrays17 min

Arrays: Medium Level Questions & Solutions

This section covers medium-difficulty array problems commonly encountered in technical interviews and real-world software engineering. Each problem includes a detailed explanation

Read note
Binary Search9 min

Binary Search: Fundamentals & Boundary Patterns

Binary Search is a foundational divide-and-conquer algorithm designed to efficiently search a sorted array by repeatedly dividing the search interval in half. This note explores es…

Read note
Binary Search11 min

Binary Search: Logic Building & Advanced Problems

Beyond standard sorted arrays, Binary Search is a powerful technique for solving complex algorithmic problems by identifying ordered properties and systematically eliminating half

Read note
Sorting1 min

Bubble Sort Algorithm

Bubble sort repeatedly compares adjacent elements and swaps them when they are in the wrong order. After each pass, the largest unsorted element moves to its correct position at th…

Read note
Sorting1 min

Insertion Sort Algorithm

Insertion sort builds the sorted part of the list one element at a time by taking the current value and inserting it into the correct position among the already sorted elements.

Read note
Sorting1 min

Merge Sort Algorithm

Merge sort uses divide and conquer: it splits the list into two halves, sorts each half recursively, and then merges the sorted halves back together.

Read note
Sorting1 min

Quick Sort Algorithm

Quick sort uses divide and conquer. It chooses a pivot, partitions the list so smaller elements go to the left and larger elements go to the right, and then recursively sorts both

Read note
Sorting1 min

Selection Sort Algorithm

Selection sort repeatedly picks the smallest value from the unsorted portion of the list and swaps it into the next sorted position.

Read note
04

Java Development

2 notes
Java Development3 min

Difference Between Abstract Class and Interface in Java

Abstract classes and interfaces both define contracts for classes, but they solve different design problems. An abstract class is useful when related classes share state or common

Read note
Java Development4 min

Object oriented programming in Java

Object-Oriented Programming (OOP) is a programming paradigm based on the concept of "objects," which can contain data in the form of fields (attributes or properties) and code in t…

Read note
05

PySpark

1 notes
PySpark2 min

PySpark: Install and Run Your First DataFrame

This guide sets up PySpark locally and runs a small DataFrame job to confirm everything works.

Read note
06

System Design

3 notes
Low Level Design6 min

Introduction to Low-Level Design (LLD)

Low-Level Design (LLD), often referred to as Object-Oriented Design (OOD) or Detailed Component Design, is the phase in software engineering where abstract architectural requiremen…

Read note
Low Level Design9 min

Software Design Principles: A Comprehensive Guide

Software design principles are foundational guidelines that help software engineers build systems that are easy to understand, maintain, test, and extend. These principles apply ac…

Read note
Low Level Design2 min

SOLID Principles in Software Engineering: A Practical Guide with Java Examples

Writing code that works is relatively easy. Writing code that remains easy to understand, test, modify, and extend as the application grows is much harder. This is where the SOLID

Read note
04 A good system starts with a good conversation

Have a hard problem?
Let's make it elegant.