Case study · Full-stack product development
RosterPop — Airline Crew Platform
Adding real-time communication and crew tools to an established product
RosterPop is a platform used by thousands of British Airways employees to view flight schedules, access current flight information and organise parts of their working lives.
I joined the project to replace another developer and build major new functionality across the existing backend and frontend.

The challenge
RosterPop was already a live product used daily by thousands of airline employees. New features needed to fit its existing architecture and workflows without disrupting the established platform.
Requirements usually began as high-level business ideas rather than detailed specifications or supplied designs. I was responsible for turning them into complete features: defining how they should work, designing the technical solution and implementing them across the backend and frontend.
The volume of users and roster data also meant that performance had to be considered from the start, particularly in messaging, filtering and flight-swap functionality.
My role
I worked across the existing Laravel application, delivering complete new modules as well as improvements to established functionality.
My main contributions included:
- Building a real-time messaging system from scratch
- Adding customer-to-support conversations
- Developing a friends and connection-request system
- Connecting chat and swaps activity to the existing Web Push infrastructure
- Creating a new way of displaying employee flight rosters
- Building flight-swap discovery and communication features
- Integrating live aircraft and flight information
- Deploying completed features to production
Real-time communication
I designed and built the messaging system based on an initial requirement for RosterPop users to be able to chat.
The first version introduced real-time one-to-one conversations between connected users. It included message history with infinite scrolling, unread counters and read status, with Laravel Echo and Pusher delivering new messages in real time.
I developed a friends system alongside chat, allowing users to send and accept connection requests before starting a conversation. The messaging system was also connected to the platform’s existing Web Push infrastructure, so users could be notified about new activity outside the active browser session.
In a later iteration, I extended the original design with customer-to-support conversations handled by authorised team members. This required the messaging architecture to support a different type of conversation while preserving the existing user-to-user experience.
Rosters, swaps and live flight data
I created a new, more modern way of displaying employee flight rosters. That interface later became the foundation for the swaps area.
Employees could opt into the swaps feature, mark flights as available for a potential exchange and contact interested colleagues through the messaging system. The actual exchange was arranged outside the platform at that stage.
The swaps area needed to display and filter large amounts of roster information across hundreds of participating users. I designed the data loading and interface with that volume in mind rather than assuming all available records could be rendered at once.
I also built the FlightRadar24 integration from scratch. It retrieved current aircraft and flight information relevant to RosterPop users, including location, status, route, aircraft type and registration, altitude and speed.
This data was incorporated into the existing roster and flight experience, allowing employees to access current information connected with their scheduled flights directly within RosterPop.
Summary
My work expanded RosterPop from primarily a roster and flight-information product into a platform with real-time communication, customer support conversations, user connections, swap discovery and richer live flight information.
The new functionality was delivered within an established application serving thousands of British Airways employees. The project is a strong example of my ability to enter an existing product, work from high-level requirements and independently turn them into complete production features across backend, frontend and real-time infrastructure.