Git Started: Building Confidence as a Student Software Engineer

Yasmine Rigby

The Lead-Up

In September 2022, I began my journey as a first-year Computer Science student. One of my initial goals was to become a member of the computing society, where I had the pleasure of meeting a fantastic group of students, who would always discuss local events happening within the university and Belfast’s tech community. It was during one of these chats that I learned about an upcoming local conference, known as the Northern Ireland Developers Conference (NIDC). It was here that I had first-hand experience networking within the community on a larger scale and where I had first heard about the company Hamilton Robson, where my now colleagues, Chloe and Luke, were registered as speakers for the event.

Fast forward 3 weeks later, the university was hosting a careers fair, providing students the opportunity to explore placement options with local tech employers. I figured this would be the perfect opportunity to secure some industry experience over the summer. As I made my way through the crowds of students and employers, I spotted the Hamilton Robson booth. I thought, “Why not go and introduce myself? I can use NIDC as a conversation starter!” I struck up a conversation with the team, sharing my goals and explaining my hope of securing a summer work placement.

In the weeks following the fair, Hamilton Robson’s marketing director, Rachel, reached out to me via LinkedIn. I was absolutely thrilled that she wanted to arrange an interview for myself and the software team. I am grateful for the decision to engage with the team at the careers fair, as it ultimately led to my very first tech role as a Trainee Software Engineer!

Before officially joining the team, Hamilton Robson organised several opportunities for myself and the team to meet and get to know one another. They provided me with valuable learning resources and kept in touch to see how I was progressing with university. I was also offered a ticket to attend tech conference BelTech, a thoughtful gesture that allowed me to share an insightful experience with the team. Fast forward 2 months later, I enjoyed an additional team bonding evening filled with drinks, pizza and games. I truly appreciated the effort that went into keeping us connected before starting, as it allowed me to build relationships with my new team members.

The First Two Weeks

In the initial days, I eagerly settled into my new workspace, set up my MacBook, and dove right in! Throughout my placement journey, I had the privilege of being mentored by Software Engineer, Phil, who became my go-to person for any assistance I needed. With my tools and workstation up and running, the team put my skills to the test with a series of workshops lined up for me. The main topics for these workshops were Source Control, Testing, and Software Architecture.

Source Control

My first workshop, led by Phil, explored the use of Git and GitHub. We covered the essentials, from configuring Git and integrating with GitHub to navigating Git commands. Additionally, we took a deep dive into local and remote repositories, and how they functioned. Following the workshop, I was then provided with some practical tasks.

The initial challenge involved cloning a GitHub repository, making modifications, and pushing them to GitHub while also exploring the concept of branches. I then moved on to tackle the additional tasks, such as creating a pull request, stashing, squashing, dealing with merge conflicts, and reverting local commits and pull requests. I then progressed to practical tutorials to boost my confidence in using the commands covered during the workshop and challenges. This workshop equipped me with skills that will undoubtedly prove invaluable in the future with work, university, and personal projects.

Testing

The second workshop was led by Software Engineer, Jake, who provided me with knowledge on Testing. Jake’s workshop emphasised the critical role of testing to identify issues early in the development process, preventing potential problems in later stages. Unit testing was the main focus during the workshop and challenge. Jake highlighted the importance of implementing unit testing from the project’s creation and also the significance of Test Driven Development in any project.

My challenge included applying the principles of testing and referencing what I had learned during the workshop. Marvel, a product developed by Hamilton Robson, would be the use case for the testing challenge. To supply some context, Marvel is a content platform for the visitor attraction market that delivers rich media to a visitors handheld device and automates content and service checks for customers – which is a key way to guarantee quality. I worked with audio tracks, involving tasks such as retrieval, uploading, deletion, and editing based on various parameters. The challenge was certainly demanding, but Jake’s support and patience guided me through it. This workshop served as an all-round great introduction to Unit Testing, Node.js, jest, and JavaScript.

Software Architecture

The final workshop, led by Senior Software Engineer, Chloe, offered an in-depth exploration of the architecture from projects at Hamilton Robson. We began by discussing the technologies used by the team, including AWS, React, React Native, Node.js, Jest, and more. From there, we delved into client-server architecture, with Chloe providing a detailed walkthrough of its components and how they interact.

