screencap of github readme

Compute Cluster Automated Setup

April 2023 Github Link Youtube Video Demonstration (6 mins)
Technologies: Linux, Ansible, Python, AWS, Terraform, Automation

This was a research project for my class High Performance Computing at Trent University. It is an automated setup of a cloud compute cluster managed by SLURM.

A single shell script runs Terraform to deploy the 'hardware', Python to gather IP and create configuration files on the fly, and Ansible to configure the servers.

Once the script finshes running, a login node is available to shell into and run jobs using SLURM.

buildroot logo
Technologies: Linux, Embedded Linux Build Systems, Buildroot, Basic Networking

Building on the below project, I experimented with buildroot to automate and make easier the process of creating a custom Linux disto for the Beaglebone Black.

I largely followed Bootlin's tutorial to create this system.

picture of beaglebone black
Technologies: Linux, Embedded Linux, The Linux Kernel, Cross Compiling

Likely one of the more interesting project's I've had the chance to work on, this was a project which followed Bootlin's Free Training Materials and the first few chapters of Mastering Embedded Linux.

The links above are to a blog series I wrote detailing this project. Which largely consisted of building a custom Linux distrobutution from scratch on the Beaglebone Black.

Challenging yes, but I learned a great deal about how Linux works at it's lowest and first levels.

screencap of github readme

Homeserver Automated Configurations

Jan 2023 Github Link
Technologies: Linux, Ansible, Docker, Automation

This is a continuous work in progress Ansible and Docker Compose based automated configuration for my home server.

I've made the github link private to increase the security of my server.

My home server is currently running Nginx Proxy Manager, Nextcloud, and MariaDB to store these services configurations, with plans to expand this to other services.

The set configuration of the hosts file is to be used in conjunction with the scripts/ This is a testing environment which runs the playbook on an Alpine Linux docker container.

arch neofetch

Installed Arch Linux

Oct 2022 What is Arch? btw I use Arch
Technologies: Linux, Command Line

I did this just so I could finally say "btw I use Arch" or "I use Arch btw".

But for real, Installing Arch was just the next step in my journey of learning more and more about the Linux operating system, and operating systems in general.

screencap of github readme

Gitlab Server Infrastructure as Code

Jul 2022 Github Link
Technologies: Linux, Ansible, Terraform, Automation

A fun little experiment in which a Gitlab server is setup with only a few keystrokes and password entries.

This was my first ever use of Terraform and Ansible. It is not an optimized project at all, and could very much use some future improvements. Nonetheless, it was super fun to dip my toes into the IaC world.

our website

TOHacks 2022: Tree Huggers

May 2022 Github Link Web Link Devpost Blog
Technologies: Linux server, Git/Github, MySQL, REST API, PHP

My friends Lindsay, Avery, and I participated in TOHacks this year, as all of our first hackathon!

We built an application that utilizes a REST API made by Digital Humani that requests trees to be planted based on POST requests.

This was a lot of fun to make, I had the most fun leveraging my Linux skills setting up the dev environment for everyone, administering the webserver and Mysql database, as well as teaching my crew some git tricks.

web browser displaying index.html my server provided

C Programming: an HTTP Server

May 2022 Github Link Blog
Technologies: Linux/UNIX, POSIX, C, TCP, Sockets, HTTP

This was a personal project that I have been really looking forward to writing for a long time.

Continuing on with my last project working with TCP, I wanted to deepen my knowledge with it, and prove to my self I understand the basics by writing this webserver.

This project helped me a lot with computer networking, and C programming.

2 terminals running client server program

Linux Systems Programming: TCP Client-Server File Transfer

April 2022 Github Link
Technologies: Linux/UNIX, POSIX, C, TCP, Sockets

This is the final project from my class COIS-3380 - Systems Programming.

This project was my first time working with Web Sockets, specifically TCP sockets. I really enjoy writing C for Linux, this project was thrilling to write and is likely only the first of many C networking programs I'll write.

terminal after running ls

Linux Systems Programming: ls

February 2022 Github Link
Technologies: Linux/UNIX, POSIX, C

This is another project from my class COIS-3380 - Systems Programming.

I had a great time working on this project, and I'm still working on adding to it. My next step is to work it so that the program can take command line arguments like -r or -l.

bash logo

System Administration: Bash Scripts

January 2022 Github Link
Technologies: BASH, Linux/UNIX

This repo contains BASH scripts that I have written. Currently, it contains three I wrote for my class COIS-3380 - Systems Programming, and some other assorted ones I've written since.

I really-really enjoy working with Linux and had a great time making these scripts.

See Github for a current description of these scripts

Github Readme

C++ FizzBuzz With Unit Tests

January 2022 Github Link
Technologies: C++, Test Driven Development, Unit Tests

Perhaps the mother of all simple programs. Hardly even worth posting about, except for the fact that this was my first every time writing and using unit tests.

a screenshot of my website

Local Temperature Website

August 2021 Project No Longer Live Github Link
Technologies: PHP, Python, MySQL, Linux, Raspberry Pi, PureCSS, External API, BASH

This project starts on a Raspberry PI, with sensors attatched, running inside of my apartment. Contained within, there is a short Python script that pulls the sensor data, and pushes it to a MySQL database. This Pi is automated with modifications to run the script every 15 minutes.

When a user accesses the website, a PHP script runs and gathers the latest data from two sources: The MySQL Database, and an external weather API that returns JSON formated climate data.

This data is then displayed in a responsive grid system to see. :)

Update Feb 2022:

After having to move pi's more than once. I got sick of setting this system up more than once. With my new knowledge of bash scripting I decided to improve this workflow incase I ever need to reinstall again.

The script is simple but helpful. It sets the pi up to allow I2C so the sensor can work, checks python versioning, installs package, and sets a cronjob to upload the temp data.

a screenshot of my website

Web Applications Class Final Project: Time Sheet Manager

Summer Semester 2021 Project Link - COMING SOON, porting from university webserver in progress Github Link
Technologies: PHP, MySQL, Javascript, AJAX, CSS Flexbox

This was a pairs project completed for COIS-3420 - Web Application Development. We were assigned to build a timesheet management website using the languages and tools we learned prior.

With a Vanilla PHP backend, and a Vanilla JS front end, this was a great project to get our feet wet in the world of web development.

This project includes: Session managment, HTML generation, secure password storage/retrieval, and guest login ability.