Fabio Monteiro

O unico sitio onde o sucesso vem antes do trabalho é no dicionario. — Albert Einstein

Sobre mim

Chamo-me Fábio Monteiro nasci a 22 de Abril no ano de 1989, sou natural da cidade de Leiria onde sempre vivi.

Trabalhador dedicado e responsável dou sempre o melhor de mim a quem me dá a oportunidade de mostrar o que valho. Espirito de equipa e sentido crítico são duas qualidades que marcam a minha personalidade, já o espirito de liderança foi algo que adquiri ao longo da minha curta experiência profissional, onde o maior desafio foi entender que devia delegar tarefas de maior responsabilidade a outros membros da equipa mesmo que isso implicasse gastar algum tempo para tornar esses membros aptos a realizarem essas mesmas tarefas e desta forma manter a equipa motivada e confiante nas suas capacidades.

E porque não devemos viver para trabalhar, mas sim trabalhar para viver, gosto de ocupar os meus tempos livres a praticar desporto, ver series e filmes, jogar online, mas acima de tudo isto passar tempo de qualidade a conversar e “brincar” com a família e com os amigos.

Amante de desporto em geral, já fui praticante de natação, jogador de futsal e também de badminton, atualmente faço ciclismo ao fim de semana e tento fazer umas corridas com os amigos sempre que o tempo permite.

Percurso escolar


Ensino secundário

O meu início no ensino secundário foi um pouco atribulado, muito por culpa da escolha de área que tinha de fazer no final do ensino básico. Uma vez que sempre gostei imenso de praticar desporto e era algo que motivava mais do tudo o resto, foi a minha primeira opção.

Assim acabei por me inscrever num curso tecnológico de desporto, mas como não existiram inscrições suficientes para formar uma turma esse curso acabou não se iniciar, acabando eu por ingressar no curso de Ciências e Tecnologias na Escola Secundária Francisco Rodrigues Lobo em Leiria muito devido à influência da minha irmã mais velha.

“Felizmente” este foi o primeiro percalço que alterou definitivamente o rumo do meu percurso académico. O segundo foi a reprovação no decimo primeiro ano, o que fez com que as minhas notas dai em diante melhorassem significativamente, terminando o ensino secundário com uma media de 13 valores.

Estes dois acontecimentos fizeram com que durante os quatro anos tivesse percebido que gostava imenso de computadores e de informática e que teria uma carreira profissional muito melhor do que se estudasse desporto.

Ensino superior

Acabei por conseguir ingressar na minha primeira escolha na candidatura ao ensino superior iniciando assim o curso de Engenharia Informática em 2008 na Escola Superior de Tecnologia e Gestão do Instituto Politécnico de Leiria.

O início foi um pouco difícil, pois não só tive o meu primeiro contato com a programação como também me deparei com um conjunto de unidades curriculares essencialmente teóricas, o que se revelou desmoralizador. Ao longo da licenciatura foram surgindo unidades curriculares bastante mais interessantes e com uma forte componente prática o fez com que me empenhasse cada vez mais, terminando assim a licenciatura em 2012 com média de 13 valores.

Uma vez que a segunda metade da licenciatura é dividida em dois ramos (Tecnologias de informação e Comunicação e Sistemas de Informação) e na altura em que tive de decidir qual deles queria frequentar não achava grande “piada” à programação decidi optar pelo ramo de TIC. Neste tive uma vasta formação na área das redes de comunicação quer do ponto de vista do seu planeamento quer do ponto de vista da configuração e manutenção de redes e serviços.

Com cada vez mais vontade de aprender mais e de me preparar o melhor possível para o mercado de trabalho decidi então iniciar de imediato o Mestrado em Engenharia Informática - Computação Móvel na mesma escola, estando assim a frequentar o 1º ano do mesmo.

Programação

C# / ASP.NET / XNA / Java / XML / SQL / Objective-C / C / HTML / PHP / CSS / JavaScript / PERL / BASH são as linguagens e tecnologias com que já trabalhei até hoje.

