An open API service indexing awesome lists of open source software.

https://github.com/cybersayak/building-my-own-x


https://github.com/cybersayak/building-my-own-x

Last synced: 3 months ago
JSON representation

Awesome Lists containing this project

README

        

# **Building-MY-Own-X**

## 1. **NODEJS BUILD**

[Node.js: Write your own bittorrent client](https://allenkim67.github.io/programming/2016/05/04/how-to-make-your-own-bittorrent-client.html)

[Node.js:Writing a Crypto Currency Blockchain](https://www.smashingmagazine.com/2020/02/cryptocurrency-blockchain-node-js/)

![build your own x](https://github.com/user-attachments/assets/5724f847-a536-4a16-aa75-c24d0dbfb97d)

# LIST Inspired from [Build Your OWN X by CodeCrafters](https://github.com/codecrafters-io/build-your-own-x)

### **1. 3D Rendering & Graphics**
- Build a **software rasterizer** (implement basic rendering without a GPU).
- Implement a **ray tracer** (simulate light bouncing off surfaces).
- Create a **path tracer** (physically accurate light transport).
- Develop a **procedural texture generator**.
- Implement a **polygon mesh simplification algorithm**.

### **2. Augmented Reality (AR)**
- Build a **marker-based AR system** (detect and overlay objects on real-world markers).
- Develop a **markerless AR system** (track objects and surfaces without predefined markers).
- Implement a **pose estimation algorithm** for AR applications.

### **3. BitTorrent Clients & P2P Systems**
- Build a **minimal BitTorrent client** (supporting downloading and seeding).
- Implement a **distributed hash table (DHT)** for decentralized peer discovery.
- Develop a **simple P2P file-sharing system** from scratch.

### **4. Blockchain & Cryptography**
- Implement a **basic blockchain with proof-of-work**.
- Develop a **smart contract execution environment**.
- Build a **simple cryptocurrency wallet**.
- Implement a **zero-knowledge proof system** for privacy-focused transactions.

### **5. Bots & Automation**
- Build a **web scraper with respect to robots.txt**.
- Implement a **chatbot from scratch** (without relying on existing AI frameworks).
- Develop a **rule-based automation system** (e.g., IFTTT clone).

### **6. Command-Line Tools**
- Create a **custom package manager** for managing dependencies.
- Implement a **CLI-based file search utility** (like `grep` but custom).
- Develop a **CLI text manipulation tool** (like `sed` or `awk`).

### **7. Databases & Storage Engines**
- Build a **simple key-value store** (like Redis).
- Implement a **B-tree or LSM-tree based database engine**.
- Develop a **columnar storage system** for efficient analytics queries.
- Create a **simple in-memory SQL database**.

### **8. Docker & Containerization**
- Build a **basic container runtime** (implementing namespace isolation).
- Develop a **lightweight OCI-compliant container runtime**.
- Implement a **basic Kubernetes-like orchestrator** for managing containers.

### **9. Emulators & Virtual Machines**
- Build a **chip-8 emulator** (a simple CPU architecture).
- Implement a **custom virtual machine with a bytecode interpreter**.
- Develop a **JIT (Just-In-Time) compiler** for a toy language.
- Create an **x86 or ARM emulator**.

### **10. Frontend Frameworks & UI Systems**
- Implement a **simple virtual DOM library** (like React but minimal).
- Build a **layout engine** that interprets CSS-like rules.
- Develop a **custom templating engine** for dynamic HTML rendering.

### **11. Git & Version Control Systems**
- Implement a **basic Git-like version control system**.
- Develop a **distributed file versioning system**.
- Build a **patch-based file synchronization tool**.

### **12. Network Stacks & Protocols**
- Build a **custom TCP/IP stack** from scratch.
- Implement a **basic DNS resolver**.
- Develop a **custom HTTP server and client**.
- Create a **peer-to-peer networking protocol**.

### **13. Neural Networks & AI**
- Implement a **basic neural network from scratch** (without frameworks).
- Develop a **backpropagation-based deep learning engine**.
- Build a **simple reinforcement learning environment**.
- Create a **custom GPU-based tensor library**.

### **14. Operating Systems & Kernels**
- Develop a **minimalist Unix-like operating system**.
- Implement a **basic bootloader**.
- Build a **simple task scheduler**.
- Develop a **basic device driver (keyboard, disk, etc.)**.

### **15. Physics Engines**
- Implement a **rigid body physics engine**.
- Develop a **fluid simulation system**.
- Build a **collision detection library**.

### **16. Programming Languages & Compilers**
- Build a **toy programming language** with an interpreter.
- Develop a **simple compiler that converts code to assembly**.
- Implement a **just-in-time (JIT) compiler**.
- Create a **custom regular expression engine**.

### **17. Regex Engines & Text Processing**
- Implement a **regex engine** (without relying on existing libraries).
- Develop a **syntax highlighting system** for a text editor.
- Create a **search-and-replace engine** (like `sed`).

### **18. Search Engines & Indexing**
- Build a **full-text search engine**.
- Implement a **crawling and indexing system**.
- Develop an **inverted index data structure**.

### **19. Shells & Interpreters**
- Build a **custom Unix-like shell**.
- Implement a **REPL (Read-Eval-Print Loop) for a scripting language**.
- Develop a **custom job scheduler for command execution**.

### **20. Template Engines**
- Create a **lightweight templating engine** for HTML generation.
- Develop a **custom email template renderer**.

### **21. Text Editors & IDE Components**
- Build a **simple text editor** (like nano or vim).
- Implement **syntax highlighting and autocomplete**.
- Develop a **custom LSP (Language Server Protocol) implementation**.

### **22. Visual Recognition Systems**
- Implement a **basic face detection system**.
- Develop an **image segmentation algorithm**.
- Build a **custom optical character recognition (OCR) system**.

### **23. Voxel Engines**
- Implement a **basic voxel engine** (like Minecraft).
- Develop a **marching cubes algorithm for smooth voxel rendering**.
- Build a **3D procedural terrain generator**.

### **24. Web Browsers & Rendering Engines**
- Develop a **minimalist web browser** with HTML and CSS parsing.
- Implement a **JavaScript execution engine**.
- Build a **custom DOM renderer**.

### **25. Web Servers & Load Balancers**
- Build a **basic HTTP server** (like Nginx or Apache).
- Implement a **reverse proxy** for load balancing.
- Develop a **custom WebSocket server**.

# **Build Your Own......**

## **1. Core Systems & Infrastructure**
These projects help you understand the inner workings of operating systems, networks, and databases.

- **Build Your Own Operating System**
- Languages: C, Rust, Assembly
- Why: Learn memory management, process scheduling, and hardware interaction.
- Example: [Writing an OS in Rust](https://os.phil-opp.com/)

- **Build Your Own Shell**
- Languages: C, Go, Rust
- Why: Reinforces concepts like process management, file I/O, and system calls.
- Example: [Tutorial - Write a Shell in C](https://brennan.io/2015/01/16/write-a-shell-in-c/)

- **Build Your Own Database**
- Languages: C, Python, Go
- Why: Understand persistence, indexing, and query optimization.
- Example: [Let's Build a Simple Database](https://cstack.github.io/db_tutorial/)

- **Build Your Own Docker**
- Languages: Go, Python
- Why: Explore containerization, namespaces, and cgroups.
- Example: [Build Your Own Container Using Less than 100 Lines of Go](https://www.infoq.com/articles/build-a-container-golang)

- **Build Your Own Network Stack**
- Languages: C, Python
- Why: Learn about TCP/IP, ARP, and packet routing.
- Example: [Let's Code a TCP/IP Stack](http://www.saminiir.com/lets-code-tcp-ip-stack-1-ethernet-arp/)

---

## **2. Programming & Language Design**
These projects focus on compilers, interpreters, and programming languages.

- **Build Your Own Programming Language**
- Languages: C, Python, Haskell
- Why: Deepen your understanding of parsing, lexing, and code generation.
- Example: [Crafting Interpreters](http://www.craftinginterpreters.com/)

- **Build Your Own Regex Engine**
- Languages: C, Python, JavaScript
- Why: Learn pattern matching, finite automata, and string processing.
- Example: [Build Your Own Regular Expression Engines](https://build-your-own.org/b2a/r0_intro)

- **Build Your Own Compiler**
- Languages: C++, Rust, OCaml
- Why: Understand how high-level code is translated into machine code.
- Example: [Kaleidoscope: Implementing a Language with LLVM](https://llvm.org/docs/tutorial/MyFirstLanguageFrontend/index.html)

---

## **3. Networking & Distributed Systems**
These projects are essential for understanding how modern systems communicate and scale.

- **Build Your Own Web Server**
- Languages: Python, Node.js, C#
- Why: Teaches HTTP protocols, request handling, and server architecture.
- Example: [Let’s Build A Web Server](https://ruslanspivak.com/lsbaws-part1/)

- **Build Your Own BitTorrent Client**
- Languages: Python, Go, C#
- Why: Covers peer-to-peer networking, file sharing, and concurrency.
- Example: [Building a BitTorrent client from scratch in C#](https://www.seanjoflynn.com/research/bittorrent.html)

- **Build Your Own DNS Server**
- Languages: Node.js, Rust
- Why: Explains domain resolution, caching, and network protocols.
- Example: [Build a DNS Server in Node.js](https://engineerhead.github.io/dns-server/)

---

## **4. Machine Learning & AI**
These projects are critical for engineers interested in AI, data science, and automation.

- **Build Your Own Neural Network**
- Languages: Python, JavaScript
- Why: Provides hands-on experience with backpropagation, training, and inference.
- Example: [A Neural Network in 11 lines of Python](https://iamtrask.github.io/2015/07/12/basic-python-network/)

- **Build Your Own Recommender System**
- Languages: Python
- Why: Covers collaborative filtering, content-based recommendations, and matrix factorization.
- Example: [Recommender Systems in Python](https://www.datacamp.com/community/tutorials/recommender-systems-python)

- **Build Your Own Visual Recognition System**
- Languages: Python
- Why: Teaches image processing, deep learning, and computer vision.
- Example: [Building a Facial Recognition Pipeline with TensorFlow](https://hackernoon.com/building-a-facial-recognition-pipeline-with-deep-learning-in-tensorflow-66e7645015b8)

---

## **5. Frontend & Backend Development**
These projects are ideal for full-stack engineers.

- **Build Your Own Front-end Framework**
- Languages: JavaScript
- Why: Explains virtual DOMs, component lifecycles, and state management.
- Example: [Build Your Own React](https://pomb.us/build-your-own-react/)

- **Build Your Own Blockchain**
- Languages: Python, JavaScript, Go
- Why: Covers cryptography, consensus algorithms, and distributed ledgers.
- Example: [Learn Blockchains by Building One](https://hackernoon.com/learn-blockchains-by-building-one-117428612f46)

- **Build Your Own Game**
- Languages: C++, Python, JavaScript
- Why: Combines graphics, physics, and user interaction.
- Example: [Tetris Reimplementation](https://brennan.io/2015/06/12/tetris-reimplementation/)

---

## **6. Multimedia & Graphics**
These projects explore rendering, physics, and multimedia processing.

- **Build Your Own 3D Renderer**
- Languages: C++, Python, JavaScript
- Why: Learn ray tracing, rasterization, and 3D transformations.
- Example: [Ray Tracing in One Weekend](https://raytracing.github.io/books/RayTracingInOneWeekend.html)

- **Build Your Own Physics Engine**
- Languages: C++, JavaScript
- Why: Covers collision detection, rigid body dynamics, and simulations.
- Example: [How to Create a Custom Physics Engine](https://gamedevelopment.tutsplus.com/series/how-to-create-a-custom-physics-engine--gamedev-12715)

- **Build Your Own Voxel Engine**
- Languages: C++, Java
- Why: Explore volumetric rendering and procedural generation.
- Example: [Let's Make a Voxel Engine](https://sites.google.com/site/letsmakeavoxelengine/home)

---

## **7. Tools & Utilities**
These projects help you build practical tools that can be used in everyday development.

- **Build Your Own Text Editor**
- Languages: C, Python, Rust
- Why: Reinforces text manipulation, UI design, and file handling.
- Example: [Build Your Own Text Editor](https://viewsourcecode.org/snaptoken/kilo/)

- **Build Your Own Command-Line Tool**
- Languages: Go, Python, Rust
- Why: Learn argument parsing, CLI workflows, and scripting.
- Example: [Command Line Apps in Rust](https://rust-cli.github.io/book/index.html)

- **Build Your Own Search Engine**
- Languages: Python
- Why: Covers text indexing, ranking algorithms, and information retrieval.
- Example: [Building a Vector Space Indexing Engine in Python](https://boyter.org/2010/08/build-vector-space-search-engine-python/)

---
## **8. DevOps & Infrastructure**
- **Build Your Own CI/CD Pipeline**
- Languages: Python, Bash
- Why: Automates testing, building, and deployment processes.
- Example: [Continuous Integration System](http://aosabook.org/en/500L/a-continuous-integration-system.html)

- **Build Your Own Container Runtime**
- Languages: Go, Python
- Why: Understands containerization, namespaces, and cgroups.
- Example: [Build Your Own Container Using Less than 100 Lines of Go](https://www.infoq.com/articles/build-a-container-golang)

## **9. Security**
- **Build Your Own Password Manager**
- Languages: Python, Rust
- Why: Teaches encryption, secure storage, and hashing.
- Example: [Password Manager in Python](https://realpython.com/python-password-manager/)

- **Build Your Own Ad Blocker**
- Languages: JavaScript
- Why: Covers web scraping, pattern matching, and browser extensions.
- Example: [Build Your Own AdBlocker](https://levelup.gitconnected.com/building-your-own-adblocker-in-literally-10-minutes-1eec093b04cd)

## **10. Multimedia**
- **Build Your Own Video Player**
- Languages: C, Python
- Why: Explores video decoding, rendering, and synchronization.
- Example: [How to Write a Video Player in Less Than 1000 Lines](http://dranger.com/ffmpeg/ffmpeg.html)

- **Build Your Own Audio Synthesizer**
- Languages: Python, C++
- Why: Teaches signal processing, waveforms, and sound generation.
- Example: [Audio Synthesis in Python](https://zulko.github.io/blog/2014/06/29/sound-generator-synthesis-in-python/)

## **11. Embedded Systems**
- **Build Your Own IoT Device**
- Languages: C, Python
- Why: Covers sensors, microcontrollers, and communication protocols.
- Example: [IoT with Raspberry Pi](https://projects.raspberrypi.org/en/projects/build-your-own-weather-station)

- **Build Your Own Robot**
- Languages: Python, C++
- Why: Combines hardware control, sensors, and AI.
- Example: [Robotics with ROS](http://wiki.ros.org/ROS/Tutorials)

## Build Your Own ...

Certainly! Here are some additional "Build Your Own..." project ideas that can further enhance your engineering skills across various domains:

### **1. Build Your Own `CI/CD Pipeline`**
- **Languages**: Python, Bash, Go
- **Why**: Learn about continuous integration and deployment processes.
- **Example**: [Continuous Integration System](http://aosabook.org/en/500L/a-continuous-integration-system.html)

### **2. Build Your Own `Container Orchestration System`**
- **Languages**: Go, Python
- **Why**: Understand how container orchestration systems like Kubernetes manage and scale containers.
- **Example**: [Kubernetes from Scratch](https://github.com/luxas/kubeadm-workshop)

### **3. Build Your Own `Load Balancer`**
- **Languages**: Go, Python, C++
- **Why**: Explore how load balancers distribute traffic across servers.
- **Example**: [Let's Create a Simple Load Balancer](https://kasvith.me/posts/lets-create-a-simple-lb-go/)

### **4. Build Your Own `Distributed File System`**
- **Languages**: Go, Java, Python
- **Why**: Gain insights into distributed storage systems like Hadoop HDFS or Google File System.
- **Example**: [Building a Distributed File System](https://www.cs.cmu.edu/~dga/papers/dfs-sosp2003.pdf)

### **5. Build Your Own `Message Queue`**
- **Languages**: Go, Python, Java
- **Why**: Learn about message queuing systems like RabbitMQ or Kafka.
- **Example**: [Sol - An MQTT Broker from Scratch](https://codepr.github.io/posts/sol-mqtt-broker)

### **6. Build Your Own `API Gateway`**
- **Languages**: Node.js, Python, Go
- **Why**: Understand how API gateways route and manage API requests.
- **Example**: [Building an API Gateway](https://medium.com/@madhukaudantha/building-an-api-gateway-using-node-js-express-9c6e87f7c53a)

### **7. Build Your Own `Key-Value Store`**
- **Languages**: Rust, Python, C++
- **Why**: Explore the fundamentals of key-value stores like Redis or Memcached.
- **Example**: [Build Your Own Key-Value Store](https://github.com/jonhoo/rust-kv-store)

### **8. Build Your Own `Chat Application`**
- **Languages**: JavaScript (Node.js), Python, Go
- **Why**: Learn about real-time communication using WebSockets or other protocols.
- **Example**: [Writing Scalable Chat Service from Scratch](https://nbaksalyar.github.io/2015/07/10/writing-chat-in-rust.html)

### **9. Build Your Own `Static Site Generator`**
- **Languages**: Node.js, Python, Ruby
- **Why**: Understand how static site generators like Jekyll or Hugo work.
- **Example**: [Build a Static Site Generator in 40 Lines with Node.js](https://www.webdevdrops.com/en/build-static-site-generator-nodejs-8969ebe34b22/)

### **10. Build Your Own `Version Control System`**
- **Languages**: Python, C, Rust
- **Why**: Dive deep into version control mechanisms like Git.
- **Example**: [Write Your Own Git Plugin with Python](https://joshburns-xyz.vercel.app/posts/build-your-own-git-plugin)

### **11. Build Your Own `Machine Learning Framework`**
- **Languages**: Python, C++
- **Why**: Gain hands-on experience with the inner workings of machine learning frameworks like TensorFlow or PyTorch.
- **Example**: [Build a Deep Learning Library](https://www.youtube.com/watch?v=o64FV-ez6Gw) [video]

### **12. Build Your Own `IoT Platform`**
- **Languages**: Python, C++, JavaScript
- **Why**: Learn about IoT device management, data collection, and analysis.
- **Example**: [IoT with Raspberry Pi](https://projects.raspberrypi.org/en/projects/build-your-own-weather-station)

### **13. Build Your Own `Real-Time Analytics Engine`**
- **Languages**: Python, Go, Java
- **Why**: Explore real-time data processing and analytics.
- **Example**: [Building a Real-Time Analytics Engine](https://engineering.linkedin.com/blog/2016/06/building-real-time-analytics-engine)

### **14. Build Your Own `Blockchain Explorer`**
- **Languages**: JavaScript, Python, Go
- **Why**: Understand how blockchain explorers visualize and interact with blockchain data.
- **Example**: [Building a Blockchain Explorer](https://github.com/alethio/ethereum-lite-explorer)

### **15. Build Your Own `Virtual Machine Monitor (Hypervisor)`**
- **Languages**: C, Rust
- **Why**: Learn about virtualization technologies and hypervisors like Xen or KVM.
- **Example**: [Writing a Hypervisor](https://github.com/mit-pdos/xv6-public)

### **16. Build Your Own `DNS Resolver`**
- **Languages**: Go, Python, Rust
- **Why**: Understand how DNS resolution works under the hood.
- **Example**: [Building a DNS Server in Rust](https://github.com/EmilHernvall/dnsguide/blob/master/README.md)

### **17. Build Your Own `Voice Assistant`**
- **Languages**: Python, JavaScript
- **Why**: Explore natural language processing and voice recognition.
- **Example**: [Building a Voice Assistant](https://realpython.com/python-speech-recognition/)

### **18. Build Your Own `Email Client`**
- **Languages**: Python, JavaScript
- **Why**: Learn about email protocols like SMTP, IMAP, and POP3.
- **Example**: [Building an Email Client](https://realpython.com/python-send-email/)

### **19. Build Your Own `Peer-to-Peer Network`**
- **Languages**: Python, Go
- **Why**: Understand decentralized networks and peer-to-peer communication.
- **Example**: [Building a Peer-to-Peer Network](https://github.com/mafintosh/hypercore-protocol)

### **20. Build Your Own `Data Pipeline`**
- **Languages**: Python, Go, Java
- **Why**: Learn about ETL (Extract, Transform, Load) processes and data pipelines.
- **Example**: [Building a Data Pipeline](https://towardsdatascience.com/building-a-data-pipeline-from-scratch-with-python-and-airflow-6c6c7b5b6c7e)

---