The Co-operators
Role: Software Developer
Date: Winter/Summer 2021 (Jan - Aug)
Introduction
This is a report of my time working at the Co-operators as a Co-op Developer, from January to August 2021. Due to the COVID-19 pandemic, the entirety of this 8-month co-op term was a Work From Home affair. Still, I learned a lot about software development process and skills within a large company, and I hope to present my learnings and experiences in the following report.
About the Company
The Co-operators Group Limited is a Canadian insurance and financial services co-operative company. They have over $50 billion in assets under management and provide financial solutions of all sorts. The company currently employs over 6000 employees, serves over 200 credit unions, has over 2000 licensed insurance representatives throughout Canada. They are headquartered in the city of Guelph.
During my 8 months at the company, I worked on the Digital Technology Operations (DTO) team. Our job was to provide support to the company website, whether it be picking up tickets to solve back-end or front-end website problems of any sort or tackling high-priority incidents on the website that necessitate immediate fixes. With an average of less than a dozen members on our team throughout my time there, every member's work counted when it came to meeting sprint goals.
Goals
Having worked at The Co-operators for 8 months, I had two semesters of goals set for myself:
Semester 1 Goals
- Stay focused and productive in a work-from-home environment: I made this goal as I felt my productivity dropped significantly during my study semester of Fall 2020. Thus, I resolved to remove distractions (game systems, phone, etc.) from my work desk and prepared to move to a different part of the house to work if need be. I thought that if I could work for 30+ minutes interrupted, then U would have achieved this goal. Ultimately, I did somewhat accomplish this goal, but in bursts. When I had direction in how to tackle the work, I would work diligently. However, there were still periods of my proeductivity dropping and my focus being shifted to other things, so my ultimate progress on this front is just half a thumbs up instead of a big thumbs up.
- Continue development of skills needed for a team environment: At Camis, I had the same goal of being able to collaborate and effectively aid other people on my team with work, by practicing proactive and initiative. My daily tasks (stand-up meetings, solving tickets efficiently, working with fellow devs to resolve issues) should've aided in improving my collaboration, communication, and problem solving skills, all of which are vital to a team environment. However, since I was working from home, I felt like it was difficult to work towards this goal, as the loss of face-to-face communication greatly diminished my ability to not just be more proactive, but social.
- Become proficient in Angular, React, and other front-end frameworks: This was also a goal I set for myself in the second semester. With every new job comes new responsibilities and often, new technologies that need to be understood. In the case of this position, I wanted to learn new front-end frameworks. In the first semester, I thought I could tackle tickets regarding these frameworks and learn on the fly, but that ended up not being very feasible. In the second semester, I decided to take the learning off-work hours and try something like Pluralsight to learn the new material.
Semester 2 Goals
- Improve documentation/information retainment skills: In order to improve my ability to remember things, I wanted to try to better my documentation skills. Basically, I wanted to be able to consult my own writings instead of having to always consult other people. I did this by recording more of what comes my way, from specific repository setup instructions to knowledge transfer sessions, on either Confluence or paper. When it came to documenting my work on specific tickets I think I did a good job of compiling spreadsheets, point form notes, etc. to aid my memory and progress. I didn't make many notable notes on knowledge transfers or instructions though, but I still think this goal was a success since my process of solving problems now utilizes documentation more fluidly.
- Increase initiative: Pretty straightforward. Don't be afraid to ask question and pick up tickets you aren't familiar with. I definitely slept on this goal for the start of the semester but I think I improved by the second half as I picked up a lot more tasks I wasn't familiar with and tried to seek out help if need be. I wasn't perfect in this pursuit, but still successful enough by my standards.
- Fix problem solving skills: Maybe it's because of working online for nearly a year now (both studying and working), but I felt like my problem solving skills had diminished. Like the previous goal of initiative, my plan for improvement isn't well-defined, but rather, I tried try to think more critically when I attempt to tackle problems rather than immediately throw myself into the fray. I ultimately chalked up this goal as a net neutral, as I did somewhat repair my ability to think through a problem... at times.
Job Description
As the support team for the Co-operators website, our jobs were varied but all accomplished one goal: fix any issues that may plague the Co-operators's website and other web products. In addition to the main website, we would also look into problems with Source (an internal company website that served as a repository and database of information), the Android and iOS Co-operators apps, and subsidiaries of the main website such as Online Services, CUMIS, and more.
I used Javascript, HTML, CSS, C# and a few other web languages and technologies, as well as development tools such as npm, Git, and others; much of what I utilized at the Co-operators were things I had already used in previous jobs or learnt in my off Time (Sorry UoG, but I don't think many jobs need basic C knowledge nowadays...) I also became more familiar with new software such as JAWS Professional (see the next paragraph), UIPath/UIPath Task Capture (used to determine steps in automation), and more, as well as development tools I had already used extensively before such as Visual Studio Code, Jira and Bitbucket.
One of the highlights of what I worked on was accessibility. AI learned about the importance of aria-labels and alt text, and gained an understanding of how screen reading programs like JAWS Professional are able to read the text on screen. I often had tickets that involved determining why a certain part of the site wasn't being read properly by JAWS or other screen reading softwares we used to test. Making websites accessible to people of all walks of life is a crucial task that only grows in importance each year, so having some experience with this under my belt may prove invaluable one day.
I also performed many investigations into issues to determine what the problem is, if any, and how to solve them so that a ticket can be cut out in the future to actually address the issue. My investigations varied in size and scope, from determining how a migration of Source from IE to Chrome would fare in terms of compliance and compatability, to figuring out which characters the Reset Password field would unknowingly reject, to looking at workflows to find out why certain links are redirecting to the wrong places, and much more.
In conclusion, I did a little bit of everything, from accesibility to investigations to a sprinkle of automation. At the end of the day though, much of the work was related to front-end web development. I think I could've delved a bit deeper into the subject though, as I still have some uncertainties about how certain things work and I'm not able to fully formulate an opinion on web development. Still, I did learn a good amount about new stuff that may prove useful in my future software engineering endeavors.
Conclusion
In conclusion, I walked into the Co-operators and the DTO team with okay knowledge of front-end web development and agile software development, and walked out having learned a lot. I got to experience probably the most traditional, by-the-books way of agile so far in my career and gained new understanding of many paradigms that are sure to come in handy down the road if I continue to pursue this strand of software development.
Although I never did get to meet any of my team members face-to-face during my time at the company, I am still very grateful for them giving me the opportunity to work at the Co-operators. I don't see myself returning to The Co-operators when I graduate in April of 2022, but a lot could change in 8 months; my time there shows!
Acknowledgements
A special thanks to the following people at The Co-operators:
- Nelson Ferreira, the DTO team leader and my supervisor. Thank you for giving me this opportunity to join the team, and thanks for always looking out for us on the DTO team with everything!
- Amandeep Paul, a fellow developer on the team and the guy responsible for showing me the ropes. The first month where you took an hour out of your busy schedule to guide me through the systems and processes proved invaluable. Thank you!
- Owen Li, Adam Sosnowski, and Nikolas Purisinan, fellow developers who were always willing to lend a hand if need be. Thanks for all you help, guys!
- Michelle Liu, our team's main analyst as others came in and out of the team. Her attention to detail and helpful attitude definitely helped in catching some of my mistakes. Thanks!
- Victor Chard, our team's diligent product owner, who always had the answer to any inquiries we had and provided excellent communication betwene our team and other teams! Please let this man take more vacations.
- Everyone else at The Co-operators, though my interactions with those outside my team were limited, I appreciated the professional and helpful attitude that everyone brought. Thank you everyone, and take care!