Placeholder image

João Gilberto Balsini Moura

Senior Software Engineer

Brazilian / Italian

36 years old


Currently living and working remotely from Florianópolis, SC, Brazil.

Where is Florianópolis?

What time is in Florianópolis?

Scroll down to learn a bit more about me...

Experience

Placeholder image

Senior Software Engineer
Enzyme

San Francisco / USA (Remote)

July/2021 - Present

Currently adding new features to the existing Enzyme QMS

Working on the migration from the existing APP from EmberJS to Elixir Liveview.

Ruby Ruby on Rails Elixir Phoenix PostgreSQL EventSourcing CQRS EmberJS Javascript
Placeholder image

Senior Software Engineer
The Real Real

San Francisco / USA (Remote)

December/2020 - July/2021

Worked on Employees Efficiency Tribe on K2 team

Developed Elixir/Phoenix and Ruby/Rails solutions to improve our Authentication and Pricing.

Led the docker project: already reduced onboarding time of new employees from 2 weeks to less than a day.

Tech lead of the price approval project. The goal was to automate manual tasks to reduce costs (900.000 USD yearly) while improving work quality for our employees.

Ruby Ruby on Rails Elixir Phoenix Docker Kafka MySQL PostgreSQL Heroku
Placeholder image

Senior Sofware Engineer
Lean panda

Firenze / Italy (Remote)

Jun/2020 - January/2021

Developed an Application for a group of Real Estate Agencies using Phoenix Framework and Phoenix Liveview. The stack included Docker, Postgres and Gitlab. Also there was some map related work with Postgis. Tech Lead of the project, responsible for all the implementation of a project and its stack: CI/CD, frontend and backend.

Tutored developers on migrating from Ruby to Elixir and helped create standards for Elixir development.

Eventually worked on some existing Ruby on Rails projects as well, fixing issues, and adding new features.

Elixir Phoenix LiveView Gitlab Heroku Tests E2E Tests CI/CD Docker PostgreSQL
Placeholder image

Sofware Engineer
Asolvi

Trondheim / Norway (Remote)

March/2019 - May/2020

Specified and developed three services from scratch. Two of them implemented GraphQL APIs using Absinthe.

On the backend we used Elixir, Ecto, PostgresSQL and MSSQL.

On the frontend we used a mix of vanilla Javascript, VueJS and Phoenix Liveview.

We worked on the whole stack, including architecture, tests, and deployment to Azure Cloud using Docker containers and build pipelines that implement multiple checks (formatter, dialyzer, tests, e2e tests) before deploying to production.
READ MORE

Elixir Phoenix LiveView GraphQL Azure Devops Tests E2E Tests Cypress TestCafé CI/CD Docker VueJS PostgreSQL MSSQL Terraform
Placeholder image

Managing Partner/CEO
Construtora Barbosa Moura

Tubarão / Brazil (Onsite)

March/2013 - February/2019

Successfully managed a real state and construction company with around 50 employees and contractors. The conflicts were reduced by a big margin at the same time the ownership of tasks was improved.

Migrated new company projects from CAD to BIM, that change made our projects a lot easier to track, increased the quality of the construction, reduced maintenance and as a consequence, increased our revenue.

Managed the construction of two buildings around 10.000 m2 from foundation to deliver.

READ MORE

BIM Management Real State Engineering Ruby Ruby on Rails Angular.JS MySQL Firebase
Placeholder image

Software engineer
Construtora Barbosa Moura

Tubarão / Brazil (Onsite)

March/2008 - February/2013

Successfully replaced Excel, used to manage parts of the company, with a modern ERP system that I developed using Ruby on Rails, Javascript and MySQL.

Improved a lot how the company worked, allowing staff to do a lot more, with more quality, in less time.

Made new data available in real time to managers to better understand the company through reports.

READ MORE

Ruby Ruby on Rails Tests Rspec MySQL NoSQL Firebase Javascript JQuery Angular.JS

Recommendations

Placeholder image

Janne Langø

Head of People Operations at Asolvi

"Joao has shown enthusiasm and ownership for his work from his first day with us. He is a professional and passionate developer and is well liked by his team members.""


Placeholder image

Tanja Tollin

Product Owner at Asolvi

