
About Lightning Piano
LightningPiano.com | Unity | 3-6 Months
Lightning Piano is a piano method for teachers who want to grow a love of music-making in their pupils whilst developing the skills needed to be a pianist. The app, acting as a companion to a series of books, aims to assist this approach.
🔗 Website 🔗
❌
In December of 2022 I left this project while unfinished, it has since passed through several other developers under the same leadership as when I worked on the project.
⚠️ This app is still in development, I am limited to what can be shown publicly.
Notable Work
-
Established a production framework for the project (KANBAN).
-
Liaised with the client to establish a new, realistic, timeline for development.
-
Held the project lead accountable for their own work, eventually taking over duties.
-
Commented majority of the codebase and established a documentation system.
-
Refactored substantial elements of the codebase to work efficiently with Unity 2022.
Production Overhaul
When I first joined the project there was very little organisation across any aspect of development, which made onboarding incredibly difficult. The project lead did have a Trello board full of notes (left) but almost all lacked content beyond the card's name and contextually meant very little. Furthermore, many of these notes were years old, in various states of implementation or forgotten entirely.
One of the first things I did was to introduce a new board with a KANBAN approach (right) and move cards over with full descriptions, context and references to the code repository where appropriate. This, in combination with a rough Gantt chart, made it abundantly clear to the client roughly how much work was left and what could be realistically achieved.


Clean-up & Refactoring
The bulk of my work focused on creating a new stable footing for the project by getting things playable again.
The game had gone through several updates of the Unity framework consecutively and as such had minor compilation errors and warnings scattered throughout the codebase in addition to some poorer practices killing performance.
Most of my initial time was spent fixing existing code, as a side effect by the end I had also added XML documentation comments to the bulk of the existing files as a precaution for future development. As this was a codebase that lacked many of the finer points of software design, I produced a small amount of documentation including some UML diagrams - which was helpful for tracking event driven implementations.
End of Contract
In December 2022 I left this project for a variety of reasons, chief among them being mismanagement and lack of pay.
I really liked the concept and the client, had I been involved earlier I believe the project would have viable by the time I left. Sadly a fairly straightforward 12 month project has been dragged out for many years with no further finances.
One of the core disagreements regarding getting the project shipped was finishing the last ~49 levels.
The first ~50 consisted of tutorial content which had been designed by hand, while the rest were a small set of game modes that slowly ramped in difficulty.
To deliver the project to the already exasperated client I wanted to use the existing levels to manually test and set the values for each, tedious work but an approach that would guarantee delivery. However, the the team leader opted to scrap the last 49 and create an all new procedural generation system for each game mode, an undertaking that would have taken much longer but "would allow us to easily make DLC in the future".
While I think generating levels was a preferable long term approach (and should have been the plan from the start), the finances were not available and I wanted to prioritise shipping the app over having nothing.
To my knowledge the app remains unfinished and has continued to stall in development for another three years.