Market Making Limit OrderBook

During the summer in kyoto I got the chance to participate in a simulated trading event called Trade-A-Thon organized by Optiver. It was an exciting event for me, as I learnt about market making and what an order book is. Upon seeing the simple UI of the platform on which the event was conducted I thought to myself that I should try building it, as it would be a good exercise for me to learn about orderbooks as well....

July 30, 2024 · 1 min · Tejas Anand

ChaTRoom using boost::asio

This project is a simple chat room application implemented using the boost::asio library in C++. The chat room allows multiple clients to connect to a server and exchange messages in real-time. The server acts as a central hub, relaying messages between clients. You can also whisper to specific clients by mentioning their username in the message. The server will ensure that the message is delivered only to the intended recipient....

July 30, 2024 · 1 min · Tejas Anand

Building Reliable Congestion Control Protocol

The objective of this assignment was to design a TCP protocol capable of downloading and uploading reliably while dealing with congestion efficiently The server was implemented as a leaky bucket, every time we sent a request our tokens would get consumed, if our bucket became empty we would get squished and get penalised. The server would also randomly drop packets, designed to simulate a real time network. So we had to modify the rate of sending requests adaptively based on various metrics like EWMA RTT, Last squish time to optimise for speed while maintaining reliability....

July 30, 2024 · 1 min · Tejas Anand

Distributed Maze Generator

In this project, I undertook implemented distributed versions of well-known graph algorithms such as Prim’s, Dijkstra’s, Kruskal’s, DFS, and BFS specifically tailored for maze generation and solving, using the MPI library in C++. To achieve parallelization, I employed a strategy for BFS and Dijkstra’s algorithms. I introduced the concept of node ownership, assigning specific nodes in the graph to different processors. This allowed for a more balanced distribution of work and enabled efficient parallel processing of the graph....

July 30, 2024 · 1 min · Tejas Anand

Copy on Write with Swapping in xv6

Copy on Write (COW) is a memory management technique that allows multiple processes to share the same memory pages until one of them modifies the content. When a process attempts to modify a shared page, a copy of that page is created, ensuring that the original page remains unchanged. This approach minimizes memory duplication and improves efficiency by reducing the need for unnecessary memory copies. Swapping, on the other hand, is a process where the operating system moves pages of memory between the physical memory (RAM) and the disk....

July 30, 2024 · 1 min · Tejas Anand