Destas destaco programação Java para Android logo seguido do C#, e ASP.NET como as minhas favoritas.

Redes

Já na área das redes aprendi a planear e configurar rotas estáticas, encaminhamento dinâmico, endereçamento IPv4 e IPv6, VLAN’s e qualidade de serviço numa rede (QoS). Todos estes conhecimentos foram sempre aplicados na prática através de configurações no IOS em routers Cisco


  • Os protocolos de encaminhamento: NAT / DHCP / RIP / RIPV2 / IGRP / EIGRP / OSPF / ISIS / BGP / HSRP
  • Simuladores de rede: GNS3 / Packet Trace
  • Sniffers de pacotes: Wireshark


Mais

Tutorial de desenvolvimento Android

No âmbito do mestrado, lecionei juntamente com dois colegas, varias sessões de um workshop de iniciação ao desenvolvimento para Android junto de várias turmas do ensino secundário.

Desta forma gravei esse mesmo workshop em forma de vídeo possibilitando aos formandos rever o workshop sempre que entendessem podendo assim voltar a praticar posteriormente.

Foi ainda produzida uma versão escrita que pode obter AQUI!


Área pretendida

Apesar da forte formação em redes de comunicação, a área que me desperta interesse é a do desenvolvimento de aplicações móveis preferencialmente Android bem o desenvolvimento baseado em tecnologias Microsoft.


Currículo

Pode ainda obter o meu currículo AQUI!

Projetos em que participei

Durante a formação academica foram muitos os projetos desenvolvidos, os mais importantes são aqui apresentados com uma breve descrição, bem como alguns desenvolvidos por minha auto recriação.

Licenciatura

Board of War

O Board of War é um jogo, de tabuleiro desenvolvido em XNA, baseado na temática da simulação de batalhas combinando assim os tradicionais jogos de tabuleiro tal como o xadrez e damas com a temática das guerras e os seus diferentes clãs, cada qual com as suas habilidades e poderes. Muito semelhante ao xadrez, o tabuleiro é composto por sessenta e quatro casas em que cada jogador inicia a partida com dezasseis peças de diferentes tipos e com características diferentes.

Cada clã é constituído por dezasseis peças que são: oito peões, dois cavaleiros, dois arqueiros, duas balistas, um mago e um general. Todos os elementos do clã possuem um determinado ataque e defesa bem como uma movimentação característica, algumas dessas peças possuem algum tipo de habilidades especiais. Essas habilidades são diferentes entre cada clã, pelo que o jogador terá de escolher o clã que melhor satisfaz os seus interesses.

Este projeto foi implementado por três equipas de duas pessoas e foi divido nos seguintes módulos:

  • Módulo I Desenvolvimento de uma interface do utilizador com exploração das primitivas da gráfica. Desenvolvimento de uma interface apelativa permitindo essencialmente que o jogador possa mover as suas unidades;
  • Módulo II: Componente de rede e comunicação que engloba suporte para multijogador tanto em redes locais como através da internet, gestão das pontuações dos jogadores e aquisição de novos produtos dentro do próprio jogo;
  • Módulo III: Módulo de inteligência artificial que permite ao jogador interagir com o produto sem necessidade de uma segunda entidade.

Vídeo Promocional

Galeria


Unidade Curricular: Projeto Informático

Linguagens de programação: C#

Tecnologias: Microsoft XNA Game Studio 4.0, Xbox Live, JSON

Software: Microsoft Visual Studio 2010

BusinessToBusiness

Este projeto teve como principal objetivo o desenvolvimento de uma aplicação de gestão de stocks e encomendas automáticas entre parceiros de negócio.

A aplicação desenvolvida desencadeia um processo de encomenda automática para cada produto na qual o stock desça do valor mínimo definido num ficheiro XML. Esta dispõe ainda de uma base dados existente no sistema empresarial, para verificar o nível de stock corrente, que consulta com determinada regularidade definido no documento de configuração XML.

