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 fourth year of my Software Engineering degree, with a minor in Geomatics. This is my work term report for the Summer 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 main task this work term was to assist in 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. An interesting part about this project was that since I had to retrieve the sensor information from an API that was still in development, I got to watch the API calls improve and adapt the console to them. I was also working in a larger team then I had done previously, both in school and in my previous work term. It was interesting participating in a different environment and watching different projects being developed cohesively.

 The software tools I used are TypeScript, Angular, Angular Material, .NET, and C#. Before my work term, I had no experience with these tools. I had learned JavaScript in CIS*2750 and worked with it in my personal time, but there were some aspects of TypeScript I had to learn about, like interfaces. I had to learn how to develop and run a software application using these tools during my first few weeks on the job. This involved research, completing a few tutorials, and creating a small project using Microsoft Entra ID. 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 and creativity. Through my work term, I was also able to improve on these skills.


Goals


 While completing my first 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. Before my work term, I had learned about agile development in my software design courses, and had worked within an agile team in my last work term. This term, my experience was a little different. During these last few months, I’ve developed a lot of experience working in an agile environment with a much larger team. I participated all of our agile ceremonies and learned how they function with many more participants. I can safely say that my understanding and experience with the agile development process have improved during my time at AIM.



To learn to develop web applications using .NET Core 8, C#12, TypeScript, 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 main task I had to do as a part of the AIM team was to design and develop a sensor management console. This involved working with TypeScript, Angular, and Angular Material to create a functional user interface. I was also tasked with creating API calls using TypeScript and Angular to retrieve all the sensors and their associated data. I also worked with .NET and C#, initially for a backend for the console and then to be able to decipher the data structures and API endpoints within the Sensors API.



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


 One thing I wanted to highlight and improve on in my first term with AIM was my problem-solving skills. I felt that these skills were essential to my development as a software engineer. To do this, during my term, I tried to challenge myself in the tasks I completed. I would try to solve problems on my own before consulting forums and tutorials and I would always make sure I fully understood every aspect of the solution. This helped improve my problem-solving skills and even helped me learn new things that I used to create this website.



To continue to improve my creativity and techniques I use to display information to users.


 Throughout all three of my work terms, I had to use my creativity to effectively display information to end users. During this term, I had to design and implement a user interface using TypeScript, Angular and Angular Material. I compared frameworks before landing on Angular and Angular Material. I also consulted many similar products online for ideas and improvements. Before actually developing the user interface, I created a mockup and presented it to my superiors to receive approval and feedback. My creative thinking skills have greatly improved during the last couple of months in this position.


Conclusion


 My Summer 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 TypeScript, Angular, .NET, and C#. Some skills I've improved on include HTML, CSS, and JavaScript. Working with a larger 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 creativity skills while designing and developing a user interface. 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 that helped me out during my first term with AIM. This work term was more software development heavily than the last, so 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 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.