Jakub Wozniak

Cumulative Portfolio
Honours Computer Science Co-op Student
University of Guelph, 2019 - 2024
linkedin github resume
About Me

Welcome to my portfolio.

Thanks for checking out this website. Ever since I was a child I have been fascinated by computers and the seemingly mystic aura surrounding them. Throughout my childhood, I would enjoy browsing the early days of YouTube, investigating my mother's Blackberry Bold and playing Pokemon Emerald on my Gameboy Advance. I look back throughout my life and at each stage in my journey there is something that has always remained a constant although it was perpetually changing; computers.

Since that time, I have developed a good amount of knowledge in the field of computing. I enjoy tough technical challenges and always put forth my best efforts towards anything I do when it comes to the field that I love. My name is Jakub Wozniak and I am currently 22 years old. I was born in Stalowa Wola, Poland and I immigrated to Canada with my family when I was 4 years old. Currently, I am studying at the University of Guelph, where I am pursuing a Bachelors Degree in Computer Science as well as completing a Business minor on the side. I hope this website can serve as a tool that grants a view into my life with computers.

Projects
Card image cap
Everglade Messaging

Everglade Messaging is an online messaging web app which was created and designed as a side project. Both the backend and the frontend of the application were created by two developers. The project utilized technologies such as React.js, Heroku, Flask, and Google Firebase. The application can be found at https://everglade-messaging.herokuapp.com/

Frontend Repo Backend Repo
Card image cap
Data Structures

This project contains 7 assignments completed for a Data Structures course. All of the data structures were written in C over the course of the semester and the repo contains the following: A1: Bit Manipulation, A2: Arrays, A3: Linked Lists, A4: Trees, A5: Hash Tables, A6: Advanced Hash Tables, A7: Graphs (Unbeatable Tic-Tac-Toe Computer)

Github Repo
Card image cap
Rogue Game

A Minimalistic Rogue 3.6.X (a role-playing video game characterized by a dungeon crawl through procedurally generated levels, turn-based gameplay and grid-based movement) clone done for an Object-Oriented Programming course. All code was written in Java heavily focusing on the object oriented side of programing.

Github Repo
Co-op Experiences

Introduction


In this section, I will be presenting a full overview of my fourth co-op workterm with the GroupBy Inc. in Toronto, Ontario as a Frontend Developer. Presented below is information about my S23 co-op employer, a summary of my learning goals, a comprehensive review of the work I completed over the work term and general conclusions drawn from my work term experience.


Employer Information

www.groupbyinc.com

During my fourth work term as a co-op student, I had the opportunity to work as a Frontend Developer for a company called GroupBy based out of Toronto. The work done at GroupBy is very interesting; the company focuses on providing retail search solutions for B2B and B2C clients. They also provide a variety of tools and insights for the retail space such as AI for search and recommendations, data enrichment, reporting, merchandising as well as analytics. They are partnered with Google and utilize Google’s Retail AI to get the most relevant search results and recommendations on the market. The presales team at GroupBy welcomed me with open arms, provided me with the tools I needed to succeed and allowed me not only to learn but to prosper during my co-op term there. Personally, I found it to be my most enjoyable co-op experience due to the interesting nature of the work coupled with the community feel regardless of whether I was working remotely or at the office.


Learning Goals


Depth & Breadth of Understanding

Goal: My first goal is to attain a comprehensive understanding of my position and elevate the depth and breadth of my knowledge. This entails mastering specific technologies as well as techniques to produce innovative solutions during my co-op placement, while also exploring diverse areas such as accessibility, usability, and performance optimization. Working on bettering myself in this goal will allow me to better create and understand user interfaces, making me a valuable asset in the dynamic field of frontend development.

Action Plan: To achieve this goal, I have to adapt and really focus on my work. I will gain a great comprehensive understanding of the fundamentals of web development. Additionally, I will explore new areas of the field that I am not as comfortable with such as advanced CSS. Learning from experienced colleagues, tackling various projects, and staying updated with my tasks will all play a key role. By setting achievable goals, seeking guidance, and embracing challenges, I'm confident I'll grasp frontend development comprehensively by the end of my co-op term.

Measure of Success: Have I demonstrated proficiency across diverse technologies? Can I confidently tackle complex frontend challenges? Have I contributed to creating important and meaningful code?

Reflection: I think I was able to attain my goal of expanding the depth and breadth of my understanding during this past co-op term. Key ways in which I worked towards this goal included exploring how to create an API using an Express JS app with various endpoints such as GET and POST. Then I gained insight on how to link it to an SQL BigQuery database, make relevant SQL calls and then call my endpoints in a frontend application. Additionally to this, I also greatly expanded on my CSS knowledge and learned several new tips and tricks from senior developers.


