Tiago Salem – Sobre

Opa,

meu nome é Tiago Salem e como você deve imaginar, sou um cara obcecado por tecnologia, por entender como as coisas funcionam e consequentemente por programação.

Se você está aqui é porque quer saber mais sobre mim, certo? Então vamos lá!

O Início de tudo

Desde pequeno eu era apaixonado por abrir as coisas e entender como elas funcionavam (rádio, video-game, televisão).

Claro que estas coisas nunca mais voltavam a funcionar, mas isto não importa muito. 🙂

Minha irmã mais velha diz que eu fui alfabetizado em um computador. Apesar de eu não lembrar disso, deve ser verdade, porque a minha letra manuscrita não é das melhores até hoje, algo que não me orgulho muito.

Odeio me sentir velho, mas minha história com computação começou quando meu pai trouxe para casa um CP500, que era um computador da Prológica.

Ali eu ficava horas intrigado como aquela caixa com monitor monocromático (fósforo verde) funcionava. Foi ali que dei os primeiros passos nesta vida tecnológica.

Lembro de algumas vezes ficar digitando alguns códigos que vinham em revistas impressas (sem entender o que significavam). Eram programas completos, e o desafio era digitar tudo no computador sem errar nada, e ao final tentar executar o programa. Muitos anos depois fui entender que aquilo era na verdade Assembly (linguagem de máquina).

Não demorou muito para eu começar a debulhar os códigos (gíria da década de 90) de jogos que eu gostava e tentar fazer pequenas modificações. Foi então que eu conheci a linguagem Basic. Eu trocava algumas frases que apareciam no jogo por outras que eu inventava, e achava aquilo o máximo!

Mais pra frente tivemos em casa um PC XT. O XT era uma evolução monstruosa! Em vez de monitor fósforo verde, era um fósforo amarelo! Ali tive contatos com o Gw Basic, que era o Basic da Microsoft. Lembro até hoje de ter criado uma calculadora e salvei em um daqueles disquetes de 5 e 1/4, que infelizmente se perdeu com o tempo. Também tive um MSX Expert que ganhei da minha tia.

Enfim, o tempo passou, e foi quando eu montei meu primeiro pentium que minha vida começou a tomar um rumo diferente.

O Surgimento do Linux

Já nos primeiros contatos à internet eu descobri que existia um mundo muito maior de coisas lá fora. Foi então que descobri um sistema que talvez você conheça: Linux.

Aquilo explodiu minha mente. Não queria mais saber de nada. Chegava da escola e me enfurnava no quarto pra tentar domar aquele bicho selvagem. Na época só existia uma fonte boa de documentação de Linux em português: “O The Linux Manual“, do Hugo Cisneiros. Então fica aqui meu agradecimento público a ele por tudo que ele fez pelo linux no Brasil.

A Universidade

Encurtando um pouco a história, eu já trabalhava em um provedor de internet wireless como administrador de redes quando passei no vestibular da UTFPR e comecei finalmente a aprender computação do jeito que na minha cabeça, até então, seria o “certo”.

Por ser um curioso da área desde sempre e já trabalhar no ramo, fui sabendo que iria rever muita coisa que eu já tinha aprendido ao longo dos anos.

Porém já no primeiro semestre tive um choque de realidade. Tive ao longo da faculdade professores sensacionais e não posso ser injusto com eles. Professores que entendiam muito e que adoravam o que faziam, mas por outro lado… tive professores que nitidamente nunca tiveram experiência na área. Professores que ensinavam a mesma matéria fazia 20 anos, da forma como aprenderam na época da faculdade, e nunca se atualizaram. Nem no assunto em si, e nem na didática.

Eu entendo que o método acadêmico de ensino é por padrão mais longo e detalhado. Quando você entra na faculdade você precisa estar ciente disto, mas não precisava ser tão chato! Tá louco!

Meu trabalho de graduação foi alterar a pilha tcp/ip no kernel linux para adicionar uma opção extra, permitindo roteamento estendido para dentro de redes internas a partir da Internet (parece complicado falando, mas o conceito é bem simples). Meu objetivo era achar um meio termo entre IPv4 e IPv6. Felizmente acertei na escolha da orientadora (que me apoiou, ao contrário de outros professores que sugeriram que eu não iria conseguir). Batizei o projeto de RNAT.

Nunca submeti meu código para o kernel e as conferências acadêmicas de redes no Brasil rejeitaram todas as minhas aplicações. Aliás, uma delas ainda me acusou de plágio e posteriormente admitiu o erro. Este foi o primeiro momento em que vi que o meio acadêmico talvez não fosse para mim.

Ganhei da faculdade uma pós graduação, e escolhi fazer gestão da informação (pra ter uma visão de gerenciamento), e sem entrar em muitos detalhes, durante a apresentação do meu projeto final percebi nitidamente que o meio acadêmico definitivamente não era para mim. Foi meu último contato acadêmico.

A Mandriva Conectiva

Durante a faculdade troquei de emprego algumas vezes, até ser indicado por um amigo para entrar na Mandriva-Conectiva.

