Destaques da comunidade do GDE: Lars Knudsen

Lars Knudsen é um especialista em desenvolvimento do Google. Conversamos com ele sobre como um dispositivo de US $10 pode tornar os computadores mais acessíveis para pessoas com deficiência.

Mônica Janota
Monika Janota

Lars se apresentando no palco com outros dois alto-falantes.

Monika: O que inspirou você a se tornar desenvolvedor? Qual é seu foco profissional atual?

Lars: Fiz mestrado em engenharia, mas meu interesse por tecnologia começou muito antes. Quando eu era criança, nos anos 80, meu pai tinha uma empresa de computação que trabalhava com design gráfico. Às vezes, especialmente nas férias de verão, ele me levava para trabalhar com ele. Às vezes, alguns dos funcionários dele ficavam de olho em mim. Tinha um cara muito inteligente que me disse: “Lars, eu preciso fazer algum trabalho, mas aqui está um manual de C com um computador ali. Veja como iniciar um compilador C. Se você tiver alguma dúvida, venha e pergunte". Comecei a escrever textos curtos que eram traduzidos para algo que o computador entendesse. Parecia mágico para mim. Eu tinha 11 anos quando comecei, e por volta do sétimo ano, consegui criar pequenos aplicativos para meus colegas de classe ou para serem usados na escola. Foi assim que tudo começou.

Ao longo dos anos, trabalhei para muitas empresas, incluindo Nokia, Maersk e Openwave. No início, como em muitas outras profissões, porque você sabe um pouco, sente que pode fazer tudo, mas com o tempo você aprende que cada empresa tem um jeito específico de fazer as coisas.

Depois de alguns anos trabalhando para uma empresa médica, comecei meu próprio negócio em 1999. Trabalhei como freelancer e, graças a isso, tive a chance de conhecer várias organizações rapidamente. Depois de concluir os primeiros cinco contratos, descobri que todas as empresas acreditam ter encontrado a configuração perfeita, mas todos são completamente diferentes. Naquela época, também tive contato com muitas tecnologias diferentes, sistemas operacionais etc. Por volta dos 20 anos, minha mentalidade mudou. No começo, eu estava focado apenas em uma tecnologia e queria aprender tudo sobre ela. Com o tempo, comecei a pensar em combinar tecnologias como uma forma de melhorar nossas vidas. Tenho um interesse particular em diminuir a distância entre o que chamamos de equipe A e a equipe B no mundo. Eu tento transferir o máximo de conhecimento possível para regiões onde as pessoas não podem se dar ao luxo de ter um computador ou estudar na universidade sem custo financeiro.

Continuo a trabalhar como prestadora de serviços para parceiros externos, mas sempre que possível, tento escolher projetos que tenham algum tipo de impacto positivo no meio ambiente ou na sociedade. Atualmente, estou trabalhando em um software incorporado para uma empresa de aparelhos auditivos chamada Oticon. Em termos de software, tenho trabalhado em tudo, desde os menores microcontroladores até a nuvem. Muito do que faço gira em torno da Web. Estou tentando combinar tecnologias sempre que faz sentido.

Monika: Você fazia parte de comunidades de desenvolvedores antes de entrar no programa Especialistas do Google Developers?

Lars: Sim, participei de encontros e conferências. Primeiro me conectei com a comunidade enquanto trabalhava para a Nokia. Por volta de 2010, conheci Kenneth Rohde Christiansen, que se tornou GDE antes de mim. Ele me inspirou a ver como as tecnologias da Web podem ser úteis para aspirantes a profissionais de tecnologia em países em desenvolvimento. Desenvolver e implantar soluções usando C++, C# ou Java requer alguns anos de experiência, mas todos que têm acesso a um computador, navegador e bloco de notas podem começar a desenvolver aplicativos baseados na Web e aprender muito rápido. É possível criar um aplicativo totalmente funcional com recursos limitados e começar do zero. É por isso que chamo a Web de uma pilha de tecnologia muito democratizada.

Mas, voltando à comunidade, depois de um tempo fiquei interessado na padronização da Web e em quais problemas que as tecnologias da Web de borda poderiam resolver. Testei novos recursos em um navegador antes do lançamento. Eu estava trabalhando para a Nokia na época, desenvolvendo para um dispositivo principal baseado em Linux, o N9. O navegador que criamos era baseado no WebKit e tive uma ótima experiência no desenvolvimento de recursos para um grande projeto de código aberto. Alguns anos depois de sair da Nokia, participei de conferências e encontros na Web, então fez sentido participar da comunidade do GDE em 2017.

Gosto muito do trabalho da comunidade e de tudo o que estamos fazendo juntos, especialmente as Conferências de Desenvolvedores do Chrome pré-pandemia, onde tive a ajuda de estandes, junto com vários engenheiros do Google e outros GDEs.

Monika: Qual conselho você daria a uma jovem desenvolvedora que está começando a carreira profissional e não tem certeza de qual caminho seguir?