Inquiry & Analysis

Goal: The second goal I would like to achieve through my co-op is improving my inquiry and analysis skills. I believe it's important to understand the intricacies of frontend technologies while also critically assessing things I encounter in the field. Emphasizing inquiry and analysis will allow me to make informed decisions that contribute to creating great user interactions/experiences as well as efficient code.

Action Plan: To achieve this goal, I plan on being more open to investigating the reasoning and fundamentals of what I am doing and why I am doing something a certain way. By consistently questioning the 'why' and 'how' behind the tools, methods, and frameworks I encounter I always can have a good amount of understanding on the topic. This approach will not only enable me to better understand frontend development but also to effectively analyze if the method being used is in fact the right tool for the job or is there a simpler/cleaner way of doing something.

Measure of Success: Have I cultivated a habit of questioning and exploring? Can I identify and explain the rationale behind decisions? Did I benefit my team and find a better way of accomplishing a task?

Reflection: During my co-op placement this term, I feel like I managed to successfully achieve my goal of inquiry and analysis. Many times, when I was completing tasks, I would try to think if the way I am doing something is optimal. I would try to think of better ways to solve given problems and question old code. I often asked senior developers why things are done a certain way instead of another. Furthermore, during our company hackathon, I feel like I took on a big role and was very vocal with my ideas which we ended up going for our team project. I brought a fresh perspective and thought of new way to accomplish tasks so that we could achieve our final goal.


Teamwork

Goal: My third and final goal would be teamwork, to work effectively as part of a team. I want to be a valuable team player who fits well with diverse groups. By focusing on teamwork, I aim to contribute positively to projects, share ideas, and work together to achieve shared objectives. Understanding that successful frontend work relies on cooperation, especially with the backend, I am committed to helping cultivate a collaborative atmosphere where communication is open, ideas are exchanged, and everyone supports each other. This approach will not only enhance the quality of our work but also create a satisfying and productive work experience for both me and my colleagues.

Action Plan:To achieve this goal, I plan on communicating better with members on my team as well as with members outside of my team such as the backend teams. I'll actively join team discussions, sharing my thoughts and listening to others. Giving and getting feedback will be important to improve how we work as a team and how I grow personally. When we collaborate on projects, I'll do my part well, improve my communication skills, and show that I'm committed to teamwork. By helping my teammates and sharing what I know, I'm confident I'll build strong relationships that make our projects successful.

Measure of Success: Have I actively contributed to team discussions and efforts? Have I demonstrated openness to feedback and collaborative learning? Can I identify instances where my collaboration improved project outcomes?

Reflection: Looking back at my final goal, I think I did a good job of working towards improving my teamwork skills. Aside from daily standups where I had to summarize my work, I did the previous day and share with the team what I plan on doing for a given day, I also took initiative to work on my teamwork in other methods. These include participating in the company Hackathon where I had to work closely with new people from various departments some of which I never even interacted with before this event. Additionally, I had to work on a big project this term which involved me working closely and relaying information to the engineering/back-end team in order to coordinate with the front-end to create the best possible demo for a client.


Job Summary


Work Term Summary

My main duties while working at GroupBy consisted of a variety of fun tasks and projects. Most notably I worked on updates to the GroupBy website gaining experience using tools like Google Cloud Platform, Cloud Run, HTML/CSS/JS. Additionally I spearheaded development of an ever evolving autoparts fitment demo with very interesting functionality. For this I had to tackle greater challenges including creating an API using Express and grabbing information from a BigQuery database using SQL to power the car selection portion of the demo.


Acknowledgements


I would like to thank GroupBy Inc., specifically the Presales team, for welcoming me with open arms and making me feel valued and right at home. I always felt like an integral part of the team who's ideas, suggestions and opinions were valued and never felt like an intern swamped with boring monotonous work. I would also like to thank Yanish for always being there for me if I had any issues or concerns. During my time there his mentorship was very valuable to me. His knowledge of the field coupled with the effort he puts into his work evidently make Yanish an integral part of the GroupBy team as well as an excellent mentor/leader. Additionally I would like to thank Dan, who was a mentor figure I worked most closely with, for always being patient with me when asking questions and never hesitating to lend a helping hand. I am very grateful for all you have taught me. Once again I would like to express my gratitude to the whole company. I will carry the mentorship and experience I gained from this position with me throughout my career and I am truly grateful to have been able to work for such a fun, interesting and inclusive company. I hope our paths can cross again sometime soon!

Introduction


