Housekeeping 2024/25
Once in a while, I batch some chores I've been neglecting. And this liminal moment between years and jobs is the perfect time to do it.
Activity
Well, hello 2025!
After spending a couple of weeks back home, I'm ready to "go back to work". Whatever that means in my situation! So far, I've been mostly in holiday mode. But the holiday mode I seem to enjoy the most, which is not moving around too much and going out sporadically. Tons of time affluence :D.
One of the main things I've done, of course, is my New Year Resolutions for 2025. I do them every year, and even though I know they are not sacred, they are very helpful to keep me on the right track. This year's themes have been mostly the same as always: improve my health, learn Japanese, etc. But there are two important additions. One of them is obvious, sorting out what to do with my life (career-wise). And the other one is to Try Hard.
I was inspired to do this by reading Aaron Francis' 2024 restrospective. I've always had an aversion to the idea of "working hard", because I equate it with "working a lot of hours". I'd much prefer to work smart in 8 hours/day, 5 days/week. But reading Aaron's writing, I realized there's another way to look at that. Working hard can also mean to take risks, to be ambitious. And I can't say I've done a lot of that (even though I've quit my job twice to try and make a living on my own...). What I've failed to do, in my opinion, is iterate fast enough. The problem is that I enjoy programming too much, and I can spend weeks or even months coding away and feeling productive. But if I want to succeed, I need three changes in mindset: iterate faster (setting more ambitious deadlines), measuring more (doing user research, tracking how a project is doing after launch), and doing marketing (sharing my projects outside my bubble, making landing pages, thinking about SEO and distribution, etc). The last one will probably be the most challenging. We'll see if I manage!
Other than that, I also fixed a bunch of bugs on Umai and Media Kraken, I investigated an issue with CSS 7.1.3, I started using my own recipe in Ramen, and even released a whole new feature for Umai: Cook Mode! This one is important, because eventually that's what I'd like my work to be like. I've spent a lot of time building tools, and tinkering with Solid's idiosyncrasies. But in reality, what I want to do is build apps and experiences. It was nice to see that I was able to implement a whole new feature (that wasn't trivial) in a couple of days! Though I realize that if I'm going to focus on Aerogel, I won't do a lot of that in a while 😅. But that's still my end goal.
Talking about Aeorgel, as I mentioned recently, I still haven't got a response for my NLNet application for funding. But I did get an update, and they told me I'll have to wait until January or early February to know if I've passed the first round (and there are two rounds) :/. I applied in October, so that means if I end up getting the grant it'll happen at least 5 months after my submission 😱. I understand they are busy and whatnot, but honestly, that doesn't look good... I've been unemployed for 3 months, and even though I still have some savings, I'm starting to reconsider if this full-time Solid thing was a good idea. My intention was to have an answer by now, and if I did get the grant, test the waters for a year and see how it goes. But I don't think it's viable to make a living off my Solid projects without some initial help. So, much to my chagrin, I'm going to start exploring other options :(. On that note, if you know about some company or job openings where I could fit, please let me know. Also, it'll be interesting to see how to job hunt in this AI-powered environment. I've long known that the best jobs are not to be found on job boards. And now, that may be more true than ever.
And that's mostly it for today's update! But I'm not done with the task, because I still have one important thing to do: Upgrade my Mastodon server 😱.
You may be surprised to be hearing from me so soon, just a week after my last update... And I am too! But I have done so many things since last week, that I had to write an update. Is this what working full time on my own stuff looks like? 🤩
Realistically, I don't it'll always be like this, because many of the things I've done weren't too big. But yes, I'm definitely more productive working on something for five days a week than one (surpise!). Actually, something I used to do at Moodle was writing weeknotes. Inspired by Doug Belshaw, I would write an interal weeknote summarising what I worked on that week. That resulted in a 125-page PDF when I left 😱.
So yeah, I like the idea of writing weeknotes if my work pace warrants it. But don't worry, if I end up doing that, I'll probably highlight the most interesting bits to make it easier to consume. For example, here's what I worked on this week:
-
Upgraded my Mastodon server: Last time I did this was 6 years ago 🙈. This type of experience is why I like so much the idea of "finished software", and it is remarkable that I've been able to pull it off on a federated environment. I guess that's what happens when software relies on open protocols :D. But yeah, in any case, it was due for an upgrade. And it was a lot easier than I expected. Besides upgrading, I also moved the instance for Digital Ocean to Hetzner, and I hope by the end of the year I can drop the Digital Ocean droplet altogether.
Some interesting notes about the upgrade is that my biggest issue self-hosting Mastodon seems to be related with storage capacity. You may be surprised to hear that, because how much data can an instance-of-one generate? Well, a lot, it turns out. This happens because Mastodon caches remote assets from other accounts in the server :/. That includes avatars, banners, and even emojis! (I had 1.3GB of custom emojis, for god's sake). However, thanks to the magic of Open Source and self-hosting, I've been able to just remove those with a script. Recent versions have also improved a lot, but there are still some things you can't do out of the box.
In any case, if you're curious to learn more about how I configured my Mastodon instance, you can check it out in the noeldemartin/mastodon repo.
-
Brushed up on Rireki: Rireki is a little python program I wrote years ago to take care of my backups. It's been working pretty well, so I implemented a new feature to automate cleaning up old backups (which I had been doing by hand).
I also used this opportunity to give Cursor a try. I'm very late to the party, because this is the first time I've used AI for coding. I'm still not sure whether I like it or not, but I have to say in this context it was very useful because I am quite rusty on Python. However, I am convinced that at some point AI will be an essential tool in my developer's toolkit. And I think the ecosystem is mature enough to start dipping my toes in the water.
-
Brushed up on Freedom Calculator: Freedom Calculator is an app I made a while ago to calculate my economical runway and whatnot (which today is more relevant than ever for me!). This week, I added a new option to indicate how much I earn as well, thus calculating how long until retirement. I don't 100% subscribe to the FIRE philosophy, but I think it's useful to at least be aware of your current trajectory. As you may imagine, my current trajectory is to go broke, given that I have 0 income at the moment 😅.
This also gave me the opportunity to try yet another new tool, Playwright. I've been a fan of Cypress for a long time, but I've heard many people rave about Playwright. And the nail in the coffin was the State of JavaScript survey results, where Playwright came out in S-tier whilst Cypress fell to B-tier. My first impressions of Playwright are mixed. On the one hand, I prefer Cypress API (I don't have to await every single command) and experience (you can actually see the app running). On the other hand, everything worked flawlesly and I could even implement snapshot tests in CI. I'm also doing this with Cypress, but I didn't manage to make it work without resorting to Docker.
-
Started using LSS in production: LSS is still very experimental, but given that I'm trying to move away from old infrastructure, and I'm still using an ancient POD, I thought I'd give it a try. And so far, it's working great! I moved my Media Kraken collection to Nextcloud, and it's awesome to see that I can use the app whilst interacting with the Turtle documents using the full power of Nextcloud (editing files from disk, versioning history, etc).
I still don't plan on opening this up for everyone any time soon. But if you're curious to try it yourself, let me know and maybe I will create an account for you :).
-
Started applying to jobs: Yes, I know. It's sad that a week into my full time work as an independent developer I'm already applying to jobs :/. But as I mentioned recently, it doesn't seem like I'm getting the NLNet grant anytime soon (if ever), and I'm burning savings at the moment. So I started exploring the market, and I found a couple of opportunities that are pretty awesome. I don't think I'll be giving too many details about this until I settle on one opportunity, so for now just know that yes, I'm job hunting 😅.
Task started