Projects
Homelab
I am an enthusiast of homelabbing. I have a server rack in my room with a few servers and some networking equipment. This lab also provides internet to my desktop and other devices I have via ethernet. Currently, I am running bare-metal Ubuntu 24.04 LTS on my servers. I am mainly running a private Minecraft server and working on training CERSE, a project listed below. I have plans to start a cluster using Proxmox on my servers, and implement proper infrastructure soon.
I am considering using LDAP and IPA for user management, as well as writing an Ansible playbook to automate the setup of new virtual machines and servers. I will also run my own DNS server and a VPN server for remote access into the lab. I still plan on running a minecraft server for friends and maybe some other game servers, since it's a good way to bring people together for some fun.
Hardware
Device | Processors | Memory | Storage | Networking |
---|---|---|---|---|
IBM System x3550 M3 | 2x Intel Xeon X5450 = 8 (12) | 32GB DDR2 | 2x 76GB 10k SAS | 8x 1GbE RJ45 |
DELL PowerEdge R420 | 2x Intel Xeon E5-2430 = 12 (24) | 192GB DDR3 | 2x 1TB 7.2k SATA | 2x 1GbE RJ45 |
DELL PowerEdge R730xd | 2x Intel Xeon E5-2680 v3 = 24 (48) | 128GB DDR4 | 5x 1TB SAS SSD | 4x 1GbE RJ45, 2x 10Gb SFP+ |
DELL PowerEdge R740xd | 2x Intel Xeon Gold 6154 = 36 (72) | 512GB DDR4 | 12x 4TB 7.2K SAS | 2x 1GbE RJ45, 2x 10Gb SFP+ |
Raspberry Pi 4B | 1x ARM Cortex-A72 = 4 | 8GB LPDDR4 | 64GB microSD | 1x 1GbE RJ45 |
Raspberry Pi 5 | 1x ARM Cortex-A76 = 4 | 8GB LPDDR4 | 64GB microSD | 1x 1GbE RJ45 |
MikroTik CRS326 | N/A | N/A | N/A | 24x 10Gb SFP+, 2x 40Gb QSFP+ |
MikroTik CRS354 | N/A | N/A | N/A | 48x 1GbE RJ45, 4x 10Gb SFP+, 2x 40Gb QSFP+ |
CERSE
CERSE, Central Engine for Resource and System Efficiency, is a modern datacenter management tool. It is designed to manage anything from a simple homelab to a large scale cluster of datacenters. Built in Go, CERSE is lightweight and efficient. The core of CERSE is a simple app that collects information from systems via IPMI, SSH, and BMC tools and stores it in a compressed format in a database. This data is then interpreted both by algorithms and a custom written machine learning model to provide insights into the efficiency of the datacenter, and to catch potential issues before they become problems. Results can be accessed via a CLI interface and a web panel which is neately designed to fit on all types of devices. The web panel also comes with a fancy panel slideshow design for quick-glance metrics to put on a large screen. Additionaly CERSE can be accessed through voice control, and can interpret basic sentences into questions and in some cases, instructions. CERSE can also perform basic tasks on machines in your lab through its connected tools. You can organize your resources into groups, which can have recursive subgroups. CERSE is the perfect tool to connect your infrastructure.
Velox
I've always been interested in how compilers work, so I decided to create my own programming language. Velox is a C-like programming language in its early stages of development. It's designed to be a low-level language that can run in embedded systems, and be used for HPC. Velox will have the capability to run programs on an Intel Xeon Phi Coprocessor, and on a simple microcontroller. It will also have fun features that may seem out of place in a low-level language, such as pre-built functions for matrix math and other scientific computing tasks, which will be optimized for both running on CPU, GPU, and other accelerators. Velox will have a synchronous networking library, and will be able to communicate with multiple instances of a program running on different machines. I think that Velox will be a great language for scientific computing, and for general low-level programming.
This project is less high priority, and will continue to take shape as I go through college.
Cog
Performance is a big deal in software development. Cog is a virtual environment built in Go that simulates a basic 32-bit machine, including the CPU, RAM, storage, and networking (between other machines only). Programs can be written in a custom assembly language as well as a subset of C which gets compiled to this custom assembly language. There will be many ways to optimize code you write, and you can see the effects of your optimizations in real time. Cog will also have a built-in performance metrics, and you can measure your performance down to the clock-cycles. There will be many "problems" which have a set solution that you can try your hand in to make the fastest solution. There will also be accounts and leaderboards for these problems. Cog will also simulate basic threads and processes, which allows for benchmarking in different contexts.
This project is less high priority, and will continue to take shape as I go through college.
Graphical/Demo Projects
Physics Simulation
Demo coming soon.
WebGL Water Simulation
Demo coming soon.