Rodrigo Ferreira, Compilers Developer in Belo Horizonte - State of Minas Gerais, Brazil
Rodrigo Ferreira

Compilers Developer in Belo Horizonte - State of Minas Gerais, Brazil

Member since December 18, 2019
Along with a Ph.D. degree 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.
Rodrigo is now available for hire

Portfolio

Experience

  • Compilers 20 years
  • Coq 15 years
  • Python 10 years
  • Trading Systems 4 years
  • Blockchain 4 years
  • Solidity 3 years
  • Cryptocurrency Wallets 2 years
  • Rust 2 years

Location

Belo Horizonte - State of Minas Gerais, Brazil

Availability

Part-time

Preferred Environment

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

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.

Employment

  • 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: TypeScript, Firebase, MySQL, Rust, WebSockets, Bitcoind, Geth, Ripple, Docker, GitHub, CircleCI
  • 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: PHP, Yii, jQuery, JavaScript, MySQL, WordPress
  • 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: C++, DirectX
  • 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: Java, JavaCC

Experience

  • Cashu Mobile Crypto Wallet (Development)
    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 (Development)
    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.

Skills

  • Languages

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

    Blockchain, Docker, Ethereum, Firebase, JVM, Android, Linux
  • Industry Expertise

    Trading Systems, Cryptocurrency
  • Other

    Compilers, Grammar & Language Creation, Semantics, Verification, Cryptocurrency Wallets, Digital Currencies, WebAssembly, Smart Contracts, Bitcoin, Bitcoind, Ripple, Elliptic Curve Cryptography, Cryptocurrency Development, Ethereum Smart Contracts, zkSNARKs
  • Libraries/APIs

    Node.js
  • Tools

    Docker Compose, Geth, CircleCI, Git, LaTeX
  • Paradigms

    Functional Programming
  • Storage

    MySQL

Education

  • Doctor of Philosophy (Ph.D.) degree in Computer Science
    2003 - 2010
    Yale University - New Haven, CT, USA
  • Master of Science degree in Computer Science
    1999 - 2001
    UNICAMP | The University of Campinas - Campinas, Brazil
  • Bachelor of Science degree in Computer Science
    1995 - 1998
    UFMG | Federal University of Minas Gerais - Belo Horizonte, Brazil

To view more profiles

Join Toptal
Share it with others