Experience as an Intern Software Engineer at HMH
Let me give you some background info about me before I tell you about the best time of my college life.
I am a 4th-year Undergrad student in TUDublin (Formerly DIT). I have just finished 3rd year and am now preparing for my project and last year of study in college. My journey with code and software engineering, in general, started in 2018 in an Irish Midlands community college called Portlaoise Institute, where I first got a taste of the Java Programming language. In 2018 we used an Amazing IDE for java called NetBeans, I got introduced to UI design, but it was very restrictive.
Since then, I have experimented with languages such as C, C++, Python, JavaScript (oh sweet JavaScript), and frameworks such as React, Django, and others.
The list of languages and frameworks is endless, but JavaScript was the catalyst that changed my perspective on software development. I was able to work on it during my internship with HMH in year 2 of my course, which was in 2021, even though I feared it like a monster.
Speaking of internships, I wish I had known how beneficial they could be.
In my second year of college, I joined HMH for a three-month summer internship, during which I got assigned to the Middle Earth scrum team, which was in charge of and working on some of the core products of HMH.
It was my first time working in a professional setting that used Agile methodology. I had only studied it in college but had never put it into practice, so it was a little intimidating. However, because the internship at HMH was part of a program, I got to meet other interns who were in the same stage as me, which helped me adjust to the scrum team’s workflow and transition to a professional workplace.
Oh, and lest I forget, since we were remote, there were difficulties accessing services, contacting the correct people, and attending meetings to get things moving.
Despite the distance, my mentor Cormac Neeson, supervisor Andrew Lennon, and the rest of the team contributed to an enjoyable experience, through one-on-one meetings, product overviews, and quick chats about the many questions I had (which were numerous) about the products.
I began by going to stand-ups, retros, and working on tickets. But the ability to look into, learn about, and work on any codebase or issue is something I found fascinating rather than being given assignments because it allowed me to learn at my own pace.
As a result, I joined the same team again in year three of my study, but this time six months instead of three allowed me to work on two more products, the cross-platform software HMH GO and the Epub reader RCE, because of the earlier start time and the longer time. I spent the first week learning about the products’ relevance and codebase.
My first task was to refactor some (a lot of) styling for the HMH GO app. But as the app is cross-platform, it proved a bit difficult due to the massive amount of testing required to ensure it is identical on all supported platforms, and thus took a significant amount of time during which I polished my CSS.
RCE was by far the most complex piece of software I have ever worked on, I spent some time researching its codebase before being tasked with investigating and creating features that locked functionality so that we could use it in places where that functionality is not needed, saving time spent on loading and providing a custom solution without compromising the codebase of RCE.
Then there was the issue of bundling RCE into an NPM package for internal use, which proved difficult due to the novel nature of the product, as it was not as simple to bundle and publish. After some research, I discovered a solution that allowed us to publish it using existing code with minor changes (like a few words small); this introduced me to NPM packages and the publishing process.
However, the most thrilling assignment I finished was on the backend, where I looked into and changed an API to speed up one of the products’ load times. The first problem was that I had no idea how to work with an API, so I started by learning about APIs, making a sample project, conducting some test runs, and investigating the codebase. During this time, I discovered how to properly provision resources on AWS, deploy a service, test it, and connect it to the front end.
Overall, I had the time of my life. From working on Frontend React components to using Python for Huge datasets to working on the Backend service, I believe I have learned more in these nine months than I have in all three years of college.
Putting the technology aside, I believe that despite all the problems, the culture — which is outstanding, to say the least — from the quizzes to the laid-back atmosphere was the biggest helper. After spending nearly nine months with HMH, I believe applying for that internship in year 2 was the best decision of my life. Additionally, I think that everyone I interacted with — whether they were on my team or not — made it simpler for me to adjust to a work environment.
Working on such fantastic software with such an amazing Team and connecting with some of the most gifted people has been an incredible experience.