Kartikay Bhardwaj

Here are some of my hobby cs explorations aka projects.

1.Edk2: How to get into firmware development for enterprise servers? Or what does that even mean? Edk2, an open-source repository handled by Intel answers just that. I documented my journey of understanding and working with the codebase. I wrote Uefi Applications, PEIM Modules, Dxe Drivers, Communication Protocols and more.

2.Research in Computer Architecture: During the final year of my Master's program, I worked as a researcher in the Sustainable Multicore Architecture (SUSMA) Lab at IIT Guwahati. My research focused on optimizing Non-Volatile Memory (NVM) technologies, specifically enhancing the speed of integrity checks. I developed a novel Bonzai Merkle Forest Topology to address this challenge. To evaluate its effectiveness, I implemented and tested the solution through full-system simulation using GEM5, benchmarking its performance against the SPEC suite beating the current SOTA.

3.Nand To Tetris: Basically made a working computer from just Nand gates. Made essential circuits using Hardware Description language (HDL) and integrated to form ’Hack’ CPU. Created a high-level programming language, ’Jack’, and made a compiler, virtual machine and assembler to translate it into machine code for ’Hack’ CPU. Created a simple Operating System called ’JackOS’ that handles memory management and I/O. I wrote a blog post about it sharing my experience.

4.Pronunciation Learning Software: Real time speech processing with almost 85% accuracy done entirely in c. Raw speech signals are collected using cool edit. Using Inverse Fourier Transform and Durbin's Algorithm the signal is changed into a more workable form called Cepstral Coefficients. Linde-Buzo-Grey (LBG) algorithm is used to make a well-quantized codebook. Finally, a Hidden Markov Model is used for prediction.

5.Chess AI: It is a smart AI implemented entirely in Java using heuristic algorithms. It abides by all the rules of chess ranging from pawn promotion to castling. It can predict and make smart moves against a human player. To predict smart move min-max Algorithm along with Alpha Beta pruning is used. A playable interface to play against this AI is also implemented.