Skip to content

In this repo, we will be coding the awesome things like servers from scratch e.g HTTP server, Kafka, Redis, DNS and even git with some challenging exercises.

Notifications You must be signed in to change notification settings

SubhPB/BuildingSystemsFromScratch

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

37 Commits
 
 
 
 
 
 

Repository files navigation

Systems from Scratch

Welcome to Systems from Scratch! This repository is a journey into the foundations of critical software systems, where I’m diving deep into how things work under the hood. Here, you’ll find my implementations of various systems and tools, all built from the ground up.

📖 About This Repository

The goal of this repository is to gain a deeper understanding of the core components behind widely-used technologies by re-creating simplified versions of them. Instead of using high-level APIs or libraries, I’m building out functionality step-by-step, learning by doing and exploring:

  • How databases manage data
  • How web servers handle requests
  • How container engines isolate environments
  • And much more!

🚀 Project Highlights

Each directory represents a specific project where I build a foundational technology. Some examples include:

  • Databases: Constructing a basic data store and learning how indexing, querying, and persistence work.
  • Web Servers: Creating a simple server to understand HTTP, request handling, and client-server interactions.
  • Containers: Implementing a basic container engine to explore namespaces, file systems, and process isolation.
  • More: With time, we are going to build many things in this repository which i even do not know.

Each project is split into milestones, each building on the last to create a complete and functional component. Tests and examples are included along the way to validate and demonstrate core features.

🌱 Learning Mindset

The purpose here isn’t simply to "build" these systems but to understand them deeply. By coding these systems from scratch, I’m focused on:

  1. Uncovering the Internals: Breaking down complex concepts to understand the "why" and "how" behind them.
  2. Strengthening Fundamentals: Reinforcing foundational skills in networking, file handling, data structures, and system-level programming.
  3. Problem Solving: Tackling each challenge with a problem-solver’s mindset to explore new perspectives and approaches.

🔧 Technologies Used

I’m implementing these systems in various languages to adapt to different paradigms and learn unique language features. Some languages I’ll be working with include:

  • TypeScript
  • Python
  • Java

Each language offers new insights and challenges, adding a layer of learning to each project.

💡 Project Structure

Here's the basic structure of this repository:

systems-from-scratch/
│
├── database-system/
│   ├── <Python>
│   └── <Java>
│
├── web-server/
│   ├── <Typescript>
│   └── <Python>
│
└── container-engine/
    ├── <language>
    └── ...

  • ***Byimaan***

About

In this repo, we will be coding the awesome things like servers from scratch e.g HTTP server, Kafka, Redis, DNS and even git with some challenging exercises.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published