Winter + Summer 2020: Manulife Coop Report


September 10th, 2020.

Introduction

Welcome to my Manulife coop review! Here you can read about my experience at Manulife, one of the top Canadian insurance companies. Manulife offers tons of opportunities for you to get involved, so it's really what you make of it - and I made the most I possibly could!

About Manulife

Manulife, a insurance company created over 130 years ago, is a Canadian multinational company trying to reinvent itself as a tech first company.[1] It's a massive corporation in an old industry, employing around 34,000 employees worldwide - making the massive transformation a little bit difficult.

Job Description

As a Full Stack Developer, you do a little bit of everything in the software development cycle, as well as work on both the front end and back end of a program. Most Full Stack Developers have years of industry experience in both front and back end, and while I had tons of experience with back end from both work and personal projects, this was the first time I got as involved as I did with the front end.[2]

Figure 1.0 - Blurb of Full Stack Frameworks & Tools
Photo
Liu, Trista (2017-12-25). "6 Essential Tips on How to Become a Full Stack Developer". Hackernoon.

Overview & Key Work

As a Full Stack Developer in the Canadian Division Technology at Manulife, my primary role was developing an internal hiring tool used to automate onboarding for hiring managers at Manulife. While the company as a whole transformed many of its internal and customer facing tools over the years, one aspect still largely lacking was the hiring process - something nearly my entire team was dedicated to fixing.

Automating onboarding wasn't as easy as it could have been, but that was no technical limitation - the majority of the struggle turned out to be internal company politics. My tech lead however, Chris Jones (who I knew from Blackberry!), was determined to prove his worth and wasn't going to let anything stop him; so while our project manager pushed the political boundries, we developed numerous workarounds on the back end, using everything from the official API we were supposed to hook into, to testing RPA software, to developing web scraping and automation tools, to deciphering the network packets sent when you manually create tickets for a new hire, then imitating them through code.

Development Experience

Figure 2.0: Developers enjoying the Fullstack experience
Photo

The development experience itself was the kind you might expect from a larger org that's developer focused. We had a JIRA board we took tasks off of, there was a bit of mix between doing what you want to learn and doing what you're good at, and there was always a decent amount (but not too much) pressure to get everything done.

We also had an automatic quality analysis tool called Sonarqube, which was annoying at the time, but in hindsight worked surprisingly well. It ensured we had certain test coverage thresholds, looked for design pattern issues, and once in a blue moon would actually save you from a big mistake. Sonarqube at times was our arch-nemesis, but we played along well once we put more effort into pandering to it.

However, entering my second semester it was just myself and my tech lead on the team - so code reviews got a little more informal, and as we each got pulled off into different directions, they even stopped entirely after a few months. This wasn't ideal, but realistically for the project it was fine. We both knew what we were doing, and we both trusted eachother not to do something really dumb. Ultimately though, this is certainly different from how many corporate environments would be, and more like a startup.

Side Projects

Beyond my main project for onboarding, I had the opportunity to get my hands dirty with a lot of side projects. During my second semester in particular, I helped run a semester-long coop hackathon, wrote Slack bots to drive engagement, wrote tools for our internal hiring committee, and even a little custom tool just for my manager. Ultimately, while each significantly less important, the tools and technologies I got to use and things I learned in these projects summed up to be as large as an impact as my main project - which is awesome if you ask me!

Skills on the Job

Manulife uses the MERN[3] stack, consisting of Mongo, Express, React and Nodejs. Coming in.. I knew just about zero of them! I had experience with basic Nodejs from CIS 2750, and I knew some database stuff from previous projects, but I'd never done any serious work with Mongo, let alone Express and React. Thankfully though, after 2 weeks of stress and headaches, I got on my feet and started running with them all. Now, I've created apps on my own using very similar stacks - I've grown quite comfortable with them!

Besides the MERN stack though, there were other skills I ended up learning. I did a lot of work writing Slack bots using their framework BOLT, which plays nicely with Typescript - so I picked that up too. On top of all that, I wrote test files with Jest, a Nodejs framework, re-learned how bad Windows 10 is for programming, and then learned how to install WSL. What a ride!

All jokes aside again though, there were a number of soft skills I also picked up on the job; namely motivating other people, and how valuable being a proactive team member is. There's a huge difference between someone who you can mention a task to once and it gets done, and someone who always somehow finds an excuse or question that if they really wanted to, could have figured out themselves. It's not the kind of thing you can ask from someone, but jeez does it pay off when you're proper about it. I picked it up inadvertently by always having a "Yes!" attitude, so in a sense, that was a 2-in-1 win for me.

Goals

Get Involved

It's my final year at the University of Guelph, and I've only recently started getting involved with clubs, extracurricular programs, and other in-person events. I don't want to say it's a shame I noticed too late, but I am happy I can make the most out of them now; I know more now, and I knew I wanted to put that knowledge to good use- getting involved sounded like a no-brainer for doing that.

I knew from the get-go that Manulife had a lot of internal ways to get involved, so I leveraged that when planning out my two semesters. With my team being a part of hiring and onboarding, joining the internal coop hiring committee was one of the first things I did. It gave me the opportunity to develop many of my non-technical skills, as well as be on the other side of the recruiting process for once. Furthermore, entering my second semester, I was asked to run the subcommittee for Software coop hiring - another opportunity I took which proved very helpful for the rest of my term!