Após identificar os produtos necessários a encomendar, para cada produto, a aplicação deverá selecionar o fornecedor que disponibiliza o produto ao preço mais baixo.

Após identificar os produtos necessários a encomendar, para cada produto, a aplicação deverá selecionar o fornecedor que disponibiliza o produto ao preço mais baixo. Para isso, a aplicação envia vários pedidos de catálogos aos diversos fornecedores que tem no sistema. Uma vez selecionados os fornecedores mais competitivos para cada produto, o sistema envia através de da internet a encomenda para cada fornecedor em formato CSV ou XML de acordo com as especificações de comunicação de cada fornecedor.


Galeria


Unidade Curricular: Integração de Sistemas

Linguagens de programação: C#, XML, SQL

Software: Microsoft Visual Studio 2010, Microsoft SQL Server 2008

Raposa - Banco de Manuais Escolares

Este projeto teve como principal objetivo implementar uma aplicação Web recorrendo a tecnologias Microsoft com a finalidade de gerir e armazenar os dados de uma instituição não-governamental e sem fins lucrativos designada por “Raposa – Banco de Manuais Escolares”, cujo foco principal incide no princípio da reutilização gratuita de manuais escolares por parte de famílias portuguesas.

Esta aplicação permite registar as inscrições de novas famílias, pedidos de requisição, empréstimo e devolução de livros bem como o registo de doações à instituição e agendamento de transporte dos mesmos.

Esta permite ainda aos utilizadores autorizadas a gestão de perdições de acesso ao sistema por parte dos voluntários e ainda autorizar determinadas ações pendentes no sistema.


Galeria


Unidade Curricular: Desenvolvimento de Aplicações Distribuídas

Linguagens de programação: C#, ASP.NET, jQuery, JavaScript, CSS, SQL

Software: Microsoft Visual Studio 2010, Microsoft SQL Server 2008

MMGuid - Mimo Multimedia Guide

O projeto Mimo Multimedia Guide (MMGuide) tinha como objetivo desenvolver uma aplicação multimédia para o sistema operativo Android que disponibilizasse informações em relação às peças expostas no museu m|i|mo bem como informações do próprio museu.

Com esta aplicação pretendia-se que o visitante pudesse:

  • Visualizar uma descrição geral do museu, que deverá conter informação textual, um áudio correspondente e um mapa
  • Pesquisar as peças expostas no museu através do seu identificador único
  • Ver informação detalhada de cada peça, recorrendo a descrições de texto, áudio, imagens e vídeos
  • Visualizar uma lista de visitas predefinidas ao museu
  • Visualizar a informação detalhada de uma visita tal como nome, percurso (peças a visitar), tempo estimado, texto de descrição, áudio, imagens e vídeos

Galeria


Unidade Curricular: Engenharia de Software 2

Linguagens de programação: Java, XML, SQL

Software: Eclipse, SQLite Manager

Santa-Eufémia, Tecnologia Digital

O projeto "Santa-Eufémia, Tecnologia Digital" tinha como objetivo planear uma rede informática sem fios de alto nível com a finalidade de fornecer um conjunto de serviços à população da freguesia de Santa-Eufémia tais como internet, VoIP ….

Os utilizadores do serviço teriam de possuir em suas casas um Access Point e um Router para se poderem ligar à infraestrutura e usufruir assim gratuitamente dos serviços oferecidos e patrocinados pela junta de freguesia sem depender das operadoras telefónicas.

O planeamento desta rede levou a que fosse feito um levantamento cuidado de todas as localidades existentes na freguesia tendo sempre em atenção a sua localização uma vez que tinha de existir a ponto de vista entre os pontos centrais de cada localidade e a junta de freguesia (local onde seria instalado o serviço), pois a comunicação entre estes pontos teria de ser feita com recurso a antenas direcionais de forma a conseguir ligações com várias centenas de metros.