I was also provided with real examples that showcased the diversity of Hamilton Robson’s projects, which was very insightful and helped me in understanding the impact of software architecture decisions. We discussed JobMatcha, a social led and AI enabled recruitment platform, Marvel, a content platform for the visitor attraction market, and BeaconIQ, a platform for enterprise office space analytics and planning.

Chloe’s challenge allowed me to gain some hands-on experience with React and TypeScript, along with other tools such as the Material UI library. The challenge was set up using the software team’s React project template, enabling me to familiarise myself with their development practices. This workshop offered insight into how projects are structured within the software team, and I thoroughly enjoyed learning how to create my web application using the React framework.

Final Thoughts

The onboarding process at Hamilton Robson was a great introduction for what to expect as a trainee software engineer. The training I received from Chloe, Jake, and Phil was invaluable and not only shaped my approach on how I work with the team, but has shaped how I can approach my projects inside and outside of university.

The Projects

Game of Thrones Studio Tour

While researching Hamilton Robson’s projects prior to my summer placement, I discovered they had delivered many products for the Game of Thrones Studio Tour (GOTST). These products included a mobile app, audio visual infrastructure, and interactive hardware. For context, the mobile app provides tourist information regarding the filming sites across the island of Ireland, a real-time wayfinding experience for navigating the studio tour, audio descriptors for users with impaired eyesight, premium audio content delivery, and also provides a way for GOTST to interact with their customers as the app is integrated with their ticketing platform. I was thrilled when I learned that the mobile app would be one of the first projects I’d work on with the team.

Upon joining, the team was getting ready to add a new feature to the app. This feature would enable the app to deliver an accessible multi-language service, so visitors attending GOTST could access a version of the physical reading panels that are placed throughout the tour in, as of writing this, 6 different languages.

This feature would allow users to scan a QR Code on information panel’s at the studio tour. Scanning the QR codes allows the user to see panel information throughout the tour translated from English to their chosen in-app language on their device. This feature required 83 QR codes to be created, so I developed a script to automate the creation of all the QR codes using Python. The tour consists of a vast variety of audio visual, written, and interactive content throughout, so I developed another script to automate the generation of the written content, sitting at around 350+ panels, which included the panel content throughout the tour. Each written piece of translated content can now be reached when visitors scan the codes, which offers a richer experience whilst exploring the tour and has also introduced a way for the content to be more accessible to visitors attending GOTST.

Developing the scripts was my first real deep dive into a software engineer’s struggles of trial and error. Thankfully, the team had my back and helped me  out when things got complicated. I even had some paired-programming sessions with Head Engineer, Luke, that really helped me make progress, and steered me back in the right direction! It felt good to see my work come together and actually contribute to a part of the project that would help the team with the new feature. Shortly after wrapping up my part of the project, I got the chance to visit the Studio Tour in person along with some of the team. For several of us, this was our first encounter with the tour, and the morning’s immersive experience proved nothing short of amazing. Being at the tour in person really helped connect the dots on what I’d been working on the past few weeks.

Tunesday

Once a week, typically on a Tuesday, the team will take part in an office game which we call, Tunesday. The idea behind Tunesday is that a shared session is created on Spotify. Everyone adds their favorite songs anonymously to a playlist, then once all the songs have played, we each vote for our favorite. The winning song gets to earn a spot on our office Tunesday leaderboard.

As part of my onboarding training, I took on an interesting project, which was creating a web app based on our game Tunesday using Next.js, that would be open for contributions from every new team member being onboarded to the software team in the future. I received support from team members, Jake and Software Engineer Lead, Kyle, who set me up with the planning and resources needed to kick off the project. This was my first experience with Next.js, so I definitely had a bit of a technical learning curve to tackle. Luckily, I had the flexibility to conduct my own research, follow tutorials, and grasp Next.js, React, and TypeScript. I was able to use resources and tools such as supabase, clerk, Tailwind CSS, and DaisyUI to bring the project to life.

Being involved from the beginning of Tunesday’s development allowed me to witness all the planning and processes that go into a project. The team’s approach to planning, combined with my learnings from the workshops, provided me with plenty of resources to begin my journey with Tunesday. When new graduates Bradley and Steven joined the software team, I handed over the Tunesday project to them as it was part of their onboarding training to work on this project, meaning I was ready to move onto the next one!

