Como deixei a ciência básica em uma startup

Hoje, exatamente seis meses após vinte anos em ciência, fui a uma startup que desenvolve software para criação de dados sintéticos, na qual integro sistemas de aprendizado de máquina no produto final. Como há pessoas aqui que ainda estão decidindo dar esse passo, descreverei meu caminho ou, melhor dizendo, uma mudança na direção do meu caminho.


Academia


Sou físico profissional e doutorado. no Departamento de Física da Universidade Estadual de Moscou. Ele trabalhou tanto em física teórica quanto experimental. Artigos em Nature e PRL, mais de 700 citações e índice de Hirsch 14. Esses detalhes não servem para medir algo com alguém, mas para entender o quadro geral. Se contratarmos contratos com duração superior a um ano, em posições tão longas, ele trabalhou em quatro países da Europa Ocidental. Tudo ficaria bem, mas, recentemente, a ciência começou a se transformar em um negócio. As pessoas nas universidades só pensam em conseguir uma posição permanente. A busca constante por dinheiro para pedidos de subsídios para redação de pesquisas começou a demorar mais do que fazer ciência diretamente. Se você não possui um projeto do ERC (Conselho Europeu de Pesquisa), não estará interessado em nenhuma universidade européia mais ou menos normal, mesmo que tenha várias publicações e projetos excelentes. Além disso, todos os esforços no final podem se transformar em nada. Quais são as chances finais de conseguir uma posição? De 0,5 a 2%, quando você chega ao lugar certo na hora certa, ou seja, é uma questão de sorte (olá a Daniel Kahneman e Nassim Taleb). Dez anos de pesquisa podem acabar sendo inúteis, não "na moda". Tais atividades começaram a trazer mais e mais decepções. E se o trabalho deixa de trazer prazer, então tudo ao seu redor deixa de agradar. Sim, e as estatísticas indicam que é improvável que a situação melhore. Então, a decisão de encerrar sua carreira acadêmica foi tomada. A questão de outras atividades para mim era óbvia - programação. Mas rapidamente a história afeta, mas não rapidamente a coisa é feita ...


Programação


Por que programar, não datasines? Tudo é simples aqui - eu tinha pelo menos alguma experiência em programação e desenvolvimento de software. Sim, era uma experiência de desenvolvimento limitada para uso acadêmico pessoal e interno, mas meu software funciona e outras pessoas o usam em laboratórios e cálculos. Desenvolvi sistemas para coletar dados e monitorar grandes instalações experimentais (por exemplo, um refrigerador de dissolução com um subsistema de desmagnetização nuclear), análise e visualização de dados em Python. Antes disso, o Fortran usava muito e um pouco de C ++ para cálculos numéricos. De qualquer forma, essa experiência não foi suficiente para a transição. Era necessário "puxar" ou aprender muitas coisas novas tanto em programação (incluindo algoritmos e estruturas de dados) quanto em design de software. Estabeleci um prazo para um ano, ou seja, era o prazo para minha transição, pois meu contrato estava terminando na época e não pretendia renová-lo, apesar de ter tido essa oportunidade. Ele também “esboçou” um pequeno plano de treinamento prático, que incluía, por exemplo, a criação de jogos em Python usando scripts do livro “Jogos e quebra-cabeças de programação” (Jacques Arsac, 1985) e vários pequenos programas de “The Programmers Idea” (Coders Lexicon). A propósito, eu ainda usei o primeiro livro há muitos anos quando escrevi jogos para o Spectrum ZX. Paralelamente, ele começou a estudar mais duas linguagens de programação - JavaScript e Go. Em princípio, tudo estava indo bem, o benefício de recursos de treinamento, livros, exemplos na Internet agora é mais do que suficiente. No entanto, depois de algum tempo, comecei a sentir a necessidade de comunicação pessoal com pessoas diretamente envolvidas no desenvolvimento de software, bem como no trabalho conjunto em um projeto. Comecei a procurar essas oportunidades, uma vez que continuava trabalhando na universidade e participando da auto-educação. E, claro, as mitaps vieram em socorro ...


Reuniões, projetos


Um dos primeiros grupos foi o FreeCodeCampVienna, que se concentrava principalmente na programação da Web, mas isso era normal, já que a comunicação e os contatos eram importantes para mim, além de ganhar experiência no trabalho em conjunto. Após a terceira ou quarta reunião, organizamos um pequeno grupo de cinco pessoas (restavam apenas três) para trabalhar no projeto WebTags, que permite postar mensagens para amigos ou grupos em qualquer site. Fiz o back-end, já que não sou muito amigável com web design, para dizer o mínimo. Infelizmente, trouxemos o projeto apenas para o MVP e fizemos algumas apresentações nas reuniões, mas de alguma forma não foi mais longe, mas eu adquiri o conhecimento necessário. Como em outro projeto, “CarTalk - Uma comunidade projetada para entusiastas de automóveis”, lançada na equipe Chingu Voyage-7 (uma plataforma global gratuita para quem quer aprender a trabalhar em projetos conjuntos) não foi concluída. Naquela época, eu já havia começado a visitar outros grupos, incluindo aqueles relacionados a datasines - Vienna School of AI, Deep Learning Meetup em Viena, Vienna Data Science. Meus interesses começaram a mudar para o aprendizado de máquina e a IA, uma vez que havia uma certa "natureza científica" neles que não poderiam me interessar ...


Um pouco sobre ciência de dados