In this section, I will be presenting a full overview of my third co-op workterm with the GroupBy Inc. in Toronto, Ontario as a Frontend Developer. Presented below is information about my W23 co-op employer, a summary of my learning goals, a comprehensive review of the work I completed over the work term and general conclusions drawn from my work term experience.


Employer Information

www.groupbyinc.com

During my third work term as a co-op student, I had the opportunity to work as a Frontend Developer for a company called GroupBy based out of Toronto. The work done at GroupBy is very interesting; the company focuses on providing retail search solutions for B2B and B2C clients. They also provide a variety of tools and insights for the retail space such as AI for search and recommendations, data enrichment, reporting, merchandising as well as analytics. They are partnered with Google and utilize Google’s Retail AI to get the most relevant search results and recommendations on the market. The presales team at GroupBy welcomed me with open arms, provided me with the tools I needed to succeed and allowed me not only to learn but to prosper during my co-op term there. Personally, I found it to be my most enjoyable co-op experience due to the interesting nature of the work coupled with the community feel regardless of whether I was working remotely or at the office.


Learning Goals


Problem Solving

Goal: The first goal I would like to achieve through my co-op is to get experience with elaborate problem solving in a real-world environment. I think the ability to solve problems is crucial for becoming a successful software developer and having that experience will be extremely valuable to me in my career moving forward.

Action Plan: To achieve this goal, I plan on proposing solutions to problems that come up. I also intend to fully take on tasks relating to front-end development that will present a lot of challenges that I will have to solve on my own. This includes various blockers and problem solving how to create intended results using JavaScript.

Measure of Success: How many challenges did I overcome this work term? What accomplishments and solutions am I most proud of?

Reflection: I believe that this co-op work term increased my problem solving capabilities, I dedicated myself a lot to the team and helped overcome big challenges relating to up and coming new features.


Initiative

Goal: The second goal I would like to achieve through my co-op is to develop more confidence and to take more initiative with tasks regarding my job. Taking initiative is a good way to grow and gain experience in a workplace. It is a valuable mindset to have as it shows that you are ready and willing to help your team out. With this also comes a matter of confidence, being able to speak your mind and clearly defend the work and decisions you make is an important part of personal growth.

Action Plan: To achieve this goal, I plan on taking on more responsibility and applying more effort into my day-to-day work. I also plan on speaking my thoughts and ideas more on certain work-related topics such as how to progress with team projects in order to display initiative. Additionally, to gain confidence I will clearly explain what work I completed and why I completed it a certain way.

Measure of Success: Did I take on new tasks and responsibilities? Did I speak my mind on certain decisions being made? Did I always clearly explain myself when referring to the work I did and the decisions I made?

Reflection: I definitely took on new and challenging tasks during this work term. I made an effort to always voice my concerns and take on challenges that I would normally be scared to take. This ended up getting me noticed and really solidifying my role while working at GroupBy.


Personal Organization/Time Management

Goal: My final goal I would like to focus on throughout this work term is personal organization and time management. I think having a balanced schedule and staying on top of things is a very valuable thing not only from a workplace perspective but also for day-to-day life. Being organized and managing time effectively is a valuable skill in a workplace that can be transferred to any virtually situation.

Action Plan: I will manage this goal by making better use of my Google Calendar and planning out how I am going to use my time for a given week. Additionally, when working on a project I will split it off into smaller tasks and assign them priority values along with the status of a given task. For example, I can have a list of tasks with either a High, Medium or Low priority coupled with a status of Up Next, In Progress or Completed.

Measure of Success: Did I use Google Calendar effectively throughout the work term? Have I started planning out my time better using a prioritized task list? Do I feel like my overall organization skill has improved over my work term?

Reflection: During my work term at GroupBy I definitely improved my oral Communication skills. This was done through meetings, presentations and daily stand ups. I got more comfortable at speaking with others due to the amount of times I was put in those positions. I can clearly convey my thoughts and any issue I have to co-workers or mentors. I also greatly improved my ability to explain tasks with clarity and efficiency to other team members.


Job Summary


Work Term Summary

My main duties while working at GroupBy consisted of a variety of fun tasks and projects. Most notably I worked on updates to the GroupBy website gaining experience using tools like Google Cloud Platform, Cloud Run, HTML/CSS/JS. Additionally I spearheaded development of an ever evolving autoparts fitment demo with very interesting functionality. For this I had to tackle greater challenges including creating an API using Express and grabbing information from a BigQuery database using SQL to power the car selection portion of the demo.


Acknowledgements


