About me

I’m a software engineer with experience in development and architecture of modern, cloud-native applications, incorporating secure coding and quality assurance practices. My primary background is backend Go development, and my current interests are around observability and building tools for cloud-native applications. For the past few years, I’ve been developing observability tools, contributing to projects like Jaeger and OpenTelemetry.

Besides coding, I enjoy mentoring others, writing blog posts, and giving talks about areas I actively work on.

Experiences

Principal Engineer

Nov 2022 - Present
Grafana Labs GmbH

Software engineer working in the Application Observability division as part of the OpenTelemetry Squad. While my main focus is still on software engineering, especially around the OpenTelemetry Collector, as a Principal Engineer I have an understanding of the bigger ecosystem and how they relate to Grafana Labs' offerings. For instance, I’m responsible for bringing new themes from the upstream communities to the relevant internal teams at Grafana Labs, acting as a strategic bridge between the parties.

Senior Software Engineer

Oct 2021 - Nov 2022
Grafana Labs GmbH

Software engineer working in the Cloud Middleware division as part of the OpenTelemetry Squad, focused on the OpenTelemetry Collector.

Governance Committee member

Oct 2021 - Oct 2023
OpenTelemetry project

Elected for a two year term for a seat at the Governance Committee for the OpenTelemetry project. My personal goal being part of the committee is to make sure the OpenTelemetry project remains a nice citizen in the broader open-source observability ecosystem, taking other relevant projects into consideration when making decisions. Another goal of mine is to improve the diversity of the project, such as by recruiting maintainers and volunteering myself as mentor as part of the Outreachy project.

I was part of the program committee and/or track co-chair for different conferences, including KubeCon EU 2022 for the “Observability” track, KubeCon NA 2023 for the “Security” track, and KubeCon EU 2023 for the “101” track.

Principal Software Engineer, Tech Lead

Jan 2021 - Sep 2021
Red Hat GmbH, Berlin, Germany

Tech lead for the distributed tracing team, setting the engineering direction of what is made available as part of Red Hat products, including Red Hat OpenShift distributed tracing, Red Hat OpenShift Service Mesh, among others. Part of my duties is to understand what Red Hat customers expect from our solutions and work with the open source communities to address those needs, upstream first. This results in new sub-projects, such as the Jaeger Operator, OpenTelemetry Operator, and OpenTelemetry Collector Builder, as well as specific features for Jaeger and OpenTelemetry Collector, especially around areas like resiliency, security and multi-tenancy.

I’m a maintainer in the Jaeger project and approver for the OpenTelemetry Collector, being consistently among the top developers in terms of project contributions.

Since 2017, I’m a regular mentor of interns as part of the Outreachy program, with sponsorship from the CNCF - Cloud Native Computing Foundation.

I was part of the program committee and/or track co-chair for different conferences, including KubeCon China 2020, KubeCon EU 2021 and KubeCon NA 2021, and “The Dev Conf - Connections International (Brazil)” for the “APIs and Microservices” track.

Senior Software Engineer

Nov 2013 - Dec 2020
Red Hat GmbH, Munich and Berlin, Germany

Developer on the Kiali team, focusing on the distributed tracing components. Active in the OpenTracing and OpenTelemetry communities and maintainer on the Jaeger project, having held conference talks and meetups on the subject.

Previously, worked as sole developer on the Hawkular Accounts module, where I had the opportunity to also contribute to the Keycloak project.

I was also one of the sustaining engineers for the JBoss Enterprise Portal Platform, as well as core developer on GateIn, being the lead for the WSRP module.

Senior Quality Assurance Analyst

Oct 2012 - Oct 2013
Paymill GmbH, Munich, Germany

Lead QA and Test Engineer

Jun 2011 - Sep 2012
Motorola Mobility GmbH, Munich, Germany

JBoss QE Local Lead

Sep 2009 - May 2011
Red Hat s.r.o., Brno, Czech Republic

QE Engineer

May 2008 - May 2011
Red Hat s.r.o., Brno, Czech Republic

Senior Developer

Jul 2006 - Mar 2008
Citigroup, São Paulo, Brazil

Owner

Oct 2005 - Sep 2006
railsmate, São Paulo, Brazil

Web Developer

Oct 2005 - Apr 2006
Insite Soluções Internet, São Paulo, Brazil

Java Developer

Mar 2005 - Oct 2005
IBM, Hortolândia, Brazil

Further job history available upon request

Aug 2000 - Mar 2005

Events

I enjoy attending conferences and talking about projects that I work on. I had the pleasure to be engaged, as a speaker or otherwise noted, at the following ones.

For a complete list of events, check my SpeakerHub account

KubeCon + CloudNativeCon Europe 2022

Member of the Program Committee for the Observability track at this Conference
Where: Virtual and Valencia, Spain
When: 2022-05-16

