It's time to admit it, I failed and I'm sorry.
When we originally started work on Alchemix V2 in 2021 we employed a senior dev who was supposed to be in charge of the UI's architecture. Based on his recommendation we went with Svelte, a framework that was completely unknown to me then. It took me a while to become accustomed to it but it was okay. Halfway through the production of V2 we lost our senior dev due to internal disagreements which led to me being the only frontend developer on the team. Quickly we sought out new developers but most were fluent in React or Vue. Few actually managed to get into Svelte and produce some code but ultimately it was always written with previous habits and practices in mind. The same was true for my code, as I came from a Vue background. This led to a codebase that turned out to be inefficient at scale.
As more content (i.e. vaults) became available the overall UX turned to shit. More vaults required finetuning and edgecase handling, causing a prolonged integration period due to constant partial refactoring of the codebase. About half a year post V2 launch we decided to start with a major refactoring to make use of a more modern Svelte base with Sveltekit and learning from the issues we encountered so far it seemed like a pretty straight forward task.
Fast forward almost two years and nothing had shipped.
IRL issues that demanded my attention both physically and mentally caused my work output to drop to near zero and my inability to clearly communicate these issues in time and detail with the frens in my team resulted in unmet expectations which in turn led to the project as a whole taking a massive reputation hit.
Not being able to sort out my IRL issues properly and not being able to be flexible enough to not get fucked up by unexpected changes in IRL plans meant I wasn't achieving the output I wanted to achieve. And because I am an avid avoider of confrontation when I know the outcome could be to my own detriment, I never wanted to face any possible solutions. My marriage was on the brink of a divorce not in small parts due to me.
The people working with me weren't getting enough guidance from me and I wasn't matching their output in the slightest which in turn meant a lowered morale on the team.
This caused, and still causes, a massive dissatisfaction with myself.
Lastly, I failed you, the user. An incomplete interface, a growing list of unresolved bugs and UX that was getting worse and worse made the project partially unusable for some users. This is a state that should never occur, but it did.
In the end we did ship a rework of our frontend, however the framework switched to React. The reasoning behind this was simply a wider availability of developer resources to avoid this bottleneck in the future. This harsh and unpleasant decision should've been made a long time ago but my own sense of pride prevented this rational decision from passing. Facing realities like this needs to happen more often and early to avoid issues like sunken cost fallacy and absurdly long shipping times. To achieve this I will put my focus on managing available resources more often and transparently. Evaluating the status quo of critical projects at least twice a week will enable us to catch blocks and issues early on and find adequate solutions.
As much as I hate to admit but my pride prevented great things from happening in a timely manner. Reflecting on my behaviour for the first time in years made me realize that I had been going at jobs with this "I can do this, just wait and see" approach in the past as well and rarely did it work out well.
I took my time to sort out my IRL issues over the past few months, facing inconvenient vis-a-vis discussions with my wife. Now I no longer stand in an awkward place between job and family, but hopefully in unison.
For future me, this text shall be used as a bitter reminder whenever I need to make a decision.
