The End of The Chapter
Yesterday was my last day working at Moodle, an Open Source LMS that is used all around the world.
I joined more than 4 years ago, and for the most part it has been a great place to work. But recently I decided it was time to move on, and today I want to share why and what's coming next.
Farewell, Moodle HQ
My last personal update on this blog was 3 years ago, and I mentioned that I had finally found a company sharing my values. It's not uncommon for companies to have empty mission statements, and I really believe that Moodle is having a positive impact in the world.
On top of that, my working conditions were great. I've been working 4 days a week, which has allowed me to spend time doing side-projects. And I've had a real flexible schedule (with very few meetings!).
With all that, you may wonder why I decided to quit my job. The answer can be found in a blog post I wrote 6 years ago, titled Finding Opportunities that Fit Your Values. In that post, I talk about 4 things that are important to me: Vision, Work, Company Size, and Remote. Moodle has been great in Vision and Remote, but Work and Company Size have been drifting from my ideal.
Company Size
When I joined, Moodle had ~60 employees. Today, there are more than 200. This happened, in part, because of some acquisitions. But the other teams have also been growing. For some people, this may still be considered a "small company". But as I've mentioned before, I consider Dunbar's number (150 people) an inflection point.
This is the first time I've worked at a company of this scale. The working conditions and environment were still great, but I can't say I've had a big influence on the company or the product. I did feel like a cog in the wheel, and I'd rather be a linchpin.
Now, does this mean that I'll never work at a company of this size? Or that it isn't possible to make an impact at this scale? No, it doesn't. But so far, my suspicions where true.
Work
The second reason for my decision, and probably the most important, was the work itself. I feel like most of my work was maintenance. That doesn't mean I didn't do anything interesting, I even gave one talk about some of the things I worked on. But most of my contributions where at a code level. Barely ever affecting the UI, the Product Roadmap, or the Company Culture.
And that was only half the problem. I suppose I wouldn't mind having no impact in a "perfect" codebase (I know those don't exist), or in an environment where I'm still learning. After all, I've said multiple times that I enjoy programming in and of itself. But Moodle didn't have an environment where I could thrive. Anyone familiar with Moodle's codebase will know what I'm talking about; but for those who don't, I'll just say that Tech Debt is a real issue not to be taken lightly. My experience working at Moodle, if anything, has reinforced my opinion that high quality software is worth the cost.
However, it wouldn't be fair to say that I haven't learned anything. When I joined, I had very little experience building accessible websites. I also didn't have much experience with Dark Mode and RTL interfaces. Now, I'm confident that I can build UIs that are usable by everyone. Working on an application used by millions around the world has been an enlightening experience.
It was also my first time working with a UX writer. I already knew that designers were my favourite partners in crime, but this is a breed of designer I hadn't met before. Given how much I like writing and naming, it shouldn't come as a surprise that I also enjoyed working with them; and I look forward to meet more in the future.
Looking back
Thinking about these years, I realize that towards the end of my tenure I was still very happy with my life, but I wasn't happy in my life. That's what ultimately lead me to make this decision.
I cherish the time I spent working at Moodle, and I'll look back on it fondly. I also won't shy from saying that it's been the best company I've worked at, and I'm really envious of anyone who'll join them in the future. But all good things come to an end, and my time was up.
What's next?
Now that I've come to this crossroads, I'm pondering what to do next. An obvious answer is to go into Solid full-time, since I've been doing it on the side for years. But is that a good idea?
The business of Solid
I recently talked about why I'm choosing Solid in my side-projects, but I didn't talk about choosing it for a business. Overall, I'd say there are two groups of people working on Solid full-time.
The first one is people working on projects to improve the ecosystem. I'm talking about teams like Ponder Source, o.team, and ActivityPods. As far as I know, most of their funding — if not all — comes from grants. In particular, it seems like NLNet is supporting most people in the ecosystem. Which is a great way to get started, and I'm glad that something like NLNet exists. But I strongly believe that eventually projects should be sustainable on their own. And I don't see many plans to make that happen around Solid, hypothetical or in practice.
The second group is people focusing on the B2B market. Some companies that come to mind are Graphmetrix, Digita, and Inrupt. In this case, I have absolutelty no idea how they are doing financially. But the truth is that I'm not super interested either, because as I mentioned in my previous post, I'm more interested in B2C (even though that is playing in Hard Mode).
Outside of Solid, there are many businesses I admire: Laravel, Vue, Mastodon, 37Signals, etc. All of them have different business models, but there's also one thing they have in common: critical mass. Of course, none of them started with millions of users; but I've heard their founder backstories, and none struggled for adoption either.
Which takes us back to the issue that Solid is not getting any traction. It's not that I need a thriving ecosystem to guarantee my success; but in the current ecosystem, I'm not sure it's possible to make a living as an indie developer. And I haven't seen many job opportunities that pique my interest.
Here we go again
If your conclusion reading the previous section was that I shouldn't go into Solid full-time, you'd probably be right. But I'm doing it anyways 😅.
The thing is, I can't really help myself. The work I've been doing with Solid these last few years has been some of the most fulfilling of my career. And for all its flaws, I still think Solid is the best thing that could happen to the Web (and maybe software in general). Even if there's only a slight chance that it works out, I'd regret not trying.
Furthermore, I've spoken of my entrepreneursip before; and for years I've been itching to get back into it. The problem, like always, is money. I've never been good at making money, and even though I've learned a lot since, I still haven't done it in practice. This will be the perfect opportunity to do so.
However, there is one thing I'll do differently this time. The only thing I regret from my last attempt, Geemba, is that the project died with the company (and we had happy paying customers, though not enough to make a living). If this time doesn't work either, I want to make sure that the project outlives my failure. Open Source will probably be part of it, but hopefully not the only one.
The Plan
Ok, so that's nice and all, but what am I actually going to do? I have a few ideas.
-
A framework to make Solid Apps. This would be the most straight-forward, because I have already started working on it. It also builds on top of everything I've been doing, and since I'm using local-first I can market it to a larger audience. But I also see some problems.
If we're talking about audience, my decision to use Vue over React is probably bad (but it's unlikely to change). I usually wouldn't care too much about it; but I can't see a project like this becoming sustainable without a large audience.
Still, many people both in the Solid and local-first communities often mentions the lack of an easy solution to get started. This could be my attempt at making the Ruby on Rails of Solid/local-first.
-
A B2C Solid POD. If I really want to help the ecosystem, this is what I should do. I'd love to make a POD provider that acts as a proxy for different cloud providers (Google Drive, Dropbox, Nextcloud, etc.) using custom domains. That way, it'd be possible to migrate to a "real POD" later on. Also, the familiarity of these providers would remove the barriers to entry for many people, and help them understand how Solid works. I'd certainly focus on the UX, which is the biggest problem most PODs have nowadays. And because it'd be a proxy, I wouldn't be storing anyone's sensitive data (besides their credentials). Finally, this seems the easiest idea to monetize.
There is just one slight problem... I would be starting from scratch 😅. Yes, I've been working with Solid for a while, but it's always been as an app developer. If anything, I've made a point to ignore the server-side stuff leaving it to "the protocol".
But it also means that I'd finally get back to work with Laravel, so it's not completely off the table.
-
More and better apps. I could just continue doing what I've been doing, but kicking it up a notch. So far, everything I've released has been a byproduct of working in the open. The real audience has always been myself, and I'm fortunate that it seems to have resonated with others (although I don't know how many people is really using my apps). But this time, I would focus on solving others' problems with Solid.
For example, I've been asked multiple times about adding social features. And I think it would be really cool to take advantage of Activity Pub to achieve it. Also, I haven't done any user research. I could definitely do a better job at learning what people wants.
However, I should also say that this sounds like a recipe for disaster. I'm not saying it cannot work, but I've struggled to achieve this in the past. If we're adding Solid to the mix, and the fact that I'm not sure how I'd monetize any of this, it sounds even more shaky.
-
A paid course. This is the most far-fetched idea, but I'll mention it anyways. Starting with info products has worked for others before, and one of the recurrent issues that come up in Solid is the lack of resources to get started. But I see many problems with this one.
If the audience was a problem for my first idea, it is damning for this one. And not just Solid's audience, but my own as well. I still feel like I have no audience, certainly not enough to make a living with a paid course. But maybe I have enough people to make some of the other ideas work.
Additionally, to have even a slight chance to make this work, it would need to be framework agnostic. No Aerogel, no Vue, and certainly no Soukai.
Nobody knows what'll happen in the future, but for now; the prospects for this one don't look good. If you're curious to know what this would cover, you can watch a spiritual preview in my FOSDEM talk: From Zero to Hero with Solid.
Whichever of these I choose to pursue, it's very unlikely that they become sustainable in the short term. To start with some runway, I'll probably apply for an NLNet grant. If I don't get it, the timeline will be a lot shorter and I may have to relegate my Solid work to side-projects again.
Time for a break
Having said all that, I'm not starting right away. My savings won't last forever, but I'm in a good situation with very few attachments. So I've decided that I'll spent the next few months taking a sabbatical.
I'll use this time to ponder where to go next with my career, and possibly start moving some of the pieces. If you've got any thoughts about what I could do next, I'd love to hear them. If all goes well, I should be back to work in January 2025.
The point of the sabbatical, though, is that I won't have any goals. This could mean that I end up working on side-projects more than ever, or I could go afk for months on end. If you're interested to see how that's going, check out my journal in /now.