# About I'm Jacob McDonnell. I have been interested in computers since I was young. My father has been in the technology field since before I was born, so I guess that interest came from him. Currently, I am a 7th semester student at Penn State studying computer science. My interests, with respect to computers, are programming, UNIX/Plan9, and electronics/hardware. Thanks to AP Computer Science A, I have a good understanding of Java. In college, I picked up Python, C, and most recently C++. I would like to write my own unix-like operating system one day. I do not know what I will do with this website just yet, maybe I will write articles about projects that I am working on. # Projects ### [This Website](https://github.com/JacobMcDonnell/JacobMcDonnell.com) is written in Go using the standard net/http package. It is hosted on VPS running Red Hat Linux using NGINX as a proxy. ### [Quick and Dirty MIPS Assembler](https://github.com/JacobMcDonnell/QDMA) is a MIPS assembler written in Go. QDMA supports the Executable and Linkable Format for binary executables. It is a two pass assembler where the first pass tracks the labels for functions and data and the second pass assembles the instructions. ### [Quick and Dirty MIPS Emulator](https://github.com/JacobMcDonnell/QDME) is a MIPS emulator written in C. It supports 32-bit ELF binaries and emulates a simple MIPS processor. # Class Projects ### Dynamic Memory Allocator: This is my implementation of the malloc, free, and realloc functions in C. This project leverages a segregated free list for fast allocation and boundary tag coalescing for better memory utilization. This is one of the course projects for Penn State's CMPSC 473 Operating Systems Design & Construction. ### MIPS Implementation: This is an implementation of a pipelined 32-bit MIPS processor in Verilog. This project was the course project for Penn State's CMPEN 331 Computer Organization and Design. ### JBOD Server: This is a C server that provides an interface for a user to connect to a remove JBOD (Just a Bunch of Disks) server. It implements a fully associative cache for faster reads and writes. This was the course project for Penn State's CMPSC 311 Introduction to Systems Programming. # Penn State Advanced Vehicle Team (AVT) [Penn State AVT](https://www.avt.psu.edu/) is a club competing in the AutoDrive Challenge II, working to build a self driving car. I join the club in the Fall of 2024, working in the Guidance Navigation and Controls team. Currently I am working on some software to help score the car after each test run.