EnergyEye

Luke introduced a project to me that the team had already put into action but were interested in conducting further research on, known as EnergyEye. The goal of this project was to provide insights for Hamilton Robson’s Audio Visual clients on energy use metrics across their infrastructure to enable data driven decisions that, for example, may reduce energy usage levels and carbon emissions within a business. As Hamilton Robson specialise in Audio Visual (AV) engineering as well as software, this project is a great way to collaborate across teams. The AV team uses equipment that can streamline the process of monitoring a company’s infrastructure, while the software team is working behind the scenes to develop innovative ways to collect and visualize the data.

Once I was comfortable that I had conducted enough research, I got stuck into developing a prototype for EnergyEye. I got to further my learning on using linux servers, writing bash and python scripts, how to set crontab schedules, configuring and using the AWS command line interface, and using the Amazon S3 storage service from AWS.

I spent a few weeks on this project, and thoroughly enjoyed learning about the SNMP protocol to monitor network devices, and also learning how to use Amazon S3. The big bonus for this project was the amount of time I got to work in a linux environment, as this made me a lot more confident in using the command line. To wrap up my research and development on EnergyEye, I delivered a presentation with a live demo to the team. I am grateful that they were and are all very supportive in providing a positive environment for me to improve on my public speaking and presenting skills.

Final Project

In the lead up to my final weeks at Hamilton Robson, I was thrilled to kick off a new project that would be driven by none other than Artificial Intelligence. Once again, this is a project where the AV and software divisions can collaborate to develop immersive, rich content for visitor attractions. The team is always coming up with new and innovative ways to shape how users interact with content – one example that amazes me in particular was the process behind developing the interactive longbow!

With the recent exposure and engagement surrounding generative AI, I was eager to get stuck into my final project and explore the capabilities of OpenAI’s API. AI is a passionate subject for the software team here at Hamilton Robson, meaning they are always keen to initiate new and innovative ways to utilise AI to its full potential in their projects. With recent developments and the continuing advancements surrounding speech recognition, realistic voice generation, and language models the overall goal of this project is to outline a proof of concept regarding interactive characters that we, the user, can stream conversation with the character with lower latency.

The two main tools that I utlised in this project from OpenAI, were Whisper and GPT-3.5 Turbo. Whisper is an automatic speech recognition system that can be used to convert audio to text. I was impressed with how accurate Whisper was at recognising my accent and speech, as its known that Belfast accents can sometimes become challenging for speech recognition tools to decipher. GPT-3.5 is the large language model (LLM) that I got to use in this project, which of course also powers the well-known ChatGPT. It was great to get some experience using the model with OpenAI’s API. Finally, I got to use the ElevenLabs API for the implementation of text to speech (TTS). ElevenLabs are a company who specialise in language & voice content creation using AI – and they do it extremely well. I was very much impressed by this tool and its ability to create human-like speech.

As of writing, the team is conducting ongoing research and development on this project. The quality and performance are two key things that have continued to surpass my expectations and I know that the team is super excited to show it off in the coming months.

The Round-Up

Summing up my time as a Trainee Software Engineer definitely unlocks some emotions, as it finally means this short, yet sweet, part of my journey is coming to a close as I get ready for my second year of university studies. The last four months I was able to work alongside some of the most talented and inspiring individuals, who I am forever grateful for the mentorship and guidance that they provided me with.

If there is one valuable lesson to take away from my experience, it is to work on building up the courage to confront the things that intimidate you. Was I terrified to network and meet new people? Most definitely. Did I do it anyway, and will I continue to do so? Absolutely. You really could be one conversation, application, or event away from an experience that will change your life.

I think it goes without saying that I had the most amazing and enriching experience on my summer placement with Hamilton Robson – I truly don’t think I could ever fully express how much this experience with the team at Belfast has positively impacted me personally and professionally. My confidence has increased, I have a better sense of direction with my studies and career goals, and I am excited to continue on with my journey as a Software Engineer.

Share on facebook
Share on twitter
Share on linkedin
Share on whatsapp
Share on email

LETS TALK.

Want to find out how the subject of this blog could help your business? 

Our blended team of experts go over and above with our services to our customers, no matter what the challenge. Get in touch to find out how we can work together.