I'm an experienced software engineer who likes to work in the intersection of large-scale data processing systems, functional programming, and automation.
I've spent the last few years working in the domains of text analytics, large-scale data processing, and container orchestration.
My goal is to tackle complex and interesting problems in challenging, creative, and intellectually stimulating environments with a strong engineering culture.
Relevant Work Experience
Argo AI Munich, Germany
Building self-driving technology you can trust.
Senior Software Engineer
March 2020 - present
Mesosphere (now D2iQ) Hamburg, Germany
Software for data centers based on Apache Mesos and Kubernetes.
Senior Software Engineer and Tech Lead
November 2017 - January 2020
- Led the effort for planning and building our officially supported Cassandra Operator, a strategic deliverable for the company's new Kubernetes offerings.
- Contributed and added new capabilities to Mesosphere's official DC/OS Data Services: Elasticsearch, Cassandra, Kafka and Spark.
- Led the Data Services initiative for large-scale mixed-workload deployments on clusters exceeding 12000 cores. This became a routine procedure that uncovered countless ways in which DC/OS components like Apache Mesos, networking and storage needed improvement, ultimately increasing stability and correctness across the board, providing confidence that Mesosphere's biggest customers could run their comprehensive workloads on our platform.
- Worked on Mesosphere's declarative approach to building production-grade stateful services, which out-of-the-box provides multi-region and multi-zone deployment support, overlay networking, metrics, dashboards, persistent volumes, rolling upgrades, TLS communications and allows operators to get a complex stateful service deployment running with just one command.
- Interviewed candidates and mentored engineers. Built tooling that allowed not only newcomers, but whole teams to be more productive.
Sonian, Inc. Waltham, MA, United States (remote)
Hosted email analytics, archiving and discovery.
Senior Software Engineer
September 2014 - September 2017
- Took advantage of business, engineering and research knowledge acquired during the year before to move POCs to a production setting.
- Architected and built distributed batch processing systems and HTTP APIs with Clojure, Component, Zookeeper, RabbitMQ, PostgreSQL and Redis.
- Researched, benchmarked and implemented different approaches to topic extraction, trend detection and text segmentation for email bodies.
- Successfully used bleeding edge Elasticsearch aggregations, mapping configurations and cluster topologies to get complex real-time analytics queries returning in milliseconds.
- Implemented distributed data pipelines for email data cleaning, parsing and analysis using open-source tools like StanfordNLP.
- Automated infrastructure and deployments with Ansible, Chef, Docker and Jenkins.
August 2013 - September 2014
- Conceptualized and created the interactive visualizations that kickstarted Sonian's move towards email analytics, allowing customers to extract insights from their massive amounts of data. The frontend was built with React, mori and D3, and the backend with JRuby, Rails, PostgreSQL, Elasticsearch and Redis.
- Designed and implemented data pipelines for cleaning, enriching and deriving additional types of information from email message data using proprietary algorithms, statistical methods like tf-idf and tools such as StanfordNLP and Maui.
Meleva Campinas, São Paulo, Brazil
April 2012 - July 2013
- Developed real-time location-aware mobile web applications using PhoneGap, Backbone.js and jQuery Mobile on the frontend and Sinatra, Node.js, WebSocket and MongoDB on the backend.
- Got into the Startup Chile program, which financed Meleva for six months with 40.000 USD equity-free seed capital.
- Constructed algorithms for optimally matching users in coherent sets according to their itinerary data.
- Planned and executed a marketing campaign that brought in five thousand users in a single state, in one month, before launch.
- Built an unobtrusive caching adapter for AJAX requests using Local Storage, greatly reducing bandwidth usage, database load and client load times.
- Built user-facing prototypes in time spans as short as one day.
Fonista Campinas, São Paulo, Brazil
Mobile application for calling local businesses that deliver goods, through social recommendations and user-curated information.
July 2011 - April 2012
- Maintained infrastructure using Chef.
- Developed websites using Ruby on Rails, Backbone.js and jQuery Mobile.
- Designed RESTful JSON APIs for native mobile applications.
- Built a proxy analytics server using Sinatra and MongoDB.
Sonian, Inc. Needham, MA, United States (remote)
Hosted email archiving and discovery.
February 2010 - July 2011
- Wrote a Ruby client for Elasticsearch.
- Wrote an admin interface for RabbitMQ clusters.
- Implemented new features and optimized existing ones from backends to UI, using test-driven techniques.
Department of Computing at UFSCar São Carlos, São Paulo, Brazil
March 2009 - July 2009
- Implemented TCP Adaptive Westwood on a Linux kernel.
- Used performance analysis tools to compare throughput versus packet-loss between several TCP algorithms.
- Demonstrated the effectiveness of the TCP-CCP protocol regarding stable data flow through profiling client-server media streams.
May 2008 - December 2008
Developed, designed and deployed Ruby on Rails applications.
At work I'm currently writing Rust, Python, and Bash. On my spare time I'm currently working on projects in TypeScript, C#, Rust, and Clojure.
I can and have written code in several other languages, like SQL, Haskell, Emacs Lisp, Ruby, Erlang, PureScript, Prolog, Scala, Perl, MATLAB, R.
On my day to day I generally use Clojure or Rust for anything more than small scripts, which I write in Python or Bash.
Technologies And Tools
- Kubernetes, Apache Mesos
- Elasticsearch, Apache Cassandra, PostgreSQL, MongoDB, Redis, Apache Zookeeper, Apache Spark
- AWS, Terraform, Ansible, Docker
- GNU Make, GDB, gnuplot, Git
- React, D3, webpack, Node, Canvas, WebSocket
- LaTeX, web markup and styling languages
- GNU Emacs, Vim
Recent Self Education
University of Illinois (Coursera)
Text Mining and Analytics
2015, 4 weeks
University of California, Berkeley (edX)
Introduction to Big Data with Apache Spark
2015, 5 weeks
Stanford University (Coursera)
2014, 12 weeks
Princeton University (Coursera)
2013, 12 weeks
São Carlos, São Paulo, Brazil
B.Sc. in Computer Science
2007 - 2011 (halted)
Native Portuguese and fluent English speaker. I get by with German and Spanish.
Hobbies and Interests
Powerlifting, philosophy, Emacs, cycling, playing guitar, social psychology, guitar pedals, apocalyptic thrillers, doom/stoner/sludge/drone, progressive metal, jazz and IDM.
I am not actively seeking employment at this time, however feel free to contact me if you have any inquiries.
Selected Personal Projects
Bootstrapped an analytics product for brands on Twitter, currently in private beta. It's backed by a distributed batch processing and a distributed real-time stream processing system for tweets. It uses machine learning and natural language processing techniques to extract valuable insights.
Created an MMORPG that runs on graphical web browsers, using Node.js, Redis, Backbone.js and HTML5 technologies such as Canvas and WebSocket. (WIP)
Created a klondike solitaire game using Ncurses and C.
werld-server and werld-client-tty
Created a multiplayer roguelike game with a chat system. The backend uses Erlang and a TCP server with which the TTY client, made using C, Ncurses and select(2), communicates with using an ad-hoc binary protocol. The backend also has a web interface for managing player accounts made with webmachine and mnesia.
Created a multiplayer online battle arena (similar to DotA) game using Clojure and Unity. (WIP)
Automated the preparation of a Macbook for development and desktop tasks using Ansible.
Built a distribured key-value store in Rust. (WIP)
embratel and bell
Created embratel, a library for parsing phone bills from a brazilian telecommunications company called Embratel into Ruby data structures, and bell, a command-line program that generates multi-user expense reports for Embratel's phone bills.