Rodrigo Ferreira, Developer in Belo Horizonte, Brazil
Rodrigo is available for hire
Hire Rodrigo

Rodrigo Ferreira

Verified Expert  in Engineering

Software Developer

Location
Belo Horizonte, Brazil
Toptal Member Since
February 7, 2020

Along with a Ph.D. from Yale, Rodrigo is a computer scientist and software engineer with a background in formal semantics, program verification, and compilers. When conceiving computation systems, Rodrigo always prioritizes simplicity, performance, and integrity. He’s deeply interested in cryptocurrencies/blockchain—having developed both a mobile wallet and an exchange.

Portfolio

AllCoinWallet
CircleCI, GitHub, Docker, Ripple, Geth (go-ethereum), Bitcoind, WebSockets...
Pousadinhas
WordPress, MySQL, JavaScript, jQuery, Yii, PHP
AMD (former ATI)
DirectX, C++

Experience

Availability

Part-time

Preferred Environment

Go, Assembly, Web, Git, C, C++, Rust, Python, TypeScript

The most amazing...

...software I've created was JewelVM, a clean room JVM mostly written in Java (self compiled), bundled with a x86 code generator, class library, and a C runtime.

Work Experience

Senior Blockchain Scientist

2018 - 2019
AllCoinWallet
  • Developed the back end of a spot trading engine for a cryptocurrency exchange. This includes the order matching algorithm, the hot wallets (address generation/transaction processing), as well as the security measures (database signatures/encryption, 2FA).
  • Oversaw the code repository, approved PRs in a team of up to ten people, and implemented most of the CI infrastructure and was responsible for deployment, versioning and code review/release.
  • Maintained cryptocurrency nodes for Bitcoin, Bitcoin cash, Ethereum, Litecoin, and Ripple.
  • Wrote an extension of the BOLT Firebase rule generator that, besides generating database validation rules, also provided the associated TypeScript declarations, and scheme validators; a unified typed framework for end-to-end type-safe app development.
  • Wrote a decimal library for TypeScript to overcome the limitations of the number type. This library provided great abstraction over financial calculations avoiding rounding errors, saving many hours of debugging for the whole team.
  • Developed the platform's public REST API used by third parties to interface the order matching engine.
  • Wrote the integration with the Simplex API to enable customers to purchase crypto assets using a credit/debit card.
  • Worked with a colleague on a payment gateway and its REST API for third-party product/service invoicing in Bitcoin, with support for multi-recipient split-payments.
  • Worked on multiple internal trading bots, including liquidity and arbitrage bots (these were side projects).
Technologies: CircleCI, GitHub, Docker, Ripple, Geth (go-ethereum), Bitcoind, WebSockets, Rust, MySQL, Firebase, TypeScript, Blockchain, Ethereum, Smart Contracts, Solidity, Bots

Co-founder | CTO

2012 - 2016
Pousadinhas
  • Served as the sole developer of a commercial-grade hotel booking application—responsible not only for the full software stack, including DevOps but also highly involved in the business, sales, marketing, and growth aspects of the company.
  • Integrated the platform with TripAdvisor's TripConnect metasearch API, which allowed partner hotels to show up on TripAdvisor with Cielo payments, for credit/debit card payments in Brazil, and with PayPal for international payments.
  • Integrated the platform with the Xero accounting API, providing a real-time financial picture of the company, and with the Brazilian government servers, in order to issue electronic invoices (NFS-e).
  • Built a powerful web scraper that would search the web for potential partners and automatically collect pictures and public information (address, GPS coordinates, description), building a prospectus of each property to be used by salespeople.
  • Developed an automated social media (Facebook, Twitter, Instagram, Pinterest, and Linkedin) poster that would generate pictures, shortened links, hashtags, and actual availability/pricing of hotels, scheduling days of high-quality content in minutes.
  • Worked on a proprietary social media growth algorithm that would automatically acquire hundreds of new followers per week with minimal expenditure on ads.
  • Designed and implemented an OAuth-based REST API used for third-party communication with the platform including the platform's mobile app; also composed the full documentation of the API.
  • Designed more than 100 mobile app screens, based on the company's visual identity and functionality, which were outsourced to an external mobile development company.
  • Worked on a booking widget written in JavaScript (iframe and scripts) to enable hotels to process bookings via the platform without leaving their website.
  • Integrated a WordPress blog engine into the platform with many customizations and tight coupling with the PHP application offering users and guest publishers a seamless experience.
Technologies: WordPress, MySQL, JavaScript, jQuery, Yii, PHP

Shader Compiler Intern