Lars: Eu diria por minha própria experiência, se você puder arcar com isso, considere ser freelancer para algumas empresas diferentes. Dessa forma, você será exposto ao código em muitas formas e estágios diferentes de desenvolvimento. Você conhecerá diversos sistemas operacionais e linguagens e aprenderá a resolver problemas de várias maneiras. Isso me ajudou muito a ganhar experiência como desenvolvedor sênior aos 20 anos. Essa abordagem vai ajudar você a alcançar seus objetivos profissionais mais rapidamente.

Além disso, divirta-se, explore e brinque com o hardware e o software. Considere criar algo que resolva um problema real, talvez para seus amigos, familiares ou uma empresa local. Não tenha medo de pular em algo que você nunca fez antes.

Monika: O que o futuro reserva para as tecnologias da Web?

Lars: Acredito que, há alguns anos, a Web é totalmente capaz de oferecer uma plataforma para aplicativos de campo amplos, tanto para consumidores quanto para empresas. No lado do servidor, as tecnologias da Web oferecem uma experiência perfeita, especialmente para desenvolvedores front-end que desejam criar um componente de back-end. Agora ficou mais fácil começar. Conheço pessoas que usam o Firebase e o Heroku para fazer o trabalho. E essa tendência vai crescer, e as tecnologias da Web serão suficientes para criar soluções complexas de qualquer tipo. Acredito que os Recursos da Web – Projeto Fugu 🐡 realmente liberam esse potencial.

Analisando de uma perspectiva um pouco diferente, também acho que se fornecermos documentação completa e artigos detalhados não apenas em inglês, mas também em outros idiomas (por exemplo, espanhol e português), abriríamos muito potencial na América Latina e em outras regiões, é claro. Os desenvolvedores geralmente não conhecem bem o inglês o suficiente para entender todos os artigos relevantes. Também devemos dar a eles a oportunidade de aprender o mais cedo possível, mesmo antes de começarem a universidade, ainda em suas cidades natal. Eles podem usar essas habilidades para ajudar comunidades e empresas locais antes de sair de casa e talvez nunca mais voltem.

Thomas: você passou um longo caminho desde o desenvolvimento em C em um computador aleatório até a invasão de hardware. Como você fez isso?

Lars: Comecei a desmontar muito hardware que tinha em casa. Meu pai nem sempre ficava feliz quando eu não conseguia montá-la. Com o tempo, aprendi a criar alguns dispositivos pequenos, mas isso realmente decolou muito mais tarde, quando entrei para a Nokia, onde adquiri minha experiência com incorporação. Tive a oportunidade de criar pequenos protetores de tela, componentes para os smartphones Series 30. Eu gostava muito dele e conseguia pensar fora da caixa. Me atribuíram a tarefa de criar um jogo da cobra para esses dispositivos. Foi uma experiência muito interessante. A principal diferença entre a criação de sistemas incorporados e a maioria das outras coisas (incluindo web) é que você deixa um rastro pequeno, não tem muito espaço ou memória para usar. Durante a criação do Snake, a RAM que eu tinha disponível era menos de um terço do buffer de frame (cerca de 120 x 120 pixels). Tive que encontrar maneiras de reintegrar componentes na tela usando algoritmos para que eles parecessem estáticos, como se fossem blocos. Aprendi muito, essa foi a mudança de sistemas maiores para soluções pequenas e incorporadas.

Thomas: O conjunto de habilidades de um desenvolvedor de front-end típico é muito diferente do conjunto de habilidades de alguém que cria hardware incorporado. Como você incentivaria um desenvolvedor de front-end a analisar o hardware e pensar em código binário?

Lars: Acho que a primeira etapa é analisar algumas das APIs do Fugu que funcionam no Chrome e no Edge e estão integradas aos principais sistemas atuais. Isso é tudo de que você precisa no início.

Outra coisa é que os conjuntos de ferramentas para criar soluções incorporadas têm uma curva de aprendizado íngreme. Se você quiser criar seu próprio hardware personalizado, comece com o Arduino ou o ESP32, algo fácil de comprar e bem barato. Com o ambiente de desenvolvimento certo, seu projeto pode começar a funcionar rapidamente.

Você também pode comprar um monitor de frequência cardíaca ou uma unidade multissensor, que já usam os serviços Bluetooth GATT para não precisar construir seu próprio hardware ou firmware. Você pode usar esses recursos e começar a testar a API Web Bluetooth para começar a se comunicar com eles.

Há também dispositivos que usam um protocolo serial. Para eles, é possível usar a API Web Serial (também Fugu). Recentemente, estou analisando a possibilidade de usar a API WebHID, que permite que você se comunique com todos os dispositivos de interface humana aos quais todos têm acesso. Encontrei alguns antigos no meu porão que não eram compatíveis com nenhum sistema operacional há anos, mas, graças à engenharia reversa, levei algumas horas para reativá-los.

Existem abordagens diferentes dependendo do que você quer criar, mas, para um desenvolvedor web, eu diria que é preciso ter uma unidade de sensor sólida, talvez um Thingy 52 da Nordic Semiductor; ele tem muitos sensores e você pode conectá-lo ao seu aplicativo da Web com muito pouco esforço.

