## 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 4th 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 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 ### Personal Projects [This Website](https://github.com/JacobMcDonnell/JacobMcDonnell.com) is written in Python using Flask. 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 #### !!! Some of the project will not be uploaded until the class is complete !!! #### !!! These projects are uploaded for potential employers, students do not copy !!! 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. 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. ## 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.