Matheus Degiovani - CV

Technologist & Software Engineer

Contact

cv@matheusd.com
mathdegiovani@gmail.com
Skype: matheus.degiovani

https://matheusd.com
https://matheusd.com/coolstuff
https://github.com/matheusd
https://twitter.com/matheusd_tech
https://www.linkedin.com/in/matheus-degiovani-69ab0166/
https://www.facebook.com/matheusdtech

Technologies

  • Programming languages: Go, Javascript/ES6, PHP, Delphi, Python, Java, C, Shell Scripts
  • Database Technologies: PostgreSQL, MySQL, Firebird, SQL Language
  • Methodologies: Agile Development, Waterfall Development, Functional Programming, Object Oriented Programming
  • Programming Techniques: Unit and functional testing (*unit, selenium), dependency injection, ORM, MVC, REST
  • Frameworks: Vue.js, React/Redux, JQuery, Gorilla Toolkit, Electron, Ionic/Cordova
  • Infrastructure Technology: Ansible, Vagrant, AWS, Prometheus, Digital Ocean, Xen
  • OS Technologies: Windows, Linux (Ubuntu, QubesOS), FreeBSD
  • Software: Hugo, LibreOffice, MS Office, Borg/Attic
  • Internationalization with i18next, react-intl
  • Graphics Programming with OpenGL and 3d Engines (GLScene)
  • Network Programming
  • Remote & International work

Work Samples

Included below are links for a few work samples, PRs, side projects and other public, programming-related stuff. This list is biased towards Free Software work as that can be freely linked, but I have worked on many closed source projects for clients, and would love to discuss my experience over a call.

Make sure to also look at my cool stuff page on my website.

Zero Allocation Perf Improvements

https://github.com/CloudyKit/jet/pull/201
https://github.com/woodsbury/decimal128/pull/2

Related Technologies: Golang

While working on a personal (unreleased) project, I determined that both Jet and Decimal128 were almost perfect for my use case, but a software hot path that involved both could lead to a very large number of heap allocations, and thus GC pressure.

The above PRs are improvements to both libraries, such that they can be used with zero heap allocations, thus significantly increasing performance.

Decred/Rosetta Middleware Service

https://github.com/decred/dcrros

Related Technologies: Golang, Docker

This is a Coinbase’s Rosetta implementation that processes Decred’s blockchain and offers the required Rosetta API.

Porting Fee Estimation to Decred

https://github.com/decred/dcrd/pull/1434

Related Technologies: Golang, Cryptocurrencies, Bitcoin.

This was my first new feature for Decred’s dcrd full node implementation: a port of the original (C++) code for fee estimation done in the Bitcoin Core software.

Decred Split Ticket Matcher

https://github.com/matheusd/dcr-split-ticket-matcher

Related Technologies: Golang, WebAssembly, Distributed Systems, Network Programming.

One of my major contributions to the Decred ecosystem: a trustless and permissionless way for multiple people to purchase shared Decred voting tickets, which are used for the platform’s governance.

Implementing i18n in Decrediton

https://github.com/decred/decrediton/pull/746

Related Technologies: Javascript/ES6, Babel, React, Redux, Electron.

This was one of my first major contributions to Decrediton. This PR switches the whole app to be translated. The internationalization was implemented using react-inl and the actual translation is performed at transifex.

PyPaperBak - Paper Backup

https://github.com/matheusd/pypaperbak

Related Technologies: Python

This was a quick side project I wrote from start to finish, showing how to backup and restore information from paper backup using QR Codes.

Bugfix to Firebird’s PHP Driver

https://github.com/php/php-src/pull/309

Related Technologies: C, PHP, Firebird

Back at Gigatron when I started writing the first web apps linked to the legacy firebird database, I encountered a few bugs in the PHP driver and had to fix them to be able to proceed.

Interactive PID tutorial

https://matheusd.github.io/graf-pid/

Related Technologies: HTML, Javascript

This is an interactive, graphical tutorial on how PID controllers work. Back when I developed the software for CNC machines, I had to constantly teach support staff how PIDs worked, so I wrote a small interactive tutorial. Source available at Github.

Qubes + Borg Backup

