Pedro Piñera
Rails 8.1’s Local CI: Lessons for Apple Developers
My Terrible Experience with Germany's Health System
On Markets and ICPs
You can't build a Grafana
Gardens, commerce, and the art of growing something meaningful
Local-first AI development for mobile apps
The market
The coming disruption of Apple developer tooling
Agentic native app development
Setting up PeerTube with Cloudflare R2 Object Storage
Mobile CI will have to redefine itself
On mental health
On enthusiasm
Navigating anxiety
Compiler optimizations or speed of delivery
Remote macOS Containers as a Service
~AI~Vibe-first businesses
Full-time entertainers
Inviting ecosystems
Tuist's plans
The commoditization trap: why software needs community to thrive
Mobile CI is plateauing
If a business can be open source, it'll be open source
Nightly builds are the wrong solution to the right problem
Setting up Docker DinD in Forgejo Actions
Dogfood if you can
Lynx is an invitation for UI frameworks to support mobile development
AI as a tool to reduce OSS maintenance costs
Own your community
China is succeeding at what everyone else is failing at: localization
From open source to open core business
A Mise formula for Swift Package development
If Swift app development teams had the data...
CI is commoditizing
Science macht besser
Tuist’s vision for an open, cross-platform future
The missing commoditization
Where does the value lie in open-source businesses?
Communities
Tuist is evolving
Whom do you trust?
A convention for frictionless reproduction projects with Mise
Reverting some social recent behavioural and emotional patterns
From CLI to platform
Learnings from logging in a Swift CLI
Us or them
The paradox of OSS
If it can be open-source, it'll be open source
Programming languages are just tools
Growth, growth, growth
Setting up a Forgejo runner in Hetzner
Tuist is a product
Whom do I trust?
I am out of X
Set up a Woodpecker CI in Hetzner server for your Codeberg account
If system APIs where awaitable
Concurrent work in non-concurrent brains
Small but sexy
Brains are complex
Makers and takers
Monkey brain
Licenses, governance, and trademarks in the open-source world
A non-concurrent design in a conrurrent world
Should I join the show?
The iPad as a creativity device
On taking shortcuts to build communities
The missing narrow waist in CI
A different approach to building a software company
About mental health
An intrinsically motivated person in a extrinsically motivated environment
Open design
Fair Source: Sustainability with no customer risk
DX vendor locking
Where do I see myself in 10 years?
Continuous releases with automated changelog generation
Exploring commercial OSS
What is urgent?
Openness as a tool of trust
How synchronized groups work at the .pbxproj level
The specified item could not be found in the keychain
The best products tell stories
Does it need to be in JavaScript?
Falling behind
When you are open
It's a marathon
The technology does matter
A different company
BREAKME.md
Parallelism and programming languages
Lazy-learning
Website redesign
Emotional breakdowns
Why you need the -ObjC flag
Simplicity, standards, and the platform
Meeting developers where they are
The non-technological open source problem
Layering Tuist
When you become infrastructure
Connecting App Signal with Incident.io using Cloudflare Workers
Standards, standards, standards
Thoughts on Open-Source
Transitioning Tuist Cloud from Ruby to Elixir
Elixir scales better
Gain back attention
If I could just parallelize my tests execution
On protecting my creative energy
Global state is future debt
It takes a lot of determination
It's not about what, but how
JavaScript DX without JavaScript
Incremental Xcode workflows across environments
AirPods Max died after 2 years
Xcode is too magic
XCBundles
Gifting OSS
Global state, CLIs, and test scalability
Deterministic tool versions across environments with Mise
I'm allergic to complexities
Starting therapy next week
Open-source and the imposter syndrome
I'm sick
Type safety but at which cost?
JavaScript-owned state and accessibility
What if XCTest a concept akin to Elixir's processes?
Learning to love the problem and not the solution
Implicitness in Xcode and SPM. Why Apple?
What I expect from a knowledge management app
Swift Packages default to supporting all platforms
Swinging back to positivity
Open-sourcing the lightning_css Elixir package
On mental health
3 package managers + 2 build tools = One big mess
Peeling layers
Ensuring a smooth workshop experience
Balancing mastery and sustainability
Dear Bitrise
Integrating Swift Macros with Xcodeproj native blocks
Making Tuist easier to work with by saying goodbye to Ruby
From side project to sustainable tool
Empowering Development: The Journey and Vision of Tuist
Recalibrating Mental Models in Elixir Programming
We do it for the community
Between Simplicity and Limitations: A Developer's Take on Apple's Tooling Strategy
Reclaiming Mental Peace: My Personal Odyssey
Exploring Mocking Solutions in Elixir: Introducing Modulex
Passion vs. Profit: My Quest for Meaningful Craftsmanship in Tech
Tuist: From Passion to Craftsmanship, Charting New Horizons
Fixing request/2 is undefined or private with Ueberauth
Abstracted complexity remains complexity
The Power of Concurrency: My Journey Learning Elixir
Fixing psych compilation error trying to install Ruby on an Apple M2 laptop
An update on the entrepreneurship path
Integrating Tailwind into your Swift projects
Issues Dockerizing a Vapor project in M2
Focusing on Swift
Hitting memory limits deploying Vapor apps to Fly
Embracing the Journey of an Indie Developer
How to Configure VSCode to Use Alternative Shells
Generating client secret from Apple's P8 key in Elixir
Typescript not loading in Visual Studio Code
Iterating on my learning system
Static imports with ESM and startup time
An explicit build graph with Nx for a better DX
Hot-reloading and ESM
Growing as a Staff Developer
Typing file-system paths in Typescript
On learning Elixir
On finding passion in devising developer experiences
Modular projects, Typescript, and developer experience
On embracing my chaos
Mitigating 'delete node_modules'
But they are developers too
CLIs are products too
Javascript, ESM, and tools
Users don't care about your web app's portable binary
OSS and extrinsic motivators
Platform-dependent CLIs
On evolving opinions
Migrated to SvelteKit
Adapting to a platform
I want to be rich
The React chain
On cutting off some dopamine dependency
Great solutions for the wrong problems
Developer platforms and diversity
Spain, it's not time to be reunited (yet)
A future note to self about Omniauth
./dev
Seabolt support for M1
Some Rust thoughts
Planning open-source work
Contributors' first experience
What I learned as a manager
Propose, prototype, and build
Back to Jekyll
Swinging the pendulum back to engineering
Focused Xcode projects
On not having focus
Tuist 2.0 and next
Building mental models
ViteJS and Rails
Learning Rust
Migrating documentation to Docusaurus
TailwindCSS or Theme-UI
Community-driven and organization-driven open source
The role of flexibility in scaling up Xcode projects
Open source, people, and happiness
Data-driven open source
Building Tuist as a platform
Tuist and JS bundlers
Owning your workflows
Focusing on the problems
Tuist and the Swift Package Manager
Tackling technical debt in Tuist
Decision records
Scaling up an open-source project
The beauty of a standard command line interface
Reflecting on 3 years at Shopify
My first RFC in the React Native project
My tech stack in 2020
Sparking joy working with Xcode
Tree-shaking Xcode projects
Module caching in Xcode projects
Growing Tuist's community
The exciting adventure of building a web app
Generating Typescript code from a GraphQL schema
What I like from Ruby and Rails
Modularization in open source projects
Finding focus
Pairing sessions to introduce people to Tuist and open-source
Thinking in terms of problems
The beauty of not expecting something in return
A shift towards product development
Transitive React Native dependencies
Streamlining app development
WWDC's FOMO
First thoughts on Sorbet
Working on new features or tackling technical debt
Add and remove footer using NSBox
My first coding video on Youtube
To build, or not to build
Cognitive overhead
Graphed knowledge
Catching crashes at launch time on Android React Native apps
Control and innovation
Anxiety-free working
Keeping it simple
Diving into Nix
We need more crafters
A better signing experience in Xcode
From iOS engineer to a T-profiled techie
Generation of Swift interfaces to access resources
A standard CLI for Xcode projects
Evolving Tuist's architecture
Seeking inmutability
Social anxiety
Wrapping up 2019
Signing with Xcode on CI
Moving Pods to Packages
Adding bits of reactive programming to Tuist
Working on a new website for Tuist
Creating experiences
I am X
Module caching with Galaxy
Static site generators
Better relative paths
Project description helpers
Abstractions
Keeping up with dependencies updates
What's coming to Tuist
A period of changes
Project generation
Adding error tracking to a CLI written in Swift
Derived Info.plist files
Running system tasks with Swift and Foundation
All you need is tools (talk)
How I feel working on Tuist
The tale of Xcode projects' complexity
The urge to be the first
Speaking at AltConf
Abstracting Info.plist files
T-shaped engineers
Xcode updates are fun
Reliably installing Xcode
macOS development and being comfortable
Interacting with Xcode projects in Swift
Open source and trust
Automated tests for a Swift CLI tool with Cucumber
Software and people
Turning negativism into positivism
Deep linking into macOS apps
GitHub as an organization hub
The motivations behind building Tuist
Wrapping up 2018 📦
All you need is tools 🛠
What a psychologist helped me realize
GitHub workspaces using email
Open source mindfulness
Why am I obsessed with developers being productive using Xcode?
Open Source
On having focus
Hallo Ruby, wie geht's?
Thoughtful usage of technology
I gave up using Medium
The hermeticism and rigidity of Xcode and its projects
This app could not be installed at this time
Random thoughts a Friday night in Ottawa
Wrapping up 2017 📦
Linting your Xcode projects with xclint
Consistent vs convenient
Modular Xcode projects
Providing mocks and testing data from your frameworks.
Conditionally embed your dynamic frameworks
Little tweak to be more productive writing XCTest tests
Introducing xcodeproj
Moving back to Berlin
Composable UIs
Divide and conquer
📦 Wrapping up 2016
Extensions, dependency injection and frameworks
Developing tools for developers
Stepping off the social world
Be Reactive my friend
Micro Features Architecture for iOS
Network Testing - Say hello to Szimpla
A journey into Frameworks - Le Testing Framework
Being disconnected in a connected world
Boy Scouts rule with Danger
Automating iOS review tasks with Danger
Marcheta en la vida
Xcode scripts to rule them all
States - The source of truth
Install the last Carthage version on CI services (Travis, Circle, ...)
Rewriting SugarRecord, 2.0
Functional is about functions (Swift)
Implementing a Mutable Collection Property for ReactiveCocoa
Programación Reactiva en Swift: Parte 1, Introducción
Paginated API requests using Functional Reactive in Swift
Why Open Source helps you to become a better developer
My first Apple Watch impressions
Full control in your hybrid mobile apps with a local server, 8fit
Modularize your mobile projects
Boosting your mobile app with Javascript and some mobile knowledge
Swift and Objective-C playing together
Codemotion experience
VIPER, Looking for the perfect architecture
Github as your project management tool
Leaving Redbooth
Setup your iOS Projects for testing