My name is Henry Morgan (not to be confused with Captain Morgan 🏴☠️).
I enjoy coding and learning to code in multiple areas of study in Computer Science. I continue coding practice by using freeCodeCamp and LeetCode! 💻
I am a motivated problem solver and strong communicator looking to prove my value, and I look for an opportunity to advance and expand my current skillset. I'd also like to earn a masters degree in Computer Science and/or Software Engineering. Lately, I have been considering graduate programs at a variety of universities.
I worked for Nylex.net as an Automation Technician. My job was to work on projects for clients and the company using software engineering practices. My most notable project during this position is the Project/Promo Initiation (See Projects section for more info).
My first job was making "pizza pizza" during my first semester in college.
Bachelor of Science in Computer Science - California State Polytechnic University, Humboldt (Cal Poly Humboldt)
I'm a Computer Science graduate with honors from Cal Poly Humboldt (formerly known as Humboldt State University). After finishing every possible GED requirement I could complete in community college, I transferred to this polytechnic to put all my focus into studying Computer Science.
Computer Science Outstanding Student of the Year 2021-2022, from the Cal Poly Humboldt Department of Computer Science.
I attended College of the Redwoods to complete all the prerequisites I can take before transferring my way to a university. In the process, I earned an associate's degree in Liberal Arts: Science Exploration.
Foundational C# with Microsoft - July 2024
Machine Learning with Python - June 2024
JavaScript Algorithms and Data Structures (Legacy) - April 2023
One of the main reasons why I was hired at Nylex.net was because they needed help from someone to program an initiation system for the company SHN. SHN is an engineering consultant company based in Eureka, California, and they needed an internal form to initiate new projects and promos by doing the following:
- Have the user enter PPI info into a multi-page web form.
- View their input information.
- Send it to a server to manage the data.
- Insert the data into a Projects database to be used for searching, modifying, and updating information.
- Create the necessary directories within a shared drive to host project information.
- Apply Windows Protections to the folders that require it.
- Create a PDF to summarize all the user's submitted information.
- Grab emails from admins and the selected individuals from the user's submission and send them all a notice.
I created 5 different forms in total that follow the above scheme. A few of the forms also include searching directories to find corresponding project folders and files to manage.
Some of the tools I used for this project were Node.js, express, NPM, JavaScript, HTML, Azure, and CSS. Overall, this project ended up being very JavaScript heavy. Over time, I continuously made improvements to the system based on the company's suggestions. For every improvement I made, I'm glad about how well it turns out.
The PPI is still currently in use today. For security reasons, I'm keeping the original repository for this project private within Nylex's GitHub organization. However, I'm currently working on an updated and improved version here.
To replace Nylex.net's current website, I was tasked to customize a new one to look more modern. But rather than using a CMS, web designer, or writing primarily in traditional website languages (i.e. HTML, CSS, and JavaScript), I chose Python's Django framework. For me, the creation of this project was the most complex because of my choice of tools that all need to work together. These tools include the following:
- Django (Python application framework)
- PostgreSQL
- Nginx
- Certbot
- Docker
- Kubernetes
My choice of approaching this project was to make the website an application that is editable through Django's built-in admin portal. Most of the web pages use the same consistent template for all of its web pages, and the individual page content is grabbed from the PostgreSQL database by using the slug name in the URL. It uses Bootstrap 5.0 for much of its stylization and user interactions. Individual page content can be edited from the admin portal, and Django renders the template tags in the HTML files to fill the page content.
Next, I decided to introduce Docker containers to host the application. For this to work, I followed the example here, which uses Docker Compose to create multiple containers. For this application to work, I needed a proxy server (Nginx) to help preload media and external files to render each page. I also created a Certbot container for the website to use HTTPS.
Finally, I decided to introduce Kubernetes to learn how I can host these containers in an enterprise environment. The reason I wanted to use Kubernetes is to keep the website accessible during times of high web traffic and to manage software deployments.
You can find the repository for this project here.
For the senior capstone project, I grouped up with three fellow classmates to build a puzzle game about the basics of computer chips. Our inspiration was from the classwork we'd done in our Computer Architecture class. In that class, we used logic chips to build more complex chips using a selection of inputs and outputs. The goal for each project in that class was to connect chips together in a way that every selection of inputs leads to the correct set of outputs. Our game is called Assembler Exemplar.
Our GitHub repository is located here.
Some more projects I'm proud of include the following:
- Portfolio.
- Recreated the typical operating system layers using C++.
- Using C# to interact with M-Files (a document management system) to build interactive objects.
- Built executable programs using Python.
- Wrote PowerShell scripts to manage the Windows operating system and devices.
- Custom built a database system for memes.
- Docker containers demonstrating examples of cybersecurity attacks written in the C language.
- A custom database built using Airtable for a local elderly support agency.
- Play video games (My favorite series is The Legend of Zelda). 👾
- Take walks on my free time.🚶♂️
- Traveling (both in real life and through Google Maps). 🗺️
- Watch various videos on YouTube. 🟥
- Watch Anime. 🗼
- Learn Japanese using Duolingo. 🎌
- Dank Memes. 🤤
- Boy Scouts of America
- Highest Rank before leaving was Star Scout.
- Volunteer work for my local community.
- Exciting trips along the west coast.
- Clubs:
- Computer Science Club
- Key Club
- Drama Club