Coop Term 2 - CIBC
Introduction
My name is Andrew Linington. I am a forth year Software Engineering Student with a minor in Mathematics from the University of Guelph. This page will give you the details of my employment with CIBC in Toronto, Ontario, Canada. I plan to convey how through my work I was able to succeed in a remote work-term environment with CIBC.
Employer Information
CIBC is a Canadian banking company that was founded in 1867 as Canadian Bank of Commerce, now known as Canadian Imperial Bank of Commerce. They have many branches located across America, Europe and Asia with a focus in Canadian Banking with over eleven million clients. My team, LiveLabs, is the Innovation & Digital Technology Lab of CIBC which developed technology and new improvements to existing technology for our clients.
Job Description
During my 4 months at CIBC, I was a software engineer working on a Full-Stack project. This work term followed a lot of the same technologies as my previous work term where I used Android Studio and Xcode as my means of development for Android and iOS, and developed a backend using Spring boot. For this work term the Spring boot backend used AWS to host itself and was developed in Java to perform actions as a server for our apps. For Android development this work term I was working with existing tools I had used before for app development with the added benefit of working within the Android widget lifecycle for the project. For iOS this work term I was allowed to work with new technologies with swiftUI 2 for a majority of the management of UI elements which was key to the development of widgets for our internal project.
Goals
- Over the course of my second work term at CIBC I was given the opportunity to work more actively with existing CIBC products. Some of this development included the use of CIBC's deeplinks and public facing Api's which i had never had the opportunity to work with before. In order to reach my goal of understanding these tools I had to deepen my understanding through communicating with team members and looking through documentation. after searching documentation i would take the time to work with the tolls then ask questions of team members if the internal documentation was lacking. As a result of these actions I was able to gain a deeper understanding of my project and finalize my work on the project with these tools.
- At CIBC LiveLabs, my team was Agile. Every day we took part in agile ceremonies which was something new and made me want to become as involved as possible. So in order to achieve my goal I aimed to maintain the trello board and participate more in IPM meetings, daily stand ups, retros and demos. After setting out to complete this goal I ended up completing significantly more Trello tickets and created more as necessary changes arose. In addition to the changes to the trello boards, I took the opportunity to involve myself more in Agile ceremonies like demos and retros where I would share the state of the project with my team.
- Finally my last goal for my work term with CIBC was to gain some overall exposure to iOS and Swift, a language and system I had never had the opportunity to work with before. My focus with working in iOS development was to learn more about the tools and how to implement the Figma designs, which required a deeper understanding of the storyboard and some exposure to development tools. Over the course of this work term I was extremely happy to learn how to work with XCode, as painful as it can be to work with at times, through picking up numerous more tickets involving iOS development. While learning Swift, I was exposed to new tools for testing and wanted to ensure they were used effectively so I migrated existing mocks from being copy pasted to extending the original code with no API calls. While developing for iOS, I was able to expose myself to working with storyboard and learn how to move between screens in numerous ways the rest of my team had not used before and helped to simplify existing designs we had implemented. Although I was able to learn a lot, the work for developing the app was not completely finished in my term but was left in a decent place for future development.
Conclusion
Overall this work term allowed me to take some time to take my existing knowledge during the previous work term and cement it. In addition to this i was given the opportuinty to take a mentorship role in teaching others about working with these technologies.
Improved Technologies:
- Java
- REST APIs
- Agile
- Git
- AWS
- iOS
- Spring Boot
- Android
- Test Driven Development
- Pair Programming
- Scrum
- noSQL
- Gradle
- nginx
- XCode
- MacOS
- Github
New Technologies:
- SwiftUI 2
- Jenkins
- Github Actions
This semester was a great opportunity to revisit existing technologies at my work place and enhance my understanding of working in a team outside of the typical school environment.
LinkedIn