Matheus Degiovani - CV
Technologist & Software Engineer
Contact
cv@matheusd.com
mathdegiovani@gmail.com
Skype: matheus.degiovani
Links & Social Networks
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.
Decred’s Decentralized Treasury
https://github.com/decred/dcps/blob/master/dcp-0006/dcp-0006.mediawiki
https://github.com/decred/dcrd/pull/2170
Related Technologies: Blockchain, Distributed Systems, Golang.
I was part of the team effort in proposing, writing and deploying Decred’s Decentralized Treasury infrastructure, which runs completely on the chain’s Layer 1 level. This feature ensures that no single person has keys to Decred’s Treasury and the disbursement process involves every Decred stake participant.
Improving Wallet Sync Time
https://github.com/decred/dcrwallet/issues/2289
Related Technologies: Blockchain, P2P Protocols, Golang.
I profiled and determined ways to improve the performance (CPU, memory and total time) of the sync process for SPV (Simple Payment Verification or “light”) wallets, including introducing new P2P-level messages on the node for batch synchronization.
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 Lightning Network to Decred
https://matheusd.com/post/announcing-dcrlnd/
https://github.com/decred/dcrlnd
Related Technologies: Blockchain, Distributed Systems, Bitcoin, Golang.
I was one of the contributors and maintainers of Decred’s port of the Lightning Network. Besides Bitcoin, Decred is one of the few cryptocurrencies with an active LN deployment.
Decred’s LN has seen active use with the release of Bison Relay, a new Social Media platform that uses LN as its spam prevention and monetization system.
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-based Decentralized Autonomous Entity.
Over the years at Decred, I’ve worked on several initiatives, including:
- Part of team that worked on the decentralized treasury consensus upgrade
- Lead developer and maintainer of Decred’s Lightning Network port
- Designed and developed the multi-owner ticket splitting solution
- Proposed new cryptographic protocols and consensus rules to several areas of the project
- Full-stack work: both on the front-end (Electron) and back-end (Go) of wallet software
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.