My Experience at CAMS Software
Even if you don't live in the US, chances are you've heard of grocery giants such as Kroger, Albertsons, Delhaize, and Safeway. CAMS Software is the company that has been providing them with transportation solutions for over 20 years! They build all the tools a grocery company needs to succeed: Driver Activity Management, Route Optimization, Payroll Systems, and much more.
Picture this: You start your job, and on the first day, they tell you that the code you write will be used by tens of thousands of people in Distribution Centers all over the US. The products you develop are used to generate over $300 billion in revenue every year! We need to make sure that everything we do is perfect because if it isn't, it could cost our clients millions of dollars. And to Protect the Client is our top priority.
Fast forward one week, and we've finished our orientation and are ready to start making contributions. This year, we had 4 talented interns joining CAMS, and I was one of the lucky four. Some of us worked on highly complex backend features using MS SQL Server and C# WPF, while others had a chance to work on the Web-based products. I was placed on the Web team and did a variety of work using Angular, .NET Core, and MS SQL Server.
My Growth
At first, I worked on small enhancements and bugs, trying my best to learn the ins and outs of both the codebase and Angular. I would say a good 60% of my work was Angular-based, and most of the rest was SQL-related. It was amazing to work with gigantic databases filled with mission-critical corporate data. I gained a deep appreciation for the art of writing efficient SQL queries and optimizing our code.
As time went by, I felt more and more confident in my software development skills and started taking some of the bigger tickets. I was able to develop features and enhance the frontend for the Routing Module, which contains some of the most complex code in the entire application.
Stack Overflow and ChatGPT can be useful allies when it comes to writing code, but if the business logic is complex enough, you will have to rely on your teammates to explain what's going on and fulfill the requirements correctly. I was lucky enough to have a wonderful team of developers who helped me become more business-savvy and understand the intricacies of the grocery industry. It was very humbling to see that even though I had some experience with software development, I still had a lot to learn about the business side of things.
I was also able to apply Agile methodology to deliver software solutions quickly and effectively. I attended daily standups, sprint planning meetings, and sprint demos. I learned how to leverage Azure DevOps and Jira to manage my tickets and keep track of my progress. I also learned some more advanced Git features for version control and collaboration.
My Impact
All in all, I managed to complete over 60 tickets including user stories, enhancements, and bug fixes. Of my 40 completed bug fixes, 45% were classified as Critical or Major, which is a testament to the quality of my work. I also completed 24 enhancements and user stories which I developed from scratch. I was able to work on the frontend, backend, and database layers of the application, and I learned a lot about the entire software development lifecycle.
On top of that, I identified a great opportunity to make a big impact before completing my internship! I noticed that our Azure CI Pipelines weren't executing the Cypress Automated Testing suite. Usually, Cypress tests are run locally, but I thought it would be a great idea to run them automatically every time we build the code at the end of the sprint. Although I hadn't worked with Azure CI before, I was able to quickly learn about it and get the tests running. Furthermore, I optimized the test execution from over 2.5 hours down to under 1 hour (150% faster!). This was a great way to show initiative and make a big impact in a short amount of time.
CAMS Culture and Benefits
CAMS Software is an excellent place to work. You truly feel like you're part of a team, and everybody is willing to help each other out. On top of that, there's quite a few perks that are worth mentioning:
- Excellent work-life balance
- In-office gym and shower
- Free snacks (including beer and everything you need to make a sandwich)
- Company lunches and events such as golf day
- High pay for interns compared to the industry
Summary
To sum things up, I had a superb experience interning at CAMS Software. I was able to learn a lot about software development, logistics, and soft skills alike. I'm happy to have made a big impact in such a short amount of time, and I'm looking forward to seeing how my contributions will help CAMS in the future. I'm also excited to see how the company will grow in the next few years, and I'm sure they will continue to be the leader in the grocery transportation software industry.
Furthermore, I highly recommend anybody interested in joining CAMS to contact Brian Taylor on LinkedIn or to keep your eyes peeled for any openings on Indeed. They particularly like to hire from BCIT! I'm sure you will have a great experience, and you will learn a lot about the industry and software development in general.