In my previous article I talked about my first work experience in industry as a Mechatronics Engineer at Paragon Systems where I learned about electromechanical systems by building an automated car seat tester. I really enjoyed that coop and learned a lot from the team and the work itself but found the field of pure mechatronics is not a career path I wanted to follow.
My field of study, mechatronics engineering, is described as the design of computer-controlled electromechanical systems. It brings together the fundamentals of mechanical, electrical and software engineering. I already tried the mechanical and electrical disciplines for my first coop so this time I went for a software-related role.
What I Built
At the University of Waterloo I worked as a coop in the Communications & Marketing department which was responsible for finding new employers and raising awareness for Waterloo’s internship program as their second generation full stack web developer to build onto the existing Waterloo HIRE site.
My project here was to build a tool that allows employers to search for eligible funding opportunities to assist with the cost of hiring coop students. It allowed employers to search through hundreds of funding opportunities (grants, loans, tax credits, etc.) based on the company’s industry/location, student’s gender/faculty and other details too.
The previous coop also started to build out the infrastructure which would take the data from a google spreadsheet and save the processed data to a protected url. Then the API would call the data whenever it was needed and feed it to a Web Content Management System (WCMS).
Process of the data being saved to the URL from a google spreadsheet.
Process of the data being accessed and consumed by the WCMS.
The reason for the inefficient “2-step” process was because one of the requirements of this feature was that the spreadsheet must be easily accessible by any non-technical individual. Because we were working with a WCMS and the university’s (extremely) strict rules for any features being built onto the WCMS, it became very difficult to build an internal system to use. The easiest and fastest solution was to store the data externally (hence the spreadsheet) and to save it at a callable URL for the feature to consume when needed. This minimized the size and scope of the feature within the university’s realm and provided freedom for anyone to update.
Because the project itself was handed off to me from a previous coop student (the first software developer coop the department had), he & our supervisor discussed and planned out the project scope, requirements and functions. Unfortunately I didn’t get a chance to experience the feature proposition and plan/architecture meetings but at this time I don’t think I was qualified nor had the knowledge to get me through it.
That first week was intense but I was extremely thankful for the team I was working with. My supervisor is one of the nicest and most understanding people I’ve ever worked with and the other coop student was incredibly patient and explained all sorts of topics like I’m 6. We even went over what the internet was and how APIs & clients communicate, making jokes and lots of laughter along the way. I really enjoyed that first week but soon after it was back to the trenches as I started to develop.
Unfortunately for me, I was the only person with any kind of software background. Although fortunately for me, the previous coop wrote amazing documentation and answered all of my cries for help. I asked friends to help me with data manipulation and I learned a real programming language, PHP. Although now I see it as outdated, back then it was my favourite thing to work with. I really enjoyed playing with the data and making something with it. Not too long after I had the entire feature set up and was demo-ing it to my supervisor. It was one of the best feelings I’ve ever had, I finally built this feature after struggling for so long and it is ready to be shipped.
By the end of this coop there was one thing I realized: I really enjoyed programming. I loved data and making things. I enjoyed programming so much that I went home everyday and worked on building out my very first site. After this coop I had my sights clearly set on transitioning into programming as a full time career, and that’s exactly what I did.
Needless to say, I struggled an incredible amount this term and I wouldn’t have been able to get through it without the patience and support from my supervisor and the help of my friends and previous coop student. I got my first glimpse into what it meant to be to work on a real tech stack and contribute to a larger code-base. I absolutely loved playing the role of a software engineer and saw that this path was indeed the one for me. And I have my supervisor and the previous coop student to thank for taking a leap of faith and hiring me.
Thanks for reading! The next chapter talks about the first real look at software engineering & prototyping.