skip to content
Juan

Juan's blog

A human who writes in natural and programming languages

Currently living in Argentina and working as an iOS/watchOS engineer at Runna (acquired by Strava).

This is my little corner of the internet. My tiny garden. I write about whatever inspires or interests me, usually in the form of blog posts.

Life isn't about finding yourself, or finding anything. Life is about creating yourself. And creating things.

— Bob Dylan

§ 01

Writing

all posts →

§ 02

Work

linkedin →
  1. 2024 → now

    Senior Engineer II · Runna (acquired by Strava)

    The Swift side of a personalized running coach: watchOS app, widgets, Live Activities and HealthKit.

  2. 2022 → 2024

    Senior iOS Engineer & Technical Scrum Master · PayPal (Venmo)

    Built Venmo's Teen Account from its inception, then drove its planning as Technical Scrum Master.

  3. 2021 → 2022

    Senior iOS Engineer · Moen

    iOS app to pair and control Flo and Moen smart water devices.

  4. 2020 → 2021

    iOS Engineer · IncluIT

    Client apps across VoIP, banking, insurance and health, including a tech lead role.

  5. 2019 → 2020

    Mobile Developer · OZ Digital Consulting

    Xamarin.Forms app for construction companies to manage property listings.

  6. 2018 → 2019

    Mobile Developer · DGENIX

    International Xamarin projects and contributions to MvvmCross open source.

§ 03

Reading

library →

Pages torn from whatever I'm reading. All my highlights are collected on my Readwise account, and you can get them in your inbox by joining my newsletter. A summarized version of my highlights lives in my library.

  • "A veces pienso qué diferente habría sido mi vida si para entonces ya hubiera existido el estado de flotación. Mi mamá podría haber continuado conmigo, en internet o en otro cuerpo, en algún lugar. Papá me decía que mamá estaba en el Cielo; en ese momento solo teníamos la religión. Pero al Cielo no se puede acceder por medio de una computadora; la religión no es user friendly".

  • La idea de “justicia social” ayuda a reconocer que las injusticias no nacen sólo de decisiones equivocadas de los individuos, sino también de estructuras, mecanismos, sistemas económicos y culturales que producen desigualdad casi automáticamente. [San Juan Pablo II](https://www.vatican.va/content/vatican/it/holy-father/giovanni-paolo-ii.html) habló en este sentido de estructuras de pecado [[108]](https://www.vatican.va/content/leo-xiv/es/encyclicals/documents/20260515-magnifica-humanitas.html#_ftn108) que se oponen a la voluntad de Dios y requieren un esfuerzo de conversión personal y social. En esta perspectiva, la justicia no concierne sólo a la distribución equitativa de los bienes o a la corrección de las injusticias presentes, sino que asume también una dimensión reparadora. Ella mira a recomponer los vínculos rotos y a reintegrar al que ha sido excluido, teniendo en cuenta las heridas provocadas por las injusticias: guerras, colonialismo, discriminaciones raciales o de género, violencia contra pueblos enteros y explotación. Esto puede significar restituir dignidad y voz a quienes han sido ignorados, favorecer procesos de sanación de la memoria colectiva, combatir leyes y prácticas discriminatorias, y sostener concretamente a quienes cargan aún con las consecuencias de agravios sufridos en el pasado.

  • What happens at runtime depends on whether the call suspends or not: If a suspension happens, then Swift will pause the function and all its callers, which has a small performance cost. These will then be resumed later, and ultimately whatever performance cost you pay for the suspension is like a rounding error compared to the performance gain provided by async/await even existing. If a suspension does not happen, no pause will take place and your function will continue to run with the same efficiency and timings as a synchronous function. That last part carries an important side effect: using await will not cause your code to wait for one runloop to go by before continuing.

esc
↑ ↓ navigate ↵ open