Lars Knudsen es un experto en desarrolladores de Google. Hablamos con él sobre cómo un dispositivo de USD 10 puede hacer que las computadoras sean más accesibles para las personas con discapacidades.

Monika: ¿Qué te inspiró a convertirte en desarrollador? ¿Cuál es tu enfoque profesional actual?
Lars: Obtuve mi maestría en ingeniería, pero en realidad mi interés por la tecnología comenzó mucho antes. Cuando era niño, en los años 80, mi padre era dueño de una empresa de computación que trabajaba con diseño gráfico. A veces, sobre todo durante las vacaciones de verano, me llevaba a trabajar con él. A veces, algunos de sus empleados me vigilaban. Había un tipo muy inteligente que una vez me dijo: “Lars, necesito hacer un trabajo, pero aquí hay un manual de C y una computadora allí. A continuación, se muestra cómo iniciar un compilador C. Si tienes alguna pregunta, ven y pregúntame”. Comencé a escribir textos cortos que se traducían a algo que la computadora podía entender. Me pareció mágico. Tenía 11 años cuando comencé y, alrededor del séptimo grado, pude crear pequeñas aplicaciones para mis compañeros de clase o para usar en la escuela. Así fue como empezó.
A lo largo de los años, trabajé para muchas empresas, como Nokia, Maersk y Openwave. Al principio, como en muchas otras profesiones, porque sabes un poco, sientes que puedes hacer todo, pero con el tiempo aprendes que cada empresa tiene una forma determinada de hacer las cosas.
Después de algunos años trabajando para una empresa médica, comencé mi propio negocio en 1999. Trabajé como contratista independiente y, gracias a eso, tuve la oportunidad de conocer varias organizaciones con rapidez. Después de completar los primeros cinco contratos, descubrí que cada empresa cree haber encontrado la configuración perfecta, pero todas son completamente diferentes. En ese momento, también estuve expuesto a muchas tecnologías, sistemas operativos, etc. diferentes. A principios de mis veinte años, mi mentalidad cambió. Al principio, me enfocaba estrictamente en una tecnología y quería aprender todo sobre ella. Con el tiempo, comencé a pensar en combinar tecnologías como una forma de mejorar nuestras vidas. Me interesa especialmente reducir la brecha entre lo que llamamos el equipo A y el equipo B en el mundo. Intento transferir la mayor cantidad de conocimiento posible a regiones donde las personas no tienen el lujo de tener una computadora o estudiar en la universidad sin costo.
Sigo trabajando como contratista para socios externos, pero siempre que es posible, trato de elegir proyectos que tengan algún tipo de impacto positivo en el medio ambiente o la sociedad. Actualmente, trabajo en software incorporado para una empresa de audífonos llamada Oticon. En cuanto al software, trabajé en todo, desde los microcontroladores más pequeños hasta la nube. Mucho de lo que hago gira en torno a la Web. Intento combinar tecnologías siempre que tenga sentido.
Monika: ¿Te involucraste en comunidades de desarrolladores antes de unirte al programa de Expertos de Google Developers?
Lars: Sí, participé en reuniones y conferencias. Me comuniqué con la comunidad por primera vez mientras trabajaba para Nokia. Alrededor de 2010, conocí a Kenneth Rohde Christiansen, quien se convirtió en GDE antes que yo. Me inspiró a ver cómo las tecnologías web pueden ser útiles para los aspirantes a profesionales de la tecnología en los países en desarrollo. Desarrollar e implementar soluciones con C++, C# o Java requiere algunos años de experiencia, pero cualquier persona que tenga acceso a una computadora, un navegador y un editor de texto puede comenzar a desarrollar aplicaciones basadas en la Web y aprender muy rápido. Es posible compilar una aplicación completamente funcional con recursos limitados y comenzar desde cero. Por eso, considero que la Web es una pila de tecnología muy democratizadora.
Pero volviendo a la comunidad, después de un tiempo, me interesé en la estandarización web y en qué problemas podrían resolver las tecnologías web de vanguardia. Experimenté con nuevas funciones en un navegador antes del lanzamiento. En ese momento, trabajaba para Nokia y desarrollaba para un dispositivo insignia basado en Linux, el N9. El navegador que creamos se basaba en WebKit y obtuve una gran experiencia desarrollando funciones para un gran proyecto de código abierto. En los años posteriores a mi salida de Nokia, me involucré en conferencias y reuniones web, por lo que fue lógico unirme a la comunidad de GDE en 2017.
Me encanta el trabajo en la comunidad y todo lo que hacemos juntos, en especial las Chrome Developer Summits anteriores a la pandemia, en las que pude ayudar con el puesto en el stand junto a un grupo de ingenieros de Google y otros GDEs increíbles.
Monika: ¿Qué consejo le darías a un desarrollador joven que recién comienza su carrera profesional y no está seguro de qué camino tomar?
Lars: Según mi experiencia, si puedes permitírtelo, considera trabajar como autónomo para un par de empresas diferentes. De esta manera, estarás expuesto al código en muchas formas y etapas de desarrollo diferentes. Conocerás una gran cantidad de sistemas operativos y lenguajes, y aprenderás a resolver problemas de muchas maneras. Esto me ayudó mucho. Gané experiencia como desarrollador sénior en mis veinte años. Este enfoque te ayudará a alcanzar tus objetivos profesionales más rápido.
Además, diviértete, explora y juega con el hardware y el software. Considera crear algo que resuelva un problema real, tal vez para tus amigos, tu familia o una empresa local. No tengas miedo de hacer algo que nunca antes hayas hecho.
Monika: ¿Cuál es el futuro de las tecnologías web?
Lars: Creo que, desde hace un par de años, la Web es totalmente capaz de proporcionar una plataforma para aplicaciones de campo grandes, tanto para el consumidor como para las empresas. En el lado del servidor, las tecnologías web ofrecen una experiencia fluida, especialmente para los desarrolladores de frontend que desean compilar un componente de backend. Ahora es más fácil para ellos comenzar. Conozco a personas que usaban Firebase y Heroku para hacer el trabajo. Y esta tendencia crecerá: las tecnologías web serán suficientes para crear soluciones complejas de cualquier tipo. Creo que las Funciones web: Project Fugu 🐡 realmente desbloquean ese potencial.
Si lo vemos desde un punto de vista ligeramente diferente, también creo que si proporcionamos documentación completa y artículos detallados no solo en inglés, sino también en otros idiomas (por ejemplo, español y portugués), liberaríamos mucho potencial en América Latina y, por supuesto, en otras regiones. A menudo, los desarrolladores no conocen el inglés lo suficiente como para comprender todos los artículos relevantes. También debemos darles la oportunidad de aprender lo antes posible, incluso antes de comenzar la universidad, mientras aún están en sus ciudades de origen. Pueden usar esas habilidades para ayudar a las comunidades y empresas locales antes de salir de casa y, tal vez, nunca regresar.
Thomas: Has recorrido un largo camino desde el desarrollo de C en una computadora aleatoria hasta el hackeo de hardware. ¿Cómo lo hiciste?
Lars: Comencé a desarmar muchos componentes de hardware que tenía en casa. Mi papá no siempre estaba contento cuando no podía volver a armarlo. Con el tiempo, aprendí a crear algunos dispositivos pequeños, pero realmente despegó mucho más tarde, cuando me uní a Nokia, donde obtuve mi experiencia en sistemas integrados. Tuve la oportunidad de crear protectores de pantalla pequeños y componentes para teléfonos de la serie 30. Me apasionaba y podía pensar de manera innovadora. Me asignaron la tarea de crear un juego de Snake para esos dispositivos. Fue una experiencia muy interesante. La principal diferencia entre la compilación de sistemas integrados y la mayoría de las otras cosas (incluida la Web) es que dejas un espacio reducido, ya que no tienes mucho espacio ni memoria para usar. Mientras compilaba Snake, la RAM que tenía disponible era menos de un tercio del búfer de trama (alrededor de 120 × 120 píxeles). Tuve que idear formas de volver a unir los componentes en pantalla de forma algorítmica para que se vieran estáticos, como si fueran tarjetas. Aprendí mucho, ese fue el paso de sistemas más grandes a soluciones pequeñas y en embedded.
Thomas: El conjunto de habilidades de un desarrollador de frontend típico es muy diferente del conjunto de habilidades de alguien que crea hardware incorporado. ¿Cómo le recomendarías a un desarrollador de frontend que analice el hardware y comience a pensar en formato binario?
Lars: Creo que el primer paso es observar algunas de las APIs de Fugu que funcionan en Chrome y Edge, y que están integradas en todos los sistemas principales en la actualidad. Eso es todo lo que necesitas al principio.
Otro aspecto es que las cadenas de herramientas para compilar soluciones incorporadas tienen una curva de aprendizaje pronunciada. Si quieres crear tu propio hardware personalizado, comienza con Arduino o ESP32, algo que sea fácil de comprar y bastante económico. Con el entorno de desarrollo adecuado, puedes poner tu proyecto en funcionamiento en poco tiempo.
También puedes comprar un monitor de frecuencia cardíaca o una unidad multisensor, que ya usan los servicios de GATT de Bluetooth, por lo que no tienes que crear tu propio hardware o firmware. Puedes usar lo que ya tienes y comenzar a experimentar con la API de Bluetooth Web para comunicarte con él.
También hay dispositivos que usan un protocolo serie. En estos casos, puedes usar la API de Web Serial (también Fugu). Recientemente, estuve investigando el uso de la API de WebHID, que te permite comunicarte con todos los dispositivos de interfaz humana a los que todos tienen acceso. Encontré algunos viejos en mi sótano que no eran compatibles con ningún sistema operativo desde hace años, pero gracias a la ingeniería inversa, me llevó unas horas volver a habilitarlos.
Existen diferentes enfoques según lo que quieras crear, pero a un desarrollador web le diría que obtenga una unidad de sensor sólida, tal vez un Thingy 52 de Nordic Semiconductor. Tiene muchos sensores y puedes conectarlo a tu aplicación web con muy poco esfuerzo.
Thomas: El primer paso es conectarse al dispositivo, pero hablar con él de manera eficaz es otra cosa. ¿Por qué no te rendiste después de enfrentar obstáculos? ¿Qué te mantuvo motivado para seguir trabajando?
Lars: Para mí, personalmente, el aspecto social de resolver un problema fue el más importante. Cuando comencé a trabajar en mis propios proyectos integrados, tenía una visión y un deseo de crear un laboratorio de ciencias en una caja para las regiones en desarrollo. Mi esposa es de México y vi algunas de las escuelas allí. Algunas que se encuentran fuera de las grandes ciudades están bastante deterioradas y no tienen acceso a los materiales y equipos que tenemos en nuestra parte del mundo.
La pasión por crear algo que pueda usarse para ayudar a los demás fue lo que me mantuvo en pie. También disfruté mucho de la asistencia de la comunidad. Me comuniqué con algunas personas de Google, y todas fueron muy útiles y respondieron con paciencia todas mis preguntas.
Thomas: Muchas personas tienen algún tipo de hardware en casa, pero no saben qué hacer con él. ¿Cómo encuentras inspiración para todos tus proyectos increíbles, en particular el que tiene el nombre en clave SimpleMouse?
Lars: Bueno, recientemente, en realidad, he estado reviviendo mucho hardware antiguo, pero para este proyecto en particular (aún no se estableció el nombre, pero llamemos a esto SimpleMouse), usé mi experiencia. Antes trabajé con algunas soluciones de accesibilidad y vi que algunas ya no funcionan. Para ejecutarlas, necesitas tener un Windows XP antiguo con cierto software instalado. No puedes actualizarlos, solo puedes usarlos en casa porque no puedes mover la configuración.
Por eso, me pregunté cómo combinar mis habilidades del mundo de la incorporación con el proyecto Fugu y lo que ahora es posible en la Web para crear hardware económico y asequible combinado con software fácil de entender en ambos lados, de modo que las personas puedan aprovecharlo.
Para ese proyecto en particular, tomé una pequeña llave USB con un chip reflexivo, el nRF52840. Se comunica con Bluetooth en un lado y USB en el otro. Básicamente, puedes programarlo para que sea cualquier cosa en ambos lados. Luego, pensé en los dispositivos que controlan una computadora: un mouse y un teclado. Algunas personas con discapacidades pueden tener dificultades para operar esos dispositivos, y quería ayudarlas.
Lo primero que hice fue asegurarme de que cualquier sistema operativo viera la llave USB como un mouse. Puedes controlarlo desde una aplicación nativa o web, directamente en Bluetooth. Después de eso, creé una aplicación web, una plantilla simple que las personas pueden extender como quieran con componentes web. Gracias a eso, todos pueden controlar su computadora con una app web que hice en solo un par de horas en un teléfono Android.
Con esa configuración, cualquier persona del mundo con algo de experiencia web podrá crear, en cuestión de días, una solución muy personalizada para cualquier persona con discapacidad que quiera controlar su computadora. Lo mejor es que puedes llevarlo a dondequiera que vayas y usarlo con otros dispositivos. Será exactamente la misma experiencia. Para mí, la portabilidad y la asequibilidad del dispositivo son muy importantes porque las personas ya no se limitan a usar sus propios dispositivos ni a una sola ubicación.
Thomas: ¿Tuviste la oportunidad de probar el dispositivo en la vida real?
Lars: En realidad, durante mi último viaje a México, lo analicé con un profesional de la Web que vive allí. Ahora está analizando las posibilidades de usar el dispositivo de forma local. Allí, el equipo es muy costoso, pero una llave USB suele costar alrededor de diez dólares estadounidenses. Ahora está verificando si podemos crear configuraciones locales allí para probarlo. Pero aún no he realizado pruebas oficiales aquí en Dinamarca.
Thomas: Muchos dispositivos diseñados para ayudar a las personas con discapacidades son muy costosos. ¿Planeas colaborar con alguna empresa en particular y ponerla en producción por una fracción del precio de ese equipo costoso?
Lars: Sí, definitivamente. Ya hablé con un fabricante de hardware local sobre eso. Por supuesto, el dispositivo no reemplazará todas esas soluciones altamente especializadas, pero puede ser el primer paso para crear algo más grande, por ejemplo, usar el reconocimiento de voz, que ya está disponible para las tecnologías web. Será una forma fácil de controlar dispositivos con tu teléfono Android. Puede funcionar con cualquier tipo de dispositivo.
El solo hecho de poder crear lo que quieras en la Web y usarlo para controlar cualquier computadora host abre muchas posibilidades.
Thomas: ¿Lanzarás tu proyecto de Zephyr como código abierto? ¿Qué tipo de licencia usas? ¿Hay planes para monetizar el proyecto?
Lars: Sí, la solución es de código abierto. No le puse una licencia específica, pero creo que Apache 2.0 sería la mejor opción. Muchas empresas importantes usan esta licencia, incluido Google. Cuando trabajé en SimpleMouse, no pensé en monetizar el proyecto, ese no era mi objetivo. Pero también creo que tendría sentido intentar ponerlo en producción de alguna manera, y con esto se genera un costo. El objetivo final es que esté disponible. Me encantaría ver que se implemente a bajo costo y a gran escala.