Erick Camacho

Fotografía de Erick Camacho

¿Quién eres y qué haces?

Hola, soy Erick Camacho. Llevo viviendo del código desde 2001 y actualmente trabajo como ingeniero iOS en Spotify.

Mi carrera me ha llevado por varios caminos, empecé haciendo Backend con Java y organicé conferencias y meetups de ese lenguaje varios años. Cuando salió el iPhone, empecé a programar apps de iOS por hobby, pero pronto se convirtió en mi principal actividad. Estuve co organizando la comunidad de iOS en la Ciudad de México para promover esa tecnología. Lo que me llevó a ser Google Developer Expert de tecnologías para iOS, aunque ya no continué por falta de tiempo.

He dirigido equipos, he llevado el área tecnológica de startups y hace un par de años regresé a ser programador de tiempo completo en mi actual empresa, lo que ha sido muy divertido. Estoy viviendo en Estocolmo, Suecia desde entonces. Puedes leer un poco más acerca de lo que hago en el blog de mi empresa.

En mis tiempos libres me gusta aprender nuevos lenguajes de programación y explorar tecnologías. Estoy preparando un par de proyectos personales al respecto, espero contarles más próximamente. Por lo pronto, pueden ver un poco de mi trabajo con iOS en este proyecto open source: XCLogParser.

¿Qué hardware usas?

Uso una MacBook Pro que me dio mi empresa. Como hago iOS, es un requisito para ello. Por eso desde hace años uso plataforma Mac. También tengo una MacBook Air para proyectos personales y una PC que uso para gaming, pero también para programar un poco.

Estoy muy entusiasmado con las nuevas Mac que usan CPU ARM. Aunque por ahora el hecho de que solo tengan 16 GB de RAM me llevaron a mejor esperar que salgan modelos con más memoria antes de decidirme a comprar una. Desafortunadamente, cuando usas Xcode con proyectos muy grandes, es fácil necesitar más de 16 GB. En mi empresa recomendamos 64 en RAM para los programadores que hacen iOS y Android.

Mi teléfono es un iPhone X que estoy a punto de cambiar por el 12. Es el teléfono que me da la empresa. Además tengo un Apple Watch con el que estoy experimentando para hacer apps y una Raspberry Pi para jugar con proyectos personales.

¿Qué software utilizas?

MacOS y Xcode, necesarios para desarrollo iOS. En mi trabajo además hago web, backend y mucho scripting. Estoy usando Vim y Visual Code para ello. Vim lo uso como mi herramienta primaria, pero he encontrado que cuando hago Web, el debugger de Visual Code es muy útil.

Creo que se deben usar diferentes herramientas para diferentes tareas. Desde que empecé a programar, encontré que los ambientes estilo Unix se adaptan mucho mejor a ello. Tener una terminal, poder instalar bibliotecas y herramientas desde línea de comandos, e incluso poder tener ambientes parecidos a lo que estás usando en el servidor son una gran ventaja en esos ambientes. Empecé a usar RedHat por ello, cuando se hizo de de paga, no me gustó Fedora y me cambié a Ubuntu. Sistema Operativo que todavía uso en mi PC para programar. Algunas de las herramientas de línea de comandos que siempre instalo: ripgrep una herramienta para buscar en archivos que es muy rápida, bat un clon de cat con syntax highlighting, jq una gran herramienta para manipular documentos JSON y oh-my-zsh para mejorar mi shell.

Para programar iOS, la única opción es usar MacOS. Pero sigue siendo un *nix, por lo que es fácil programar en ese ambiente. Lo que además me gusta de MacOS es que también es un gran SO para funciones personales / de oficina: el software para videoconferencias funciona bien, las apps para streaming funcionan bien. Además, tiene un gran ecosistema de apps nativas hechas por programadores indies o empresas pequeñas. Me gusta probarlas y pagar por ellas. Por poner un ejemplo, algunas de las que tengo instaladas ahora mismo: Postico un cliente de Postgresql, Paw para probar servicios REST, GiFox para grabar GIFs de tu pantalla (muy útil para crear documentación), Fork una herramienta gráfica para Git.

También uso Windows para Gaming y últimamente para editar videos con la plataforma de Adobe Cloud y hacer streamings con OBS.

¿Cuál sería tu hardware / software ideal?

De entrada, tendría que tener un Sistema Operativo *nix. No puedo vivir sin las herramientas que ya estoy acostumbrado: un shell, VIM, herramientas de línea de comandos. Lo otro que pido es que tenga un buen ecosistema de Apps nativas. Aunque cada vez hay más y mejores apps Web, sigo disfrutando mucho de una interfaz nativa bien diseñada y un desempeño que no sea penalizado por ejecutarse en un Browser o en una Máquina Virtual.

En Hardware, estoy muy acostumbrado a usar laptop. Pero espero en un futuro poder usar una Tablet en su lugar. Creo que el desempeño de las tablets ha mejorado mucho y no pasará mucho tiempo antes de que podamos usarlas como estación de trabajo.

Las Mac me han decepcionado los últimos 2-3 años. Siguen siendo muy caras, pero el desempeño ha bajado muchísimo. En las laptops, es común que el calor no se pueda disipar y el Sistema Operativo reduzca artificialmente la velocidad para evitar fallos. Por lo que no puedes usar todo el poder que tienen. En computadoras de escritorio, los precios de las Mac son muy altos y no se comparan a PCs con especificaciones similares o mejores.

Si no estuviera haciendo iOS, me hubiera cambiado a usar una PC con Linux hace mucho. Aunque lo que menos me gusta de ese Sistema Operativo es el pobre ecosistema de apps nativas. No hay una forma uniforme de hacerlas ni buenas guías de Interfaz de Usuario que puedan seguir los programadores para crear experiencias consistentes.

Sin embargo, los nuevos CPUs con Apple Silicon, se ven muy bien y renuevan mi esperanza en la plataforma Mac. Algo muy interesante, es que al parecer no generan tanto calor por lo que no será tan sencillo que se sobre calienten. Aun así, falta esperar un par de años para ver si cumplen.