Refactored and deployed an existing project changing it from a SPA to a single application using Go templates and Alpine.js.
Over the weekend I finished refactoring tars.run from a Next.js frontend and Go backend to a single binary Go web application. It was a great learning exercise and helped to demonstrate how powerful and portable Go really is. There is a lot more I could do to make it truly portable but even still, it’s so much easier to deploy now considering it’s a single binary without a frontend. The application makes use of Alpine.js instead of Next.js for the javascript components. That was a bit of a learning experience as well - I’m probably more efficient writing React than I am vanilla JS.
Spent a few hours discussing and doing some initial work on another trading project with a friend. We’ve decided to move from the Australian exchange Swyftx to a US-based one, Alpaca. Alpaca has a far superior development experience, better market conditions, lower commissions, and covers both stocks and crypto. This change is also a good opportunity for us to incorporate better backtesting tools, which I’ve also spent a small amount of time testing out.
Started getting back into Mudmap development this week - it’s mostly been left to fend for itself.
Fixed an issue in production that affected many users for a few hours and I’m still not sure what caused it and how it happened. The logs show that connectivity between the database and the API server was not disrupted but the data appeared to be “missing”. This is something I’ve only witnessed when attempting to use the application with a database that hasn’t had migrations applied. I rolled the latest commit and it came back without issue - something I will have to watch for in the future and potentially design a failsafe/alert for.
I got a new system the other week and hadn’t set up a good development environment for Mudmap yet. So, this week I spent some time better architected it and making sure it’s all working well.
My rough setup looks like this:
I blew away my thunder client setup which was a big mistake in hindsight (overlooked it) so I switched to Insomnia after watching someone use it in a few tutorials I watched over the week. It supports openapi/swagger importing which is pretty handy - although I haven’t actually set that up for Mudmap yet. The intent is to do that at some point but I haven’t scoped the amount of work that entails.
Over the last couple of months, I have received a number of emails requesting Mudmap to support dynamic hostnames for devices. At the moment it only supports static IP addresses. This shouldn’t be too big of a change, just a matter of doing a name resolution before each request and updating the user interface.
This was a good week for me both personally and professionally. In my day job, we had another shuffling of personnel but it’s now really good. My expectations and responsibilities are better defined which has put me at ease. I think with this new team layout and better vision for the future, we might be able to pull ourselves out of the technical debt death spiral we’ve been in recently.