Work & Role Description:
I worked a 16-month co-op at Celestica's head office in Toronto between my third and fourth academic year at McMaster. I liked the idea of a 16-month co-op because it allowed me to take a full year off of school, occupy both summers, and start my final year in September. This way there would be no course scheduling conflicts and I would be back in classes with people I knew who did the same.
I joined an international team of roughly 10 people, including my manager, and a number of other developers. Though my manager and around half of the team worked from Toronto with me, I didn't get a chance to meet them in person until a year into my work, when pandemic restrictions were lifted.
My time at Celestica had me supporting a number of existing, large-scale web applications for internal use. The main application I worked on was called QuoteApp, which covered every step of a project's life. QuoteApp was so big that I can't honestly explain it. Handling project creation, team management, distrubutor analysis, supplier RFQs, BOMs, cost analysis, price lookups, and resistor matrices, and a hundred other things I was not exposed to, QuoteApp did a ton. There were hundreds of functionalities that I never had a chance to see over my 16-months at Celestica, let alone work on or understand.
QuoteApp was constantly being added to, with a never-ending supply of enhancements and bug fixes to attend to. Depending on the size of these enhancements, they took anywhere from a couple of days to a number of weeks. On average, a single enhancement took 4 days in total. This included a couple days to create on my local environment, integrate with the development environment, and another day or two to test and make further changes. Then the feature would remain on the development environment for user acceptance testing (UAT) before being included in the next production release.
QuoteApp was made using Java and Oracle ADF as an end-to-end web framework, hosted on WebLogic Server. Oracle ADF connected to Oracle Server, where we used PL/SQL to store and connect to databases. The majority of enhancements involved Java programming, Oracle ADF domain knowledge, and PL/SQL programming. We used JDeveloper as an IDE for the Java and ADF side, and Toad for database management, including PL/SQL programming.
The largest project I worked on was adding price analysis with Mouser's external API. You can read more about this on my project page, where I go into detail about the problem and project. This project spanned a couple of months, where I used and tested a REST API using Postman, handled API connection and data payload within Java, and then performed financial analysis using complex PL/SQL procedures.
My time at Celestica taught me a lot about development on large projects with multiple contributing teams in a professional environment. I was able to work on every part of the Software Development Life Cycle (SDLC), from requirement elicitation and design meetings, to enhancement development and iteration, to testing, UAT, and production release. I gained experience with code reviews, pair programming, rigourous testing, and of course software development skills.