Skip to content
View gustavo-gomes-ghg's full-sized avatar
🙂
🙂

Block or report gustavo-gomes-ghg

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Please don't include any personal information such as legal names or email addresses. Maximum 100 characters, markdown supported. This note will be visible to only you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
gustavo-gomes-ghg/README.md

Gustavo Hattenhauer Gomes

Florianópolis/Brazil

  • 🔭 I’m currently working on health care system focused on a data pipeline that exchanges data with external sources.
  • 🌱 I’m currently learning English
  • 👯 I’m looking for python software projects, web scraping projects and MT5 trading robots
  • 💬 Ask me about ocean waves, hydroeletric power plant reservoir control, unit tests, clean code practices, or a new remote job
  • 📫 How to reach me: Linkedin
  • ⚡ Fun fact: I love car racing (F1, Nascar, any car racing that is on TV ...)

Summary

Python Software Developer and Oceanographer. I am currently working as a python software developer, helping Alayacare deliver a great EVV’s solution (Electronic Visit Verification) for health care companies in USA, Canada and Australia.

My activities include delivering enablement features, bug fixes, architecture suggestions, code maintenance, including stored procedure and flask API, unit tests, and PR review applying clean codes best practices.

Good communication, teamwork, problem solving instinct, proactive and determined.

My biggest motivation is to encounter complex challenges. Those in which it is necessary to understand the process and know the variables to solve the problem. Nothing is impossible, because for everything there is a way to do it.

I'm currently looking for a Software Developer position, where I think I'll have my best performance.

English Level

Currently, I am studying on Open English school. It has a course with 8 English levels. Currently I passed level 6, and I'm studying level 7 to get B2 certificate.

  • 2022-May: CEFR A2
  • 2022-Sep: CEFR B1

Recent Technical Evaluation

2022-Apr: Approved on Technical test's on Turing platform:

  • Javascript
  • Python
  • Matlab
  • SQL
  • Docker

2022-May: Approved on Technical test's on Turing platform:

  • AWS
  • AWS Lambda
  • Django

Soft skills

I don't have attention deficit, I know how to work in a team, I try to understand the problem I'm trying to solve, easy to learn new tools and new programming languages, fast learning curve, quick thinking, while in a meeting I quickly design the workflow and process being discussed (this makes it much easier for other team members to understand), ease of having an idea to solve a problem, I don't waste my time and other colleagues' time talking more than necessary, if I don't have anything to say I don't interrupt conversations, sincerity(if I don't know how to do something I say I don't know).

  • I organize my time using personal calendar (Teams, Outlook, Google).

Positives/Negatives

  • Positives: good character, good relationship with the team, ability to simplify complex problems, agile and practical.
  • Negatives: I try to quickly solve a problem and being quick may not be the best solution, impatient, difficulty not showing displeasure.

Education

  • Cybersecurity and Ethical Hacking (Graduate course), UNICIV -> Mar 2021 - Feb 2022, Remote
  • Software Engineering (Graduate course), UNYLEYA -> Jul 2020 - Jun 2021, Remote
  • Oceanography (Undergraduate course), UNIVALI -> Jan 2005 - Jun 2010, Itajaí- Santa Catarina - Brazil

Work History

Python Software Developer

Alayacare, Montreal/Canada _(Remote) -> Aug-2022 - Present

Engineering Manager

Fractal Engenharia, Florianópolis/SC/Brazil _(On-site/Remote) -> Jun-2019 - Jul-2022

Data Engineer

Fractal Engenharia, Florianópolis/SC/Brazil _(On-site/Remote) -> Apr-2015 - Jul-2022

Web Developer

Fractal Engenharia, Florianópolis/SC/Brazil _(On-site/Remote) -> Apr-2017 - Jul-2022

Android Developer

Fractal Engenharia, Florianópolis/SC/Brazil _(On-site/Remote) -> Apr-2017 - Jul-2022

Oceanographer

Chigago Bridge & Iron, Florianópolis/SC/Brazil (On-site) -> 2012-2018

GIS Analyst

Caruso Jr, Florianópolis/SC/Brazil (On-site) -> 2011-2012

Support (Geoprocessing and Remote Sensing)

