Decisiv: Lead Software engineer - data engineering, 2017 - April 2019
- I’ve modernized the data ingestion and data pipeline architectures using modern standards, since then I’ve been responsible (in regards of technical decisions) for the effort to migrate the old standalone ETL and intake scripts to a more solid managed pipeline solution following the Twelve-Factors methodology.
- I’ve crafted a DAG DSL to define processes and dependencies. In order to improve performance and parallelism steps, I’ve implemented a simple topological sorted based scheduler
Paternity leave from September 2017 to November 2017
Wattx: CTO in Residence, June 2017 - August 2017
- I worked in tandem with the data science team to implement differential privacy-preserving techniques based on available public research. We’ve implemented an engine to generate a representation of tabular data using Probabilistic graphic models and Gaussian copulas/histograms, where we can use this model to sample data and generate privacy-preserving data without revealing personal information from specific individuals.
Dentolo: Interim CTO - contract, January 2017 - April 2017
- I temporarily joined the team composed of a junior developer and a product designer, as a result of the former CTO and co-founder left the company for personal reasons. After identifying the bottlenecks in both product and tech, I established an Agile culture across the team. In the last three months, we delivered three new projects: A customer acquisition tool in React/Redux, a workflow, and state machine for dental treatment classification in Ruby on Rails and a simple patient API.
Applift: Director of Engineering, 2016
- I was responsible for the engineering management of 7 developers, hiring, technology KPIs, and architecture decisions together with the team.
- When I joined, the product was facing several issues regarding scalability and uptime. In several occasions during peak time, the monolithic architecture blocked several chunks of time to perform background processing tasks like sync views, conversions, and fraud detection. The Ruby on Rails / Rescue architecture wasn’t enough to handle the traffic load of an AD server, to mitigate this we implemented a command pattern like using Elixir. Since the team had extensive experience with Ruby, picking up Elixir wasn’t a problem, which gave us a distributed system like architecture so we could rely on OTP’s State machine, Events, and Supervisors. This project was deployed on EC2 Containers.
- After we finished this project we started to design a new event data pipeline architecture but unfortunately, the company finance wasn’t favorable, and we couldn’t grant enough funding to support the whole development area, so the management decided to enter maintenance mode and close the engineering department.
Trecker: Sr. Software Engineer, October 2015 - February 2016
- I extracted and optimized the event position API which constantly kept tracking of mobile devices location and automatically categorized and classified each time chunk accordingly.
- I’ve remodeled our data store from discrete chunks of time to a continuous stream of events, that was a crucial improvement that lead to a simplyfication on data classification and summarization
- I’ve also implemented a series of filters to smooth GPS data and interpolate missing coordinates.
BrasilCT: Director of Technology, 2014 - 2015
- I started as the Engineering lead/Architect when the company was in an late early stage. But soon as we begun to grow I transitioned to the director of engineering role reporting directly to the COO. At the time I left the company, I was managing 26 agile developers in total, split in 4 teams.
- Together we developed a B2B/B2C e-commerce platform in Ruby on Rails. The core application integrated with different internal and external services and tools like CRM, CMS, warehouse inventory management, shipping integration and payment processing.
- The payment engine and payment integration with the Mastercard loyalty program manager enabled our core to be used as a redeem for the entire Santander Rewards program in Brazil. This product was developed in Java 7 using several security standards to match the PCI certification criteria.
- Due to the differences in the challenges each team had to deal with, we established different development life cycle, where the store and mobile teams were fast paced. Meanwhile, the integration and payment teams had a long release agenda. Both teams used a ScrumBan approach.
- The whole system was deployed on Amazon AWS (mostly EC2 and RDS) using continuous delivery and feature flags. System integration was performed by a mix of REST flavored web services and producer/consumers/scheduled tasks on top of RabbitMQ.
elo7.com: Lead software engineer - Search, 2012 - 2013
- I joined Elo7 when the company was acquired from a sole developer by an investment fund. As the first senior hire, me and the CTO at the time (which used to be my manager at Locaweb) started to shape the new team and professionalize the software development area.
- The first project I worked was the migration from a single application server bare metal host to separated Amazon EC2 instances. - which trigged a decoupling and refactory effort to split high dependent components and allow us to deploy several instances of the same application in different nodes. I also took responsibility for infrastructure orchestration and SRE duties for the marketplace during this time.
- The second project was to integrate a payment engine since previously; all the payment was manually processed using boletos (Brazilian invoices). During this time we refactored several parts of the application to solve race condition, resource locks, and security issues.
- As we started to grow, I focused my efforts in the search architecture. I got an ok to assemble, and we started to evolve the search architecture. First, we migrated from sphinx-search to Apache Solr, then we created an agnostic API to treat categories, home verticals and product recommendation as search queries on Solr. In the end, the entire portal structure was served by the search APIs
- We later incremented the search API to handle asynchronous indexing and split the processing across several Solr instances (it was before Solr cloud was available), so we could deploy different Solr indexes tweaks and track their performance using Statsd.
- I presented a few tools and techniques about this project at QCON Sao Paulo - 2013
R7: Lead software Architect, 2011
- In charge of architecture and development of a distributed web content publishing system. I had heavy ownership on tech direction and influence on cultural change, advocating lean techniques.
Locaweb: Software Engineer specialist, 2010
- I joined Locaweb to help deliver an online backup scheduler and management system.
- I’ve developed a SaaS ecommerce platform
Globo.com: Sr. Software Engineer, May, 2008 - 2009
I spend my first six months with the CMS platform team taming their multi-services distributed architecture; then I joined the new web semantics team where we’ve implemented a new approach for the entire portal using web semantic concepts. We’ve developed internal knowledge extractors and classifiers to increment news relevance.
Redhat: Sr. Software Engineer, 2007 - 2008
- I worked on the Drools R&D team as one of the core developers of the Guvnor project, which is a centralized repository for Drools Knowledge Base.
- I also helped to integrate Drools core into the ESB/SOA platform, and I also engaged in onsite Drools training for customers in Brazil.
Solvo S/A: Software Developer, 2006
- Implemented a backward compatible and open source IBM Open Class replacement using the C++ standard library to support old projects on their way to an AIX upgrade.
- Integration between legacy systems, JVM Tuning and Performance consultant for different projects
Netcom Systems: Junior Software Developer, 2005
- I have modeled and implemented a system specialist in network summarizing and traffic control.
- I’ve implemented collectors and summarizers to process Simple Network Management Protocol (SNMP) statistics and store in an RRD a per IP database of internal network load by services.
SPCOM: Junior Software Developer, 2004
- Implemented a web component using C++ to interface with the Siemens HiPath PABX to allow call center operators to control inbound and outbound calls only via the scripting application.
- Implemented several features in house and customers’ financial and insurance web apps using Java J2EE
Universidade de São Paulo - USP, São Paulo, SP, Brazil
B.Sc. Applied Mathematics, 2013 - 2014: Before moving to Germany, I took the following courses during three semesters: Discrete Mathematics, Real and Complex analysis, Single and Multivariate Calculus, Probability and Statistics, Mathematics modeling and Linear algebra.
Universidade Estadual do Oeste do Paraná - UNIOESTE, Foz do Iguaçu, Paraná, Brazil B.Sc. Computer Science, 2001 - 2004 (droped out in the next to last semester)