A capacidade de não me afastar da ciência e, ao mesmo tempo, me envolver em programação me intrigou. Encontrei e concluí vários cursos de aprendizado de máquina, IA e trabalho com big data. Havia prática nas reuniões, embora não tanto quanto gostaríamos. No entanto, a principal prioridade para mim permaneceu comunicação e contatos. Naquela época, já havia passado de oito a nove meses do período de transição definido por mim e comecei a refazer meu currículo. Quem trabalhou na ciência sabe que o curriculum vitae é usado na comunidade científica, que inclui quase todos os detalhes da atividade científica. Tivemos que inserir um currículo de oito páginas em um currículo de uma página. Por um lado, o problema é pequeno, porque o currículo científico possui muitas informações irrelevantes que só interessam às universidades. Por outro lado, não ficou claro quais informações podem ser úteis. No final, ele incluiu quase tudo relacionado ao desenvolvimento de software e análise de dados, além de trabalhar em projetos de terceiros. Levei cerca de duas semanas para processar o currículo. Cerca de dois meses permaneceram a partir do tempo previsto por mim e comecei a me candidatar a vagas em aberto. Deve-se notar que era dezembro - um mês em que há muitos feriados e, de fato, tudo normalmente espera o Natal e o Ano Novo. Também entendi que minhas habilidades e conhecimentos para trabalhar diretamente, por exemplo, como engenheiro de aprendizado de máquina, ainda não eram suficientes, então me concentrei em empresas envolvidas em datasines, mas com posições abertas de desenvolvedores ...


Pesquisar


E comecei a enviar meu currículo. Na maioria dos casos, eles responderam rapidamente - em dois a três dias. Para minha surpresa, nem todos responderam instantaneamente. Fomos convidados para algumas entrevistas após entrevistas por telefone e tarefas de teste. No entanto, ele recebeu recusas. Havia cerca de dez deles. Durante todo esse tempo, continuei a auto-educação e a comunicação nas reuniões. Ouvi, mergulhei, fiz muitas perguntas. Talvez alguém tenha se incomodado, mas na maioria das vezes recebeu comentários amigáveis. Fiquei impressionado com a comunidade de datasine com sua abertura, que não vejo em um ambiente científico "normal" há muito tempo ou muito raramente. Interessado em vários tópicos, incluindo a geração de dados sintéticos e a proteção de dados privados. Parecia mágica, na verdade. Criando um rosto humano ou gerando um código C bastante adequado para você, usando sistemas de aprendizado de máquina. Quando criança, li em um livro ou revista sobre um programa que poderia escrever poesia. Então eu escrevi um para o Sinclair Spectrum ZX, mas ele estava acabando com matrizes e substituindo as palavras certas nos lugares certos. E aqui não há algoritmo codificado para criar algo novo que não existia, mas que faz sentido! Em uma palavra - legal. Comecei a aprofundar esses tópicos, ler a literatura e procurar algoritmos. Escrevi várias cartas para as pessoas que trabalharam nesse tópico na Áustria e por volta de janeiro recebi um convite para fazer uma entrevista por telefone com elas. diretor de inicialização. Ao mesmo tempo, recebi um convite de uma das empresas que desenvolviam software científico, mas queria datasines ...


Oferta


Após uma entrevista por telefone com o diretor de inicialização, fui convidado para uma entrevista no escritório da empresa e me enviou algumas tarefas práticas, uma das quais era apenas para algoritmos, e a outra estava relacionada à análise e transformação de dados em Python. As tarefas não causaram dificuldades, apenas os nomes de algumas funções me pareceram estranhos. Como descobri mais tarde, essas tarefas foram "extraídas" do código real originalmente escrito em R. A entrevista ocorreu no final de janeiro, o que significava que eu poderia cumprir facilmente os prazos planejados e não renovar meu contrato na universidade. As entrevistas falaram principalmente sobre programação, discutiram tarefas de teste e perguntas gerais sobre adequação e estabilidade psicológica. Conversamos cerca de duas horas. Tudo correu como se nos conhecessemos há muitos anos - sem tensão. Alguns dias depois, recebi uma oferta para o cargo de engenheiro de software sênior. E aqui ficou assustador. Em primeiro lugar, recusei a oferta em outra empresa que desenvolvia software científico, mas foi sem muito tormento. O principal problema foi que eu fiz o que pretendia. E agora era necessário dar o último (ou primeiro?) Passo - para deixar a ciência que eu vinha fazendo nos últimos vinte anos. Eu tinha cinco dias para decidir, o mais longo da minha vida. Mas como eles dizem, disse "A", diga "B". E depois de trabalhar no mês exigido na universidade, fui para uma startup ...


Inicialização


Hoje posso dizer que estou feliz por ter iniciado minha nova vida não em uma grande empresa, mas em uma pequena startup. Eu gosto de poder me comunicar com todos os membros da empresa. Todo mundo está fazendo seu trabalho. E além do mais, sabemos o que estamos fazendo e por quê. A primeira semana não foi a mais difícil, lidei principalmente com correções de bugs. Mas as pequenas empresas não podem se dar ao luxo de fazer isso; portanto, dez dias depois eu já estava integrando o algoritmo de privacidade diferencial ao nosso "mecanismo", o que exigia um estudo e entendimento mais aprofundados do Tensorflow e Keras, bem como do próprio algoritmo. Depois disso, o desenvolvimento e a implementação de um codificador que pode processar arquivos contendo dezenas de milhões de linhas e vários milhares de colunas de vários tipos em um tempo razoável. Para fazer isso, estudei Spark e computação em nuvem. Agora implementação e integração de SaaS ... Todos os dias, algo novo. Dez a doze horas por dia que voam como uma hora ...

Source: https://habr.com/ru/post/pt466075/


All Articles