carlos.piñán

Carlos Piñán

Staff Android Engineer · Kotlin & AI-augmented engineering · Lima, Peru Staff Android Engineer · Kotlin e ingeniería aumentada con IA · Lima, Perú

I build Android software at 2B-user scale — and games on the side. Construyo software Android a escala de 2B usuarios — y juegos en el camino.

14+ years building and leading mobile software. Most recently Staff Engineer (IC6) at Meta, on WhatsApp's media infrastructure — photos, videos, files and stickers for more than 2 billion users. As tech lead I shipped Sticker Maker for Android end to end, from architecture to global launch, reversing a long-standing decline in sticker usage. Más de 14 años construyendo y liderando software móvil. Recientemente Staff Engineer (IC6) en Meta, en la infraestructura de medios de WhatsApp — fotos, videos, archivos y stickers para más de 2 mil millones de usuarios. Como tech lead entregué Sticker Maker para Android de punta a punta, de la arquitectura al lanzamiento global, revirtiendo una caída sostenida en el uso de stickers.

I work with Kotlin, Jetpack Compose, Clean Architecture and KMM, and use AI tools and agents daily for design decisions, coding and problem-solving. Outside work I maintain 95+ open-source repos, ship apps on Google Play, and build small games. Based in Lima, open to senior / staff Android and KMM roles remotely. Trabajo con Kotlin, Jetpack Compose, Clean Architecture y KMM, y uso herramientas y agentes de IA a diario para decisiones de diseño, código y resolución de problemas. Fuera del trabajo mantengo más de 95 repos open source, publico apps en Google Play y hago juegos pequeños. Radico en Lima y estoy abierto a roles senior / staff de Android y KMM en remoto.

What I doEn qué trabajo

Four things I keep being paid forCuatro cosas que hago bien

Consumer Android at scale, the architecture underneath it, the graphics work I do for fun, and the people side of engineering. Android de consumo a gran escala, la arquitectura debajo, el trabajo gráfico que hago por gusto y el lado humano de la ingeniería.

Android at scaleAndroid a gran escala

Media pipelines, gallery and picker surfaces, ExoPlayer, Android 13 granular media permissions, Google Photo Picker as a native entry point. Reliability work: ANR fixes and deadlocks in download, cursor and sticker pipelines. 50+ A/B experiments authored and managed. Pipelines de medios, galería y pickers, ExoPlayer, permisos granulares de Android 13, Google Photo Picker como punto de entrada nativo. Confiabilidad: correcciones de ANR y deadlocks en descarga, cursores y pipelines de stickers. Más de 50 experimentos A/B diseñados y gestionados.

  • Kotlin
  • ExoPlayer
  • A/B testing
  • ANR & deadlocks

Architecture & KotlinArquitectura y Kotlin

Clean Architecture, modularization of monolithic media stacks into independent modules, XML-to-Compose migrations, server-driven UI for banking apps, and Kotlin Multiplatform. Plus build automation: custom Gradle tasks and Python scripts that cut compile times. Clean Architecture, modularización de stacks de medios monolíticos en módulos independientes, migraciones de XML a Compose, server-driven UI para apps bancarias y Kotlin Multiplatform. Además automatización de builds: tareas Gradle propias y scripts en Python que reducen tiempos de compilación.

  • Jetpack Compose
  • KMM
  • Clean Architecture
  • Gradle

Graphics, games & on-device MLGráficos, juegos y ML en dispositivo

Led the migration of an on-device ML model from PyTorch to ExecuTorch across the Family of Apps — lower memory, zero regressions across A/B rounds. On my own time: OpenGL ES renderers, Godot 4 games, cocos2d-x in C++, and game loops written from scratch on a canvas. Lideré la migración de un modelo de ML en dispositivo de PyTorch a ExecuTorch en toda la familia de apps — menos memoria, cero regresiones en varias rondas A/B. Por mi cuenta: renderizadores OpenGL ES, juegos en Godot 4, cocos2d-x en C++ y game loops escritos desde cero sobre un canvas.

  • ExecuTorch
  • OpenGL ES
  • Godot 4
  • cocos2d-x

Leadership & mentoringLiderazgo y mentoría

