Guilherme Pontes

Who am I?

I am an IT professional who loves IT, especially when it comes to the details related to the areas of development and infrastructure.


I've been working with Linux for many years (I don't remember exactly since when, but it's from the time of 56k modems and when we needed to compile the kernel to enable writing to the Windows partitions). I've had the opportunity to use the distributions Conectiva, Redhat, Fedora, Mandriva, Debian, Ubuntu (this is the one I'm using now), Slack, Suse, Kurumin, FreeSCO, Coyote, among others.


I also have a lot of knowledge in application development (perhaps this is my favorite area, in fact). My first programs were developed in Flash's famous but dying Action Script language (this was around 1999 or 2000).


It was only when I entered college that I matured (or not) in my knowledge. Since then, I have been developing systems as a freelance professional or in the companies/institutions where I worked. I know how to program in Java, Python (Django or Flask), PHP, C# (.Net), Delphi, C++, Matlab, JavaScript (considering its coolest aspects such as JQuery, React, Angular and NodeJS), CSS and HTML.


I also have experience with Oracle, Firebird (formerly Interbase), MySQL, PostgreSQL and MongoDB. I am fluent in PL/SQL, Triggers, stored procedures and all the technical equipment necessary to work with a database.


I don't think that's the point, but I've worked with networks, assembly and maintenance (hardware), a little design (Corel, CSS, Flash, etc.), and developing games for cell phones and PCs. I also work (as a hobby) with video and image editing and I have an RPG channel with my wife on YouTube: youtube.com/@flechamagica


Curriculum Vitae

Curriculum Vitae available for download in PDF

Download PDF
Curriculum Vitae

Lattes

Curriculum Vitae registered on the Lattes Platform

Lattes Platform
Currículo Lattes

LinkedIn

Curriculum Vitae registered on LinkedIn

LinkedIn
LinkedIn

CTT - IPSC

In 2018, a friend at work was creating a system to control the timing of shots in an Airsoft match. The general idea was to motivate the range of hits on the plates. From what he explained to me, this would be managed by a Raspberry PI, which would communicate via WebSocket with a page to display the results on a monitor. He asked for help with the CSS of this page, in which there would be a JavaScript updating according to the data obtained. The only part I was involved in was building this layout. At the time of writing this text (04/28/2018), the project was still ongoing.


behappywith.me

A PWA (Progressive Web App) developed in React to support the content of the book Progressive Web Apps - Build progressive applications with React. In addition to React, technologies such as NodeJS, Webpack, Pure.CSS, Nginx, among others, were used.


Hey-Joe

NodeJS middleware for server monitoring. Made in JavaScript, it helps monitor the system and servers whose NodeJS is hosted. It was published on 05/06/2017 and by the time I updated this material (05/09/2017 - 3 days later), it had 168 downloads. See it published on NPM at this link.


Jardim Primavera Presbyterian Church

Website developed in 2015 with Python and Django for the Presbyterian Church of Jardim Primavera de Duque de Caxias. The site has integration with Facebook, image album, notices, articles, among others. As a database I used PostgreSQL. I used Nginx to publish static content (CSS, JS and Images) and for load balancing. As a WSGI HTTP provider for Python, I chose Gunicorn. All of these services are hosted on an Ubuntu machine on an Amazon EC2 server.


GBJ Backup

System developed for "Gráfica Bom Jesus" that manages the Linux server backup procedure. Around 2006, if I'm not mistaken, I set up this server for the printing company with automatic backup scripts. I recently developed this interface so they could manually control the routines. The most interesting thing about this system (which has no interface) is the application that runs on the server – it accesses several backup scripts and communicates with the client application (images below) via socket showing the results.


CompDB

System developed to perform comparisons (records) between DMS2 databases (HIERARCHICAL UNISYS High Platform database) and Oracle. This system, complexly speaking, is very interesting. It has a Java module with 5 simultaneous threads (4 for processing and 1 for the interface), which is responsible for general control of the application, connection to the Oracle database, and comparison of table records. There is also a Visual Basic module that connects to DMS2 via OleDB. These two programs work together, exchanging information with each other via the localhost network. As it was developed to run on Quad Core processors, the 4 threads that perform the register comparison each consume a specific core.


LinuBR Framework

URL where I maintain a framework project for Java desktop and web applications. The “trash” style of the page is intentional. Although I am no longer updating this project, I still keep it online in this link.


Personal Website

Throughout my professional career, I published a few different versions of the website. Below are some screens presented chronologically. It has already been built with several technologies. Today I maintain a simple version with just Bootstrap.


linu.com.br

I provide at this address material on Java, Databases, Linux and Project Management.


SIPweb

The SIPweb system was created to serve the entire Inactive and Pensioners Section of the Eastern Military Command. It is being developed in Java, using EJB3, JSF, and PostgreSQL database. I was authorized to publish these images.


IkpontoWEB

Online electronic point system. Still in the design phase, the system is being developed in Java with a MySQL database. Resources such as Aj4, EJB3, JSF, among others, are used. A curiosity: at the time, around 2008, the project manager needed to show this beta version to one of the clients, but as there was no official published domain yet, I hosted the website in my living room with a no-ip.com domain.


SISCOMT

System developed in PHP and PostgreSQL to manage the Brazilian Army's OTT framework. The development was carried out in PHP. Fun fact: I and another officer (DBA) created this website in 3 months, with another 1 month approving and fixing bugs. Another curiosity: the choice of the PHP language was an order from the Colonel... xD. I received permission to publish these images.


Survey Manager

I developed a Quiz system for collecting data and analyzing user satisfaction. The system was developed in PHP and MySQL – at the request of the company CTIS itself. At this time I worked on the company's development team. Curiosity: this system should have been built in Java, perhaps the deadline we had was 1 month - there was no time to set up a Java server by the infrastructure team (we still had to buy the hardware). I built the system in 1 month (but the bank was already ready). Fun fact 2: as I was new to the team, my machine didn't have the necessary tools. So I used Windows paint to make the buttons and notepad to code the PHP. Pure madness!.. the code was really bad (due to the deadline).


ElectreIII

Mathematical system that implements the Electre III algorithm. It was developed during my master's degree, for academic purposes only. Fun fact: the final work for this course was just a DOC with a few pages. I developed this system because the professor said that "no one has ever managed to implement this algorithm...". As I like challenges and don't like these strange certainties, I decided to implement it. In the end it worked! Curiosity 2: the UENF photo was taken by myself, using my skills as a trainee photographer.


Orange Technology

My Orange company website. Today the domain no longer exists, as the company was closed in 2007. Fun fact: we know that keeping the user ID in the URL constitutes a security flaw (OWASP TOP 10). I didn't know that at the time :(


Disclosure System

I developed a system to manage the dissemination of courses from the company WORK informatics. The system was developed in Delphi and only required three releases. Unfortunately I do not have images of this system. The most interesting thing was the data load (the old database was several text files).


SISFARMA

In this system, together with a team from Macaé, I developed all the analysis and development. This team used the system in a pharmacy chain in the same city, but the negotiation was managed through the project manager. My involvement in this system was operational only. I don't have any screenshots of this project.


Interscience Place

I developed, with only static content, the website for the scientific journal Interscience Place. At the time, the magazine made its content available at http://www.interscienceplace.org, but I no longer participate in the project (when I started my master's degree, I stopped providing maintenance - then I lost contact with the magazine's director). I don't have images from the website (from the time).


Website Carlos Henrique

I developed the website for the Information Systems Coordinator at Salgado de Oliveira University in PHP. Unfortunately it is no longer available. Fun fact: when I set up this screenshot website, I lifted Carlos Henrique's website locally to take a screenshot. That's why you're seeing the date 2009. The actual site was developed around 2004 (my senior year of college).


SMOL

Even though it was an academic project - final graduation project, I included this system in the list because it presents a great online structure created in PHP and PostgreSQL. The entire system was distributed in free software - at the time, the still free version of Redhat. Fun fact: there were 4 people on the team. We stored the data from this site on the college network - which was a file server running on Windows 2000. The NTFS partition on the windows server disappeared by itself! Lucky we had a backup. Since then I keep backups on Ext2 partitions (today Ext4 or ReiserFS, or in the cloud).


AutomaçãoUniverso

These two systems were developed to control student registrations for lectures given at the Salgado de Oliveira University. It was developed in Delphi and was widely accepted by the institution's team. Fun fact: I lived in a republic where my college networking professor (André Muniz) slept once a week. On this day, around 1 am, he arrived and said: "Man, the organization of the Universo lectures is a mess... Don't you create a system, do you?" Me: "Wow, I'll do it. When?" Him: "Tomorrow morning!" Me: "Wow, the deadline is tight... ok, you have to explain everything to me very quickly...". Then we spent the night doing it and at 8 am we were installing it on the college's machines. That was my record. I also remember that the following Saturday there was an Angra show in Vitória city. I went to the show and put a standard message in the system in case of this error: "Oops! Error. Please call André"... lol. Then he called me: "You're crazy! You put my name in the error message!" I explained a stopgap fix to him over the phone and the following Monday we fixed all the bugs. Good times...


CineTV Nostalgia

I developed the back-end of this system in PHP. The user interface had already been built by a web designer who served the client. It was the first opportunity I had to develop dynamic web applications on a commercial basis.


SAM

This system was developed in Delphi to automate the operation of a motel chain. Its last version was delivered in 2004.


Loan Schedule

Based on the idea of ​​a friend – future partner of my company Orange, I created a system for controlling loans. The system was developed in Java, but was never used commercially. Note. "Bem bindo" (welcome, in Portuguese) it's wrong! It should be "Bem-vindo!" with a hyphen.


NetworkUniverso

In response to a demand from the infrastructure team at "Universidade Salgado de Oliveira", I created a Java system to traverse the network and map the course that uses computers the most.


VivaCor

This system was developed in Delphi around 2003. It was the first complete system I developed for a company. Unfortunately I don't have demonstration screens.


PWA Book

Progressive Web Apps - Build progressive applications with React

ISBN: 978-85-94188-54-0

Casa do Código
Livro

Master's degree

Master of Production Engineering - Operational Research

UENF

Dissertation
Dissertação

Linux distributions used

I decided to dedicate a section of my website to Linux. I could have simply pointed to my website http://linu.com.br/, whose creation was motivated by maintaining a set of technical publications for personal use in my old infra company. Here in this material you will find a brief history of my experience with this system that has accompanied me since my first steps as an IT professional.


Conectiva

If I'm not mistaken, my first contact with Linux was around 1998 or 1999, when an old friend and I spent part of the night at a dial-up Internet provider playing Diablo. On one of these occasions, he pointed to a server and said: "This server is Linux. It is more powerful than the Windows we are used to." At the time I was just intrigued. A few years later, already in college, during the Computer Networks class, I was introduced to Conectiva. I spent many nights poring over this relic. It was at this same time that I compiled the Kernel for the first time (to recognize NTFS partitions, if I'm not mistaken).