I would like to thank GroupBy Inc., specifically the Presales team, for welcoming me with open arms and making me feel valued and right at home. I always felt like an integral part of the team who's ideas, suggestions and opinions were valued and never felt like an intern swamped with boring monotonous work. I would also like to thank Yanish for always being there for me if I had any issues or concerns. During my time there his mentorship was very valuable to me. His knowledge of the field coupled with the effort he puts into his work evidently make Yanish an integral part of the GroupBy team as well as an excellent mentor/leader. Additionally I would like to thank Dan, who was a mentor figure I worked most closely with, for always being patient with me when asking questions and never hesitating to lend a helping hand. I am very grateful for all you have taught me. Once again I would like to express my gratitude to the whole company. I will carry the mentorship and experience I gained from this position with me throughout my career and I am truly grateful to have been able to work for such a fun, interesting and inclusive company. I hope our paths can cross again sometime soon!

Introduction


In this section, I will be presenting a full overview of my third co-op workterm with the GroupBy Inc. in Toronto, Ontario as a Frontend Developer. Presented below is information about my W23 co-op employer, a summary of my learning goals, a comprehensive review of the work I completed over the work term and general conclusions drawn from my work term experience.


Employer Information

www.groupbyinc.com

During my third work term as a co-op student, I had the opportunity to work as a Frontend Developer for a company called GroupBy based out of Toronto. The work done at GroupBy is very interesting; the company focuses on providing retail search solutions for B2B and B2C clients. They also provide a variety of tools and insights for the retail space such as AI for search and recommendations, data enrichment, reporting, merchandising as well as analytics. They are partnered with Google and utilize Google’s Retail AI to get the most relevant search results and recommendations on the market. The presales team at GroupBy welcomed me with open arms, provided me with the tools I needed to succeed and allowed me not only to learn but to prosper during my co-op term there. Personally, I found it to be my most enjoyable co-op experience due to the interesting nature of the work coupled with the community feel regardless of whether I was working remotely or at the office.


Learning Goals


Technological Literacy

Goal: The first goal I am striving for this co-op term is to enhance my technological literacy. I feel like I have a lot more to learn about front-end development in a professional setting. I would like to gain more knowledge about front-end development and learn new techniques and practices in the industry.

Action Plan: In order to achieve my goal, I will spend time learning various strategies employed at GroupBy when it comes to creating websites and web applications. I would like to get more familiar with React JS and learn more about the CMS that they use called Crownpeak. These skills will be useful for the rest of my career as they can be easily transferred into other front-end positions.

Measure of Success: In order to see if I achieved my goal, I can reflect and see how much more effectively I can go through the process of developing a webpage and reflect on the work term. How closely and accuruately can I recreate design documents? How well can I match the content that is requested of me?

Reflection: I believe that this co-op work term taught me a lot of new things and definitely enhanced my technology literacy. I gained experience with a variety of new front end tools such as React JS and CMS Crownpeak. I think I learned to recreated design documents much more effectively and match the desired output very well.


Teamwork

Goal: The second goal I would like to focus on over this work term is Teamwork. I feel like teamwork is a crucial skill to have not only in the workplace but also in day-to-day life. I would like to collaborate with other co-workers on meaningful projects and overcome any challenges that may present themselves by applying a team effort.

Action Plan: During this placement, I work closely with several co-workers, specifically one that was hired at the same time as me. I look forward to actively collaborating with him on various projects and understanding what is necessary to have a good collaborative environment in a workplace setting. Together we must communicate and overcome obstacles as a team in order to be successful in our positions.

Measure of Success: The way I would measure my success for this goal is to look back on the work term and seeing if my ability to work together with others has improved. Do I value all input from team members? Do I take constructive criticism in a positive manner? Do I split up work fairly and effectively amongst team members?

Reflection: I think throughout this work term I learned how to cooperate with teammates way better than through my previous co-op. During this term I had a variety of moments where teamwork was crucial to my success. I learned to value all input from team members and to take constructive criticism in a good manner. I also think this co-op placement helped me better understand how to split up work fairly amongst the team.


Oral Communication

Goal: My last goal I would like to achieve through my co-op placement is to improve my oral communication. Being able to effectively convey your thoughts and useful information about tasks at hand is a very valuable skill that can be applied to virtually any social setting or job in this industry.

Action Plan: In order to achieve this goal, I am looking forward to communicating with my co-workers on any issues or blockers I may have. Additionally, I will improve my skills by partaking in a daily standup meeting where I explain what I accomplished the previous day and what I plan to accomplish on the given day.

Measure of Success: The way I would measure my success for this final goal is to look back and see; Have I gotten more comfortable speaking with others? Do I effectively convey my thoughts and any issues I am facing? Am I able to explain things in a way that allows for others to understand me clearly and efficiently?