Universidade do Vale do Itajaí, Itajaí/SC/Brazil (On-site) -> 2010-2011

Projects

GHG Twitter Stream Messaging Tracker - Apache Kafka, Apache Spark, NodeJS

GHG Tecnologia -> May-2022 - Present

Project Overview

A personal project to learn how to use Apache Kafka main features, Apache Spark to process stream data, NodeJS as backend to Kafka Producers and Consumers, and Twitter Stream API rules to get specific tweets using stream data.

This project outlines 4 main interest areas (Outer Space/Universe, Car racing, Games news and Data Engineering news), and 4 different repositories. The data pipeline is separated in a) data ingestion layer using Twitter Stream API, saving data on Apache Kafka, b) a Speed Layer for compute analytics from stream messages, and c) a Visualization layer to display messages and analytics.

  • a) Data ingestion layer uses NodeJS as backend and KafkaJS library as external client to act as Kafka Producer and Consumer for tweets. Kafka set up with Docker image
  • b) Speed layer uses Apache Spark Python API to compute analytics and Kafka Python external client to act as analytical Producer
  • c) Visualization layer uses ReactJS to display tweets and analytics from each different topic in distinct pages. New messages and analytics are received using socket connection from backend.
Learning Outcomes

From this project I'm learning the main features of Apache Kafka, Apache Spark and Twitter API.

Patada de Urso API using NodeJS and Sequelize

GHG Tecnologia -> May-2022 - Present

Project Overview

Porting PHP classic API to NodeJS application using Sequelize ORM library. The API project includes CRUD features for +20 endpoints, integrated with Python scripts to send emails and for creatING images to post on Instagram.

Learning Outcomes

From this project I'm learning the main features of NodeJS and Sequelize ORM.

ETL Project - Weather forecast data ingestion to GeoServer

Fractal Engenharia -> Jun-2022 - Present

Project Overview

Weather forecast scientific grib2 data file download, rainfall precipitation data extraction, data transformation to compute analytics for matrix and for coordinate points, creation of gif animation, and geoserver upload of matrix data, json and raster images. All the data pipeline is set up on Apache Airflow DAG, using distinct tasks for Python codes, and utilizing Airflow properties to minimize issues during the data pipeline.

DBA maintenance in huge database

Fractal Engenharia -> April-2022 - Present

Project Overview

Database with 700GB size running out disk size space. To solve this problem, the main database was segregated in different databases, located in different servers, based on data time stamps (hot, buffer, cold). The 'buffer' database was used to store data for 3 months. After that period data is transferred to the 'cold' database and tables are cleaned. In 'hot' database are stored recent and highly queried data. Every day a routine is executed to transfer data older than Today-60 days to the 'buffer' database, and remove this data from 'hot' database. All this process was set up on Apache Airflow DAG, with distinct tasks to better track issues and give the retry option. Failed task activity is communicated to DBA using TelegramOperator.

Adaptations were necessary on application to query data from different databases and work properly again.

Learning Outcomes

From this project I'm improving my skills with PostgreSQL maintenance tools like vacuum and analyze, how to transfer data between databases performatically, how to execute maintenance processes in production without turning off the application, with less impact on database performance.

Web system migration to AWS Cloud - Cybersecurity motivation

Fractal Engenharia -> Sep-2021 - Mar-2022

Project: SIG²A

Web system migration from Linode cloud to AWS cloud.

Project Overview

A customer and your TI team have analyzed the system and has suggests several improvements, either cybersecurity as infrastruct. After our analyse, we decide that the best choice was to migrate to AWS cloud and setup AWS services to specific purposes.

We worked is six different areas:

  • User authentication and data security improvements. The solution was integrate an authentication system that comprised: multi-factor authentication, password policy, password change after perior, account lockout after attempts;
  • Periodic vulnerability assesment to find weakness and flaws on system;
  • Traffic inspection and web application firewall (WAF);
  • Proper isolation of application (web server, database, app server);
  • Data-at-rest encryptation to protect customer data;
  • Business Continuity and Disaster Recovery Plan to minimize downtime in case of failure.

Currently this project has been completed and is in production. All services are working properly.

Learning Outcomes

