Software Development Intern with the IT App, Dev, and BI team at American Iron & Metal

The American Iron and Metal logo



Table of Contents




Introduction


 My name is Noah Guta and I am currently in my fifth year of my Software Engineering degree, with a minor in Geomatics. This is my work term report for the Fall semester of 2024 in which I worked at American Iron & Metal. In this report, I hope you will learn about my placement and the many skills I gained while working here.


Information about the Employer


 American Iron & Metal is a Montreal based global leader in the metal recycling industry and has evolved into a successful and multifaceted company with a global footprint. During my 4-month work term, I worked with the IT App, Dev, and BI team at American Iron & Metal. Most of our team, including me, worked online, while some were located at the main office in Montreal. Our team’s main task was the creation and management of various software applications. This team was much larger than my previous work term, which made the agile ceremonies a very different environment. Members of the team worked with all aspects of software development and with many different technologies. Some of the main ones include Maximo, Ionic, and Angular.


Job Description


 My position with the IT App, Dev, and BI team at AIM was the Software Development Intern. My first task this work term was to continue the design and development of a Sensor Management Console. The console would be used by admins to view, monitor, and update any sensors that AIM Recycling managed. Halfway through my semester at AIM, I was transferred to the QA team for the Sensors project. This was because the Sensors project was reaching its conclusion. In this team I worked with two other analysts to test both the Ionic and Odoo Sensors applications. We initally carried out tests manually ourselves, but after a couple weeks we pivoted to creating automated tests.

 The software tools I used are TypeScript, Angular, Angular Material, Selenium, and C#. I had experience with most of these tools from my first term with AIM. I had to learn Selenium on the job, which was a learning curve for me. The experience I had with Playwright and Pytest from school helped me learn this new tool. Other non-technical skills I needed for the job I learned in my past experiences in class and through my last work term. These include working with a team in an agile development environment, problem-solving, organization, time management and creativity. Through my work term, I was also able to improve on these skills.


Goals


 While completing my second co-op work term with AIM I came up with a total of 4 goals. These goals were thought up at the beginning of the terms and were developed related to my position’s tasks.


To continue to gain experience working within an Agile software development team.


 The agile development process is an integral part of most software development processes today and AIM is no different from that. Right from my first day with AIM, I was a part of the daily stand-ups, and sprint planning/review meetings. During my last term, I was a part of a larger team than I was used to. These last few months, however, our team has been slowly shrinking as the project winds down. I've still been a part of large meetings for developers, but my Agile team consisted of fewer than last term. I participated all of our agile ceremonies and watched how the dynamic changed as there was less contributors. I can safely say that my understanding and experience with the agile development process have improved during my time at AIM.



To continue to develop my skills in creating web applications using C#, TypeScript, Angular, Angular Material, and any associated frameworks or libraries I may need in my work term.


 Improving my software development skills is invaluable in my development as a software engineer. The first task I had to do as a part of the AIM team was to continue in the development of the sensor management console. This involved working with TypeScript, Angular, and Angular Material to create a functional user interface. Halfway through my term, I was transferred to the QA team, where I completed test cases manually for the first couple of weeks. I then worked with Selenium and C# to create automated tests for the Sensors Ionic and Odoo web applications.



To further develop my problem-solving skills and how I approach new problems.


 During my second term with AIM, I learned how to create automated tests with Selenium and C#. The problems I found while creating automated tests were sometimes new and different from my experiences in software development. The answers were usually found through trial and error, especially when figuring out the correct XPATH locators. This helped further develop my problem-solving skills.



To continue to improve my organizational skills and manage my time better.


 Throughout all three of my work terms, I had to use my skills and some tools to organize my work and effectively manage my time. This term, I have completed my tasks within the estimated time and even completed some tasks early. I have also improved my organization by using Azure DevOps to plan out my sprints. My organization and time management skills have greatly improved during the last couple of months in this position.


Conclusion


 My Fall 2024 term with AIM was a very positive experience. To conclude my report on my time with AIM, I would like to summarize what I’ve learned in the last couple of months. This conclusion, and report, can never wholly reflect how much I’ve learned and grown while working with such a welcoming and experienced team. I will do my best to highlight a few things I learned that will help me in my future endeavors. I learned many new skills, including how to work with Selenium and C# and developing automated tests. Some skills I've improved on include Angular, HTML, CSS, and TypeScript. Working with a dynamic team utilizing the Agile development process was a great learning experience for me as well.

 Additionally, I have learned some transferable skills during my work term. I mentioned teamwork above, but I also learned how to escalate problems I face while designing and developing. My problem-solving skills have also been improving and I've found it easier to find solutions both by myself and through external means. Quite a few times I had to solve problems I had not encountered before, especially since I was working with languages and frameworks new to me. I also worked on my organization and time management skills while taking on many different user stories. The skills I’ve learned during this co-op term will help greatly with my future in software development.


Acknowledgements


 There are a lot of people who helped me out during my second term with AIM. This work term started similar to the last but developed into something I had not experienced much of before. I had lots of learning experiences and help along the way. I’d like to acknowledge just some of the people that helped me do the best that I could, in the limited time I was with them. I’d like to thank the IT App, Dev and BI Team for welcoming me into their team. Every member of the team gave me support during my time with them, always helping me out when they had the chance.

 I would like to first acknowledge Yariel Suarez, who was the project's product owner. He was the one who conducted my interview and he gave me the opportunity to work on this amazing team. Yariel was always available if I had any questions. He always gave me the support I needed to succeed in this position.

 I’d also like to thank our team’s manager, Derek Gillespie. He, along with Yariel, assigned me to the sensors management system project. He was always available for any questions I had, even when managing such a large team.

 I’d like to thank the QA team, Maria Elena Suarez Ramiro and Yanet Nieto Doce. They both helped me learn how to conduct test cases and develop automated tests. They were always supportive and available for any questions I had.

 I would like to thank the developers of the IT APP, Dev and BI team for welcoming me into the team and giving me the support I needed.

 I’d also like to thank my co-op counselors Laura Gatto, Kate McRoberts, and Anne-Marie Zawadzki. They helped me numerous times through my co-op job-hunting process and supported me during my time with AIM. I had some trouble finding a co-op placement, but Kate, Laura, and Anne-Marie were always there to help me.

 Finally, I would like to thank Greg Klotz for taking the time to read my work term report. I appreciate how long it must take to read all of our reports, especially when he has advising and teaching duties as well. I’d also like to thank Greg again for helping me with my school-related questions and advising me to stay in co-op. I would’ve missed out on lots of learning and experience if I had given up on it.