Kubernetes Community Days Brasil 2022 - Tudo o que você PRECISA saber sobre OpenTelemetry

Speaker at this Conference
Where: Virtual from Brazil
When: 2022-01-18

DevOops 2021 - OpenTelemetry Collector deep dive

Speaker at this Conference
Where: Virtual from Saint Petersburg, Russia
When: 2021-11-10

KubeCon + CloudNativeCon North America 2021

Speaker and member of the Program Committee for the Observability track at this Conference
Where: Virtual and Los Angeles, CA (USA)
When: 2021-10-13

KubeCon + CloudNativeCon Europe 2021

Track co-chair and member of the Program Committee for the Observability track at this Conference
Where: Virtual
When: 2021-05-04

Cloud Native + Open Source Virtual Summit APAC 2020

Member of the Program Committee for the Observability track at this Conference
Where: Virtual
When: 2020-07-30

FOSDEM 2020 - Distributed Tracing for beginners

Speaker at this Conference
Where: Brussels (Belgium)
When: 2020-02-01

Devoxx Belgium 2019 - Observing chaos: how distributed tracing brings observability to a service mess

Speaker at this Conference
Where: Antwerp (Belgium)
When: 2019-11-06

KubeCon + CloudNativeCon Europe 2019 - Intro + Deep Dive: Jaeger

Speaker at this Conference
Where: Barcelona (Spain)
When: 2019-05-23

Red Hat Summit 2019 - What are my microservices doing?

Speaker at this Conference
Where: Boston, MA (USA)
When: 2019-05-09

Great Indian Developer Summit 2019 - Advanced Distributed Tracing

Speaker at this Conference
Where: Bangalore (India)
When: 2019-04-25

Open Source Summit EU 2018 - What are My Microservices Doing?

Speaker at this Conference
Where: Edinburgh (Scotland)
When: 2018-10-24

JavaLand - Finding Performance Bottlenecks with Distributed Tracing

Speaker at this Conference
Where: Cologne (Germany)
When: 2018-03-14

Open Source Summit NA - OpenTracing: One Instrumentation for Metrics, Logs and Distributed Tracing

Co-speaker at this Conference
Where: Los Angeles, CA (USA)
When: 2017-09-11

Other projects

Tech reviewer - Enterprise JavaBeans 3.1 (O'Reilly Media, Inc.) - ISBN: 9781449396961 - Credited as Technical Reviewer
Tech reviewer - WildFly Cookbook (Packt Pub) - ISBN: 9781784392413 - Credited as Technical Reviewer

Articles & Blog posts

Deploying the OpenTelemetry Collector on Kubernetes

OpenTelemetry blog, January 2021

Securing your OpenTelemetry Collector

OpenTelemetry blog, November 2020

Building your own OpenTelemetry Collector distribution

OpenTelemetry blog, September 2020

Tuning Jaeger’s performance

Jaeger Tracing blog, March 2019

Help! Something is wrong with my Jaeger installation!

Jaeger Tracing blog, January 2019

Running Jaeger Agent on bare metal

Jaeger Tracing blog and DZone, December 2018

Distributed tracing in a microservices world

opensource.com, September 2018

Jaeger Operator for Kubernetes

Jaeger Tracing blog, September 2018

The life of a span

Jaeger Tracing blog and DZone, July 2018

Protecting the collection of spans

Jaeger Tracing blog and DZone, December 2017

Jaeger and multitenancy

Jaeger Tracing blog and DZone, October 2017

Deployment strategies for the Jaeger Agent

Jaeger Tracing blog, October 2017

OpenTracing EJB instrumentation

Hawkular blog and DZone, July 2017

Patents

As part of my daily job, I was fortunate to face problems that required innovative solutions. Some of them could be translated into patents, like the following.

Software-development tool for presenting telemetry data with associated source code

Unifying historical telemetry data with code editors, for better feedback on what’s the potential impact of code changes.

Software tracing in a multitenant environment

Process to configure a span router to direct the payload to the appropriate backend based on metadata from the incoming connection, or metadata from the span itself.

Automatic microservice problem detection in enterprise applications

Process to build application profiles based on request-scoped path across distributed systems (such as microservices), so that two similar requests can be compared, allowing an external observer to detect anomalies

Proxy with a function as a service (faas) support

Process to allow proxies to execute a set of functions as a service (FaaS) through a FaaS provider, in addition to proxying the request to an underlying upstream

Multi-Tenant Enterprise Application Management

Process to allow existing enterprise applications to use current technologies to achieve multi tenancy

Secret store for oauth offline tokens

Process to use an API key/secret store backed by OAuth Offline Tokens

Skills and Proficiency

Golang

Java, Jakarta EE

Microservices

Distributed systems

RDMBS (PostgreSQL, MySQL, MS SQL Server)

Elasticsearch

NoSQL (Cassandra, MongoDB)

Front-end technologies