Skip to content
View fauzxan's full-sized avatar
🎯
Focusing
🎯
Focusing

Highlights

  • Pro

Block or report fauzxan

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Please don't include any personal information such as legal names or email addresses. Maximum 100 characters, markdown supported. This note will be visible to only you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
fauzxan/README.md

Fauzaan

Typing SVG


Highlights

Elgo | Startup

We found that Restaurants in SouthEast Asia consume 4 times more electricity per square meter as compared to office buildings.

But all the existing solutions in the market target only... commercial buildings?

Alas! I co-founded a startup called Elgo in 2022, which focused on developing algorithms to help restaurants save electricity.

πŸ•ΈοΈ Check out our website here!

🍽️ Check out the repository here!

πŸ—’οΈ Check out our whitepaper here!

Distributed Systems 🌐

Distributed Systems- like Blockchain, Cloud Services, P2P applications, etc. all function on a middleware that is built to be resilient and meet the requirements of a robust system, that appears singular to the user.

Given below is a view of the distributed system middleware that is required to make a functional service like Amazon Web Services, Ethereum, Azure, etc.

The projects listed below target to implement a different section of the above middleware stack.

πŸ“‘Lamport's original paper

Different systems may communicate at different times, and when this happens, there might be some inconsistency in the ordering of events at the two remote machines. The repository above discusses some key protocols to address this issue using Lamport's scalar and vector clocks.

Additionally, many tasks done in a distributed system require a central-server-like capability to coordinate the events between multiple machines. The above repository also has an implementation of bully algorithm, which is a leader election algorithm based on some consensus among the peers.

πŸ“‘Distributed Mutual Exclusion protocols

Distributed systems sometimes access a part of the memory/ some resource that can only be accessed by atmost one computer at a time. Examples of such sensitive information includes distributed ledgers, shared documents, bank accounts, etc.

The repository above implements three such protocols that are able to manage and grant access to locks to a machine on the network. We also go over an analysis of each of their performance, which has been outlined in the PDF attached.

πŸ“‘Original Chord paper

πŸ“‘Findings report

Traditional DNS systems rely on a hierarchical system of servers which are queries recursively or iteratively. With chord, the DNS system can be implemented over a P2P network, where the nodes in the network themselves can store the data. Moreover, the authoritative server can be found within 1 hop at best, and at worst within 3 hops - offering a significant advantage over legacy DNS systems. The implementation above presents a study of a DNS-Chord implementation in terms of performance, and fault tolerance.

πŸ“‘IVY original paper

Given above is an implementation of IVY - which is a shared memory system used by researchers at Yale. IVY is an excellent example of how the sequential consistency is implemented in real life, and this repository seeks to analyze it's performance over multiple scenarios described there.

Networking systems πŸ–₯️

Networks, like most other communication critical systems operate based on a set of rules that are critical to ensuring

  1. Reliability
  2. Scalability
  3. Time sensitivity

The repositories below explore some of the protocols on the network application stack that are able to ensure the above properties.

Messages sent over the internet are divided into packets of information with a fixed number of bytes each. The protocols discussed in the above repository deal with how we can send these packets to ensure that

  1. whatever is sent is actually received
  2. an appropriate labelled buffer is maintained so that missing packets are flagged
  3. resend mechanisms in place at the transport layer to ensure reliable blackbox protocol, to which you send a message, and you can rest easy knowing it has gone through πŸ™ƒ

The vanilla, the classic, the HTTP protocol itself πŸš€ Implementation of a simple application that uses the HTTP protocol, using REST API.

DaoNet is inspired by Riot Game's frame sync mechanism through a unified game clock. DaoNet seeks to extend these capabilities to a P2P network, where there is no central server to coordinate the interaction of the peers in the network. It navigates the presence of non-Byzantine faults in a P2P system and accounts for liveness constraint in multiplayer games.

⚑ Technologies

2023, wrapped πŸš€

Pinned Loading

  1. Reliable-Data-Transfer Reliable-Data-Transfer Public

    Exploring the usage of Stop and Wait, Give Back N and Selective Repeat Protocols

    Python

  2. DaoNet DaoNet Public

    A P2P latency averse adaptation of multiplayer games

    Python

  3. dns-chord dns-chord Public

    Implementing DNS functionality using chord framework

    Go 2 2

  4. Ascendas-Loyalty Ascendas-Loyalty Public

    JavaScript

  5. distributed_mutual_exclusion distributed_mutual_exclusion Public

    Three different algorithms to ensure mutual exclusion in distributed systems.

    Go

  6. distributed_systems distributed_systems Public

    Clocks and Elections in Distributed Systems

    Go