From this project, I learned a such AWS services features and how it works. On the technical side, about AWS services, I learned about costs and how optimize, setup of security groups rules, how to encrypt existing EBS volumes properly, ALB and WAF setup, features and rules, Buckets and users security. I also strengthened my skills involving clouding services and application, encouraging me to migrate another applications or to start a new project with a serverless approach.

Regarding project management, I also learned how to think about and make right choices to avoid that your project stay sticked to a specific cloud forever.

infrastructure

DAMS App

Fractal Engenharia -> April-2017 - Present

Project: DAMS

Google Play: https://play.google.com/store/apps/details?id=com.fractalengenharia.DamsApp

Dam safety Android app for manually monitoring auscultation instruments in hydropower and mining dams.

Project Overview

Is a engineering project created to monitoring dams auscultation instruments and perform dam structures visual inspection. The app is able to execute a complete auscultation cycle, registering different information about instruments. The main features are: instrument identification by QR Code, reader person name, instrument readings with confirmation, the app works offline saving data in internal smartphone/tablet database (SQLite), take site/field photos, observations, occurrences and instrument maintenance request registers. The same app is able to execute 'Visual Inspection' of dams, based on form created on SIG²A. The engineer can register structures conditions in site, take photos, and sent information to SIG²A. After auscultation or visual inspection service is completed, all data are sent to web platform (SIG²A) and several PDF reports are generated.

This project was built using Android Studio platform and Java language. The user data is stored using SQLite database. API endpoints from PHP + Symfony Framework.

This project is in production. Currently we have contract with 6 great energy generator groups, monitoring 13 hydro eletric dams, including large, medium and small dimensions dams. Every month more than 1660 auscultation instruments are read at least one time.

Learning Outcomes

From this project I learned to work with Android SDK advanced properties, like ReciclerView, BaseAdapter, SurfaceHolder, SurfaceView, Fragments, sharedPreferences, SQLite database to internal storage, parsing GPS coordinates, listeners, Volley library to Rest API calls, Gradle packages manager, Android code security and key store, Google Play app publish on alfa, beta and production channels, Google Play account management when Google had required code adjusts and credential's do access app and keep it on Google Play, app optimization and code tests in different devices with different screen sizes, modify and evolve code to works on newer Android versions (this app was launched when last Android version was 5 - Lollipop. Actually was on 11 - Red Velvet Cake), among others learnings. It is also worth mentioning about learnings in project files organization, both logic as layouts (for different screen sizes), and also about code internalization with tags for different languages.

DAMS App screen shots

DAMS Auscultation Campaign Validation Report - Python

Fractal Engenharia -> Feb-2019 - Apr-2019

Project Overview

...

Learning outcomes

AngularJS web platform

Fractal Engenharia -> April-2017 - Present

Project: SIG²A

Modular Single Page application with tools for dam safety, hydrology monitoring and hydrology forecast system. Written in AngularJS, and currently in migration to ReactJS with Single SPA library. Backend with PHP Symfony Framework, and Python Django Framework.

Project Overview

SIG²A is a complete web solution to customers visualizing your data, make analysis and to register information about dam security, hydrological river monitoring and river flow predictions to hydroeletric power stations. SIG²A is integrated with DAMS App, SPEHC and RESOP products.

The project is a modular single page application, based on API restful, written in AngularJS and actually in migration to ReactJS with Single-SPA library. Backend is provided by two different projects, as PHP + Symfony Framework, and Python + Django Framework.

Hosted on AWS, has Auth0 authentication service and Business Continuity and Disaster Recovery Plan available.

The project architecture was idealized and developed by me. Currently the platform has 33 modules and I can maintain all them, either JavaScript logic or CSS style. Each module can be considered a different project because its business logic is in Frontend side, written in JavaScript. The most advanced tools comprising numerical calculations and show instruments time series data on graph and spatial information on maps.

SIG²A was built with a version control guideline documentation and every new pull request made, the developer who work on it need to add version description and versioning number.

Learning outcomes