Após a análise de requisitos da rede, tais como, os locais a abranger e os potenciais utilizadores, as aplicações e os serviços a suportar, as características de segurança e os principais condicionamentos definiu-se então o ponto central da rede que seria na sede da junta de freguesia fazendo uso da torre da igreja para obter ponto de vista para todas a localidades.

Foram também definidos os locais onde se iriam encontrar os pontos de acesso, as respetivas antenas e frequências de funcionamento e, através do programa Radio Mobile, foram feitas as simulações das linhas de vista de modo a que as diversas antenas interagissem e fizessem a troca de sinais de forma eficiente.

Definida a estortura física, passou-se ao planeamento do endereçamento em IPv6 e implementaram-se os protocolos de comunicação e os serviços, em forma de protótipo. Os serviços implementados na rede foram: DNS, SMTP, IDS, DHCP e VOIP.

Foi ainda feito o orçamento para a implementação da infraestrutura e serviços propostos, que ficou avaliado em cerca de 148 mil euros.


Galeria


Unidade Curricular: Planeamento de Redes Informáticas

Tecnologias: DNS, SMTP, IDS, DHCP, VOIP, IPv6, WAN, LAN, QoS, WPA, PPP, HDLC, ATM, BOOTP, SIP, RTP , RTCP

Software: Google Maps, Edraw Network, Radio Mobile, Ubuntu Server 11.04, PostFix, Elastix, Snort, Cisco Packet Tracer, X-Lite 4

AFAC

Este projeto teve como objetivo a construção de um site em HTML e PHP para a Associação Fátima Cultural (AFAC). O site tinha como principal objetivo fazer a promoção da instituição e da região, a divulgação dos eventos e atividades organizadas pela AFAC e ainda uma galeria de fotografias. O site tinha ainda uma área reservada à administração do mesmo, onde era possível gerir as noticias e galerias.


Galeria


Unidade Curricular: Aplicações para a Internet

Linguagens de programação: PHP, CSS, JavaScript, Jquery, MySQL

Software: Netbeans, Wamp Server

DentiCare

Este projeto teve como objetivo principal planear desenvolver e testar um software de gestão de utentes de uma clinica dentária, bem como a gestão de horários do pessoal médico, o registo de consultas e de tratamentos efetuados em cada consulta e ainda o registo de pagamentos das consultas por parte dos utentes.


Galeria


Unidade Curricular: Desenho da Interacção

Linguagens de programação: Java

Software: Netbeans

Arte Floral

Este projeto teve como objetivo a realização da análise de dados do sistema de informação de uma loja de flores. Para a realização deste projeto foi apresentado o Modelo Conceptual do Sistema de Informação resultante da análise baseada no modelo de Entidade-Relacionamento.

Assim, foi elaborado o Dicionário do Modelo Conceptual de Dados com as definições de todos os componentes (entidades, relacionamentos e respetivos atributos) do modelo de Entidade-Relacionamento, validação do modelo lógico utilizando a normalização e a definição das restrições de integridade.


Galeria


Unidade Curricular: Base de Dados

Software: Microsoft Visio

Pesquisa Local

O aumento da capacidade de armazenamento nos computadores pessoais e até dispositivos móveis faz com que pesquisar por um determinado conteúdo seja uma tarefa cada vez mais morosa. A extração de informação – Information Retrieval (IR) engloba duas componentes:

  • Componente de indexação: responsável por analisar os documentos a indexar e construir um índice que facilite a tarefa de pesquisa.
  • Componente de pesquisa: responsável por devolver a lista de documentos que correspondem aos termos requeridos.

Assim o objetivo deste projeto consistia em implementar, com recurso à linguagem C, uma aplicação de pesquisa local utilizando os princípios de IR. A aplicação era composta pelos seguintes programas:

  • indexer: programa responsável pela indexação da informação.
  • indexfolder: programa que permite adicionar ou remover pastas ao processo de indexação.
  • searchDaemon: servidor que fornece o serviço de pesquisa;
  • searchClient: cliente de pesquisa.

