Software/Application Developer Intern
Introduction:During my term at CIBC I worked as a Software/Application Developer Intern on the Capital Markets Technology team developing a web application used by business and finance teams. This work term report summarizes my responsibilities as well as the tools and practices I learned and how I progressed toward my work term goals.
About CIBC:With its headquarters located in Toronto, CIBC is a prominent financial organization serving individuals, corporations, the public sector and institutions both domestically and abroad. With about 48,000 people supporting approximately 14 million clients, CIBC operates across various business lines, including Personal and Business Banking, Commercial Banking and Wealth Management and Capital Markets.
Pink shirt day w/ my team at CIBC!
Interesting Facts:
- Formed in 1961 when the Canadian Bank of Commerce and the Imperial Bank of Canada merged.
- CIBC is one of Canada's “Big Five” banks (a common shorthand for the country’s five largest banks).
- CIBC sponsors the Cancer Society Run for the Cure and has raised $64M+ as reported by CIBC.
- CIBC launched Simplii Financial in 2017 as its online/direct banking brand.
Job Description:As a Software/Application Developer Intern on CIBC's Capital Markets Technology team I supported an internal web application utilized by business and finance teams. In this role I contributed across the stack by building UI features in JavaScript/React with Node.js in the workflow, supporting APIs in C# and writing SQL for data access. The primary development and debugging tools I used were Visual Studio and SSMS while Azure DevOps was mainly used for the management of work items, reviews and CI/CD releases. I liked seeing what "shipping" looks like when many teams are involved. Reviews, coordination and clean fixes matter way more than I expected.
One of the few projects I’m able to share publicly: Confluence onboarding pages I created to help new team members ramp up on our tech stack.
Work Term Goals (and why they help for my next work experience):I targeted teamwork skills by being a more dependable team player by consistently contributing, asking questions ahead of time and being upfront about progress. This is an important skill to have on any team working on common deadlines. I also focused on technical onboarding and independence by improving my technical understanding by way of company documentation and learning repeatable processes so I could get up to speed faster in the next role. Finally I hoped that my skills would be strengthened because I was able to give stronger updates during team meetings as well as offer stronger forms of written communication, such as documentation, comments and commit messages. In regards to technology I wanted exposure across the full development lifecycle from frontend to backend and even databases to better understand how systems connect end to end on such a massive scale.
ReflectionThroughout my CIBC work term I have made effective progress on all 4 of these challenges by developing good habits that increased the level of both collaboration and the quality of my work. When working collaboratively I strived to be reliable through effective day to day communication: keeping people up to date, listening actively and asking for clarification as needed to avoid extra work down the road. I also enhanced my technological competency by familiarizing myself with the tools and workflow of the team of developers in the company through internal documentation, mentorship with senior developers and writing up repeatable procedures so that I too could become more self sufficient with my work as time passed. When problem solving I worked more systematically to identify the underlying issues: reproducing problems, dividing problems into smaller parts, trying out hypotheses and proving the solution before escalating the issue. Finally I improved the quality of my verbal and written communications: giving effective, structured updates in team meetings and writing better comments, documentation and change explanations so that people could more efficiently build on top of my work. I would say that I have been successful on these challenges while also further developing written communications as those grow with collaborative projects.
Relevant Skills
( ReactJS, JavaScript, C#, API Development, SQL, CI/CD, Visual Studio, NodeJS, Azure DevOps )