Entrevista com Miro Samek da Quantum Leaps - Embarcados
Trabalho como um empreendedor
Essa é uma entrevista com Miro Samek, Ph.D. em física nuclear experimental, engenheiro de embarcados com anos de experiência na área de software de segurança crítica, tecnologias GPS, e a mente por trás da Quantum Leaps, onde mantém o framework QP, e as ferramentas de modelagem QM e QTools, utilizando uma abordagem alternativa às arquiteturas e técnicas clássicas de RTOS, com foco em event-driven e máquinas de estado.
Também é popularmente conhecido pela excelente séries de vídeos instrutivos no YouTube, onde tenta solidificar o currículo da prática de softwares embarcados. Além disso, tem dezenas de artigos e colunas em revistas especializadas em software embarcado, sendo autor do livro "Book: Practical UML Statecharts in C/C++", lançado em 2008 pela Newnes.
Nessa entrevista, geramos um perfil empreendedor do Dr. Samek, e ganhamos dicas valiosas tanto para a prática de engenharia de software embarcado quanto para a vida profissional.
Leonardo: O que é a Quantum Leaps?
Dr. Samek: Quantum Leaps é uma companhia de software embarcado com a missão de trazer "saltos quânticos" [tradução literal e usual de 'quantum leaps'] na qualidade e produtividade de programação de sistemas embarcados. Os produtos carro-chefe são: o Framework Embarcado de Tempo Real [RTEF – Real-Time Embedded Framework] QP, a ferramenta de Design baseado em Modelo [Model-Based Design] QM e a coleção de ferramentas QTools. Esses produtos singulares permitem que engenheiros de software utilizem uma arquitetura de software moderna e reativa, máquinas de estado hierárquicas, design baseado em modelo e autogeração de código em sistemas embarcados pequenos, como em microcontroladores ARM Cortex-M.
Leonardo: Quantos anos você tinha quando começou a Quantum Leaps?
Dr. Samek: 40.
Leonardo: Qual era sua experiência prévia com esse tipo de empreendimento?
Dr. Samek: Antes de fundar a Quantum Leaps, eu tinha 15-20 anos de experiência na área de desenvolvimento de software embarcado, se você contar minha pesquisa de Ph.D. Depois do meu Ph.D. na área de física nuclear experimental na Alemanha, eu trabalhei em software embarcado de segurança crítica na GE Medical Systems no Wisconsin (3 anos). Depois eu me mudei para o Vale do Silício, onde trabalhei para duas startups especializadas em tecnologia de GPS (8 anos).
Leonardo: Eu observei a seção de educação no seu perfil do LinkedIn, e é de fato impressionante. Você acha que educação formal foi essencial para a sua vida como empreendedor?
Dr. Samek: Eu acho que física é um bom ponto de partida para qualquer carreira técnica. O ritmo de mudança hoje em dia é tal que, na faculdade, simplesmente não se consegue saber o que será necessário 10, 20 anos depois. Mas física te proporciona um conhecimento extremamente profundo dos fundamentos, o que depois é possível aplicar a qualquer campo técnico. Por exemplo, na minha carreira eu tive que aprender profundamente GPS, que é um sistema complexo. Um conhecimento sólido em física me ajudou o tempo todo.
Quanto à diplomação, eu não tenho tanta certeza se é necessário obter um diploma até o nível de Ph.D., mas um diploma avançado abre muitas portas e oportunidades de carreira. [Ter o Ph.D.] com certeza me ajudou nesse aspecto.
Leonardo: Você acredita que todos são capazes de criar e administrar um negócio?
Dr. Samek: Eu posso apenas falar sobre o empreendimento de software embarcado, que para mim é um ofício. Consequentemente, começar um negócio nessa área para mim é muito parecido com um mestre de um ofício começar seu negócio. Meu ponto principal é que começar um empreendimento é a culminação de uma carreira, não o começo dela. É um destino com uma longa jornada, de aprendiz, para "viajante" até se tornar um mestre com seu próprio "estilo" único. Nesse sentido, eu não acho que todos tem o que é necessário para concluir tal jornada. Mas se você tem o entusiasmo, a paciência, e você finalmente encontrou seu próprio "estilo", com certeza, comece seu empreendimento!
Leonardo: Qual era seu sonho quando criou a Quantum Leaps?
Dr. Samek: O sonho na realidade não era começar um negócio. O sonho era escrever software de melhor qualidade e se divertir enquanto fazia.
Leonardo: O lucro é uma prioridade? O que você acha da mentalidade "venda rápido, fique rico" que algumas startups aparentam ter?
Dr. Samek: Lucro é uma consideração importante para qualquer negócio, não tanto "ficar rico rápido", mas apenas para *sobreviver*. No meu caso, eu tinha um produto de software funcional, e tinha publicado um livro sobre, escrevi artigos, palestrei em conferências. Mas eu não tinha ideia de como fazer dinheiro disso, então eu não consegui começar um negócio. [O negócio começou] apenas depois de eu descobrir o modelo de licença dupla. (Especificamente, o modelo de negócios chamado de "código aberto comercial de fornecedor único"). Então, para qualquer pessoa técnica que sonha em ser seu próprio patrão, eu aconselharia em prestar atenção aos modelos de negócios e aos vários tipos de licenciamento de Propriedade Intelectual. Para um empreendimento de sucesso e estável, esses ingredientes são tão importantes quanto os produtos ou serviços.
Leonardo: Qual era originalmente a ideia para a Quantum Leaps e como começou?
Dr. Samek: Antes da Quantum Leaps eu tinha ideia vaga de que o software embarcado que eu mantinha podia ser estruturado de maneira mais elegante. O marco pra mim foi o livro "Real-Time Object-Oriented Modeling (ROOM)" [Modelagem Orientada a Objetos em Tempo Real], que eu li na metade dos anos 90. Eu li e reli o livro diversas vezes e descobri que *todo* software embarcado em tempo real pode e deveria ser criado daquela forma. Então meu primeiro objetivo se tornou aplicar [a metodologia ROOM] no *meu* próprio software. Por várias razões, eu não pude usar o grande framework de modelagem ROOM, então fui forçado em utilizar o método manualmente, destilando sua essência. Eu acabei criando com uma versão bem enxuta da "ROOM Virtual Machine", que era a camada de software que cobria a lacuna entre conceitos de alto nível como "ROOM actors" ou "ROOM state machines" e a linguagem de programação C. Essa camada de software depois evoluiu no QP Real-Time Embedded Frameworks. Eu criei ele realizando que tal framework poderia ser útil em vários em vários projetos de embarcados e poderia tanto totalmente substituir, ou funcionar em cima de um RTOS (Sistema Operacional em Tempo Real) tradicional.
Essa é a talvez o aspecto mais importante da história da Quantum Leaps. O produto carro-chefe da companhia foi criado e passou por incontáveis iterações por um longo tempo antes do empreendimento começar. Apenas depois de ver que o framework funcionava (perfeitamente) dentro de um receptor GPS – um desafio bem difícil num ambiente em tempo real – eu tive a audácia de começar um negócio ao redor dele. Eu considero esse trabalho a minha "obra-prima" que me permitiu criar meu próprio negócio.
Leonardo: A sua série no YouTube mostra que você também tem talento para ensinar. Já pensou em mudar de área de atuação?
Dr. Samek: Ensinar faz parte de ser um "mestre" na sua área. Os Mestres sempre pegam aprendizes para ensinar suas habilidades. Nesse sentido, ensinar não é uma mudança de área de negócio. É uma parte integral do negócio.
Além disso, no campo de software embarcado, eu percebi que não existe currículo estabelecido, pois a nossa disciplina cai pelos vãos em algum lugar entre EE (Engenharia Elétrica) e CCO (Ciências da Computação). Consequentemente, engenheiros de software embarcados profissionais não possuem um entendimento comum e terminologia. Quase todo termo que usamos significa coisas diferentes para diferentes pessoas. O curso "Modern Embedded Systems Programming" no Youtube é minha resposta a essa necessidade de estabelecer um currículo e a terminologia da nossa disciplina.
Leonardo: Qual o diferencial da QL?
Dr. Samek: A Quantum Leaps oferece produtos únicos e um paradigma diferente da abordagem atual. Isso pode não acomodar todos os times [de developers], mas oferece uma escolha para times com mente aberta, que querem levar seu desenvolvimento de software ao próximo nível.
Leonardo: Quais foram as dificuldades que você enfrentou com a QL e como você conseguiu ultrapassá-las?
Dr. Samek: Uma jornada de 15-20 anos inevitavelmente acaba encontrando alguns obstáculos. Mas eu me considero sortudo que (1) eu descobri meu objetivo relativamente cedo e (2) nenhum outro negócio fez melhor à frente da Quantum Leaps.
Uma vez que eu tive o objetivo de reduzir o "método ROOM" para pequenos, microcontroladores profundamente embarcados, eu pude configurar todas as outras decisões ao redor disto. Então, por exemplo, depois de deixar a GE, eu meticulosamente decidi meu próximo emprego ser um lugar onde se estava acabando de começar um projeto conveniente, ao invés de manter um produto já existente. Eu estava especificamente procurando por uma "bancada de testes" para minhas ideias. Isso não era necessariamente o emprego que melhor pagava, mas era um bom lugar e um bom time para fazer exatamente o que eu precisava.
Falando de dificuldades, a parte mais difícil foi manter fazendo [a QL] depois do meu "day job" [termo usado para definir o trabalho comum e normal, geralmente realizado durante o dia]. Então, ao invés de voltar para minha família, eu passei longas tardes e finais de semana, depois que todos já haviam saído, para testar, iterar e refinar meu framework. Então tive que comutar e trocar a versão anterior no projeto funcional. Depois disso eu apliquei a mesma estratégia de esforço extra para escrever meu primeiro livro ("Practical Statecharts in C/C++") sobre esse framework.
Mas é assim que as coisas são. Eu acredito que no final apenas o esforço extra, além do seu "day job" é o que coloca você à frente.
Leonardo: Você já pensou em desistir? Se sim, porquê?
Dr. Samek: Claro, eu tive pensamentos ocasionais sobre desistir. Mas aí, eu não queria continuar escrevendo o "código espaguete" [termo utilizado para código extremamente mal organizado e escrito] e continuar correndo atrás de race conditions num design baseado em RTOS tradicional pelo resto da minha carreira. Uma vez que você experimenta uma maneira melhor de fazer o seu trabalho, é muito difícil voltar atrás. Então, eu percebi que eu realmente não tinha alternativas.
Leonardo: Se sente feliz com o trabalho que realiza? Valeu a pena?
Dr. Samek: Sim. Tudo isso valeu a pena. Definitivamente.
Leonardo: Teve algum suporte de mentores ou família?
Dr. Samek: Sim, eu fui sortudo o suficiente para ter suporte da minha família e da comunidade local do Vale [do Silício]. Eu fiquei muito positivamente surpreso em como alguns dos CEOs com mais experiência estavam dispostos a atender minhas ligações e responder minhas perguntas de iniciante sobre como começar um negócio. Eu acho que isso é extremamente especial no Vale do Silício.
Leonardo: Como você vendeu a ideia? Teve alguma carência no Mercado que você viu e preencheu?
Dr. Samek: Na realidade, eu fiz um péssimo trabalho em vender as minhas ideias (por lucro). Eu tinha acabado de publicar um livro e um código com uma licença um pouco profissional. Um dia, uma grande companhia me chamou e pediu sobre a possibilidade de licenciar o software "apropriadamente" para um projeto de código-fonte fechado. Apenas aí eu entendi que alguns negócios estavam prontamente dispostos a pagar por licenças comerciais. Esse foi o começo do modelo de "dupla-licença".
Leonardo: Como escolher um time? Quais são algumas das dificuldades que encontrou trabalhando com pessoas?
Dr. Samek: Como a maioria dos empreendedores, eu tinha medo de "ir sozinho" e meu primeiro instinto foi procurar por parceiros, e assim fiz. Mas isso complicou tantas coisas logo no começo quando você não sabe sobre avaliação [financeira], as ações da companhia, a alocação de ações, o "modelo de negócios" etc. Eventualmente, eu decidi começar sozinho e isso fez a minha vida muito mais simples.
Depois, eu encontrei mais pessoas que pensavam da mesma maneira, a maioria por conferências, e amigos em comum. Mas eu não construí um time tradicional. Ao invés, o "time" largamente constituía de consultores independentes que ofereciam treinamento para a Quantum Leaps, por exemplo, ou ajudar companhias em projetos baseados no software da Quantum Leaps.
Eu ainda faço a maioria do desenvolvimento de software embarcado, porque eu acredito que essa é a única maneira de alcançar e manter a alta *integridade conceitual* do software. Boa arquitetura de software deve ser o produto de uma mente, e programação embarcada é talvez a última disciplina de software onde isso ainda é possível.
No final, o modelo de negócios da Quantum Leaps é apenas possível devido à internet. A pandemia recente mostrou que times remotos e desacoplados acabam sendo mais flexíveis, mais produtivos e mais resilientes que empregados "tradicionais". Parece que mais e mais negócios irão migrar para esse estilo de trabalho.
Leonardo: Onde vê a Quantum Leaps nos próximos 10 anos? Existem alguns planos estabelecidos?
Dr. Samek: Eu espero que dentro da próxima década nós finalmente veremos uma "massa crítica" de adotantes da nossa maneira moderna de construir software embarcado. Isso requer uma mudança de paradigma da abordagem RTOS-cêntrico atualmente dominante para novos design patterns baseados em eventos, componentes autônomos chamados "objetos ativos" ou "atores". Também, precisamos mover para um nível maior de abstração e [para] as abstrações *certas*, como máquinas de estado finito hierárquicas, para aplicar modelagem e geração automática de código. Isso é exatamente o que a Quantum Leaps é sobre.
Leonardo: Você fez alguma pesquisa antes de começar a Quantum Leaps?
Dr. Samek: Se você quer dizer uma pesquisa de mercado formal, então não, não fiz. Mas eu *sabia* o valor do software, pois eu usei num produto real (um receptor GPS complexo, nesse ponto).
Leonardo: Como você procura inovação? Inovação é necessária para ficar no mercado atual?
Dr. Samek: Sim, claro, você precisa inovar para ficar relevante. No caso da Quantum Leaps, as principais ideias para inovação vêm de ouvir com atenção os engenheiros que usam o software numa variedade gigante de projetos. Esse é um dos principais benefícios de ter os dois, a comunidade open source e os clientes comerciais.
Ouvindo com "atenção", eu não refiro a aceitar todos os pedidos de features como eles são apresentados. Mas sim, eu quero dizer tentar entender as necessidades reais e os problemas subjacentes que os usuários do software enfrentam. A real solução é às vezes muito diferente do que um cliente originalmente sugeriu. Tudo isso realmente volta a manter uma alta integridade conceitual do software.
Leonardo: Qual a maior qualidade e maior defeito na QL?
Dr. Samek: Eu acredito que a maior qualidade da Quantum Leaps é a alta integridade conceitual do software.
Times maiores que constantemente trocam de developers simplesmente não podem criar isso.
O maior defeito é a velocidade baixa na qual alguns pedidos podem ser implementados. Por exemplo, em programação embarcada clientes constantemente pedem por novas adaptações de software [do inglês, ports] do software da Quantum Leaps para novos tipos de processadores, sistemas operacionais em tempo-real e outros tipos de software de terceiros. Times maiores poderiam obviamente lidar com tal carga de trabalho mais rápido.
Leonardo: Quanto tempo demorou para obter uma situação financeira positiva?
Dr. Samek: A Quantum Leaps foi lucrativa desde o começo e nunca teve que tomar dívidas ou financiamento externo. Isso é porque a companhia já começou com um produto existente e funcionando.
Leonardo: Como você inicialmente financiou a QL? Você procurou por algum investidor privado ou firmas como a Y-Combinator?
Dr. Samek: Não. Emprestar dinheiro dos outros limita a sua liberdade do que pode ou não fazer com o seu negócio. Isso era incompatível com meu objetivo inicial de ser verdadeiramente independente.
Leonardo: Observando de fora, bons negócios parecem nunca falhar. Você já falhou em algum negócio?
Dr. Samek: Ainda não. A companhia existe desde 2015 e sobreviveu à desaceleração de mercados, como a "grande recessão" de 2008-9. A empresa é flexível e tem custos fixos notavelmente baixos.
Leonardo: Qual a maior ameaça para negócios como a QL?
Dr. Samek: A Quantum Leaps existe devido a outros negócios licenciarem nosso software comercialmente. A maior ameaça a isso é o desprezo difundido por direitos de propriedade intelectual (pirataria de software). Infelizmente, a terceirização de desenvolvimento de software embarcado frequentemente leva a uma atitude "relaxada" à infringimento de licença. Isso é realmente lamentável, pois todo mundo perde quando isso acontece.
Leonardo: Companhias de software devem pensar em sustentabilidade ecológica?
Dr. Samek: Esse é um dos principais problemas do nosso tempo. Software embarcado sem dúvida irá ter um grande papel em todos os aspectos, desde produtos eletrônicos para reduzir emissões até possibilitar práticas sustentáveis (por exemplo, agricultura robótica com muito menos produtos químicos). Em todos esses aspectos o software da Quantum Leaps pode ser útil. Também, o framework QP é ideal para designs com baixo consumo.
Leonardo: Como você vê software de código aberto [open source] e SaaS [Software as a Service, Software como um Serviço] como parte da economia compartilhada?
Dr. Samek: A Quantum Leaps foi construída em código aberto, e eu acredito que a importância de software aberto só irá crescer em sistemas embarcados. Mas para ter valor, qualquer tipo de software precisa ser ativamente mantido, melhorado e suportado.
Com tanto software disponível na internet, alguns desenvolvedores podem pensar que eles querem software completamente "grátis" [do termo de domínio específico free software, como definido pela FSF, por exemplo], mas eles realmente não querem. Por exemplo, depois da recente corrida de aquisições de vendedores de RTOS, vemos vários dos anteriormente caros softwares comerciais disponíveis no GitHub de "graça", sob licenças de código aberto permissivas. Mas o software é efetivamente abandonado e não mais mantido ou suportado. Eu não acho que muitas companhias de software gostariam de basear seus produtos em tal software mais.
Leonardo: Em retrospectiva, o que você gostaria de ter conhecimento sobre quando inicialmente começou?
Dr. Samek: Eu gostaria de ter tido mais conhecimento sobre licenciamento de propriedade intelectual, pois isso me permitiria começar a Quantum Leaps alguns anos antes. Eu também gostaria de conhecer mais sobre a internet e prestar mais atenção à disciplina hoje conhecida como SEO (search engine optimization [otimização de ferramenta de busca]). Por isso eu não quero dizer apenas ter um site bonito, mas de ter feito um design todo pedaço de informação, documentação, artigos e vídeos para facilitar a busca. Para isso, você precisa pensar ao contrário, começando de você você gostaria que sua informação fosse encontrada e só então retirar o conteúdo que corresponde exatamente com aquele critério de busca.
Leonardo: Teria feito algo diferente?
Dr. Samek: Claro que se eu tivesse lançado a Quantum Leaps agora, seria diferente. Mas eu acho que as decisões mais importantes foram tomadas largamente corretas *naquele tempo*.
Leonardo: Alguma dica para estudantes de engenharia que querem seguir alguns de seus passos?
Dr. Samek: É realmente difícil dar um conselho universal, porque todos precisam encontrar o que *eles* querem. Na realidade, essa é a parte mais difícil, pois somente quando você encontra alguma coisa que você *realmente* quer, você só tem que fazer.