Update September 2017
I have recently finished my final CO-OP term at Magnet Forensics working as a Software Development Engineer in Test at their Waterloo campus. This past term was again only 4 months, however I was able to accomplish a lot during this time period and was able to finish some large individual projects and wor on several different tools using very different languages and methodologies. I have added more posts highlighting what I have accomplished this term as well as discussing the day-to-day activities on the job and my overall impression of Magnet. Once again these posts are copied from a weekly journal I kept during the term.
My co-op term started on May 1st. Most of the first week was training but we were also required to copy the code base and beginning as much as possible so we can start working on tickets. A lot of the training was done in a fast paced meeting style, but I felt they did a good job of on-boarding us and helping us out. I was able to start on a couple tickets in my first week and finished some pretty big changes to an existing internal tool, so it was nice to get off to a running start. I really liked the whole vibe and dynamic in the company, and I especially liked their mission and what the product they produce is designed for. It’s really cool to think something I’m working on is making a difference in the world.
My position was as an SDET but the team I was on was very dynamic so ended up working on several very different projects which was awesome. My role at the company was definitely more similar to that of an internal tools developer which I enjoyed. I was able to work on a lot of cool existing tools and make some UI and functional changes to those, as well several bug fixes, and I was also given a lot of free reign to develop my own tools for the company and work on several different spikes across my term. Overall I went in hoping to improve my abilities as a tester and as a developer, and as always improve my communication skills. While I wasn’t always working as an SDEt technically I was still able to learn a lot about testing methodologies and practices from some real experts at magnet which was incredibly helpful. Working on plenty of different projects also aloud me to improve my abilities in several areas, mainly web development using react and scripting, but also a lot of OOP and general C# development. I got a lot out of only 4 months, I probably learned more this term than on any other and It was awesome.
It was a great term overall. I really enjoyed working with my team and really everyone at the company. And most importantly I liked being a part of Magnet’s atmosphere and feeling like I’m contributing to the company. I’m happy to say that Magnet offered me a full time position as a developer and I accepted! I look forward to graduating now and returning next May.
================================================================================
Update May 2017
I have recently finished a CO-OP term at Sheridan College working as a Java Learning Assistant at the Trafalgar (Oakville) campus. This past term was only 4 months, however considering the work involved and how the schedule was based on one academic semester I felt that 4 months was the perfect amount of time to work at this job. I have added more posts highlighting what I have accomplished this term as well as discussing the day-to-day activities on the job and my overall impression of how teaching was. Once again these posts are copied from a weekly journal I kept during the term.
My co-op term started on January 9th however I had a training day on Wednesday January 4th. It was your usual training session, pretty boring to be honest but it was nice to meet the other co-ops students and to get a feel for how the term was going to go. Since most students don’t really need help in the first week it sort of acted as an additional training period, and a nice buffer before being thrown into the job. I did have to attend classes the first week but that was basically introducing myself so at the start it was pretty uneventful, it did pick up pretty quickly though. The job was a teaching position more or less, sort of like an on-demand TA. My responsibilities consisted mostly of working with students during 1-on-1 appointments, as well as attending classes, hosting drop-in sessions, running/teaching study groups, planning and facilitating exam crams, advertising, and gathering statistics.
The appointments took up most of my time during the job. Basically this is where students would book some time to go over any questions or problems they had, usually in regards to Java, but I did receive appointments for a wide range of programming questions. Drop-ins were a similar concept but designed to be quicker and more focused. Class time was spent mostly helping the students with activities and answering any questions they may have, while I was also responsible for running these study sessions, which were very similar to the seminar or lab sessions we have at Guelph. Every so often we also had these exam cram days, where basically from 9-5 we’d make a mock exam and let the students work on it and collaborate with one another and us, these really prepared the students for their exams and I thought facilitated the learning process very well. In addition to all this I was occasionally tasked to do some advertising for the learning center, as well keep up to date statistics on all of my appointments.
This was going to be my first co-op term not at Canadian Tire, and in a very different role so I didn’t really know what to expect. Going in to the role I knew that I wanted to improve my teaching and communication skills, as well as my overall knowledge of OOP and Java. I believe I achieved those goals. Teaching and talking to students so frequently really forced me to become a strong communicator, and I received a lot of positive feedback from students on my ability to explain and visualize a topic. It was also really cool to see a student learn right in front of me, especially using methods that I taught them. I was also able to improve my OOP knowledge basically from having to explain it so much, teaching really is a great way to learn as ironic as that sounds. In addition to this I also picked up other skills I wasn’t expecting, especially web development skills. I had plenty of students come in looking for web development help which forced me to learn it, I feel that this was a hugely positive part of my time at Sheridan.
I really enjoyed myself again this term and even though I was only there for 4 months I really felt like I got a lot out of it. In fact I believe 4 months is probably the ideal amount of time to spend on a placement like this. If I’m being very honest though I did miss programming regularly, and I’m looking forward to my next term at Magnet.
================================================================================
Update September 2016
I have recently finished another CO-OP term at Canadian Tire with the same team and department, however the manager and my team lead changed. This past term was only 4 months as opposed to the previous 8 month term, however having the previous term allowed me to hit the ground running this time around. I have added more posts highlighting what I have accomplished this term as well as discussing the projects I was apart of and the day-to-day activities on the job. Once again these posts are copied from a weekly journal I kept during the term.
My co-op term started on May 2nd and I had to go the initiation in Toronto again. It wasn’t too bad this time they did things a bit differently and had some different speakers this time which was pretty cool and I guess i shouldn’t complain about getting 8 hours pay for a 2 hour day, but I would definitely prefer to be coding if I’m being honest. I was able to jump in almost immediately on coding this term however and was back on the TPS project. Since my last term the application was put into production and is working very well so far they tell me. There were some bugs to fix and some misunderstandings about the underlying data we hadn’t accounted for that they had to rectify; when I arrived however their main focus was cleaning the code base and optimizing the application. My work on this project was very similar to last term, documenting, general coding, database design, optimization, and testing, however there was a lot more freedom and some extra responsibility this term which I enjoyed.
There was another project I was allowed to work on which they code named TTD (Trans Template Development.) The TTD project involved creating a web application template design that most if not all future web applications would use; giving the team a standard look and feel and making it way easier to understand and program web applications. No work was done before I arrived so i was able to start fresh on a new project again. This project was very different from what I was used to as their was very little coding and a lot of design. I was in charge of creating a UI design at the start and later was tasked with creating a grid control the design and implementation the team could use. This project was very interesting and allowed me to learn a lot of new tools such as Photoshop; I was even able to be scrum master for the project for a couple weeks.
I was able to learn a lot this term even though it was so short. I worked mostly with c# and SQL again however I was given exposure to technologies like Photoshop as well as web techs such as HTML5, css, javascript (mainly AngularJS and NodeJS) and bootstrap, among others. I went into this term not so much with a technology focus however; since I was returning I wanted to be given more responsibility and lead some meetings and projects, I wanted to work on my communication skills and learn as much as possible about effective design and application structure. This term I felt like one of the full time employees and the team really made me feel like I was making significant contributions. I was given a lot of responsibility which was what I wanted, as well as opportunities to present demos and lead meetings which really helped my communication skills.
I really enjoyed myself again this term however I wish it was longer; even though I was returning 4 months wasn’t enough time to do everything I wanted to do.
================================================================================
This website was designed to highlight my experiences during my 8-month co-op work term at Canadian Tire Transportation as a programmer analyst. This is an overview of what my goals were going in to the term, a summary of what I worked on, and what I got out of and accomplished over these 8 months. There are also a list of posts on the right of the page that are meant to track my progress week by week. These posts are copied from a weekly log I kept during my co-op term and are meant to give a more detailed view about what I worked on and learned week over week while at Canadian Tire.
My co-op term started on May 4 2015 and continued on through until December 18 2015 for a total of 33 weeks. I worked for Canadian Tire in their transportation office in Brampton as a programmer analyst. My team usually works on building general purpose EUC applications for use within the company as well as being the main support group for these EUC applications. They have more recently however moved toward much larger scale applications. Most of my work over the 8 months was devoted to a single project named TPS (Transportation Performance Scorecard) Reporting. The goal of this project was to have a system that would generate dealer facing reports about the companies shipping performance. My work on this project included design/planning, documentation, database design, object design, algorithm design, testing, debugging, etc. More detail can be found in the posts. I mostly worked with C# in visual studio 2010 and SQL, but also worked in SSIS and batch.
Going into this co-op work term I had quite a view goals. I knew there were some areas I wanted to strengthen several areas as far as programming goes; I was looking to improve my testing ability, both creating tests and test driven development, as well as learning more about best practices and general code quality. But I was also looking to see a visible improvement in my ability as a software developer not just as a programmer. I was looking to learn more about how to make good software, both at the proper approaches to planning and design, as well as how to make solid, maintainable code. I also new I wanted to improve some personal skills, mostly communications skills.
These past 8 months offered me plenty of opportunity to learn everything I was hoping to learn as well as giving me plenty of valuable experience working on a team on a large project. Our team used the agile methodology for this project which really gave me valuable experience with stories, sprints, extreme programming, and many other important aspects of development. Being involved from the start of a large project like this and taking all the way to just before releasing it to the company was a great experience. I definitely got everything I wanted to get out of it and more as far as improving my development skills. I had the chance to see first hand and be apart of application design, story-making, database design, sprints, extreme programming, test driven development, and debugging. I now have a much larger understanding of how to make solid, maintainable software, and believe I am a much better developer now. Working as part of team on a project of this size also gave me the chance to vastly improve my communication skills. The need to participate in design/problem solving meetings, daily scrums, user meetings, bug reports/updates, and communicating errors and/or their solutions really forced me to become a good communicator, and I definitely am happy with my communication skills now.
This is just a brief summary of my experiences and what I’ve learned during this co-op. It was an awesome experience that exceeded my expectations and I’m so glad that I was able to learn so much and improve myself both as a programmer and software developer. More detail can be found in the weekly posts. I would like to thank my manager Jonathan Fink as well as my entire team for these past 8 months. It was a great learning experience and I’m very grateful for the opportunity.