Reflection: During my work term at GroupBy I definitely improved my oral Communication skills. This was done through meetings, presentations and daily stand ups. I got more comfortable at speaking with others due to the amount of times I was put in those positions. I can clearly convey my thoughts and any issue I have to co-workers or mentors. I also greatly improved my ability to explain tasks with clarity and efficiency to other team members.


Job Summary


Work Term Summary

In the beginning of my work term, I mainly focused on learning and gaining experience with a CMS that GroupBy uses called Crownpeak. This CMS allowed me to discover a variety of interesting new things such as creating reusable HTML components that are made from scratch and can be easily dropped into other page templates. Learning this whole new system was a little challenging at first as there were some things that were more reliant on graphical interfaces rather than traditional coding, however I feel like I adapted quickly. I believe it was beneficial for me to look at other tools used in the industry and see how quickly I can grasp them.

With my newly obtained CMS experience I was able to start working on various marketing tasks for the official GroupBy website redesign which was done on Crownpeak. Working on this website redesign consisted of looking at design documents and trying to format the requested pages as closely as possible to the look and functionality requested. This task really allowed me to take a deeper dive into HTML, CSS, JS and even allowed me to work with some animations/transitions, something I haven’t done too much of before. The experience I gained from this task was very valuable as I got a feel for building off of design documents as well as gaining more experience with the Crownpeak CMS.

Another key part of my work term with GroupBy was constructing a tool for internal testing of the GroupBy tracking beacons. This tool, nicknamed The Tül, was a web hosted React JS application that took in a variety of necessary variables to set up an API call which returned and cleanly displayed the JSON search results. Once the results were obtained from the API, the app automatically sent a tracking beacon associated with the given search. This tool proved to be very valuable for the company and will continue being used in the future. Additionally to creating this application, one other intern and I had to prepare a show and tell about it at our daily standup meeting. This allowed me to practice my communication and presentation skills in front of other coworkers.

On the topic of communication, my time at GroupBy really helped me to become better at conveying my thoughts and participating in a team environment. The daily 30-minute morning standup meetings were something I enjoyed a lot as they allowed me to summarize what I worked on the previous day, what I will be working on currently, and also hear about what my coworkers were up to. Additionally, we occasionally had a retrospective meeting at the end of the week which allowed for reflection on the past week specifically on what the team did right and what the team collectively could’ve done better. These meetings were very insightful, and I always felt like my input was valued just as much as anyone else’s.

Finally, the largest challenge I underwent during my Summer 2022 work term was the full-scale React JS web demo the presales team had to produce in a very short time frame for a B2B medical supply prospect. This task involved mimicking the potential client’s website as well as implementing key aspects of GroupBy’s product such as data enrichment and search recommendations in order to show off in a meeting with the prospect. This project required a lot of hard work and perseverance from everyone and a lot of inter-team communication. Since these demo requests come up on short notice, I also happened to be out of the country the week this demo was supposed to be done. As a result, I had to be really disciplined and organized with my time. This experience taught me a lot about how to adapt to your circumstances to meet hard deadlines and how to work in synergy with other team members in order to accomplish all the goals that were set out to be met.


Conclusions


Throughout my third co-op placement I have learned a lot and experienced a lot. I got to experience what it was like working for a very interesting company, how they handle their presales operatons and front-end development, as well as develop close bonds with my co-workers over meetings, group chats, office activities and shared lunches. Being surrounded by a welcoming, cheerful and entertaining environment leads to motivation and desire to do your best when it comes time to crunch down and work. The technical knowledge and transferable skills I gained throughout this workterm are priceless and will definitely help me further along my career.


Acknowledgements


I would like to thank GroupBy Inc., specifically the Presales team, for welcoming me with open arms and making me feel valued and right at home. I always felt like an integral part of the team who's ideas, suggestions and opinions were valued and never felt like an intern swamped with boring monotonous work. I would also like to thank Yanish for always being there for me if I had any issues or concerns. During my time there his mentorship was very valuable to me. His knowledge of the field coupled with the effort he puts into his work evidently make Yanish an integral part of the GroupBy team as well as an excellent mentor/leader. Additionally I would like to thank Dan, who was a mentor figure I worked most closely with, for always being patient with me when asking questions and never hesitating to lend a helping hand. I am very grateful for all you have taught me. Once again I would like to express my gratitude to the whole company. I will carry the mentorship and experience I gained from this position with me throughout my career and I am truly grateful to have been able to work for such a fun, interesting and inclusive company. I hope our paths can cross again sometime soon!

Introduction


In this section, I will be presenting a full overview of my second co-op workterm with the University of Guelph, specifically the department of Communications and Public Affairs in Guelph, Ontario as a Web Developer. Presented below is information about my F21 co-op employer, a summary of my learning goals, a comprehensive review of the work I completed over the work term and general conclusions drawn from my work term experience.


