One of the most rewarding recent projects I have been involved in recently is the upgrade of the Dalton Nuclear Simulator(, an educational web-based simulator designed to help users explore nuclear reactor operations in an interactive and engaging way.
The simulator, supported by the Dalton Nuclear Institute at The University of Manchester, gives learners the opportunity to interact with a virtual pressurised water reactor environment, make decisions, observe outcomes, answer quiz questions, and understand complex nuclear concepts through gameplay.
This work was not simply a software upgrade. It was about protecting the long-term value of a learning tool that helps school children, researchers, and wider audiences engage with nuclear science in a more accessible and practical way.

From Legacy Code to a More Maintainable Platform
The project began with a large legacy codebase built using older web technologies, including Node.js, Express, Backbone, RequireJS, jQuery, SQLite, and several custom front-end components.
At first, even small changes required careful investigation because everything was so interconnected. It wasn't always obvious whether changing one part of the application would unintentionally affect another.
A major part of the work involved understanding how these components fitted together before making careful improvements. This included modernising outdated dependencies, upgrading the application to run on a newer Node.js environment, resolving compatibility issues, and improving the stability of the Docker-based deployment.
The goal was not to rebuild the simulator from scratch, but to give it a stronger technical foundation so it could continue to be used, maintained, and improved in the future.
Improving the Learning Experience
A key focus of the upgrade was the user journey through the simulator. The Dalton Nuclear Simulator is not just a static information page, it is an interactive experience where users learn by making choices, responding to events, and seeing the effects of their decisions.
As part of the upgrade, gameplay and end-of-day simulation flows were improved, including the screens users see after completing different stages of the simulation. These moments are important because they help users reflect on what happened during the activity and connect their actions to the learning outcomes.
The quiz and scoring systems were also enhanced to make the experience more engaging and meaningful. By strengthening these learning interactions, the simulator can better support users who may be encountering nuclear reactor concepts for the first time.

Making the Simulator Easier to Maintain
Legacy applications often carry hidden complexity. A small interface issue can be connected to an older library, a routing change, a database table, or a piece of JavaScript written many years ago. One of the most valuable outcomes of this project was improving the maintainability of the simulator for future developers.
This included upgrading key dependencies, resolving issues caused by older runtime behaviour, improving server-side routes, supporting SQLite database changes, and making the Docker setup more reliable. Work was also carried out around admin access, privacy and accessibility routes, survey fields, and the overall structure of the upgraded application.
These changes may not always be visible to users, but they are essential. They help reduce technical risk, make future updates easier, and ensure the simulator remains usable as the surrounding web technologies continue to evolve.
Why This Project Mattered
What made this project special was seeing how research software engineering can directly support education and public engagement.
The Dalton Nuclear Simulator combines software, simulation, teaching, and scientific communication. It takes a technically complex subject and presents it in a format where users can explore, make decisions, and learn through interaction.
The project also demonstrates that good software engineering is not only about writing clean code or upgrading dependencies. It is about understanding the people who use the system and improving their experience in a practical, meaningful way.
Working closely with the team at Dalton transformed a legacy application into a robust, modern platform ensuring that the Dalton Nuclear Simulator is now more secure and adaptable—ready to support learners for years to come.
This project was very much a collaborative effort. I'd like to thank my project manager, Emma Simpson (RSE, Research IT), for her guidance and support throughout the project. I'm also grateful to Rachel Law (Engagement and Communications Manager, Dalton Nuclear Institute), who was the Principal Investigator, for her valuable feedback and domain expertise, and Louise Lever and my fellow Research Software Engineering colleagues, whose advice and support helped solve challenges along the way. Their collaboration played an important role in making the project a success.
If your web application is dated and is needing upgraded, the RSE team is here to help.
Find out more about the RSE team or get in touch to discuss your research idea or project.