Choosing simplicity and an update on what I've been doing
February 18th 26
Hi there. It's been a while since the last post. I was busy since October, building a new startup and didn't write. I just want to give an update in this post and share the different things I've been doing lately.
What happened
I stopped publishing around September, the same time I started working on a new project. This one required me to build in silence. It's a geographically-scoped software solution and our main target customers aren't necessarily online.
It's been challenging in different ways but so far, I'm taking a lot of pleasure learning and building. Getting a working product is taking more time than expected mainly due to the underlying complexity of the problem and our culture of care.
Designing a great experience takes a lot of time, even with all the new tools available to help you move faster. The challenge and questions about what to build or not, how to make it intuitive, which balance of constraints to choose, all remains. There are hundreds of things you need to constantly keep track of and try to fit together in the most elegant way.
Moving slowly is often considered a risk for startups but I have deep insights about the market and validation so in this case rushing is probably more risky. More simply, you just can't ship slop quickly and hope it works as in some areas, the first impression of your customers is way more important than your iteration speed.
I've also been testing different tools, to streamline my workflow and reduce frictions. That helped me pick the technologies for the future. And so far, I would say that's one of the best investments. Working with those technologies brings me a lot of joy and help me keep going even when things are difficult.
Committing fully to a startup is a powerful catalyst for growth. It's not all roses. In my case, I felt very anxious some days. I think without realizing it, a lot of things has internally changed during this period. I'm constantly learning, adapting and discovering things about myself. I definitely needed resilience to survive and somehow I do feel a lot more comfortable about failure. I would even say that I can't wait to fail, learn from it and move to the next thing, for everything I'm starting now.
Simplicity as a core principle
This is not really about changing tools but just a consequence of a broader and deeper philosophical shift toward simplicity and reducing friction in work and life in general. What I learned is that simplicity can be hard and complex to accomplish. In some way, it's not even attainable; it's just a standard that you define and try to get as close as possible, without drifting into perfectionism.
It's been around two years now that I have a growing interest into the low level space. That curiosity led me to learn Go and Rust. I'm deeply inspired by go's simplicity. It's a very natural language to write, it's powerful and performant by default and its philosophy resonates a lot with me. That's the reason why it's my default language right now for building backends and cli apps. On the other hand, I had growing frustrations around the js ecosystem after building very complex full stack web applications for the past couple of years. I want to write a more detailed post about that but in summary, I no longer feel like I fit in the philosophy.
- I no longer feel comfortable using more resources than necessary
- I realized I can do more, with less, and reduce external dependencies
- I want to get closer to the computer, with less abstraction
- I don't want to build applications that are tightly coupled with their deployment infrastructure
That being said, I love the js community and I'm still contributing to it. It's very flexible, accessible, powerful and easy. Those are just personal preferences and at the end of the day, the only thing that matters is working with tools that get you productive and you and your team like.
As of now, I choosed to use Go as a backend and Svelte(kit) for the frontend. I love Svelte's simplicity and how it takes an approach seemingly closer to vanilla HTML.
AI as a force multiplier
There's a lot of talk and controversy about AI right now. Personally, I'm using opencode as part of my workflow. AI is a great tool for experimenting quickly some ideas, exploring design choices, brainstorming, rewritting things, debugging, finding information etc and I believe it's changing the way we all output code. But still, AI is far from enough, to autonomously built a complete product and it comes with some challenges.
- It's important to review AI generated code, to ensure correctness, security and maintainability and most of us are really bad at that or don't like it
- AI isn't ready to handle complex jobs, you need to have clear requirements, define a detailed context and break down complex implementation tasks
- Can be costly
I think we all should embrace it, where it's relevant. Personally, I require myself to fully understand and own each implementation generated by AI. I found some balance using it and I'm still writing most of my code by hand.
Thanks for reading.