Employer Information

www.uoguelph.ca

During my Fall 2021 semester I had the opportunity to work for my own institution, the University of Guelph, as a web developer for their team. The University of Guelph is one of Canada's leading innovation and comprehensive postsecondary institutions. Currently, the university is in the process of modernizing its web presence with an overhaul of its websites introducing brand new web components and styles to give it a cleaner look and a more welcoming feel. I have been fortunate to work with some people on this project while learning completely new things and was welcomed with open arms into this work environment that fosters creativity and teamwork.


Learning Goals


Technological Literacy

Goal: The first goal I would like to achieve through my co-op is to improve my technological literacy. I believe that in order to be successful in the computer programming industry you must develop a breadth of knowledge with various technologies. Having a lot of different languages and skills in your toolbox is very valuable and I feel that this placement will accomplish that for me.

Action Plan: In order to achieve this goal, I will be taking a dive into aspects of computer science that I normally haven’t spent much time on. With this placement, I will be learning new skills and tricks to website development. Primarily, I will be greatly improving my HTML, CSS and JS capabilities and learning how the website development process works in a real-world scenario. This sort of hands-on experience in a professional environment will be valuable for the future growth of myself and my career.

Measure of Success: The way I would measure my success for this goal would be to see how much my skills have improved over the course of my work term. Do I understand web development better than I did coming into this job? Could I apply the things I learned in future scenarios, be it personal projects or future jobs?

Reflection: Overall my co-op placement with the University of Guelph greatly improved the caliber of my technological literacy. I learned a lot of new things about web development with HTML and specifically CSS. I also learned how to use programs such as MAMP and how to develop high quality websites with tools like Bootstrap JS.


Creativity

Goal: The second goal I would like to focus on over this work term is creativity. I feel like this is one of the most overlooked aspects of computer science. In my opinion, in order to be innovative, successful and create something groundbreaking you need to have the ability to think creatively. To me, this placement is an ideal opportunity to work on this skill.

Action Plan: In this job setting, I will quite literally be presented with a blank canvas. I will have countless opportunities to test my creativity with various designs and ideas. With web development, you have the freedom to experiment with certain pieces of styling, as well as the opportunity to try different layouts. I believe that this nature of testing designs will apply not only to web development but could also benefit me in other aspects of computer science.

Measure of Success: The way I would measure my success for this goal is to look back on the work term and seeing if the level of my creative thinking has improved. After this work term, do I come up with more ideas? Do I see myself testing various pieces of code more often and trying things I wouldn’t normally try?

Reflection: I think this work term greatly helped me improve my creative mind. I was provided with a lot of freedom with web development during this placement and better visualizes ideas I would like to achieve. I also better understand what looks visually appealing and modern when it comes to web design.


Teamwork

Goal: My last goal I would like to achieve through my co-op placement is to improve my teamwork. This skill is very important in a computer science job, but also crucial in daily life. Skills that have the ability to be transferred to every aspect of your life and help you grow as a person are valuable and definitely worth working on.

Action Plan: In order to achieve this goal, I look forward to participating in meetings and collaborating with different co-workers on projects. I will be a part of a group in a real-world technological environment and learn how to cooperate and communicate with team members. Furthermore, working with others will also help me pick up certain technological skills they have and learn solutions to problems that I normally wouldn’t figure out on my own.

Measure of Success: The way I would measure my success for this final goal is to look back and see; Do I work better with people after my work term? Have I become better at listening to my co-workers and aligning priorities to work in a group where everyone feels heard and motivated towards a mutual end goal?

Reflection: During my Fall 2021 work term I was a part of several weekly meetings and sprints. These meetings helped me improve my teamwork abilities, including listening to other group members and also presenting my own ideas. I communicated with my co-workers to help them if they had any issues and asked for help when I needed it.


Job Summary


Work Term Summary

Over the past four months working for the University of Guelph, I have gained tons of valuable experience with web development that I will definitely apply in personal projects and in my future career. Throughout the semester, I was presented with a variety of work item tickets to accomplish on Azure DevOps. This helped me stay focused and provided me with tasks that I had to figure out and accomplish.

To start off the work term, I began by familiarizing myself with the main git repository for the University of Guelph website. This involved getting to grips with PHP and understanding how their main code base was structured. I had to brush up on my HTML and learn how to properly structure HTML code utilizing divs and other elements. I learned about JavaScript web components, including how to create, compile and utilize them on a website. Furthermore, I learned how to locally host a server environment using MAMP and polished my version control knowledge by using git to commit and pull changes with Azure DevOps.