Outside the hiring committee, when work turned remote, I started creating non-work related Slack channels to keep people engaged. One of the coop channels I created was the most active channel in June, and the Linux Slack channel grew to be one of the most active Slack channels for full time employees as well!

Lastly, my efforts in this area didn't go unnoticed - when all the full time employees were given a day off work paid (and the coops weren't, for legal technicalities..), I was asked to help run an event for the coops that day so they could do something more fun at least. As one of the planned events, I developed an online pixelboard that coops had five minutes to fill out. It ended up being quite a success and a lot of fun!

Figure 3.0: Manulife Pixels, filled out by Manulife Coop students
Manulife Pixels

Help the Team

Being a coop, you're supposed to learn - but I also wanted to leave a mark. By this point I had done it with extracurriculars, but my main job was as a developer. Being an "Above average" developer wasn't enough, so I kicked off a few main things on our lead project to leave that impact:

Refactor to Redux

On my own throughout the semester, I learned how to use a React library called Redux, which as the name suggests, heavily reduces the complexity of the app. Having become sophisticated with the library outside work hours, I was able to add the task to our sprint board and complete it no hassle - significantly reducing code debt in one of our lead project.

Test Coverage

Who likes testing?? Well.. I sometimes do. There's nothing more satisfying than knocking out some test coverage on a casual week. For the first time in 5 months, our project had full minimum test coverage (65% of each file), something I worked on casually over the course of 3 weeks near the end of my first semester. This actually ended up being a huge help towards the end of my second term, when my tech lead was leaving the company but also trying to push our app to production right before he left - our high test coverage allowed him to quickly make changes without lowering our quality score too much and get it done in time. Thanks to that, even with him offboarding, our app had crossed the most difficult lines and thrived!

Develop Lacking Skills

Manulife takes serious investment into their employees. It's something I will always respect the company for, since it's so uncommon for a company to effectively teach their employees what they need to find a different job. Yet, in one town hall, that's almost exactly what one of our VPs said; if it boosts moral, confidence, and you feel like Manulife cares about you, that's better than keeping employees working there for their entire career. And Manulife seriously believed in that.

I took heavy advantage of the free learning courses Manulife purchased for their employees and contractors. Pluralsight was one of them - sort of a premium, paid version of Khan Academy - and you were seriously encouraged to use it! Through skill assessments, Pluralsight courses, and so much more, I learned skills both relevant to my work projects, and ones I worked on at home. Blocking off 4 hours of my calendar on Friday to learn something I would have otherwise learned in school was fantastic, and it really padded my resume too. Some skills that I upscaled (or learned for the first time!) using Pluralsight include:
  • Bootstrap
  • React
  • Redux
  • CSS
  • Javascript
  • Node
  • Azure Cloud Functions
..and so much more. While I started strongest in the back end side of things, by the time I left Manulife, the Pluralsight and LinkedIn skill assessments both agreed my Javascript with stronger than my Python.. And to me, that was a change and a half. What a crazy 8 months.

Recommendations

While Manulife was the best coop experience I had so far, there were some things I wish I could change. Great people were let go from the company, and other great people left on their own accord. Part of me wishes the company succeeded at keeping good talent, and they certainly try to by having opportunities to thank your coworkers and have it seen by management, but I feel like the evidence that great people still left the company shows that it doesn't work well enough. If I'm honest, I don't know exactly what the solution to this problem would be, and I know they've tried multiple solutions, but it's still a problem they face at the end of the day.

My other recommendation is a little more light hearted, and something I did some minor pushes for myself, although I admit it was a little unfeasible; but allow developers to run Linux on their laptops instead of just Windows/MacOS. The tools, software, speed and ability to write code effectively on Linux is debated, but as someone who uses both Windows 10 and Linux frequently, I have to admit they're not even close. The control developers have over their own computers, and the customization they can provide themselves using Linux is unmatched. If you want to increase developer motivation and productivity further, allow Linux to be flashed onto the laptops!

Conclusions

I've written my conclusions a number of times (namely on LinkedIn), but ultimately it comes down to what I have to say in the Acknowledgements section as well. It speaks for itself now that I work here part time, but to sum it up simple: I learned a lot, I developed myself a lot, and I appreciate a lot. My team at Manulife looked out for me, and I worked hard for them. It was a win/win situation overall 😄

Acknowledgements

I'd like to thank Nicholas Blurton-Jones, for being there for me. He was motivational, flexible, and really allowed me to get the most out of what I wanted in the work experience. Truly, my experience was only as good as the people around me allowed it to be, and Nick let me push it. Thank you for that.

I'd also like to thank Kristin Flannigan and Chris Jones, both who have left Manulife, for their continuous support, trust in me, and the work they gave me so I could become better. I wish the best to both of them, and I envy whatever company or team picks each of them up next. You guys rock, and you both know it 😄

There's no such thing as a self made man; I'm only where I am now due to the support I was given. Thank you everyone else who was there, because there's a lot of you, and if you're on of the people reading this, you're probably one of them too. I appreciate you, and thank you for everything you did.

References

"Manulife makes $1.1B profit". 2007-08-08. Retrieved 2020-09-12

"What Exactly Is A Full-Stack Web Developer?". CareerFoundry. 2020-01-06. Retrieved 2020-09-12

"MERN Stack". GeeksforGeeks. 2020-06-10. Retrieved 2020-09-12



Employer Evaluation Form

Final Employer Evaluation .pdf

See Also

Guidelines of the review can be seen here.