How Thoughtful Engineering Delivers a Modern Passenger Experience Without New Hardware
By Lucas Ericson
IFE Engineering Lead
Commercial aircraft often remain in service for decades. While passengers expect a modern, responsive digital experience, the embedded systems powering inflight entertainment (IFE) were never designed to support today’s software. Replacing that hardware across an entire fleet is enormously expensive, so airlines face a different challenge: How do you deliver a modern passenger experience on legacy platforms?
That’s exactly the kind of engineering problem we enjoy solving at IdeaNova.

Recently, we were tasked with running a modern Qt 5.15 application on embedded hardware more than twenty years old, with just 1 GB of RAM, no dedicated GPU, and a highly restrictive operating system. On paper, the hardware looked hopelessly outmatched. In reality, it became a lesson in how thoughtful engineering—not new hardware—can unlock surprising levels of performance.
The experience reinforced an important principle: optimizing embedded systems rarely comes down to one breakthrough. More often, it’s the result of understanding the constraints, making smart trade-offs, and accumulating dozens of small improvements that together create a dramatically better user experience.
One of the first bottlenecks we encountered was Qt’s ListView component, which virtualizes delegates to efficiently render scrollable collections of UI elements. Our application relied on nested ListViews to create multiple content grids, but every time a ListView entered the viewport, users experienced a noticeable pause before scrolling resumed.
Back in the days of early consumer applications, an occasional pause while scrolling might be a minor annoyance. In an IFE environment, where passengers expect a smooth, intuitive interface, those delays become part of the overall perception of the onboard experience. Eliminating them wasn’t simply about improving performance metrics—it was about delivering a better user experience.
Like most optimization efforts, we started with the obvious fixes. We reduced image resolutions, simplified delegate complexity, and experimented with both smaller and larger cache sizes. Each change delivered incremental gains, but none addressed the underlying issue.
The real challenge wasn’t ListView itself—it was the environment. The device’s CPU was already burdened by background processes, while the limited graphics hardware struggled to render large batches of newly created delegates. The system had become CPU-bound during rendering, resulting in dropped frames and visible pauses throughout the interface.
At that point, we realized we weren’t looking for a silver bullet. We often describe this approach internally as “performance by a thousand cuts.” There wasn’t a single breakthrough that transformed the application. Instead, dozens of carefully considered optimizations—each delivering a modest improvement—combined to create a dramatically better user experience.
We simplified graphics shaders, removed nonessential visual effects, reduced image cache sizes, replaced dynamic ListView components with preloaded static components where appropriate, migrated the device to a leaner operating system, eliminated unnecessary logging, and made countless smaller improvements throughout the application. Individually, none of these changes transformed performance. Collectively, they did.
For airlines, this is where software engineering can create real business value. Every performance gain helps extend the useful life of existing hardware, allowing operators to continue delivering a modern experience without accelerating expensive fleet-wide hardware upgrades.
Perhaps the most important lesson, however, was that every optimization introduced a new trade-off.
Replacing ListView with a preloaded MediaGrid eliminated scrolling freezes because delegates were created before users reached the page. The downside was page load times that could exceed 10 seconds. We addressed that by preloading content during moments when users couldn’t interact with the application but doing so increased memory usage. Reducing image sizes lowered memory consumption yet introduced additional CPU overhead for runtime image scaling.
There was no perfect solution—only better compromises.
That’s the reality of engineering for constrained embedded systems. Every decision shifts pressure somewhere else: CPU, memory, storage, responsiveness, or startup time. The goal isn’t to optimize a single metric; it’s to find the right balance for the overall user experience and the realities of the platform.
The biggest performance improvement didn’t come from one clever optimization. It came from understanding the constraints of the hardware, questioning assumptions that work well on modern platforms, and recognizing that meaningful gains often result from dozens of thoughtful, incremental improvements.
For organizations operating long-life embedded platforms, that’s an important lesson. Innovation doesn’t always require replacing hardware. Sometimes it comes from engineers who understand how to make existing systems perform far beyond what their specifications would suggest.
On legacy embedded systems, performance isn’t achieved through one breakthrough. It’s earned one thoughtful optimization at a time.
© 2024 ideanovatech. All Rights Reserved.