My next task was to create a prototype framework of a brand-new modernized programs page for the university. This was my first major task I was assigned when I joined the group. To accomplish this task, I was given some concept drawings of what sort of vision the team had for this new page. I studied and learned a lot of CSS and Bootstrap to be able to accomplish what they were looking for. This challenge tested my HTML, PHP, CSS, JavaScript and problem-solving abilities. I had to look up how to accomplish certain things with CSS since I never really looked into it and the caliber of my CSS greatly improved due to this project. In the end I was able to successfully create a functioning programs page framework that I presented to the team in a meeting on Microsoft Teams.

Another task I frequently worked on throughout the semester was updating the campus map (www.uoguelph.ca/maps). This required me to add new buildings using latitude and longitude points to plot out polygons and implement them using the Google Maps API. I needed to add these points into a JSON file that was then passed into some JavaScript that initialized the map. Each marker on the map is also linked to a locations page which needed to be filled in with information about the building and implemented with the proper photos. This part of the job was very rewarding as I constantly got to see visual progress of new buildings popping up on the map and being implemented into the live uoguelph.ca website.


Conclusions


I have gained a lot of experience from my second co-op work term. Being placed in a real world environment and being provided to tools to learn and grow with web development was a really enjoyable experience. I was surrounded by supportive people who wanted to see me succeed and every challenge I faced bettered me in the field of computing. With this experience added to my toolbelt I am excited to see what else the future holds.


Acknowledgements


I would like to thank the University of Guelph’s department of Communications and Public Affairs for welcoming me into their team and providing me with the tools which helped me grow my skill set as well as further develop my knowledge in the field of computing. I would also like to thank my manager James Harris for always being there for me if I ever had any questions or encountered any problems. With his help I was given the freedom and assigned tasks to truly learn what it is like to be a part of a development team in a real-world environment. James was always very supportive of my growth and was understanding when personal matters came up; for that I am truly grateful. To all my other co-workers, thank you for welcoming me into your weekly meetings and always making me feel like I was a part of the team despite me just being a co-op student. This Fall semester was one that was valuable to me in my career growth and one that I will look back on fondly.

Introduction


In this section, I will be presenting a full overview of my first co-op workterm with Xiris Automation Inc. in Burlington, Ontario as a Student Software Developer. Presented below is information about my S21 co-op employer, a summary of my learning goals, a comprehensive review of the work I completed over the work term and general conclusions drawn from my work term experience.


Employer Information

www.xiris.com

Over the Summer 2021 semester I had the pleasure of working for a company by the name of Xiris Automation Inc. in Burlington, Ontario. Xiris specializes in developing machine vision hardware for process and quality control. They have been in the business for over 30 years and have developed high quality cameras focused on weld monitoring and inspection. Xiris’ products provide manufacturers with the ability to accurately detect, recognize and interpret quality defects in their goods. Their cameras also come with a software development kit, Xiris Weld SDK, which allows users to maximize the potential of the cameras and obtain useful machine vision information during the welding process. Xiris has fostered a very welcoming and supportive work environment that ultimately leads to great internal productivity and collaboration.


Learning Goals


Problem Solving

Goal: My first goal I would like to achieve through my Summer 2021 co-op is to improve my problem-solving skills. I believe problem solving is one of the most important assets for a programmer as constantly and unexpectedly issues can arise in code. I believe having the skill to quickly identify those problems and deal with them in an efficient manner is extremely beneficial.

Action Plan: In order to achieve this goal, I will be placed in a real-world tech environment where I will have a lot of opportunities to problem solve. Any software I write will mostly likely have bugs and other issues I will have to learn to overcome. These may be challenging but will help me grow in my field. In a real world setting I will be more motivated than ever to improve myself as a coder and learn the best methods of trouble shooting which I can transfer into my future career path.

Measure of Success: The way I would measure my success is looking back and seeing if the quality and efficiency of my solutions to problems has increased. Do I try to think more analytically, do I analyze a bunch of options and pick the best one?

Reflection: My efficiency of problem-solving has improved over these past four months. Given a lot of autonomy and having to make a lot of decisions, I needed to learn to think analytically and how to make the best decisions. This skill will be extremely useful for any other tech jobs I will have going forward in my career.


Technological Literacy

Goal: My second goal I would like to achieve through my co-op is to improve my technological literacy. Having a lot of different programming languages and experiences in your toolbox is very advantageous in the technology industry. Being able to adapt to your environment using your prior knowledge from past projects and studies is a valuable skill, which I believe I can grow through this placement.

Action Plan: In order to achieve this goal, I will learn various new technologies and ways to program. The experience I gain from a real job in my field will be invaluable for me. Primarily I will be polishing my C# skills while also learning new tricks and skills that will accelerate my programming to the next level. Furthermore, I will be learning new technologies to expand my technological literacy such as C++ and SVN and gaining experience working in a real-life setting.

