Camis Inc.
Role: Software Developer
Date: Fall 2019 (Sept - Dec)
Introduction
This section of the website is a report of my time spent working at Camis Inc. as a Software Developer Co-op, during autumn of 2019. This report will go in depth about my time at Camis and how it taught me web development skills, valuable knowledge about database architecture and improved my essential soft skills like problem solving.
About the Company
Founded in the days of MS-DOS, Camis is a Guelph-based company that provides software solutions for park
management and campground reservations. The company’s clients include the government agency owned Parks
Canada
as well as Ontario Provincial Parks, Washington State Parks and more. Camis also operates call centers in
Maryland, Michigan, Wisconsin and of course Guelph.
Camis’s proprietary software handles park permits (handed out at the park to provide confirmation of your
arrival), park reservations and point of sale transactions for various goods (firewood, boating permits,
etc).
The program has had 3 major iterations so far:
Goals
The big thing I wanted to learn about was SQL. With databases being so prominent in almost all fields of computer science, knowing how to use the most common language for managing data in a relational database is almost mandatory. I absolutely wanted to learn the basics at least, and hoped to gain more intermediate knowledge afterwards. Though not listed as any one of my goals, I also wanted to improve my ability to communicate effectively because I felt that I was too quiet and reserved at my last co-op job until about the last month.
In conclusion, I think I did pretty well with making progress on most of my goals. Like my goals from the summer co-op term, they’re not meant to be 100% completed but rather used to build upon skills needed for me to excel as both a software developer and a person.
Job Description
Camis operates within the typical two week agile development cycles, closely following scrum principles,
which focuses on breaking down a big
issues into individual, feasible goals that can be met within the cycle’s time frame. Every two weeks,
new
tickets would appear on the Everest squad’s development pile. These issues would range from bug fix
requests to small configuration updates (e.g. updating text on reservation confirmation emails) to the
very rare feature request (I wasn’t allowed to do these for obvious reasons).
The bulk of my work typically involved the following:
Unfortunately, I wasn’t given the chance to do any new feature development. With what I had, I definitely preferred the bug fix work over the configuration stuff since it was more stimulating, less tedious, and let me think. The C focused knowledge I acquired from my classes wasn’t too handy at this job as expected, but knowledge from my last job at Adknown (C#, Visual Studio, debugging techniques) proved to be highly useful at Camis.
The Side Project
The most interesting thing I did at Camis wasn’t even related to the work from the company’s clients;
it
was a side project entrusted to me by my supervisor Taylor. The project was deceptively simple (though
not intentionally):
- Take the existing Build Monitor extension for Visual Studio and change it to gather specific metrics such as CPU and RAM in addition to the extension’s pre-existing feature of timing how long it takes a Visual Studio solution to build.
- Create a simple web service that will receive the metrics from the modified extension and store it in a table in a relational database.
- Allow the database to be queried for the metric data.
I liked doing this project for several reasons. Firstly, it tied directly into my goal of knowing more about SQL and web services. This goal was actually created based on the required knowledge needed to complete this project. Doing the project allowed me to both gain knowledge of SQL, databases, web services, and more and put it to practical use. The project did end up being overwhelming at times, but the extensive help provided by Taylor allowed me to arrive at a satisfying result. Secondly, it was good change of pace from both my usual work at Camis and what I’ve been learning at school. I hadn’t tackled the concepts of web-based endpoints, GET/POST. relational databases, and more before. Doing this project allowed me to gain knowledge on many software engineering topics that are invaluable for a developer to have in this day and age.
To conclude this section, I enjoyed most of the work I did at Camis, even if it was difficult or a tad boring at times. Many of the things I did taught me either valuable soft skills like problem solving or technical skills like what is and how to write a query.
Conclusion
In conclusion, my time spent at Camis was a great learning experience. I was able to learn a lot
more
about many important topics in computing, such as databases, web services and more. I improved my
problem solving and debugging skills and achieved substantial progress on my goals. Finally, I got
to
do it all with a reliable team who always had my back.
I’m still not entirely sure what strand of computer science/software engineering I’m going to pursue
as my lifelong career. However, what I did at Camis did make me consider web-based development as an
option. I may explore related work in my future positions.
Acknowledgements
A special thanks to the following people for making my time at Camis great:
- Taylor Poulin, my supervisor, for being a helpful and reliable mentor figure. Taylor was always ready to lend his aid (if he wasn’t caught up in a meeting or unlucky occurrence) and was instrumental in teaching me SQL, database design, how web services work, and much more. The fact that he took time out of his busy schedule to sit down with me and help me learn to be a better developer is something I’ll always appreciate and be grateful for. Stefan Barrette, for helping me with specific details in configuration changes on countless occasions and being an upbeat presence. His patience and reliability was indispensable for everyone on the Everest squad.
- Julian Verity, for being a kind helping hand to everyone and going above and beyond his developer duties, even organizing sessions for the devs to sit down and learn new things via Pluralsight.
- Dhaval Pathak, for guiding me through Everest and more during my first week at Camis as Taylor was out on vacation. Without him, I would’ve fumbled around in Everest’s business logic for much longer than I did.
- Josh Nasso, for his solid testing of my fixes and always being friendly and accommodating with me.
- Colby Warkentin, whose keen eye and deep experience working with Everest allowed him to catch my mistakes in code review and recommend the best course of action to resolve them.
- Hassan Hassan, for providing a comprehensive orientation that got me and the other co-op students up to speed.
- Victoria MacKenzie, for being extremely helpful and reliable for any of my HR related issues and also being excellent during orientation.
- Everyone else at Camis, take care and thanks for helping make my time at Camis great, even if indirectly and if most of us never met face to face!