Recent writing

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…

We need more crafters

I think the technology industry needs more crafters. People that have a genuine and lasting love for what they do . Our industry is filling with people that are constantly trying to catch the latest trend, or create the newest product/proje…

A better signing experience in Xcode

A few days ago, Marek decided to take on a proposal that I made for Tuist a while ago, management of certificates and provisioning profiles . As it happened with the definition of dependencies, dealing with certificates and provisioning pro…

From iOS engineer to a T-profiled techie

One of the things that excited me the most about the opportunity to join Shopify back in 2018 was the opportunity to grow and learn from the challenges and the talent of the company. When I joined, my background was mainly iOS development w…

Generation of Swift interfaces to access resources

Many of you might already be familiar with SwiftGen ; a tool that generates Swift code to access resources in a type-safe manner. Having a type-safe API is something that Android developers have had for a long time, and that Apple has never…

A standard CLI for Xcode projects

There’s an idea that I’d love Tuist to move towards: provide a CLI that is standard across all the projects defined using Tuist. This is not a new idea; we can see it in frameworks like Rails that thanks to being opinionated about the struc…

Evolving Tuist's architecture

I'm flying back from Tokyo and took the opportunity to code a bit on Tuist. Since I don't have Internet connection to get distracted with, I decided to work on something that doesn't require Internet connection: improving the project archit…

Seeking inmutability

I recently opened up this PR on Tuist that turns models that represent the projects into structs. For some reason, which I don't remember, I had the not-so-brilliant idea of defining them as classes. While that has been working fine, they d…

Social anxiety

I keep falling into the same trap over and over: believing that I should be active in social media to be connected to others and have a prosper professional future. My relationship with them is a rollercoaster. There are times when I neglec…

Wrapping up 2019

Following every year's tradition, I'm writing a wrap-up post for this year, 2019. 2019 has been the year when María José and I got married . I proposed to her in January and celebrated the wedding in September. I have no words to describe h…

Signing with Xcode on CI

Today, I worked on automating the release process of Angle on CI. At first, I thought it'd be a straightforward task, but it turned out not to be so. Most Xcode projects don't have to deal with this because they use Match , which abstracts…

Moving Pods to Packages

Today, I decided to move all Angle 's dependencies that were defined as CocoaPods Pods to Swift Packages. It was my first-hand experience with Xcode's integration with the Swift Package Manager so here are my thoughts: I had no issues. I we…