Para melhorar o desempenho recorreu-se ainda ao uso de threads com partilha de memória e ainda a sockets UDP para efetuar a comunicação entre o cliente e o servidor.


Unidade Curricular: Programação Avançada

Linguagens de programação: C

Software: Geany, Terminal Linux

SlugHunt

Este projeto teve como objetivo a aprendizagem da programação orientada a objetos aplicando os conceitos de classe, encapsulamento, herança e polimorfismo no desenvolvimento do jogo SlugHunt, semelhante ao nível inicial do “In the Hunt”.

Numa primeira fase pretendia-se identificar e modelar as classes necessárias para a descrição dos elementos do jogo, um submarino herói que lança torpedos e granadas, inimigos com os respetivos projéteis (mísseis, bombas e torpedos) e ainda os respetivos bónus. Na segunda parte do projeto implementou-se a classe do submarino herói e também as classes que estavam diretamente relacionadas com esta (Lançadores, Projeteis e Bónus).


Galeria


Unidade Curricular: Programação 2

Linguagens de programação: Java

Software: NetBeans

Gestão de Campeonatos de Karting

O objetivo deste utilitário, desenvolvido com recurso à linguagem C, era a gestão da informação de um campeonato de karts. Este deveria armazenar toda a informação sobre os pilotos, sobre as pistas e sobre as diversas corridas que compõem o campeonato.

Deveria ainda produzir estatísticas em ralação à percentagem de vitórias por piloto, piloto mais vitorioso, carro mais utilizado, média de tempos, entre outras. Este projeto tinha ainda como principal objetivo que os alunos estabelecessem um contacto com a programação pela primeira vez.


Galeria


Unidade Curricular: Programação 1

Linguagens de programação: C

Software: Dev-C++

Mestrado

BusToGo

O projeto BusToGo consiste numa aplicação cliente desenvolvida para o sistema operativo Android que disponibiliza informações dos transportes públicos recorrendo ao serviço Espera Pouco para obtenção de dados sobre os mesmos.

O Espera Pouco regista os autocarros atualmente em circulação para os diferentes percursos e disponibiliza esta informação para “aplicações cliente” (BusToGo) que a exibirão aos utentes da forma mais adequada.

A aplicação BusToGo permite aos utilizadores identificar os seus percursos e paragens favoritas, aceder aos horários de um meio de transporte existente no sistema, saber quanto tempo demora a chegada de determinado veiculo em determinada paragem, adicionar avisos/alertas da hora de chegada para determinado veiculo e permite ainda visualizar as paragens por percurso ou não no mapa.


Vídeo Promocional

Galeria


Unidade Curricular: Plataformas de Sistemas de Software e Interfaces para Ambientes Ubíquos

Linguagens de programação: Java, XML, SQL

Software: Eclipse, SQLite Manager

EyeHouse

Este projeto teve como principal objetivo implementar um sistema de monotorização de edifícios através de uma aplicação móvel para a plataforma Android. Este não só monitoriza edifícios como também deteta intrusões e envia emails aos utilizadores especificados no sistema alertando-o da ocorrência de um evento diferente do normal.

Este sistema faz uso do software “ZoneMinder” que é responsável por armazenar e processar as imagens recolhidas pelas camaras IP, e ainda por disponibilizar essas mesma imagens em tempo real para uma aplicação Android e um site de administração desenvolvidos no âmbito deste projeto, bem pela emissão de alertas pré configurados via email.

Este sistema distingue-se da maioria dos existentes no mercado pelo facto de ser de implementação totalmente ao nível da informática ao contrário dos existentes que assetam essencialmente em modelos eletrónicos recorrendo a infraestruturas complexas e onerosas.


Galeria


Unidade Curricular: Qualidade de Serviço em Redes e Segurança de Sistemas Distribuídos e Ubíquos

Linguagens de programação: PHP, MySql, CSS, HTML, JavaScript, Java, XML