Mentored engineers from IC3 to IC5 on architecture and career growth, ran technical interviews, wrote milestone plans and built team wikis so knowledge outlives the project. Certified Scrum Master, former GDG Lima organizer and speaker. Mentoría a ingenieros de IC3 a IC5 en arquitectura y desarrollo de carrera, entrevistas técnicas, planes de hitos y wikis de equipo para que el conocimiento sobreviva al proyecto. Certified Scrum Master, ex organizador y ponente de GDG Lima.

  • Tech lead
  • Mentoring
  • Hiring
  • GDG Lima

ShippedPublicado

Apps on Google PlayApps en Google Play

Five are live on the store; each one has its landing page and privacy policy hosted here. Cinco están publicadas en la tienda; cada una tiene su página y su política de privacidad alojadas aquí.

Stat Calculator

Stat Calculator

Pokémon stat calculator across all nine generations — DVs and Stat Exp for Gen I–II, IVs/EVs/natures from Gen III on. 1,025 species cached offline, build comparison, formula reference, six languages. Calculadora de estadísticas Pokémon para las nueve generaciones — DVs y Stat Exp en Gen I–II, IVs/EVs/naturalezas desde Gen III. 1,025 especies en caché offline, comparación de builds, referencia de fórmulas, seis idiomas.

  • React Native
  • Offline
  • 6 languages
Corta Spam

Corta Spam

Open-source call blocker for Peru and beyond. Rule engine with wildcard patterns, country matching, quiet hours, repeat-call rules and a bundled offline spam list. It does not declare the internet permission, so it cannot phone home. Bloqueador de llamadas open source para Perú y más allá. Motor de reglas con comodines, coincidencia por país, horas de silencio, reglas de llamadas repetidas y una lista de spam offline incluida. No declara el permiso de internet, así que no puede enviar nada.

  • Kotlin
  • MIT
  • No internet permission
Retro 3D Maze

Retro 3D Maze

The Windows 95 maze screen saver rebuilt for Android as four things in one: screen saver, playable game, live wallpaper and Daydream. Eleven maze algorithms, five sizes, texture packs drawn at runtime. El protector de pantalla del laberinto de Windows 95 rehecho para Android como cuatro cosas en una: protector, juego, fondo animado y Daydream. Once algoritmos de laberinto, cinco tamaños y texturas dibujadas en tiempo de ejecución.

  • Kotlin
  • OpenGL ES
  • Live wallpaper
Turbo Race

Turbo Race

Endless tunnel runner: three difficulties, Play Games leaderboards and achievements. Rewritten in Godot 4 from a cocos2d-x game I shipped years ago — and it runs in the browser, no install. Runner de túnel infinito: tres dificultades, tablas de líderes y logros de Play Games. Reescrito en Godot 4 a partir de un juego en cocos2d-x que publiqué hace años — y corre en el navegador, sin instalar nada.

  • Godot 4
  • Play Games
  • Web build
Peru Combi Rush

Peru Combi Rush

Drive a Lima combi: pick up passengers, dodge traffic, survive the route. A love letter to Peruvian public transport, built in Godot. Maneja una combi en Lima: recoge pasajeros, esquiva el tráfico y sobrevive la ruta. Una carta de amor al transporte público peruano, hecha en Godot.

  • Godot
  • Arcade
  • EN / ES
Piano Solfeo

Piano Solfeo

Sight-reading and music theory drills. Eight modes covering treble and bass clef notes, chords, intervals, scales, the circle of fifths and an interactive keyboard. Do-Re-Mi or C-D-E naming, streaks, fully offline. Ejercicios de lectura a primera vista y teoría musical. Ocho modos: notas en clave de sol y fa, acordes, intervalos, escalas, círculo de quintas y un teclado interactivo. Nombres Do-Re-Mi o C-D-E, rachas y todo offline.

  • Kotlin
  • Compose
  • Offline

No installSin instalar

Open it in a browserÁbrelo en el navegador

These run straight from a URL — no store account, nothing to download. Corren directo desde una URL — sin cuenta de tienda ni descargas.

Turbo Race

Turbo Race — web

The full Godot game exported to WebAssembly. Arrow keys or touch, same physics as the Android build. El juego completo de Godot exportado a WebAssembly. Flechas o toque, con la misma física que la versión Android.

Mis Mascotas

Mis Mascotas

A memorial site for pets — installable PWA, works offline, photo collages per pet, all driven by JSON files. Un sitio memorial para mascotas — PWA instalable, funciona offline, collages por mascota y todo definido con archivos JSON.

