Joseph Protz
Boston-Based Software Engineer
Boston-Based Software Engineer
I began college as a CS major for the wrong reasons, I just figured it was good money. Because of this, I changed very quickly to MIS, and only after tackling a massive challenge using software in Excel to schedule for a school, did I realize that the motivation was intrinsic and I absolutely love solving problems.
To expand on this, in the past I was a teacher for students with autism, and then a scheduler for that same school. It was in scheduling that I rediscovered my passion for problem solving and logical thinking, however it was limited due to the scope of the problem. In other words, once I had solved this puzzle, my room for growth had hit a cap. I realized during this time that two things really motivated me the most; 1) I absolutely loved solving puzzles and problems that were very challenging, and 2) any of the improvements I made directly improved the lives of the students because of a better structured education, the staff were getting less burnt out, and so much more. After a year of scheduling, I decided that I wanted to pursue a career that let me solve problems like this on a daily basis and in the future I hope to use the skills that I acquire to continue to help out organizations that I believe in.
This was my first ever project, and I had a blast doing it. I was able to achieve MVP within 2 days and from there I started adding any feature that came to mind. What I ended up with was an app that allows you to play an AI in two different modes, a hard mode and a challenge mode. Hard mode uses the minimax algorithm so that the AI will never lose. Challenge mode uses a scale for the difficulty based on how many times you've won. I actually think it's pretty fun!
My second project was my first full stack application. It uses Ruby on Rails and PostgreSQL to allow a user to CRUD Lists of items, as well as the items themselves. For the client I used Javascript, jQuery, and Handlebars to allow the user to seamlessly edit their items and lists without the need for a form, as I was finding forms quite clunky for this type of application. I took inspiration from Apple's Notes application.
I found my first time dealing with user ownership and relational databases quite a bit more challenging than I had expected, and I loved the process of persevering through in order to create the app I had envisioned instead of settling. In the future I would love to add a feature that allows a user to share their list with another user.
My third project was a team project where we built a bucket list app that allows a user to CRUD bucket list items, and cross those items off of their bucket list.
For this project I was designated Scrum Leader. It was my first time using project boards on Github to stay organized, and was great practice having to use a team Github Workflow. The goal for this project was to build an app to the specifications given as well as possible in the three days given while getting as much practice being a team and pair/mob programming as possible. It was a great learning experience about the challenges and strengths of being on a team. This was also my first time using a noSQL Database which I now very much enjoy using.
This was my final project from my time at General Assembly Boston, and I had a ton of fun creating it. It combines the React and P5.js Frameworks in order to allow a user to visualize several different pathfinding algorithms in an interactive way.
I quickly learned to love React and hope to continue using it in future projects, however I did learn a lot about making Frameworks play nice together. P5.js and React are not natively compatible, and their design philosophies are quite polar to be honest. It was a great challenge to learn how to leverage the strengths of both Frameworks in order to get the desired result, but I am very glad that I did. This is by far my favorite project to date, and I learned a huge amount while creating it.
During my time at General Assembly I was introduced to Conway's Game of Life as a challenge problem. The idea is that each generation (represented by one frame of animation) there are four rules that govern whether any given cell lives or dies based on its neighbors. I was extremely interested in this problem because I was having trouble thinking in an object oriented way, and I felt as though this would be great practice working with objects.
I didn't have a lot of free time to work on personal projects during the course, so my goal here wasn't a pretty looking web app, but just a working animation to show that I could do it. It was my first time ever working with animation and I loved it! I succeeded in what I set out to do which was become more familiar with object oriented programming, and I would love to come back to this project soon and expand on it with my new skills that I've gained since then.
After graduating from General Assembly and during the beginnings of quarantine, a good friend reached out to me to see if I could make a Hangman game with the purpose of teaching special needs students remotely. I used to teach at the school he works at, and was more than happy to help. I had the application created for him by the next day and I was told that they loved it so much it was immediately shared with all staff for use with students.
This was easily my favorite project to date. Not because it was overly impressive, but because it was used to help a cause, which was one of the things that originally drew me into software. I made sure to focus on what was needed in the application, and for the majority of styling I had the target audience, the students that I used to teach, in mind. For instance, making sure the letters were very very large was because when it is being screen shared, I want the main focus to be on the currently revealed letters. I hope that I get to work on similar projects in the near future!