From this project, and because is a long project, I learned a lot of things. On technical side, I learned how to work properly with a single page application project, best pratices of web programming, javascript and ES6 new features, AngularJS tricks and how to solve problems, how to work with Material Desing library and to explore its html/css features properly, and so on. Because AngularJS large files characteristic, I needed to integrate a lazy loading library to charge static files only when necessary to mantain the best user experience. I also streghtened my skills with git versioning, deploy pipelines and dev/stage/production environments. Regarding project management, I learned how to work with developers who not want to work with a specific framework (AngularJS is deprecated since 2018). I learned also how to break down tasks within a module into smaller incremental steps.

SIG²A Web platform

Rainfall-Runoff forecast system (SPEHC)

Fractal Engenharia -> May-2015 - Present

Project: SPEHC

Water resources management operational application. It predicts rivers flow based on how much it rained and how much it will rain in a watershed of interest. In 2021, a port to Python language was written. Written in Matlab and Python. Uses PostgreSQL database engine.

Project Overview

Under construction ...

Learning outcomes

Weather forecast assimilation modules

Fractal Engenharia -> May-2015 - Present

Development of the Telemetric Data Assimilation module from ANA Stations (National Water Agency) for the SPEHC system. Data assimilated to proprietary databases.

Project Overview

Under construction ...

Learning outcomes

Patada de Urso - Landing page (Wordpress)

GHG Tecnologia -> Jan-2018 - Mai-2018

Project Overview

Under construction ...

Learning outcomes

Patada de Urso - AngularJS web platform

GHG Tecnologia -> Jan-2018 - Mai-2018

Project Overview

Under construction ...

Learning outcomes

MetaTrader 5 - Software Developer

GHG Tecnologia -> 2017 - Dez-2017

Trader robot for daytrade operations in mini-index and mini-dollar contracts using Metatrader 5 tool.

Project Overview

Under construction ...

Learning outcomes

Notifymer

Personal project -> Jan 2017 - Feb 2017

Project Overview

App development for Android – Notifymer – Making programmer life easier (alpha version), available on Play Store. Receive Push notifications from any code/software on your smartphone. Before the Telegram channel it was very useful. Project link: https://play.google.com/store/apps/details?id=com.ghgtecnologia.notifymer

Learning outcomes

Port Feasibility Tool

Chigago Bridge & Iron -> Sep 2016 - Feb 2017

Project Overview

Creation of the “Port Operation Regime” tool. Simulation of the operation of ships in ports – Tool developed to find the maximum number of ships that a terminal can operate over a year, changing technical and mechanical characteristics of loaders/unloaders. Tool that uses current fields output from the Delft3D hydrodynamic model, based on a conceptual ship model, navigation channel design, vessel propulsion and maneuverability characteristics, configuration of the number of mooring berths, number of mooring areas and operating time of each berth, to compute the terminal operating fee. Application for ports and port terminals. Tool to be used in conjunction with 'Port Navigation Tool' and logistical studies, in order to study the feasibility of a port terminal, regarding the operation of ships and cargo handling. This tool was developed to study the feasibility of the port terminal in Mearim, MA.

Requirements:

  • Delft3D hydrodynamic current field
  • Navigation channel
  • Navigation windows from 'Port navigation tool'
Learning outcomes

Port Navigation Tool

Chigago Bridge & Iron -> Apr 2014 - Dec 2014

Project Overview

Creation of “Port Navigation” tool. This tool uses current fields from the Delft3D hydrodynamic model, based on a conceptual ship model, navigation channel design, and vessel propulsion and maneuverability characteristics to find possible navigation windows during a given period of time. Application for ports and port terminals.

Learning outcomes

Low cost Tide Gauge

Personal project -> Sep 2015 - Dec 2016

Project Overview

Development of a low cost tide gauge (sea level measurement instrument). Android application development to manage the instrument via Bluetooth, enabling:

  • on/off;
  • receipt of measured data and processing/noise filters;
  • synchronization of consolidated data with api.
Learning outcomes

Wave Forecast Operational System

Personal project -> Sep 2015 - Jun 2016

Project Overview

Development of an operational system for the execution/processing/upload and website to show WaveWatchIII wave forecast results for the Atlantic Ocean, nested with the shallow water wave prediction model SWAN for south and southeast coast of Brazil. Forecast data was then presented on a website. It is a system similar to Waves, SurfGuru, Broou, magicseaweed, surfline, etc.