https://github.com/matheusd/qubes-borg-rsyncnet

Related Technologies: Shell Scripts, Borg, QubesOS

Having automated backups is essential for any professional. This is a small tutorial, along with a few sample scripts, on how to setup backup using Borg Backup and Rsync.net for a QubesOS install (my current OS of choice).

Previous Experience & Accomplishments

2017/current - Freelance Developer, software engineer and consultant

I’ve been working as a contractor and freelance software developer for technology companies. Some of my public contributions can be found at my Github page.

I’m currently working as a Decred independent contractor. Decred is a cryptocurrency aiming to become a Descentralized Autonomous Entity through the deployment of blockchain-based governance solutions.

2009/2017 - Developer, Senior Technical Lead & Project Manager

Senior Developer & Project Manager Gigatron Tecnologia (www.gigatron.com.br). Senior developer and manager of multiple projects, including:

  • CNC Controller for mills, plasma machines and custom projects
  • Desktop solutions for reporting, labels and ERP software
  • Web projects for franchise management
  • Development, support, training and sales support roles
  • Full Stack Web development (mostly in PHP + PostgreSQL)
  • Mobile development (Android native and Ionic/Cordova)

Greatest contributions along the years include:

  • Closed an international IP transfer agreement which bootstrapped the CNC division;
  • Bootstrapped the technical aspects of the Certificate Authority division;
  • Development of several projects over the years which proved essential to the company’s success;
  • Mentoring junior developers, allowing them to grow into very capable professionals;
  • Serving as a generalist technologist, able to pick-up and learn new software and methodologies to support the business in a variety of ways
  • Working as effective senior technology officer during company-wide decision making events

2006/2008 - Network Administrator

ETEC Prof. Alcídio de Souza Prado (www.etecalcidio.com.br).

Manager of the a Technical School’s intranet (140+ computers), implemented services for web proxy, caching and access control, computer lab and user management which included development of back-end (PHP and Shell Scripting and IPFW plugin development) and front-end (PHP, javascript and HTML) tools, along with deployment of software such as: FreeBSD, Squid, Dansguardian, Samba, Apache, MySQL, ftp clients and servers.

2008 - First Place at State OAH 2008

ETEC Prof. Alcídio de Souza Prado (www.etecalcidio.com.br)

While a teacher at ETEC Alcídio, I helped a group of students to qualify for Brazilian algorithms olympic (OAH 2008 - Olimpíada de Algoritmos Hostnet). They were able to qualify at the first place on the state tryouts and received the honor to compete on the nationals at Latinoware, in Foz do Iguaçu later that year.

2005/2008 - Computer Teacher

ETEC Prof. Alcídio de Souza Prado (www.etecalcidio.com.br)

Teacher of computer topics for technical level school in Orlândia, SP (Brazil). Subjects taught include: Networking, Visual Basic, VBScript, hardware, programming logic, DOS, Windows, Linux and Software Engineering.

2005 - Publication in International Conference

Publishing of a paper entitled Sincronização de Ambientes Virtuais X3D [X3D Virtual Environment Synchronization] in Terceiras Jornadas de Engenharia de Electrónica e Telecomunicações e de Computadores, Lisboa, Portugal.

2002/2008 - Freelancer

Worked as freelancer developing and deploying several solutions to a variety of different business, including work in the CAD industry and as network administrator for business and schools in my district.

2002/2006 - Developer

TILT Online (www.tilt.net).

Game developer and writer of technical articles and e-books on game programming for the website TILT Online.

2002/2006 - English Teacher

ACBEU-O (Orlândia - SP).

English Teacher at a local private school. I passed the Examination for the Certificate of Proficiency in Engish (ECPE) from the University of Michigan.

Academic Experience

2008 - Course and Exams for Teaching License in Brazil

During 2008 while teaching at a local technical school I underwent certification for a teaching certificate (“licenciatura”) in Brazil.

2002/2005 - Bc. in Computer Science

Universidade de Franca

Graduated with a thesis entitled “Sistema para Sincronização de Ambientes Virtuais Usando X3D” [System for Virtual Environment Synchronization Using X3D], receiving an award for the university’s best Computer Science thesis of the year.


Comments