My Projects

  1. Paxos : In a universe where IOT devices represented by servers communicate with a backend cluster, all communication happens via RMI’s . The backend cluster synchronizes itself by employing the Paxos algorithm. written in Python Source Code

  2. Consistent Database in Cassandra: A Java driver which ensures consistency across cassandra clusters . Server side consistency(Totally ordered multicast algorithm) and Client Side consistency(Monotonic reads,writes, writes follow reads and reads follow writes using Lamport clocks) Source Code

  3. Memory Allocator and Garbage collector: Replaced the memory allocator and garbage collector(malloc) in C++ with a custom allocator. The garbage collector is conservative collector . Malloc was replaced and linux kernel was run to prove correctness. Source Code

  4. Memcached : A memcached like server was built in C++. LRU and MRU cache eviction algorithms where used. Fragmentation and cache miss statistics for these algorithms was collected. Source Code

  5. A compiler in Ocaml for a functional language.: This compiles to ARM assembly. The language supports functions as first class objects, closure and arrays. The programs go through various transformations such as A-Normalization, Closure Conversion,register allocation. (Note to self. It has been too long since I wrote this code. Need to go over it again. This can be a blog post revise how this works) Source Code of the main Compiler Module

  6. Synthesizer in Ocaml : A program with wholes is fed in (sketch) along with a behaviour modeled as a spec and a synthesizer fills up the wholes based on the spec . The program is transformed into a series of Constraint Equations which are fed into a SAT solver and solved. Source Code

  7. TCP through UDP : The properties given by TCP (corruption, packet loss, pipe lining) where built given an evil unreliable channel which uses UDP written in Java. Source Code