I build mobile software, and I build the conditions other people build it in.

Fourteen years, Android and iOS, both natively and for real — not one platform with the other on a résumé. Most of that time has been spent on apps large enough that the interesting problems stopped being “how do I ship this screen” and became “why does every screen in this codebase look like it was written by a different company.”

That question is most of what I do now. I write the architecture standards a mobile organization codes against, I put them in the repository where they can be enforced instead of in a wiki where they can be ignored, and I build the automated review that checks the code against them on every diff. When there is no platform team accountable for how Android or iOS are written, that work lands on every squad by construction — which is the part that interests me. A decision made once at the platform level is worth more than the same decision relitigated in forty pull requests.

The other half is people. I decompose work so that an engineer new to a codebase can pick up a single ticket, know exactly which architectural layer they are standing in, and land it without me in the room. The sequence teaches the architecture while it delivers the feature. I would rather encode judgment in a document or a rule than repeat it in a review comment, because documents and rules reach further than I do.

I am equally at home arguing about a backend endpoint’s shape as an Android or iOS feature. Client-server contracts are where most mobile bugs are actually born, and a mobile engineer who will not read the service is only doing part of the job.

The longer version of all of that is on What I Do — architecture standards, the AI code review built on top of them, observability, and cross-platform contracts.

Where I’ve worked

A flat list of employers is a thing nobody reads, so here it is by the kind of problem instead. Some were full-time roles; others were client engagements run through my own practice, which has been running since 2013.

Media and streaming

Disney Streaming — Senior iOS and tvOS engineer across Hulu, ABC, ESPN, Disney+, Fox, Star, Freeform, NatGeo and ABC News. Led the Live Events feature across the Disney Streaming library, and worked the migration of standalone apps into Disney+.

Venu — Staff iOS engineer on the tvOS team through launch, brought in to unblock a ten-person team in the final stretch and to be the first Venu engineer embedded with Fox ahead of the codebase handover.

GroceryTV — Staff Mobile Engineer, Android and player platform. A high-scale ExoPlayer and Media3 player for retail environments: continuous playback, its own telemetry for success and failure rates, and error recovery that survives network loss without anyone driving to the store.

Marketplaces and consumer products

Zillow — Principal Android Engineer on the Seller team, and a founding member of the Mexico City office. Worked as principal across four teams and roughly thirty engineers spanning backend, web, Android and iOS: designed a native questionnaire replacing a web flow on both platforms, and wrote the versioning policy the three platforms shared so changes stayed consistent across them.

Fair — Senior Android engineer on marketplace listings and vehicle detail, moving the app onto AppSync and Apollo.

Homer — Senior Android engineer on Homer Learning, end to end: Clean Architecture, account creation, subscriptions, and mentoring mid and senior engineers on the team.

Beachbody MYXFitness — Senior Android engineer on the Bike app. Took the crash-free rate from 89.8% to 98.6%, and built the offline persistence layer that kept cadence, heart rate and calories visible without a connection.

Sr. Pago — Senior Android engineer on a mobile card terminal for small retailers, including American Express API certification.

Connected vehicles, appliances and enterprise

Globant — Android, iOS and React Native for Aeris, building connected-car software years before CarPlay or Android Auto existed. The apps paired with the vehicle’s OBD port and pushed alerts to the owner’s phone: speeding, towing, theft, or the car leaving the area it was meant to stay in — including the alert that tells a parent the car they lent their teenager is nowhere near school. Shipped for brands including Chrysler and Mitsubishi, and for Hero motorcycles. I also built the persistence layer that got the apps off direct database access.

Softtek — Lead Android and iOS developer, and the person who started their first mobile practice in Mexico City. Delivered for Infonavit, Consar and IMSS, and for Ford, leading teams that changed size with each phase of the work.

Whirlpool — through BairesDev. Senior Android and iOS engineer on smart connected appliances, through two generations of the app, with QR and Wi-Fi pairing and the accessibility work that made it usable.

Nekso — Lead iOS engineer, taking the app through architecture rework and its App Store release, with the CI/CD pipelines behind it.

