Nurturing new talent: A Week With Our Work Experience Students
22/07/2024
Written by Sarah McDonald
Last week, we welcomed two work experience students to the SilverRail team. Catherine and Anslin, both in year 12 with a keen interest in computer science, gained hands-on experience, developed new skills, and learnt about how we work behind the scenes at SilverRail. We are thrilled to have supported their growth and wish them all the best for the future.
"My name is Anslin, an aspiring Software Developer, currently in Year 12 studying Computer Science, Maths, and Chemistry at A-Level. I often read around this field and find myself thoroughly interested in the uses and ethics of AI in the modern and future worlds, leading me to read ‘The Alignment Problem’ by Brian Christian. As well as this, I frequently crochet and attend martial arts classes to learn new skills.
During the week of 8th July to 12th July, I was fortunate enough to undergo work experience at SilverRail, a company that specializes in providing innovative technology solutions to improve the rail industry. As someone who aims to progress my studies in Computer Science at University, this work experience improved upon my prior knowledge of theory I have learnt in my A-Level lessons and how this translates into real-life programming and a work environment."
"My name is Catherine, and I am a Yr 12 student currently studying Maths, Computer Science and Latin for A-Level.
Between the 8th - 12th July, I was able to partake in a work experience programme at SilverRail in which I was provided with the unique opportunity to interact with various scrum teams, each specialising in different fields which allowed me to get a glimpse of the various possible career paths in software development. This all-round experience was especially helpful for me in narrowing down my interests."
Find out what Anslin and Catherine got up to during their work experience with us:
DAY 1
HR Introduction
On Day 1, we had an HR Introduction with Victoria Bacon, the Senior Global Talent & Culture Manager at SilverRail. We were given a brief overview of SilverRail’s aims, values, mission, and a history of the company. The mission of SilverRail is to make rail travel easy for travellers, agencies, and train operators. We learnt about SilverRail's passion for reducing global carbon emissions and how these values are implemented through events such as the annual step challenge.
Learning SilverRail’s approach to project management
We met with Luis Serralheiro, a Technical Lead Engineer at SilverRail for applications and our day-to-day manager for our work experience week. After introducing himself, he explained his main responsibilities, which includes providing direction to the entire team, considering everyone's opinions and using them to decide on what approach and technology to apply. He also explained the company’s approach to project management, which follows the agile methodology. He introduced us to Jira, a widely used project management software that supports the agile framework.
Learning about SilverRail’s products
Next, we participated in a product meeting with Senior Product Manager, Sarah Disborough, and Associate Product Manager, Emma Davis, during which we were set an interesting assignment. Our task was to identify the stakeholders, define the problem being solved, determine the target users, understand the barriers they face, explore possible solutions, and establish metrics for measuring the product’s success.
DAY 2
Introduction to the scrum team
On day two, we met a Scrum team called Griffin, who were based around front-end development. We met Christopher Beldam and Ana Marsic, who are both Front-End Developers, and Priyanka Kumar, who is the QA for the team. We learnt more about front-end development and how this team works closely with designers to implement the design for a website through coding.
Learning about UI/UX
Next, we met with a designer, Adam Boulkroune, who explained UI/UX design and his daily responsibilities. He showed us the current project he was working on and explained in more detail what he does. He also explained Figma, which is the design tool he uses to create and finalize iOS designs for the iOS application he is currently developing.
It was interesting that even though the design team and developer teams have distinct roles, they work together on the same product. We saw how they differ and understood how both need to communicate clearly to ensure ideas are conveyed.
Mobile developers roundtable
We also had the opportunity to join a Mobile Developers Roundtable where we met iOS Developers Grzegorz Kozlowski and Kajal, and Priyanka Kumar QA Engineer. They discussed their progress and how they were going to proceed for their upcoming Sprint Demo and Release.
Web Pair Programming in Griffin
Next, we had the chance to do some web pair programming with members of the Griffin team. In this session, we were taught more about front-end development and the framework they use. They also went through some pieces of their code and explained it briefly. It was very useful to see how, even though a different language was used, we could identify similarities such as the structure of functions, logic flow, and the use of variables.
DAY 3
Server Pair Programming
On day 3, the first session was Server Pair Programming with Senior Software Engineer, Oriol Marti, who does backend development for SilverAgent – a SilverRail online booking tool to enable travel agents to book rail in multiple countries through a UI. We were first given a quick introduction to Java syntax and some basic concepts, laying the groundwork for the day's activities. Then he demonstrated a typical day in his role by walking us through his process for fixing a bug. From start to finish, we observed how he identified the issue, developed a solution, and thoroughly tested his code to ensure it worked correctly.
Afterwards, he showed us how he uses Cobalt.io to inspect legacy code and check for reliability, security, code complexity, and maintainability, ensuring the old code meets modern standards. It was especially interesting to learn that new projects are built to work around legacy code and that legacy code is constantly being updated.
AI/Machine Leaning Pair Programming
We met Bach Nguyen, an Associate Data Scientist at SilverRail. He explained that his main job is dealing in data engineering- more specifically building machine learning models for the iOS application team backend. To begin with, we looked at a simple data science project which involved creating an animated visualisation of the speeds of different athletes over 100m on a bar graph. After he demonstrated how he is training an AI model that will study the past journey patterns of users to make a prediction on the user’s most likely route. Using 80% of the data, the model is trained and then the remaining 20% is used ensure the predictions that it makes are correct.
DAY 4
Day at the office
On Day 4, we had the fortunate opportunity to visit the London office and again had a chance to talk to meet Bach in person. He went through a demonstration on the implementation of search algorithms such as linear and binary search. Additionally, he showcased code examples of breadth-first and depth-first graph traversal.
We met Jakes Lamprecht, a Senior Director of Engineering who explained the waterfall and agile methodologies. We learnt why the waterfall methodology is no longer used due to the massive wait time for each part of the methodology to get approved before being able to continue to the next stage, often causing the development process to take years. He explained how agile, which is the current methodology used in the company, is better suited than the old methodology as it allows more flexibility and feedback from the stakeholders.
Data science session
This session was customised for us, allowing us to request topics from our CS A-Level curriculum that we wanted to cover. We chose algorithms and data structures as our focus. We began by writing pseudocode for various searching algorithms and were then shown the most optimized versions. Additionally, we learned how to implement queues and stacks in Python, as well as how to construct a graph using an adjacency matrix. The session concluded with a demonstration of how to implement breadth-first search and depth-first search in Python.
DAY 5
iOS Pair Programming in Medusa
In this session we were introduced to Swift and after learning basics we were given a walkthrough of how to build a simple iOS texting application from scratch. This experience changed how I view my own phone, as I now understand the process behind creating UI for iOS applications. We were then shown the code for Vivi and as I had previously met Adam the UI/UX designer, I was able understand to how UI/UX designers work in collaboration with front-end developers.
Testing
We then learnt about the stages of testing with QA Engineer Priyanka Kumar such as smoke testing, regression testing, integration testing, acceptance testing and unit testing which usually covered by developers. She explained the different sections of testing that she must go through for a project to be thoroughly tested and make sure no bugs are present. The tests she talked through us were non-functional testing, functional testing, automation testing, smoke tests and regression testing. Learning about these different testing methods was incredibly insightful and emphasized the importance of comprehensive testing in delivering a high-quality product. This knowledge has given me a deeper appreciation for the testing process and its critical role in software development.