2005 - 2006
AMD (former ATI)
  • Worked for two summers at the graphics card manufacturer ATI, later acquired by AMD, as part of the Shader Compiler team. The team was responsible for delivering the just-in-time compiler that runs inside their proprietary GPU driver.
  • Primarily worked on an experimental compiler optimization to exploit the parallelism of their GPU.
  • Fixed bugs and wrote a few punctual optimizations for the code generator, on the production base (the summer of 2016).
  • Built a tool to profile spacial coherence of the execution, aimed to gather data for further compiler improvements.
Technologies: DirectX, C++

Junior Software Engineer (Telecommuting Position)

1998 - 1999
IntelliGenesis
  • Worked for this NY-based website startup during my senior year in college. The company was focused on building an ambitious distributed AI system, inspired by the Java motto "write once, run anywhere."
  • Designed a dynamically typed scripting language (WMSL) used to program the distributed system core at a higher-level of abstraction. This was before JavaScript became the de-facto scripting language for the web.
  • Implemented two versions of the language interpreter, using both bottom-up and top-down parsing strategies, due to the primitive support for multithreading provided by the Java language at the time.
Technologies: JavaCC, Java

Cashu Mobile Crypto Wallet

https://cashu.cc/
Cashu is an open-source non-custodial cryptocurrency wallet for mobile devices supporting more than 30 digital assets. Support is included for Bitcoin (and variants), Ethereum, ERC-20 tokens, Ripple, Stellar, Cardano, Neo, Tron, Nano, Lisk, and possibly others.

Cashu works as a mobile calculator; it performs all the mathematical work involved in computing keys and addresses, as well as transaction creation and signing while querying balances and transaction history from public explorers.

To write this software, I studied and implemented from scratch the three most popular elliptic curve public-key cryptography standards (secp256k1, nist256p1, and ed25519) and multiple hashing algorithms. I also had to get familiar with the transaction format, the explorer API, and idiosyncrasies of each supported coin, including Bitcoin's BIP32/BIP44 for HD wallet implementation.

JewelVM

https://github.com/jewelvm
The Jewel Virtual Machine was a clean-room implementation of the JVM that incorporated an innovative built-in JIT cache, eliminating the need for recompilation in future executions of the same application.

As part of the implementation, I wrote (in Java): a class file parser and verifier; a converter to a tree-based typed IR; an SSA optimizer incorporating many classical and object-oriented optimizations; and a concrete register allocator/code generator targeting the x86 architecture.

To manipulate the IR, I engineered a tree rewriting tool for Java based on Iburg, called RInG. As part of the runtime, I wrote (in C): the Java Native Interface (JNI); a customized free-list memory allocator; and a mark-and-sweep garbage collector. I also wrote a highly portable mini Java class library, called GLASSES (Generic cLASSES), suitable for experimental and embedded systems.

Unfortunately, JewelVM was discontinued in 2004.

Languages

C, Solidity, TypeScript, Rust, Python, Coq, C++, Java, PHP, JavaScript, SQL, Assembly, Go, Assembly Language

Platforms

Blockchain, Docker, Ethereum, Firebase, JVM, Android, Linux, Web, WordPress

Industry Expertise

Trading Systems

Other

Compilers, Grammar & Language Creation, Semantics, Verification, Cryptocurrency Wallets, Digital Currencies, WebAssembly, Smart Contracts, Bitcoin, Bitcoind, Ripple, Elliptic Curve Cryptography, Cryptocurrency, Cryptocurrency Development, Ethereum Smart Contracts, Bots, Crypto, WebSockets, zkSNARKs, Computer Science

Libraries/APIs

Node.js, Binance API, Web3.js, jQuery, DirectX

Tools

Docker Compose, Geth (go-ethereum), CircleCI, Git, LaTeX, GitHub, JavaCC

Paradigms

Functional Programming

Storage

MySQL

Frameworks

Yii

2003 - 2010

Doctor of Philosophy (Ph.D.) Degree in Computer Science

Yale University - New Haven, CT, USA

1999 - 2001

Master of Science Degree in Computer Science

UNICAMP | The University of Campinas - Campinas, Brazil

1995 - 1998

Bachelor of Science Degree in Computer Science

UFMG | Federal University of Minas Gerais - Belo Horizonte, Brazil

Collaboration That Works

How to Work with Toptal

Toptal matches you directly with global industry experts from our network in hours—not weeks or months.

1

Share your needs

Discuss your requirements and refine your scope in a call with a Toptal domain expert.
2

Choose your talent

Get a short list of expertly matched talent within 24 hours to review, interview, and choose from.
3

Start your risk-free talent trial

Work with your chosen talent on a trial basis for up to two weeks. Pay only if you decide to hire them.

Top talent is in high demand.

Start hiring