Vox Fortius — Lead Android and iOS engineer at a point-of-sale startup, defining the architecture for the whole system: tablet apps, backend, and a CMS for clients to read their own results.

Elsewhere

Author, topic master and final pass editor at Kodeco (formerly raywenderlich.com), where I wrote my book: Android App Distribution. I wrote and built the sample projects for seven of its chapters, negotiated the outline and proposal, and defined tutorial topics and briefs for the rest of the Android team.

I studied Mechatronics Engineering and Computer Engineering simultaneously at Universidad Anáhuac México, 2010–2016 — degree and professional licence (título y cédula) in Mechatronics, and all coursework completed in Computer Engineering. Spanish, English and French. Based in Mexico City.

I write about mobile engineering on the blog.

I am occasionally open to conversations about staff-level Android and iOS roles.

Latest stories

First glance into Android Studio 4.0

Photo by David Pisnoy on Unsplash Android Studio 4.0 was released today, May 28, 2020, into the stable channel. That means it’s available for anyone to download and use, without major problems. This is a major release since Android Studio 3.6, which I also reviewed back then. You can take a look at the official documentation if you want to know every detail, but the...

Android Gradle Build Configuration

With the help of Gradle and the Android plugin, you can easily automate processes that in the past needed to be manually done and a lot of time-consuming activities. Among the advantages of these configurations, we find Android Gradle Build Configuration, with which you can get different versions of your app with variations for things like testing, using different backend endpoints, switching...

A look into Kotlin KAPT for Android

It has been three years since Kotlin was introduced to the Android world. Like many other programming languages, annotations are a needed and powerful tool, but surprisingly Kotlin was not compatible with Java’s Annotation Processing Tools. So let’s dive into what is KAPT for Android. When to use KAPT? The first question that usually comes to our mind when talking about annotation processing in...

Android App Bundles vs. APKs

When building Android apps, you’ll be facing a myriad of different file formats and terminology. Particularly when exporting the final version of your app, you’ll be seeing two main output formats. In this article, we’ll compare Android App Bundle versus APK, which are composed of DEX files. But what do all these acronyms mean? Acronym meaning Before digging deeper into the topics, it’s important...

Using Firestore With Android and Architecture Components

Photo by Pathum Danthanarayana on Unsplash Firebase Firestore and Android Architecture components seem to fit together perfectly. Yet there is little information on how to tie these tools together. This was brought to my attention by Ashton Jones and in response, I’ve created some articles explaining how to integrate them. In this article, I will explain how to integrate...

How to Set Up a Database With Firebase Firestore to Use With Android Architecture Components

Photo by Markus Spiske on Unsplash. In a previous article, we discussed how to create an Android app with two of the most important building blocks of Android Architecture Components: LiveData and ViewModel. This is a follow-up to that tutorial. Once we have an app with clean architecture, we will be configuring Firebase Firestore for Android Architecture Components to update...

Create an App That Uses LiveData and ViewModel in Java

Photo by Anders Jildén on Unsplash. Among the wide range of tools that were released with Android Jetpack, Android Architecture Components, LiveData, and ViewModel are particularly useful. I’m creating this tutorial in response to Ashton Jones, who expressed that there are very few examples for integrating these Architecture Components with Google Firestore. In this...

What is SwiftUI?

SwiftUI was released at the end of 2019. Just like every year, Apple announced multiple updates for developers. After the event, I promised myself I was going to get ahead of time and learn it right away (yeah just like iOS developers version of New Year’s Eve resolutions), truth is… I didn’t. Today I took my first dive into it and wanted to make it easier for anyone who still hasn’t had the time...

Accessibility in Android With Material Design

As part of Material Design Guidelines, Android added help for developers and designers to improve accessibility in Android apps. The topic of accessibility has become very important in web apps, this because indexing in search engines is improved when apps follow accessibility best practices. As this has not been enforced in mobile applications so much, we often forget it is key for inclusion and...

Evana Puig

Get in touch

Staff mobile engineer, 14 years across Android and iOS. I write the architecture standards mobile organizations code against, and the automated review that enforces them. Author of Android App Distribution at Kodeco. Fully remote.