Fiz a entrevista para trabalhar com suporte de redes/sistemas, passei e junto com mais alguns amigos começamos a trabalhar lá.
Corro risco de dizer que foram os 6 anos mais especiais da minha carreira. A Conectiva foi o lugar que me abriu a mente para muita coisa, e me fez ver que minha visão radical da ideologia de software livre que criei durante os anos só atrasava meu progresso profissional, mas isso é assunto para outra hora.

As pessoas que trabalhavam lá na Conectiva estavam em um nível de conhecimento muito, mas muito superior que o meu. Logo percebi que o contato com estas pessoas estava me trazendo muito conhecimento, e aos poucos, meio que inevitavelmente acabei saindo da área de suporte e indo trabalhar com OEM’s (computadores com Mandriva pré instalado), e posteriormente migrei para cuidar de pacotes da distribuição Mandriva em si. Em 2007 me ofereci para ir para Angola dar aula de linux para o pessoal do governo angolano, e ajudamos a criar a primeira versão do Angolinux, que era baseado em Mandriva.

Ainda na Mandriva, comecei a me envolver com o desenvolvimento da libmsn, uma biblioteca que permitia criar aplicações para conversar na rede do MSN. A libmsn tinha sido abandonada pelo Mark Rowe (que estava trabalhando na Apple na época). Então eu pedi a ele para ser o mantenedor do projeto, e ele topou. Eu queria muito poder usar o MSN decentemente a partir do linux, e todas as suas funcionalidades. Eu ficava irritado que o msn no linux não recebia mensagens offline e não funcionava transferência de arquivos. Então comecei a atualizar a biblioteca para funcionar com os protocolos mais novos. Nesta época desenvolvi muito minhas habilidades em c++.

O Google Summer of Code

No ano seguinte, tomei coragem e tentei participar do Google Summer of Code para escrever um plugin do MSN para o kopete usando a libmsn. Não fui aceito, mas como eu sou teimoso eu fiz o plugin mesmo assim (pois eu mesmo queria usá-lo). Para minha surpresa existia um prêmio para pessoas que completavam as tarefas mesmo sem terem sido aceitas. O pessoal do KDE/Kopete me indicou e o Google me mandou alguns presentes (camisetas, bloquinhos, etc). Pode parecer bobo pra muita gente, mas até hoje uso essa camiseta com muito orgulho.

No ano seguinte tentei participar de novo, mas desta vez fui aceito. Acabei adicionando suporte a mensagens de voz, enviar desenhos e um monte de outras parafernalhas no plugin do kopete.

A Nokia

Após 6 anos na Mandriva decidi que era hora de mudar. Fui indicado por um colega para trabalhar remotamente para uma empresa alemã, como terceirizado da Nokia. Durante um ano ajudei no desenvolvimento do telefone N9 (O último com linux/Meego), eu mexia no aplicativo de contatos e por 5 vezes fui à Finlândia na sede da Nokia trabalhar in-loco. Foi uma experiência transformadora. Desenvolvi ainda mais minhas habilidades em programação. Tive contato com programadores do mundo todo e descobri que nunca mais deveria reclamar do frio que faz em Curitiba.

Assim que acabou meu contrato, finalmente entrei na Canonical.

A Canonical

Inicialmente era para eu trabalhar no time de OEM, mas me “emprestaram” para o time do unity-2d e acabei ficando por lá. Eu ficava arrumando bugs e às vezes implementando uma funcionalidade ou outra. Aprendi a programar em Qml nesta época.

Depois fui “emprestado” novamente para o time que desenvolvia o “Ubuntu for Android”. Como já tinha experiência com apps tipo o MSN, ajudei a desenvolver os apps de telefonia e mensagens, que hoje fazem parte do Ubuntu Phone. No momento faz uns 3 anos que estou trabalhando no Ubuntu Phone e ajudei a desenvolver a parte de telefonia e mensagens também.

O Google Code Jam

No final de 2015 fui mentor no Google Code Jam pela própria Canonical, ajudando alguns programadores iniciantes a contribuir para os projetos em que eu trabalho.

Os Outros Projetos

Neste meio tempo ainda trabalhando na Canonical, no meu tempo livre ajudei a criar a libqtelegram com um membro da comunidade, que acabou se transformando no app oficial do Telegram do Ubuntu Phone, e também é usado por outros apps tipo o (CuteGram).

Também criei a libhangish (para acessar o hangouts do google nativamente) usando um projeto chamado Hangish como base, e criei o telepathy-hanging, que é um plugin para telepathy para acessar o hangouts, usando a libhangish como backend.

E agora?

Este é o resumo da minha jornada até aqui, mas como eu não consigo ficar parado, no dia de hoje estou criando este site com o objetivo de fornecer uma visão honesta e prática sobre programação, tentar resgatar os programadores em potencial presos no que eu chamo de “Ilha da Teoria”, e também encorajar outros fanáticos por tecnologia como eu a ingressar neste mundo dos códigos e começar a dar vida aos dispositivos por meio de programação.

E você? Topa iniciar sua jornada para se tornar programador?
Então cadastre seu e-mail em algum lugar aqui do site para começar a receber os meus conteúdos com a minha visão sobre programação, e pra saber novidades do blog e sobre os meus cursos.

Vamos debulhar uns códigos!

Abraço
Tiago Salem