Thomas: Conectar-se ao dispositivo é o primeiro passo, mas, depois, falar com ele de forma eficaz, é outra coisa. Por que você não desistiu depois de enfrentar obstáculos? O que manteve você motivado para continuar trabalhando?

Lars: Para mim, pessoalmente, o aspecto social da solução de um problema foi o mais importante. Quando comecei a trabalhar nos meus próprios projetos incorporados, tinha uma visão e um desejo de criar um laboratório de ciências pronto para desenvolver regiões. Minha esposa é do México e eu vi algumas escolas lá. Algumas que estão fora das grandes cidades são bem defasadas, sem acesso aos materiais e equipamentos que temos na nossa parte do mundo.

A paixão por criar algo que possa ser usado para ajudar outras pessoas, é o que me motiva a continuar. Também gostei muito do apoio da comunidade. Entrei em contato com algumas pessoas do Google, e todas elas foram extremamente úteis e responderam a todas as minhas perguntas com paciência.

Thomas: Muitas pessoas têm algum tipo de hardware em casa, mas não sabem o que fazer com ele. Como você pode se inspirar para seus projetos incríveis, especialmente o que usa o nome de trabalho SimpleMouse?

Lars: Recentemente, restaurei vários hardwares antigos. No entanto, para este projeto em particular, o nome ainda não foi definido, mas vamos chamá-lo de SimpleMouse, eu usei minha experiência. Já trabalhei com algumas soluções de acessibilidade e vi como algumas delas simplesmente não funcionam mais. Você precisaria ter um Windows XP antigo com determinado software instalado para executá-las. Não é possível atualizar esses dados, só podem ser usados em casa, porque não é possível mover a configuração.

Por isso, me perguntei como combinar minhas habilidades do mundo incorporado com o projeto Fugu e o que agora é possível na Web para criar hardware barato e acessível, combinado com software fácil de entender em ambos os lados, para que as pessoas possam desenvolver isso.

Para esse projeto específico, peguei um pequeno dongle USB com um chip reflexivo, o nRF52840. Ele se comunica por Bluetooth em um lado e USB do outro. Basicamente, é possível programá-lo para ser qualquer coisa em ambos os lados. Depois, pensei nos dispositivos que controlam um computador: um mouse e um teclado. Para algumas pessoas com deficiência, pode ser difícil operar esses dispositivos, e eu queria ajudá-las.

A primeira coisa que fiz foi me certificar de que qualquer sistema operacional veria o dongle USB como um mouse. Ele pode ser controlado de um aplicativo nativo ou da Web diretamente no Bluetooth. Depois disso, desenvolvi um aplicativo da web, um modelo simples que as pessoas podem estender da maneira que quiserem usando componentes da web. Graças a isso, todo mundo pode controlar o computador com um app da Web que criei em apenas algumas horas em um smartphone Android.

Com essa configuração, qualquer pessoa no mundo com alguma experiência na Web poderá criar, em questão de dias, uma solução muito personalizada para qualquer pessoa com deficiência que queira controlar seu computador. O legal é que você pode levá-lo com você para qualquer lugar e usar com outros dispositivos também. A experiência será a mesma. Para mim, a portabilidade e a viabilidade do dispositivo são muito importantes porque as pessoas não estão mais restritas ao uso dos próprios dispositivos e não estão mais limitadas a um local.

Thomas: Você teve a chance de testar o dispositivo na vida real?

Lars: Na minha última viagem ao México, conversei com um profissional da Web que mora lá. Ele agora está analisando as possibilidades de uso local do dispositivo. O equipamento é bem caro, mas um dongle USB normalmente custa cerca de dez dólares. Agora, ele está verificando se podemos criar instalações locais para testá-lo. Mas ainda não fiz testes oficiais aqui na Dinamarca.

Thomas:Muitos dispositivos projetados para ajudar pessoas com deficiências são muito caros. Você está planejando cooperar com alguma empresa específica e colocá-la em produção por uma fração do preço desse equipamento caro?

Lars: Sim, com certeza! Já conversei com um fabricante de hardware local sobre isso. É claro que o dispositivo não vai substituir todas as soluções altamente especializadas, mas pode ser o primeiro passo para criar algo maior, como o uso de reconhecimento de voz, que já está disponível para tecnologias da Web. Essa é uma maneira fácil de controlar dispositivos usando seu smartphone Android e pode funcionar com qualquer tipo de dispositivo.

Só ser capaz de criar o que quiser na web e usá-lo para controlar qualquer computador host abre muitas possibilidades.

Thomas: você está lançando seu projeto Zephyr como código aberto? Que tipo de licença você usa? Há planos de monetizar o projeto?

Lars: sim, a solução é de código aberto. Não inseri uma licença específica, mas acho que a Apache 2.0 seria a solução ideal. Muitas grandes empresas usam essa licença, inclusive o Google. Quando trabalhei no SimpleMouse, não pensava em monetizar o projeto, esse não era meu objetivo. Mas também acho que faria sentido tentar colocá-lo em produção de alguma forma, e isso custa caro. O objetivo final é disponibilizá-lo. Adoraria ver a implementação com baixo custo e em grande escala.