About Me
My name is Joey Gumulka and I am a current second year student in the University of Windsor’s Honours Computer Science Program. I am a native Ontario resident who grew up in a small town north of Toronto. Since early childhood, I have always had an intense fascination with everything computer and video game related.
As I grew older, my parents fueled my passion by signing me up for a weekend computer science program. There I was first exposed to the basics of coding and the joy and creativity it provides. From then onwards I have been experimenting with making my own programs and games. In high school I took two computer courses, one in Python and the other in Java. Now, I continue to grow and explore my interests in computer science aided by the knowledge I am gaining through the University of Windsor.
Another element of myself that is worth highlighting is that I am a French speaker. I began attending school in the French Immersion program at age 6 and continued until I graduated high school with an Ontario French Language Certification. Moreover, I have written and been certified at a DELF B2 level.
I would describe myself as a dedicated and ambitious worker. I always strive for the absolute best in anything I take on in life. Although I have yet to work in the tech industry, I have had a fair amount of work experience as a line cook in various restaurants. Being a cook is an experience that through the years has shaped me and my thought process. In the kitchen, there is nothing more critical than communication with your co-workers. Orders must be finished and plated at the same time, ingredients must be prepped, and space must be managed in a highly effective way for success. I firmly believe that this mindset of extremely purposeful, clear, and efficient communication is something I can apply working in any environment to ensure I am a valued and productive member of any team I find myself on.
In my free time, I have many preferred hobbies. I enjoy playing the bass guitar, keeping a small aquarium, playing video games, and exercising. I strongly feel that a balanced life with a range of hobbies is critical in developing a dynamic mindset that allows you to tackle new challenges while giving you a diverse skill set.
In terms of the future of my professional career, as a young student, I am very open-minded and enthusiastic. I know that I most definitely would like to work with technologies; however, I could see myself finding a place in many sectors. As of right now, I have a particular interest in AI, software, and game design.
I am always open and available to be contacted and more than willing to discuss myself, my skills and experiences, or answer any questions. Please feel free to access my contacts as listed under the “Contact Me” tab.
Education
Notable Achievements
- Dean's list in 1st year
- $1000 entrance scholarship for academic performance
- Fall 2024 Term Avarage; 83.6%
- Cumulative Avarage; 81.53%
Current Courses
COMP 3220: Object-Oriented Software Analysis & Design
In Object-Oriented Software Analysis and Design, we are focusing on applying object-oriented programming concepts to create software and algorithms. The course emphasizes how encapsulation, polymorphism, inheritance, and abstraction can lead to more efficient and easier-to-understand programs.
COMP 2140: Language, Grammar, & Translators
In Language, Grammar, and Translators, we are learning the fundamentals of programming language construction, including how compilers, lexical analyzers, and parsers function. We are applying these concepts by creating simple projects that reinforce our learning.
COMP 2800: Software Development
Software development is actually proving to be my favorite course this semester thus far, we are focusing on using object oriented programming to create software, expanding on the basic object-oriented programming course I took last semester. Uniquely, we are exploring and making use of Java3D which allows us to generate 3d models and graphics throughout the course.
MATH 1020: Mathematical Foundations
This course is essentially an introduction to creating mathematical proofs and the methods as well as applications of doing so. We are exploring concepts such as the nature of real numbers, proofs, and boolean logic.
PHIL 2520: Existentialism
In Existentialism, we are deeply studying the works of many different philosophers, both historic and modern, such as Nietzsche, Heidegger, and Kierkegaard. This course is providing me with a deep insight into the nature of the existentialist beliefs as well as working to apply those to my own modern experience in a meaningful manner.
Projects
A Personal Website; An Exploration of HTML, JavaScript, and CSS
A Fresh New Look! - 01/09/25
This website serves as a platform to document my personal projects, education, and ongoing undertakings. Naturally, it requires frequent updates to accurately reflect these aspects. In the latest update, I added new information and updated the resume, current courses, projects, and contact sections.
Additionally, I enhanced the website's design by introducing an improved color scheme and font, making it more visually appealing and readable. I also removed unnecessary code and reorganized the code structure to better accommodate future updates. Furthermore, I fixed a bug that caused tab functionality issues as well as improved mobile optimization for the site.
The Beginnings - 09/24/24
This project segment is about the very website you are currently viewing. My objective in starting this project was to create a dedicated online space where I could showcase my projects and professional profile, allowing me to easily share my work.
The process began with an extensive research session, during which I decided to use GitHub as the platform for building my website due to its reliability and ease of use in both writing and publishing content.
The first step was constructing a simple HTML skeleton—a new language for me in the context of this project—forming the structural foundation for further development. I then incorporated styling by adding color, fonts, images, and layout using a combination of HTML and a separate CSS file. Since this was my first experience working with CSS, I devoted a considerable amount of time to learning the syntax and troubleshooting errors before achieving any meaningful results.
The most challenging aspect of the project thus far has been implementing functional tabs that switch between different sections of the site. Initially, I used a pre-written JavaScript file to manage the tab-switching logic. However, the interaction between my formatting—particularly the use of Flexbox in the CSS—was causing the JavaScript to malfunction. To resolve this, I had to modify and rewrite portions of the JavaScript, as well as adjust my CSS to ensure compatibility.
Looking ahead, I see this website as a platform for continuous improvement and development. I plan to integrate additional projects, such as interactive elements and games, as well as more refined and complex design features. This project has provided me with a solid introduction to web development, offering hands-on experience with a new platform and two new languages.
Please find below a link to my GitHub, where you can explore the code behind the website:
https://github.com/joeyGumulka/gumulka
ShrimpTV; A Hands-Free Tank Maintenance System
Automating My Aquarium; A Shrimp Keeper's Journey - 12/19/24
I have a hobby of maintaining a colony of fancy Taiwanese river shrimp, known as Neocaridina shrimp, in a small 5-gallon aquarium.
I enjoy decorating the tank, watching the shrimp eat, and observing their interactions. This hobby has been incredibly rewarding
and fulfilling. However, as a university student, I often need to be away from my tank for weeks at a time during holidays and
reading weeks. I quickly realized this posed a problem since there was no one knowledgeable enough to care for my shrimp in my
absence. The water in their tank would evaporate, and they would go unfed. Naturally, as a computer science student, I wanted to
use coding and technology to solve this issue.
Problem Analysis
The first step in the development process was identifying the essential tasks needed to maintain the health of my shrimp in my absence.
I narrowed this down to two primary needs: food and water. I needed a way to feed the shrimp and replenish the evaporated water in the
tank. Additionally, I wanted the ability to visually monitor the tank and track its temperature, as shrimp are sensitive to extreme
heat or cold.
Research and Design
With these requirements in mind, I began researching solutions. I decided to use an ESP32-WROVER CAM board due to its ample GPIO pins,
integrated Wi-Fi, and built-in camera compatibility. I then ordered the necessary components, including the ESP32, a NEMA 17 stepper
motor, a motor driver, a water pump, a relay, a temperature sensor, and other supporting hardware.
Next, I designed a simple wiring diagram. As I am not an electrical or computer engineer, this step required extensive research and
trial and error. Using my soldering iron, I assembled the system according to the diagram.
Implementation and Coding
With the hardware in place, I used my coding skills to bring the system to life. I created a website using HTML, CSS, and JavaScript,
providing an interface to control and monitor the system. I then downloaded pre-existing ESP32 code and modified it in the Arduino
IDE to incorporate the functionalities of the food dispenser, water pump, and temperature sensor.
For video streaming, I researched port forwarding and configured the system to pass the live video feed from the ESP32 camera to the
website. I also added a log feature on the site to record key activities, such as the last feeding and water replenishment. This log
is stored in a text file to ensure it stays updated across devices.
Testing and Results
I tested the system during the holidays, and I am pleased to report it worked perfectly. The system allowed me to monitor the shrimp,
feed them, and maintain water levels remotely. The "shrimp cam" video stream was also a hit among my family, who enjoyed watching the
shrimp dart around and enjoy their meals.
Reflections and Learnings
This project taught me so much about the creation process—from identifying a problem and analyzing it to researching, building, coding,
and troubleshooting a solution. Applying these skills has been immensely rewarding, and I feel better prepared to tackle larger-scale
projects, both for personal use and in my professional career.
Please find below a link to the shrimp monitoring system site, the code is available on my GitHub:
ShrimpTV.xyz