Learning outcomes

Delft3D-Part Automations

Chigago Bridge & Iron -> Feb 2015 - Jun 2015

Project Overview

Numerical modeling of an oil spill for Santos Bay and adjacent oceanic region. Numerical model used (Delft3D PART module). Development of a tool for automating probabilistic oil simulations using the PART-Delft3D module. Prepared for Companhia Docas of the State of São Paulo (CODESP).

Learning outcomes

Delft3D Morphological Analysis Package

Chigago Bridge & Iron -> Feb 2014 - Jul 2014

Project Overview

Creation of “Delft3D Morphological Analysis Package” tool for processing and analyzing morphological data from the Delft3D numerical model. Focus on sediment transport and analysis of beach environments with coastal works (beach nourishment, rigid structures, breakwater). Performs volume calculations and sediment transport rates for each run in Delft3D, allowing sensitivity tests and morphological calibration.

Learning outcomes

Wave Extreme Analysis Tool

Chigago Bridge & Iron -> Jan 2014 - Mai 2014

Project Overview

Creation of the “Extreme Wave Data Analysis” tool for processing and analyzing extreme wave data, using several statistical models to predict Hs and desired return period. Evaluation of historical series of Hs, Tp, Dir, magnitude and wind direction. Based on the history, the payback period is calculated for each selected variable according to different methodologies (USACE, GEV, Weibull, others). The code was built on a graphical interface making it easy for the user and allowing to obtain this type of information in seconds.

Learning outcomes

XBEACH GUI

Chigago Bridge & Iron -> Jul 2013 - Dec 2013

Project Link

Project Overview

Creation of the “Xbeach GUI” graphical interface of the Xbeach Model (eXtreme Beach Behavior – Delft, Netherlands) to configure the input parameters of the numerical model. It was a graphical interface developed in Matlab during a project at CBI where we used the XBEACH model to simulate extreme event ripples. The motivation was created by the difficulty in understanding and configuring the model. From this, I created a GUI similar to the Delft3D GUI, where it is possible to modify the setup parameters and save the setup file according to the user's choices, besides being able to load a setup and the interface is updated. In addition, a module for viewing the grid and bathymetry of the model in plan was created, and a tool for calculating the shape of the beach in plan according to the parabolic model of Hsu.

Learning outcomes

GUI for model setup

GUI - Visualization Area 1

GUI - Visualization Area 2 - Static Equilibrium Shoreline Analysis

GUI - Visualization Area 3 - Topography profile analysis

GUI - Visualization Area 4 - Land Boundary

Real-time AWAC

Chigago Bridge & Iron -> Jun 2013 - Ago 2013

Project Overview

Creation of software in a Matlab environment for reading and processing AWAC data (instrument deployed at the aqueous environments that measures waves and currents) in real time, from the Hydrodynamic Forcing Monitoring System in the Tubarão complex, Vitória/ES. The software received binary data through the serial port, converted it to hexadecimal, processed the information, displayed it on the screen and stored it in ASCII files. The connection cable was connected directly from the instrument to a connection box in a sheltered place where the processing was done.

Learning outcomes

Popular repositories Loading

  1. xbeach_gui xbeach_gui Public

    Matlab xbeach_gui

    MATLAB 2

  2. My_Matlab My_Matlab Public

    nesC 6

  3. speh speh Public

  4. angular-leaflet-directive angular-leaflet-directive Public

    Forked from tombatossals/angular-leaflet-directive

    AngularJS directive to embed an interact with maps managed by Leaflet library

    JavaScript

  5. angularjs-test angularjs-test Public

  6. gustavo-career-history gustavo-career-history Public

    about me

    JavaScript

1,350 contributions in the last year

Contribution Graph
Day of Week February March April May June July August September October November December January February
Sunday
Monday
Tuesday
Wednesday
Thursday
Friday
Saturday
Less
No contributions.
Low contributions.
Medium-low contributions.
Medium-high contributions.
High contributions.
More

Contribution activity

February 2025

40 contributions in private repositories Feb 3 – Feb 17
Loading

Seeing something unexpected? Take a look at the GitHub profile guide.