Upon completing my third year at Queen's University, I leveraged a valuable opportunity through the school to go on a 12 month internship. Innovasium was kind enough to take me in for this internship, and I knew within the week I was there that together we would accomplish big things in the months to come.
In my first four months at Innovasium, I dove head first back into full-stack application development. By the time September came around, I had worked with a small team to ship three React applications into production utilizing GraphQL for data fetching and NodeJS on the backend.
My responsibilities at the company quickly leaped ahead, ushering in a new phase of my career; moving from full-stack development to devops. This was a part of the product lifecycle I had experimented with for side projects in the past, but I had never tested my skills in a production environment before.
Innovasium was in the process of migrating their internal CMS system to a container based PAAS to increase reliability and resilience against high volumes of traffic. The project had been on hold for a while as it was a big undertaking to ensure the platform was stable and production ready, while also doing QA to ensure existing sites on the current platform remained unaffected during the transitionary period. When they asked me take kickstart the project once again and lead the development effort to make this production ready, I knew I yet again had a huge opportunity on my hands to have a lasting impact on the company.
After another 4 months of trial and error, testing and QA, we had migrated all but the largest sites Innovasium hosts onto this platform. Service uptime has increased to 99.8% since launching, and the use of containers has allowed our development and staging environments to be more portable and flexible than it has been ever before.
Once I was exposed to the wide world of devops, there was no stopping me. I wanted to automate everything at the company. From test suites, to CI/CD, to scaling server infrastructure, we saw huge productivity improvements being reducing the overhead of manual tasks that could be automated with a couple hours of configuration.
The four months to follow would involve launching two more React applications to production, along with a handful of miscellaneous devops tasks.
Innovasium gave me the tools and team I needed to grow leaps and bounds in my career in such a short period of time, which lead to my decision to extend the 12 month internship into a 16 month internship. These final four months to come would yield the biggest reward so far in my career; leading a team of incoming development interns for the summer.
At first the task seemed trivial; create and assign tasks to the two new hires to keep their productivity high while we attempt to build a React application commissioned by a client. I would soon find out that this application would have the most integrations I have ever included for a single project, and the feature list for phase 1 was quite large given the timeframe for launch.
I soon found out that leading team is a two way street; if you can stay on top of managing priorities and giving the proper advise needed to complete tasks, developers stay surprisingly focused and able to deliver features at a high volume. On the other hand, if feature requests keep piling up, and you don't spend the time necessary to decompose these into achievable goals to work towards, projects can get messy, fast.
Despite what was now a daunting feat for us to pull off in delivering this application, managing this group of hungry, young, smart, empathetic developers taught me a lot. Have faith in your team, manage expectations, dissolve large features into bite-sized pieces, reprioritize and be agile, don't be afraid to ask for help, provide guidance, be empathetic, just to name a few.