Hace años que tengo calls de trabajo diarias. En inglés. Para diferentes empresas, clientes, proyectos. Con diferentes participantes. Cada uno con acentos, tonos, micrófonos y pronunciaciones distintas. Es normal que al empezar a interactuar con alguien haya una etapa de integración pero hay veces que necesitas “hit the ground running” (aterrizar y salir corriendo? jajaja) y eso implica que no se puede dejar pasar ningún detalle, ninguna tarea que quede sin accionar (esto suena a google translate pero juro que soy yo quien escribe), pero ¿cómo lograr entender todo lo que se dice sin interrumpir constantemente para preguntar o confirmar lo que se dijo?
Si pudiera grabar las conversaciones, si pudiera confirmar lo que creo que entendí. De manera “global”, es decir, a veces en google meet, otras en zoom, otras en discord, etc. Pero para eso tendría que “meterme” en el sistema operativo y “escuchar” lo que se dice y lo que me dicen. Hasta hace unos meses, esto me escapaba o era algo que me iba a tomar más tiempo de lo que yo creía que la solución me iba a generar valor. Ambas equivocadas.
Claude code me ayudó a hacer la primera. Hay una manera de directamente “escuchar” todo el audio que viene del sistema (lo que dicen via web, discord, zoom y otros) y escuchar lo que se dice en el micrófono y capturar ambas fuentes - haciendo una diferencia entre ambas, así después se puede distinguir lo que dije de lo que me dijeron. Resulta que la primera parte es solo la grabación, después viene la transcripción, y hoy en día no es difícil (tampoco fácil, pero es posible en computadoras de casa, especialmente en macs con apple silicon), se puede descargar un modelo de AI localmente y que el modelo haga la transcripción (detalles capaz en otro blog post, o pregúntenle a cualquier LLM si están interesados). Ojo, la transcripción es solo el texto, sin referencia de quién dijo qué, para algo así se hace una “diarización” (aprendí el término hace poco) y esto marca referencias de tiempo y de diferentes participantes ([me], [speaker 1], [speaker 2], etc) y esto ya te da un texto con los detalles para confirmar y aclarar lo que se dijo.
En cuanto al valor que agrega, tendría que haber hecho esto antes, mucho antes, hoy no puedo imaginar trabajar sin esto. Por fin encontré un software que si dejara de existir me generaría malestar (la definición “más adecuada” de product market fit).
Importante: es tu responsabilidad avisar la intención de grabar conversaciones, el consentimiento depende de las personas, y legalmente de dónde están localizadas no de dónde estés tú.
Un nuevo proyecto llegó. El proyecto era parecido a algo que ya había hecho antes, por lo que ya sabía que iba a haber mucho “context switching” entre varios workstreams. Aprender cosas nuevas, estructurar ideas que me iban llegando de a poco (y a cualquier hora), y no perder el hilo entre todo eso.
Vengo usando AI para trabajo hace rato y me dió tres superpoderes: más output, mejor calidad, y menos tiempo. En números concretos: 8x en throughput, 15x en calidad, y timelines a 1/3. Entonces, ¿cómo aprovecho esto para un proyecto donde voy a estar saltando entre contextos todo el tiempo? ¿Cómo hago para que las ideas sueltas que tiro en cualquier momento no se pierdan y se conviertan en algo útil?
La respuesta: un asistente que me ayude a hacer todo esto.
El asistente
Vengo usando Claude Code (Anthropic) y armé un thread dedicado a esto. Nada de código. Solo “proyecto”: tareas, prioridades, integraciones, seguimiento, aprendizajes, conocimiento, documentación, el ¿qué es qué? y ¿quién es quién?.
Lo primero fue “conectar las cosas de todos los días”: email, calendario, y el board (cada quien escoge su sabor pero hay desde linear, trello, github projects, clickup, etc). Desde ahí me ayudó a armar la estructura del board, categorizar pensando en milestones (desde qué milestones tenían sentido), y encontrar por dónde empezar a moverme. Esa primera semana fue de puro setup y ya estaba rindiendo. Lo mejor, cada día aprendia algo nuevo, y mover cosas de aquí a allá no era insufrible, mi asistente lo hacía, y tenía contexto de donde estaban las cosas y porque las habíamos puesto donde las habíamos puesto.
Dos cosas pasaron: 1) me di cuenta de que esto era demasiado útil como para no compartirlo y 2) logré identificar el framework que estaba usando. Un proceso que define como trabajar desde un PoC hasta experimentación de GTM, con pasos claros en el medio. Ya es parte del template.
La cosa se puso mejor
Después del setup inicial empecé a agregar más integraciones. Resulta que podía hacer review de PRs y dejar comentarios inline directamente en GitHub. Conecté un MCP local de Excalidraw y empecé a dibujar cosas para explicarle a un agente qué quería y cómo. Y el agente las podía “ver”. Es otra cosa.
Cada integración nueva que agregás le da más contexto, y más contexto significa mejores respuestas, mejores sugerencias, mejor memoria de proyecto.
“What’s on my plate?”
Todos los días abro el thread y pregunto “what’s on my plate?” En segundos tengo un resumen consolidado: calendario (hoy y mañana), inbox, estado del board, PRs abiertos en GitHub, recordatorios pendientes. Todo en un solo lugar, sin abrir seis pestañas, sin perder veinte minutos armando el contexto del día en mi cabeza.
Pero lo que más me sirve no es eso. Es que puedo tirarle ideas desordenadas a cualquier hora (“recuerdame luego de esto”, “recuerdame de esto otro”, o “para esa idea que te dí, esto tmb viene bien”) y el asistente las toma, las “consolida”, las organiza donde van con lo que ya sabe del proyecto, y me da algo estructurado. Sin perder nada. Puedo pensar sin preocuparme por organizar mientras pienso. Puedo dejar mis ideas fluir, sin tener que organizarlas para documentarlas - alto win para cualqueir persona que multi-taskea naturalmente.
El template
Tengo varios de estos asistentes para distintos proyectos. Después de iterar el patrón, lo extraje en un template público: pm-co-pilot-template.
Es un repo de Git con archivos markdown que le dan contexto al asistente. El mismo template le da instrucciones al agente para hacer el setup inicial. Instrucciones para integraciones, estructura del board, convenciones, skills reutilizables (como hacer code review o postear comments en PRs), y el framework para ir de PoC a producción. Dos pasos (porque al hacerle la pregunta al agente va a leer las instrucciones y hacer setup):
Hace mucho tiempo que tengo ganas de jugar con r3f, es una librería (o colección de librerías) para crear ambientes virtuales 2D y/o 3D en el browser con React. También hace mucho que quiero hacer más software de entretenimiento (aka video juegos). Ahora que tengo un poco de tiempo en mis manos, decidí empezar a ver qué podría hacer.
Empecé por ver si podía simular un ambiente 3D con colisiones y una vista aerea que casi, casi hiciera ver el ambiente como 2D. Una vez que logré esto, quise ver si podía “escuchar” eventos del ambiente virtual y enseñar modales con HTML - esto es para lograr de manera efectiva unir el componente canvas que dibuja el ambiente, con controles en HTML y así “unir los dos mundos”. Lo logré de manera exitosa.
Tenía muchas ideas, muchas ganas de hacer cosas muy grandes, pero para empezar bien decidí hacer algo “corto, y al pie”: un laberinto.
Para esto tuve que buscar la manera de 1) definir una salida y definir un camino hacía la salida, 2) al azar posicionar paredes para hacer efectivamente un laberinto pero que las paredes no cerraran el camino hacía la salida. Una vez que logré estos dos, se me ocurrió “tapar” la vista, de tal manera que solo al moverse por el laberinto se puede “ver” las paredes y el camino recorrido.
Ya con esto, le sume una dinámica social al estilo wordle, donde se hace un “dibujo” de la solución, con el número de pasos que se tomaron para encontrar la salida. Esto para ayudar a hacer un tipo de competencia por ser quien llega a la salida en el menor número de pasos.
De aquí salió Maze, un juego que crea un laberinto diferente todos los días, donde al encontrar la salida puedes compartir tu solución en X.
The Hawthorne effect is a type of human behavior reactivity in which individuals modify an aspect of their behavior in response to their awareness of being observed. The effect was discovered in the context of research conducted at the Hawthorne Western Electric plant; however, some scholars think the descriptions are fictitious
Me encantó, es una pequeña sutileza, pero muy poderosa para usar en negociaciones, hablando con personas que están siendo difíciles (ex. un colega o subordinado con el cual no puedes conectar), entre otras - es más, ustedes los millones de lectores, déjenme sus potenciales ideas de situaciones para usar en los comentarios, y no dejen de suscibirse al canal 🤦.
En resumen corto: las personas modifican de manera reactiva inconscientemente su comportamiento cuando se dan cuenta que están siendo observados en tal comportamiento/acción. En uno de los estudios que encontré, decían que las personas que normalmente eran “over-achivers” al decirles que les estaban observando modificaban su comportamiento para asegurar entregar en lo esperado (es decir, bajaban su rendimiento) y por el contrario, las personas que normalmente eran “under-achivers” subían su rendimiento si sabían que los estaban observando.
El cuento corto es que cada tanto uso los speakers de la compu pero a veces necesito cambiar a los auriculares y viceversa. Antes, lo hacía con los system settings de audio escogiendo el output deseado. Para esto tenía que traer spotlight/alfred CMD + Spacebar y escribir sound (cuantas veces me equivoqué por escribir rápido con soud sólo para tener que borrar la d y escribir la n) y con el mouse escoger la salida que quería.
No más.
Ahora hago CMD + Shift + H para los auriculares y CMD + Shift + M para los speakers.
Script kit: que instala un programa para hacer muchas cosas, que por ahora yo uso para hacer keyboard shortcuts.
SwitchAudioSource es el programa que deja cambiar la salida de sonido desde la terminal y con Script kit puse los shortcuts para las dos acciones que contaba arriba.
Igual, como me gusta mucho de hacer alias tengo unos cuantos alias para usar SwitchAudioSource (porque quien va a escribir todo eso!):
alias shead="SwitchAudioSource -s \"External Headphones\""alias smac="SwitchAudioSource -s \"MacBook Pro Speakers\""alias sall="SwitchAudioSource -a"alias scur="SwitchAudioSource -c"
Y con eso, los scripts finales para Script kit quedaron en:
// Name: Shortcut to Headphones
// Shortcut: cmd shift h
import "@johnlindquist/kit"
await $`/bin/zsh -lic shead`
y
// Name: Shortcut to Speakers
// Shortcut: cmd shift m
import "@johnlindquist/kit"
await $`/bin/zsh -lic smac`
**If you could invest in a friend and get 10% of their income for life -- who would you pick?**
• Why would you invest in that person?
• What character traits do they have?
Now you have a list of character traits to adopt.
**If you could short a friend's earnings, who would you pick and why?**
Now you have a list of character traits to avoid.
Me encantó. La idea es que los humanos somos buenos para analizar los hábitos y errores de los demás pero no tanto para los propios. La manera que se propone incluso hace uso de un análisis objetivo pensando en conseguir un retorno al invertir en una persona para luego “girar” el pensamiento hacía darte cuenta que siempre pudiste ver lo que hacen bien y por eso invertirías - en lugar de invertir, adopta los buenos hábitos y en lugar de “shortear”, evita los malos hábitos.
A mi me pasa en un par de websites que cuando quiero pegar la contraseña parece ser que lo deshabilitaron, este snippet permite deshabilitar la deshabilitación - ja!