Measure of Success: The way I would measure my success for this goal would be to see how much I have grown in my technological literacy. Have I learned new skills and technologies that will assist me further in my career? Did I effectively absorb all the new information I learned throughout my placement?

Reflection: My work term at Xiris definitely helped me achieve my technological literacy goals. I learned and polished my knowledge of two new languages: C# and C++, as well as a new software version control system, Apache Subversion. This knowledge will definitely aid me in future jobs and tech opportunities.


Personal Organization/Time Management

Goal: My last goal I would like to achieve through my co-op placement is to be better organized and better manage my time. Sometimes I have time management issues and this placement is extremely valuable in helping me solve these issues and grow as a person. I believe being organized heavily increases productivity and is a very useful skill to adapt not only in a workplace setting but in day to day life.

Action Plan: I will be provided a lot of autonomy in my setting and will need to learn how to manage my time wisely. I prefer working on site because it motivates me to install routine values into my day to day life and pushes me to always be punctual. Planning out deadlines for myself will be crucial in helping me become more organized and more efficient in my work.

Measure of Success: The way I would measure my success for this final goal is have I improved my organization and time management? Not exclusively in a workplace setting but have the values I learned throughout my placement helped me become not only a more organized, well rounded worker but also a more organized, well rounded person.

Reflection: Looking back I believe I acheived my organization and time management goals. My ability to focus has improved and I always make sure to have enough time to spare when completing a task.


Job Summary


Work Term Summary

In my three months working at Xiris Automation Inc, I feel like I have accomplished a lot and learned a tremendous amount. For my first major project, I was tasked with creating a document management system in C# for Xiris’ internal documents. This Windows application was to be designed with the ability to create, read, update and delete documents that were subsequently stored online in a Sharepoint server. Each document was also to be reported in a database that provided further information on it. Xiris had a previous outdated document system which stored the files locally that I could use as a reference to see what they were looking for in terms of functionality. This project came with its fair share of challenges. Having previously only used C# in high school, I needed to quickly adapt to my environment and reach a level of literacy with C# that would allow me to complete my task. I think I managed to do this quite well and I feel very confident in my C# abilities following this work term.

Another challenging portion was learning how to connect everything to Sharepoint and figuring out how to use the C# Sharepoint CSOM (Client-Side Object Model). Learning the Sharepoint CSOM resulted in a good amount of researching online and reading through the documentation. When I completed the project, the day came where we finally had to publish and implement the new Sharepoint based document management system. This required uploading all local documents to the Sharepoint Online server and releasing the new software onto the company servers. Most of this process went smoothly, however a small oversight occurred. The Sharepoint login system I created failed to take 2FA into account which effectively nullified the whole project I created. Rather than getting discouraged, I looked into solutions for this and swiftly found a way better method of implementing the Sharepoint login which drastically improved the end result. The new document management system was successfully released on the anticipated date.

For my second major project while working at Xiris Automation, I was asked to familiarize myself with their Weld SDK and simulate the process of installing and using the SDK from the perspective of a first-time user noting any flaws with the process. I read through all of the documentation for the software development kit and noted any spelling mistakes or sections that might be perceived as unclear. Once I was finished with the quality assurance, I was then asked to create a couple of samples for the machine vision aspect of the SDK. This was one of the most interesting parts of my work term at Xiris. I was provided with one of their cameras and wrote C++ code samples that demonstrate the different machine vision functionalities available in the SDK. These samples would be included in the SDK when installed. Before this project, I have never used C++, which was more difficult to grasp than C# given its syntax. Eventually after looking through some C++ samples online and the Weld SDK documentation, I successfully managed to write some functioning machine vision code that reported on the camera’s video stream in real time.


Conclusions


The experience I have gained from my first ever co-op position was invaluable. I really enjoyed being put in a real-world technological environment at an established company and feeling a sense of progress with every task I completed. There were ups and downs to my work term, but each challenge only forced me to become a better worker and a better person. I am grateful that I had this opportunity and I am extremely excited to see what the future has in store for me.


Acknowledgements


I would like to thank Xiris Automation Inc. for allowing me to grow and learn many new skills while being surrounded by a friendly and supportive environment. I would also like to thank my manager John Stevenson for being there with me from the interview process to my final day. John was always extremely understanding and supportive, he really allowed me to develop new skills without being constrained by the fear of failure. To all my other co-workers, thank you for welcoming me with open arms and always having my back whenever I needed it. I am truly thankful to have been able to spend this Summer with everyone at Xiris and I look forward to seeing if our paths ever cross again.