Writing

Finding focus

One of the things that I struggle a lot with these days is having focus. Despite my several attempts to mitigate distractions, they always find their way to make it into my attention span. The result of that is that I feel stressed, and whe…

Pairing sessions to introduce people to Tuist and open-source

I recently started having pairing sessions with developers interested in contributing to open-source; it’s something that usually intimidates people, but that becomes easier if someone guides you through the first contribution. You have a p…

Thinking in terms of problems

One of the things that I find the most challenging these days when building tools for developers is thinking in terms of problems . Very often Tuist's users ask for features that they have seen in Xcode and that they'd like to see in Tuist…

The beauty of not expecting something in return

Yesterday I had a thought-provoking chat with an acquaintance. He thinks that when we connect with someone is because they are a means to achieve goals - for example a business partnership. He was, in fact, trying to do that with me, and I…

A shift towards product development

Working on building tools for developers has helped me realize that what I like even more than coding is going through the product thinking process. That's why I'm so engaged building Tuist , and recently Galaxy . I used to be excited by pl…

Streamlining app development

One thing that I noticed after Shopify 's commitment to React Native is that it foster a culture of turning ideas into mobile apps. Doing app development is no longer a thing that only mobile developers do. In hindshight, it was a good comp…

Transitive React Native dependencies

Today I learned about how dependencies are organized by NPM and Yarn. Let's say we have the following scenario of dependencies: A -> B -> C (3.2.1) - A -> C (1.2.3) Javascript dependency managers will structure the dependencies fol…

WWDC's FOMO

I'm avoiding opening Twitter these days. It makes me a bit anxious receiving WWDC news through people racing to be the first one to publish the clickbait-type of tweet. I used to have energy to be part of that race and not suffering from FO…

First thoughts on Sorbet

We started using Sorbet to add types to Galaxy's codebase . Types are great to catch type-related issues statically, and prevent them from blowing up on production. This tiny blog-post contains my impressions using it for the first time: So…

Working on new features or tackling technical debt

One of the things that I find the hardest when working on Tuist these days is finding a good balance between adding new features and tackling technical debt. The most exciting part is always building new things. Indeed, yesterday I came acr…

Add and remove footer using NSBox

If you use macOS, you have probably realized many apps have the following UI component on their settings: I had to add one of those to the settings view of Angle , and then I realized that it's not a pre-defined component that you can drag…

My first coding video on Youtube

I never thought I'd end up doing this, but today I just recorded an uploaded a video to Youtube that is meant to be the first of a series about Tuist . I recorded myself with Photo Booth, the screen and the voice using Quicktime, and edited…

To build, or not to build

These days I'm a rollercoaster of emotions ― I guess as a result of COVID19 and spending so much time at home. In particular, these days I'm thinking a lot about Tuist and my devotion for it. I really like building it, working on building s…

Graphed knowledge

Most of the note-taking apps that we can find out there are designed around the same organization principle: notes are linearly organized and grouped into higher-lever abstractions that are folders. Unfortunately, our knowledge is not linea…

Cognitive overhead

Bootstrapping and publishing an app to the App Store is not a straightforward process. I tried to do it myself yesterday and a lazy me got stuck when I had to create signing artifacts, write automation scripts, and set up things on the App…

Catching crashes at launch time on Android React Native apps

One thing that I noticed about React Native is that with the setup that most teams have on CI launch-time crashes can go unnoticed . Those crashes often happen when the contract between React Native and native is not met. That scenario is n…

Control and innovation

I saw a tweet this morning where the author was hoping for Apple to announce a new product in the domain of CI. Apple acquired BuddyBuild two years ago and since then, they seem to have working on something secret that they'll release at so…

Anxiety-free working

I feel it really hard to work these days without feeling anxious. A Slack ping here, an interesting tweet there, some emails to answer, articles to read that are piling up... With that set up, not only I can't concentrate, but I deliver poo…

Keeping it simple

If there's something that characterizes my approach to problem solving these days is simplicity. Working on acquiring a product mind-set in the last 2 years has helped me realize how obsessed we, developers, are with configurability. Why is…

Diving into Nix

At Shopify , the dev-infra team has been working on using Nix from one of our internal tools, dev . The tool is responsible for setting up the developers' environment, as well as providing a standard CLI for automation for projects like Rai…