Red Hat

Some time later, a college professor said: "Conectiva is cool, but the Red Hat distribution is really good" (on which Conectiva was based). I spent some time working with this system, which, by the way, is really excellent and more stable than Conectiva. It's a shame that on a certain day it started to be paid, at which point I started using its free copy: Fedora.


Fedora

As good as Red Hat itself, Fedora also accompanied me for a while (I don't remember exactly how long). As the months went by, I realized that a large part of the Linux community used another distribution with a strange name: Debian.


Debian

By far, it was the distribution I used most in my life. It is simply the most stable of all, fully adhering to free software principles and with a very strong community. The best servers I've had the pleasure of setting up have been based on this distribution.


Slackware

On only one of the servers, the Debian distribution was not fully compatible with the hardware that we (my company's team) had on hand. It was my only experience with this distribution. It's a bit thick-skinned, without apt-get and the like.


Kurumin

I was a public school teacher for a while. There was a time when the government guided the use of free software, choosing this beautiful distribution created by Carlos Morimoto as the standard. Just a curiosity, there was a lot of talk that it was the first Live distribution (which runs on CD), which is not true. Kurumin was based on Knoppix, which already came with this feature.


Coyote

I've already used Coyote and Free SCO to set up servers on bizarre computers, with no hard disk and very little RAM. These systems ran from 1.44MB floppy disks. I only created a server with Free SCO. It had a basic firewall. It was an interesting challenge.


Mandriva

At a certain point in history there was a merger between the Mandrake and Conectiva distributions, which resulted in the Mandriva system. I only got involved with it because I took an excellent Linux course in which this was the distribution used. I created a single server with it. Honestly, at the time I thought it was very bad, mainly because its URPMI package manager was very slow.


Suse

Suse and OpenSUSE distributions are excellent! I started using them because in 2005 they came with a customized version of OpenOffice that was much superior to the original OpenOffice version. I needed this package to write my dissertation. During the 2 years I was studying for my Master's degree I kept this distribution on my notebook.


Ubuntu

I don't remember exactly when it was, but there was a day when one of the partners at my company said: "Man, look at this distribution! It's sending free CDs to everyone." We ordered some and discovered that in addition to the great marketing campaign, this strangely named Linux was based on Debian and came with some software that we always had to install manually.

Debian (and other distributions with licenses heavily based on GNU) do not accept any package that has any type of license that violates GNU principles. For example, we know that Firefox is free! What isn't free is the Firefox logo. This was enough for Debian to be distributed with a fork of Firefox (instead of Firefox itself). This was a bit inconvenient, as we always needed to install these common everyday applications from outside. All said and done: I started using Ubuntu and I still use it today. I'm even typing this text on its cousin XUbuntu (Ubuntu with the Xfce graphical interface, which I personally find lighter than the standard Gnome). I also use Ubuntu (without a graphical interface) as a server.


Raspbian

I thought it would be interesting to comment here on my little experience with this distribution based on Debian, compiled specifically to run on the Raspberry PI. A friend at work lent me his Raspberry for testing and I ended up opting for this distribution. She's really cool!


Elementary OS

I recently installed this distribution on my gaming notebook. The interface is beautiful, but it doesn't work properly. I do not recommend!


I have an RPG channel with my wife Rê. Producing RPG content was one of my dreams! I also had another dream of building a Diablo-like RPG game (since 1999). Below is a little of my journey.


Flecha Mágica

Roleplay Game Channel that I have with my wife. We even met playing RPG. Our son João also loves playing with us! RPG is life :)


MazeCenter

App built with Canvas and JavaScript, embedded in Cordova and published on Google Play. It is a maze game whose phases are created randomly. For now I've only published a version for Android, but I plan to publish it for iOS in the future.


MazeCenter (discontinued)

Little game developed with Canvas, NodeJS, MongoDB (mlab.com) and a lot of JavaScript. I created it to play with my niece. It's a simple maze game in which the character wins if they reach the end without touching the walls. The coolest thing about it is the algorithm for dynamically assembling rooms. It had features of a Progressive Web App, but was replaced by an improved app created with Cordova.


Vectortowns

Game prototype developed in Java, NodeJS and MySQL. For many years I have been trying to develop a PC game similar to the Diablo franchise. This is the second prototype I created in 2014. This game worked online (the NodeJS server was hosted on an Ubuntu machine on Amazon's EC2) multi-player. I tested it with 6 people playing simultaneously. As development is arduous and challenging, I decided to maintain a blog with the development steps and a video of this version.

In 2017, I decided to redo the game's home website (as in the old version, there was only a wordpress wiki). This new version is published on the same domain. I used MySQL, NodeJS, Materialize (CSS), Nginx (static content server). It is hosted on Amazon EC2 and has a Let's Encrypt certificate. This version is fully published on github. Fork it!


Vectortowns (prototype)

Two friends of mine and I, some time ago, made a 2D game prototype in Java. Our idea initially was to create an isometric game, with 2D graphics that simulate 3D. Looking at the project pages you will see that we did this by choice and, in fact, we did some research into what would be the most interesting isometric model from the player's point of view. For more details click here. I consider this to be a prototype of the most current version of the game (see previous topic).


potions.com.br (discontinued)

Game analysis blog that I developed in 2012 and have been maintaining sporadically. As this is just a hobby, I chose to be minimalist by simply adapting a website on Google's blogspot. The biggest work was on CSS and image design.


Unity3D

Unity3D is a game development tool in which the developer interacts with graphic elements and their attributes, placing them on a 3rd dimensional platform. This way we can easily create scenarios, with their textures, simulating a first-person game. See this example I created by clicking here.