For the course Instruction Set Architectures and Compilers, the final project consisted of a pair project, where we had to design and implement a fully functional C-compiler from scratch based on the theoretical knowledge that we have acquired during our course. The compiler was implemented in C++, and together with another team-mate, we implemented everything from the Syntax Lexer, to the Abstract Syntax Tree Generation to the final Assembler that would generate the compiled Machine Code of any program that could run on a MIPS processor. Building such a fundamental tool from scratch was one of the most valuable learning experiences I had in software to date, as building a compiler for a programming language requires oneself to understand all the little technicalities of software down to the underlying hardware.