Pedro Piñera

Software Engineer at Shopify 🛍. I like building tools for developers and doing open source.
Mostly doing Ruby & Swift, and sometimes Javascript

Interacting with Xcode projects in Swift


This blog post is an introduction to the format of Xcode projects and xcodeproj, a Swift library that helps read and update Xcode projects in Swift. The post contains a few hands-on examples for developers to experiment with the library.

Open source and trust


Trust is key for open source projects to thrive. In this blog post I explain what trust has meant for Tuist.

Software and people


A reflection on what's one of the most important things to me when building software, the people that make it possible.

GitHub as an organization hub


With the recent GitHub announcement of personal projects, I'm considering using GitHub as a todo platform where I can not only keep track of work-related tasks, but also personal ones. In this brief blog post I talk about how I used to organize myself, and why I think GitHub projects might suit my needs well.

But it's powered by Electron


This tiny blog post contains some thoughts on the rants I often see about apps written in Electron and what's my opinion on the framework and the apps written with it.

I do have weaknesses too


In this article I open myself up and talk about some of weaknesses that have been with me for a long time and that I'm currently trying to overcome.

All you need is tools 🛠


In this post I talk about why investing in good tooling is crucial for projects to move steadily.

What a psychologist helped me realize


It's been a few months going through a therapy that has helped me understand how my brain works and where the stress that I used to experience came from.

Drawing - Oberbaumbrücke


Before I fell in love with tech and computers, I used to draw a lot. I'm bringing that habit back and this is one of my most recent drawings, the so-known Oberbaum bridge in Berlin. It's drawn with water color.

GitHub workspaces using email


With this simple tweak I managed to have a notifications-free GitHub dashboard with workspaces right on my email.

Open source mindfulness


Not being mindful when contributing and maintaining open source projects might lead to burnout or low self-steem. In this blog post I talk about some principles that I applied to have a healthier relationship with the open source.

Why am I obsessed with developers being productive using Xcode?


In the last months I've been investing a big chunk of my free time on building tools to make developers productive working with Xcode. In this blog post I reflect on what led me to start working on that tool, Tuist, and how I'm addressing some of the challenges that are presented when using Xcode at scale.



Stress and anxiety are the illnesses of the XXI century. I've suffering from them and I share in this blog post how it ended up happening and what I'm doing to overcome them.

Open Source


In this blog post I talk about why I work on open source projects and what are the most important elements for me when starting an open source community.

On having focus


I'm struggling to have focus nowadays. In this post I describe why it's so hard for me to focus, and the things that I'm doing to overcome the problem.

Hallo Ruby, wie geht's?


It's been a long time since the last time I coded something on Ruby. In this blog post I talk about why I started using it again, and how it feels after spending a few years working with a compiled language like Swift.

I gave up using Medium


I gave up using Medium and here are the reasons that led me to make the decission.

The hermeticism and rigidity of Xcode and its projects


Xcode and its projects are not as flexible as they could be, which makes it hard for companies to optimize their workflows and processes. In this post I'll analyze some of the things that I would improve from its build system and projects.

Who is controlling whom


With technology everywhere, we don't have control over it anymore. It's learnt how to hook us and keep us using it.

Random thoughts a Friday night in Ottawa


I sat down after work and thought about some things that have been in my mind for some time. I wrote them in this blog post that if I have to summarize it, it talks about minimalism, open source, egno, and career paths.

Task automation in Swift with Sake


In this post I introduce a new tool I've been working on Sake. Sake is the Swift version of Make. It allows you to automate tasks in your projects.

Linting your Xcode projects with xclint


In this post I talk about a tool I've been working on that allows you to check the state of your Xcode projects, finding missing references and duplicated files.

Consistent vs convenient


I analyze in this post why some decisions that we make in our projects might turn into bad viruses that spread all over the code base.

Modular Xcode projects


This post presents some elementary concepts of how Xcode projects are structured, and introduces an structural approach to build modular Xcode apps.

Moving back to Berlin


A brief retrospective on what my life has been in the last few months and my thougts on my move to Berlin.

My thoughts on using React Native


I describe in this article what for me are the positive and negative points towards using React Native as technology for building your mobile apps.

Composable UIs


Build UIs based on reusable components that you can compose in more complex hierarchies.

Divide and conquer


How modularizing your apps is helping us to scale our Xcode app.

📦 Wrapping up 2016


The year is almost over. In this post I summarize everything that happened this year and my new year resolutions.

Developing tools for developers


Learnings from being a core developer and providing other teams with the tools that they need for their daily work.

Be Reactive my friend


Article that explains the benefits of reactive programming in the iOS world.

Developer Reflexion: Focus


Reflexion from a developer point of view about the importance of keeping a focus daily to have a good quality of life

Boy Scouts rule with Danger


Post where I explain how Danger helped us at SoundCloud to apply the programming Boy Scouts rule to our workflow

Marcheta en la vida


Mi experiencia de haber salido a vivir fuera de España y las lecciones aprendidas

Xcode scripts to rule them all


Set of normalized scripts very useful for Xcode projects. Individual contributors will be familiar with them after they clone the project.

States - The source of truth


Overview of states in iOS apps, how we tipically handle them, current challenges with states and how to overcome them

Developing PopcornTime for tvOS


I explain in this post the steps I followed to bring the concept of PopcornTime to tvOS and offering torrent video streaming in the last Apple TV device.

I struggle learning languages


It's not easy for me. My mind has never been willing to learn languages but I'll do my best this year to overcome this problem.

Building PopcornTime for tvOS


I explain in this post the steps I followed to bring the concept of PopcornTime to tvOS and offering torrent video streaming in the last Apple TV device.

Rewriting SugarRecord, 2.0


I explain in this post how was the process of rewriting SugarRecord, a CoreData/Realm wrapper for Swift.

Why Open Source helps you to become a better developer


Most of developers haven't tried creating an Open Source component before. Since I apply it to every of my projects I feel the results and development process has improved a lot. In this article I will describe why it's so important

My first Apple Watch impressions


After a day using Apple Watch I would like to share my impressions with the new Apple toy and why I wouldn’t buy the first version

Modularize your mobile projects


Learn how to split your app components in different bundles instead of dealing with an unique bundle that packages the whole app

Swift and Objective-C playing together


Start using Swift in your Objective-C projects. Avoid some headaches with these useful tips and advices for the communication layer between your Objective-C code base and your future Swift implementations

Codemotion experience


After two days of Codemotion I would like to share my experience in my first time in a developers event like that one

Github as your project management tool


Github is a powerful Git platform commonly used between the developers community. It offers features like issues, labels, milestones, releases, that used properly might help you to manage not only your technical repos but different aspects around your project like design, ideas, ...

Leaving Redbooth


I took de decision to leave Redbooth and join to a new adventure. I explain here the reasons, everything I learned from there and my expectations for 8fit

Setup your iOS Projects for testing


Learn how to setup your iOS for testing using the most popular testing libraries and how to integrate your project tests in the development flow.