Open sourceCódigo abierto

Repositories I wroteRepositorios que escribí

95+ public repos on GitHub, 60 of them written by me, 150+ stars, Arctic Code Vault contributor. These ten are the ones worth your time, ordered by how much use they've seen — the rest are listed by theme below. Más de 95 repos públicos en GitHub, 60 escritos por mí, 150+ estrellas y contribuidor del Arctic Code Vault. Estos diez son los que valen tu tiempo, ordenados por el uso que han tenido — el resto está listado por tema más abajo.

Also on GitHub También en GitHub

The other 49 repositories I wrote, by theme. Some are talk and workshop sources, some are practice — where a repo follows a book, a course or someone else's game, it says so. Los otros 49 repositorios que escribí, por tema. Algunos son fuentes de charlas y talleres, otros son práctica — cuando un repo sigue un libro, un curso o el juego de otra persona, lo dice.

Graphics & 3D on AndroidGráficos y 3D en Android

Maze-3D · OpenGLES-32-Samples-App · OpenGLES2-Android · Android-Cube-OpenGLES-2 · Android-Canvas-Spritesheet · 3D-Graphics-Engine · Frogger · AndroidStudioAndengine · OpenGL-ES-2.0-Android-to-Kotlin (book, ported to Kotlin)(libro, portado a Kotlin) · Mobile-3D-Game-Development (book source)(código de libro)

cocos2d-x & the C++ yearscocos2d-x y los años de C++

Turbo-Race (the 2012 game, updated to cocos2d-x 4.0)(el juego de 2012, actualizado a cocos2d-x 4.0) · TweeJumpCocos2dx (12 ★ — my cocos2d-x port of haqu's TweeJump)(12 ★ — mi port a cocos2d-x del TweeJump de haqu) · SneakyInput-Cocos2dx-2.0.x (2 ★, 13 forks — my fix of the joystick lib for v2.0.x)(2 ★, 13 forks — mi arreglo de la librería de joystick para v2.0.x)

Talks & workshops — GDG Lima, 2012–2019Charlas y talleres — GDG Lima, 2012–2019

DevFestLima2012_AndroidGame · GameDevConferenceLima15Julio · WorkshopAndroidGame2012 · GDayX · AndroidPE · DartSaltarin · CalculadoraDart · 01-Introduccion-SRC, 02-Fisica-Basica, 03-Colisiones-Basicas (my "game dev from zero" course, in Spanish)(mi curso «desarrollo de juegos desde cero», en español) · Android-Jetpack-Composer · CameraX-and-MLKit (Kotlin Everywhere)(Kotlin Everywhere)

HTML5 games, 2013–2014Juegos HTML5, 2013–2014

SnakeHTML5 · TetrisHTML5 · Bomberman · PlatformerExampleHTML5 · box2d

Compose, Android platform & webCompose, plataforma Android y web

Basic-Bluetooth-Compose-Chat · Jetpack-Compose-Challenge-Week-1, Week-2 · AndroidDevChallenge · Pokedex (follows a video series)(sigue una serie de videos) · Android-Template-Libraries · Android-Associate-Developer-Training · AugmentedReality · GoogleMobileVision · pokestats-pwa · Ionic-Practice

Algorithms & courseworkAlgoritmos y cursos

Algorithms-Practice · Leetcode-Solutions · Kotlin-for-Java-Developers · AndroidNanodegree, CapstoneProject, android_spotify_streamer · Advanced-Android-Updated, Android-Kotlin-Advanced (Udacity courses, updated to current APIs)(cursos de Udacity, actualizados a APIs actuales)

Browse all 60 repositories I authored on GitHub Ver los 60 repositorios que escribí en GitHub

ExperienceExperiencia

Where I've beenDónde he estado

From cocos2d-x games in Lima to WhatsApp media infrastructure in London. De juegos en cocos2d-x en Lima a la infraestructura de medios de WhatsApp en Londres.

Shall we work together?¿Trabajamos juntos?

Open to senior / staff Android and KMM roles, remote from Lima. Also happy to talk about games, OpenGL, or why your app ANRs on cold start. Abierto a roles senior / staff de Android y KMM, en remoto desde Lima. También me encanta hablar de juegos, OpenGL o de por qué tu app hace ANR en el arranque en frío.

carlos.pinan@gmail.com