Software: Eclipse, ZoneMinder, Apache, Postfix, MySQL Server

CudaGen

Este projeto teve como principal objetivo o desenvolvimento do utilitário CudaGen cuja finalidade era gerar templates de programas CUDA de forma a auxiliar os programadores que efetuam desenvolvimento para esta plataforma.

Este utilitário gera três ficheiros com o código base de um executável CUDA, sendo este executado através da linha de comandos de um ambiente Linux que recebe vários parâmetros de entrada sendo alguns deles obrigatórios e os restantes opcionais.

São eles o Makefile responsável pela compilação do programa em CUDA, o ficheiro com o código a ser executado no CPU e GPU e o ficheiro de tratamento de erros HandleError.h.


Galeria


Unidade Curricular: Computação de Alto Desempenho

Linguagens de programação: C,

Tecnologias: Nvidia CUDA

Software: Geany, Terminal Linux

SortXXL

Este projeto teve como principal objetivo o desenvolvimento do utilitário SortXXL que tem como finalidade ordenar um conjunto bastante elevado de números inteiros (positivos e negativos) tirando o máximo de partido do processamento de uma placa gráfica NVIDIA com o recurso à tecnologia CUDA.

O utilitário é executado através de uma linha de comandos Linux sendo que este recebe parâmetros que realizam diferentes funções. Como se pode ver na imagem ordenou 4194304 números inteiros em cerca de 0.19 segundos (GPU Max Time)


Galeria


Unidade Curricular: Computação de Alto Desempenho

Linguagens de programação: C,

Tecnologias: Nvidia CUDA

Software: Geany, Terminal Linux

Pessoais

À exceção do projeto "[D&N] StarUp Servers", os restantes projetos foram devolvidos em parceria com o meu amigo Pedro Ferreira como forma de aplicarmos alguns conhecimentos adquiridos num workshop de Windows Phone Development em pequenas e simples aplicações.


[D&N] StarUp Servers

Este projeto consistiu no desenvolvimento de uma aplicação para o sistema operativo Windows para dar a conhecer os servidores de uma comunidade de jogadores online.

Esta aplicação apresenta a lista de jogadores presentes em cada um dos servidores em tempo real e ainda permite entrar diretamente no servidor pretendido através de um simples click.

Apresenta ainda as informações referentes à comunidade tais como contatos de email e ligação direta para o seu site.

Todas as configurações estão presentes num ficheiro XML que é descarregado no arranque da aplicação, podendo assim facilmente alterar todas as informações e endereços dos servidores.


Galeria


Linguagens de programação: C#, XML

Software: Microsoft Visual Studio 2010

Euromilhoes

O Euromilhoes é uma aplicação para Windows Phone 7.0 que tem a função de gerar chaves para o Euromilhões.


Linguagens de programação: C#

Software: Microsoft Visual Studio 2010, Windows Phone SDK 7.1

CronTemp

O CronTemp é uma aplicação para Windows Phone 7.0 que tem a função de fazer de cronómetro e de temporizador.


Linguagens de programação: C#

Software: Microsoft Visual Studio 2010, Windows Phone SDK 7.1

RandomNumbers

O RandomNumbers é uma aplicação para Windows Phone 7.0 que tem a função de gerar um conjunto de números aleatórios entre um mínimo e um máximo definido ou não.


Linguagens de programação: C#

Software: Microsoft Visual Studio 2010, Windows Phone SDK 7.1

PasswordGenerator

O PasswordGenerator é uma aplicação para Windows Phone 7.0 que tem a função de gerar um conjunto de caracteres que podem ser usados como passwords seguras.


Linguagens de programação: C#

Software: Microsoft Visual Studio 2010, Windows Phone SDK 7.1

Pode contatar-me aqui

Se estiver interessado em contatar-me poderá fazê-lo através do e-mail flhmonteiro@gmail.com.
Poderá faze-lo ainda através do seguinte formulário.

Poderá ainda encontrar-me nas redes sociais

Inicio