summaryrefslogtreecommitdiff
path: root/static/home.md
blob: b4b88339ae2dfcfdeed5e76c63d60caa811c6fbe (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
# 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. I'm a recent Computer Science grad from Penn
State.

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.