Hola ๐Ÿ‘‹,

I'm Pedro. I'm a Berlin-based builder and the CEO of Tuist. I'm an advocate for open-source software, and I believe in open source as a tool to bring more freedom to the world and build better technology.

Most of what I make lives on GitHub. Tuist is the big one, a platform team as a service for Swift app developers who ship, sitting close to your toolchain and projects so you can stay focused and productive while building apps. This very site runs on Gesttalt, a publishing platform I designed so agents can run whole blogs while people keep ownership and the final approval. And when I wanted Swift concurrency to finally click, I wrote fuckingapproachableswiftconcurrency, a no-bullshit guide to async/await, actors, Sendable, and MainActor through simple mental models.

A lot of my recent tinkering happens in Elixir, around agents and browsers. condukt is a package for building agentic workflows, and condukt_browse_tool gives those agents the ability to browse the web. Underneath sits browse, a transport-agnostic browser automation contract and pool, with browse_chrome driving headless Chrome through the Chrome DevTools Protocol and browse_servo doing the same for Servo through that shared contract. Carta turns HTML templates into images using a headless browser, and outside the Elixir world I keep liquidz, a small Zig library for parsing Liquid templates.

You'll find me sharing things on X, LinkedIn, and Mastodon.

Recent writing

Publishing from the harness

My blog has always been a playground for technology. Here is how its publishing pipeline evolved from a static site and a CD pipeline into a small Elixir engine I can publish to straight from a coding harness over MCP, the project I now call Gesttalt.

Producing value is not capturing it

Developers are good at producing value and assume that capturing it should follow. Some observations on why it does not, and on what selling to developers actually rewards.

View all writing