"As a product owner in Asolvi, I have had the pleasure to work with Joao Gilbert Balsini Moura. Joao is the one that the other team members turn to for advice, he is very skilled and shows a very good understanding of the business and how to translate this into the product they are creating. He works methodically and structured and playes a key role into creating such a collaborative spirit in the team. He also brought a very easy-going social attitude to the team, which I think is key to create a good working environment."


Placeholder image

Camilla Rygh

Elixir developer at Asolvi

"Joao is always there if you need a hand. Despite being far away and in a different time zone, he shows up when he is needed the most and always with a positive attitude. He has a way of identifying tasks that are neglected by the team, for example if we fall behind on code reviews, leading to consistency in the work we do and how we do it."


Placeholder image

Dee Roberts

Elixir developer at Asolvi

"Joao has a fantastic work ethic, and is always willing to take on tricky items and see them through. His experience and skill as a developer means the end result is always top notch, both in code quality and user experience. He's also just an absolute pleasure to work with, always happy and bright no matter how things are going, which has really helped bring the team together."

Education

Master Business Administrator - FGV - Brazil

March/2010 - June/2012

Learned soft skills needed to manage a real state and construction company. Changed experiences with other managers and company owners.

Management Real State Construction Finances Planning

Electrical/Mechatronics Engineering, BSc - UFSC - Brazil

January/2003 - December/2007

Control engineering, automation, electrical and software engineering.

Java C++ Algorithms Assembly Control Engineering

Elixir Conference US August/2019

Release the Kraken… Err… Elixir!

Learned a lot about releases using Distillery. Had an introduction to Elixir releases. Learned about debugging systems running on production.

Elixir Releases Distillery Observer

Elixir Conference US August/2019

Elixir in the Jungle

Learned about terraform and how to deploy code to Amazon AWS.

AWS Terraform Elixir Releases

Soft skills

Personal

Very fast learner.
Self motivated with proactive behavior.
Good analytic capacity.
Love challenges and problems to solve.


Languages

Portuguese: Native
English: Fluent
French: Basic

Personality test

The Scientist
"INTJ's live in the world of ideas and strategic planning. They value inteligence, knowledge, and competence, and tipically have high standards in these regards, which they contiuously strive to fulfill."


Objetives

To work in a nice software company and solve problems using the right programming languages and tools for the job.
Improve people lives and work quality through good software.

Open source contributions

Hab

Fixed loading of environment variables

Before that fix, Hab didn't load environment variables automatically on zsh shell. So, when you opened a new shell, you needed to manually switch folders (using cd .) to make it reload the variables.

Zsh Shell

Phoenix Live view

Fix crash when name of element ends on []

When you used liveview with select of type multiple the rendered element had name ending with "[]", something like name = 'object[attribute][]'. I proposed a fix to that problem.

Elixir Phoenix Phoenix Liveview

Rails 4 - ActiveRecord bug

Rails 4 - ActiveRecord bug

Discovered a small issue on activerecord while debugging an issue on a production application. The problem arised when trying to query while eager loading multiple has and belongs to many relations with same coloumn names.

Rails ActiveRecord MySQL

Maestro

Helped on initial setup and documentation

Before this contribution the mix tasks defined by Maestro were generating migrations on the wrong folder. I also made another contribution to this project, adding the missing Jason dependency.

Elixir Event Sourcing CQRS

Other projects

Project for Liveview article

Authentication and Authorisation in Phoenix Liveview

A big article on how to securely implement authentication and Authorisation in Phoenix Liveview.

Link to article: Link

Elixir Phoenix Liveview Authentication Authorisation

Chat application in Liveview

A very simple but feature rich chat application

A feature rich chat application that uses all Liveview bells and whistles. You have presence, to identify who is online, and typing indicators, to know who is writing.

Elixir Phoenix Liveview Presence

Massive multiplayer online game

Board game implemented in Elixir

A multiplayer board game implemented using Elixir. It uses a multiple Genservers to maintain state of the board. I used phoenix liveview and phoenix pubsub to push realtime updates to all users.

Elixir Genserver Supervisor

Carbon Intensity

Gathering and processing data from API using GenServer, RabbitMQ and Broadway.

A service written in Elixir that queries an API for previous and actual values and saves the data into influxdb. It uses RabbitMQ and Broadway to deal with a big chunk of historical data.


Elixir GenServer RabbitMQ Broadway