Canvas Credit Union Internship
Last Modified: August 08, 2024
Background
Canvas Credit Union is a not-for-profit financial cooperative owned by its members and is the third-largest credit union in Colorado. Originally established in 1938 as Public Service Credit Union, it rebranded as Canvas to better attract Colorado residents and improve members' lives through financial offers tailored to their best interests.
Before joining Canvas as a Software Development intern, I built small static websites for my hobbies and a local nonprofit that raises funds to improve walking and biking infrastructure in Greendale, WI.
To apply for this position, I created a small website to showcase my technical skills to non-technical viewers. Using ChatGPT, I developed initial bullet points for my resume and refined them to ensure accuracy and grammatical correctness. I applied via Handshake and started working at Canvas just over two weeks later. The application process was straightforward, and I highly recommend leveraging Handshake (and ChatGPT) for resume assistance. Throughout my internship, everyone at Canvas was supportive and genuinely interested in my growth, which I greatly value in my career.
Responsibilities
During my time at Canvas, my responsibilities evolved from shadowing other developers to independently handling tasks. My key responsibilities included:
- Participating in daily standups using Microsoft DevOps to discuss completed tasks, daily plans, and roadblocks.
- Transparently communicating challenges, expectations, and knowledge, including naming variables and story pointing.
- Writing clean, maintainable code without over-engineering solutions.
- Building well-validated APIs using C#.
- Developing frontend components for Canvas Cares using React, TypeScript, and Zod for client-side validation.
- Documenting frontend component changes and usage for non-technical users.
- Utilizing ETL tools to process data effectively.
Things Learned / Tools Used
Working in a collaborative team for the first time and experiencing my first office job allowed me to participate in agile processes and improve my coding skills.
Microsoft DevOps
DevOps helped keep my team updated on my progress and needs. Story pointing tasks were new to me, and while I don't have a strong opinion on it, I recognize its importance in task management.
SQL Server Integration Services (SSIS)
SSIS, an "Extract, Transfer, Load" (ETL) tool, enabled me to quickly build a C# API to retrieve Google App Reviews for Canvas and store the data in a staging database. ETL tools are powerful for beginners, allowing quick value production without manually implementing solutions.
GitHub Desktop
GitHub Desktop was used for version control and branch management. I found it more user-friendly than using the terminal in my IDE. However, handling conflicts is easier in Visual Studio Code than in GitHub Desktop.
React / TypeScript
Initially confusing, React and TypeScript provided benefits like IntelliSense and static type checking, resulting in fewer errors, less debugging, and improved typing.
React Query
We used React Query to efficiently handle cache invalidation and deduplication without relying on useEffect()
.
Recommendations to Canvas
Increasing the size of the web team could address some challenges I faced, primarily due to my own communication gaps. A larger team would prevent mistakes from rookies like myself by providing more guidance and reducing the reliance on key individuals.
Conclusion
I highly recommend aspiring developers consider an internship at Canvas Credit Union. The supportive environment and opportunities for learning and autonomy are invaluable. This experience has motivated me to improve my communication skills and technical knowledge. I plan to apply what I've learned to personal projects, such as adopting React and TypeScript for my greenhouse monitoring project. This project, which gathers environmental data and historical data from an SQLite file, will benefit from React Query for efficient data handling.
Communication can be challenging, and this internship highlighted the importance of clear, concise communication. I aim to emulate effective communicators and enhance my ability to read the room, even when making jokes. Overall, this internship has been a significant step in my development career, and I am excited to continue growing and applying my skills.