Full Stack Web Developer @ University of Waterloo

White University of Waterloo Logo

Preface

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.

The Experience

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.

At this time my development knowledge consisted of HTML & CSS (even though I know they are not considered programming languages). I remember sitting down outside of the office and starting my first Javascript learning module on the first day and I had no idea what was coming. I spent a week getting onboarded by the previous intern and I felt like I accidentally jumped in the deep end of the ocean — I was introduced to the command line, PHP, vim, VSCode, vagrant, git, and other things that make up a typical development stack. Up until now I have been working with html files and now I have to know how to set up virtual machines and ssh into my virtual environment for crying out loud! 

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.

My Reflection

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.

Conclusion

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.

Share on facebook
Share on twitter
Share on linkedin

More Experiences

Paragon Systems Logo

Mechatronics Engineer @ Paragon Systems

At Paragon Systems, I worked as a coop on the automation team to build large build large-scale automated carseat testers, gaining exposure to both mechanical and electrical components of a mechatronics system. I was part of a team of 8 to build and install car seat testers for major car brands like GM and Mercedes.

Read More »

Gerry Saporito

CTO & Software Engineer

Full Stack and Distributed Systems

Gerry is a co-founder & the CTO of Lumaki Labs, a startup empowering companies  to build future-proof talent pipelines by building a platform to maximize the internship lifecycle. When he isn’t working, he is playing tennis, watching anime, or with his Shiba Inu named Primo.

My Personal Favourites
Explore