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.
Software engineer working in the Cloud Middleware division as part of the OpenTelemetry Squad, focused on the OpenTelemetry Collector.
I’m a maintainer in the OpenTelemetry project, being part of the Governing Board between October 2021 and October 2023. I’m also consistently among the top developers in terms of project contributions.
I was part of the program committee and/or track co-chair for different conferences, including KubeCon EU 2022 for the “Observability” track.
Keywords: Golang, OpenTelemetry, Observability
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.
Keywords: Golang, Kubernetes, OpenShift, Cloud Native, OpenTelemetry, Observability, Jaeger
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.
Keywords: Golang, Java, Hawkular, Docker, Kubernetes, OpenShift, Microservices, Cloud Native, OpenTracing, Jaeger
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 2022Member of the Program Committee for the Observability track at this Conference
Where: Virtual and Valencia, Spain
Kubernetes Community Days Brasil 2022 - Tudo o que você PRECISA saber sobre OpenTelemetrySpeaker at this Conference
Where: Virtual from Brazil
DevOops 2021 - OpenTelemetry Collector deep diveSpeaker at this Conference
Where: Virtual from Saint Petersburg, Russia
KubeCon + CloudNativeCon North America 2021Speaker and member of the Program Committee for the Observability track at this Conference
Where: Virtual and Los Angeles, CA (USA)
KubeCon + CloudNativeCon Europe 2021Track co-chair and member of the Program Committee for the Observability track at this Conference
Cloud Native + Open Source Virtual Summit APAC 2020Member of the Program Committee for the Observability track at this Conference
FOSDEM 2020 - Distributed Tracing for beginnersSpeaker at this Conference
Where: Brussels (Belgium)
Devoxx Belgium 2019 - Observing chaos: how distributed tracing brings observability to a service messSpeaker at this Conference
Where: Antwerp (Belgium)
KubeCon + CloudNativeCon Europe 2019 - Intro + Deep Dive: JaegerSpeaker at this Conference
Where: Barcelona (Spain)
Red Hat Summit 2019 - What are my microservices doing?Speaker at this Conference
Where: Boston, MA (USA)
Great Indian Developer Summit 2019 - Advanced Distributed TracingSpeaker at this Conference
Where: Bangalore (India)
Open Source Summit EU 2018 - What are My Microservices Doing?Speaker at this Conference
Where: Edinburgh (Scotland)
JavaLand - Finding Performance Bottlenecks with Distributed TracingSpeaker at this Conference
Where: Cologne (Germany)
Open Source Summit NA - OpenTracing: One Instrumentation for Metrics, Logs and Distributed TracingCo-speaker at this Conference
Where: Los Angeles, CA (USA)
Articles & Blog posts
Deploying the OpenTelemetry Collector on KubernetesOpenTelemetry blog, January 2021
Securing your OpenTelemetry CollectorOpenTelemetry blog, November 2020
Extending the OpenTelemetry Collector with your own componentsOpenTelemetry blog, October 2020
Building your own OpenTelemetry Collector distributionOpenTelemetry blog, September 2020
Build a monitoring infrastructure for your Jaeger installationRed Hat Developer and InfoQ China, August 2019
A guide to the open source distributed tracing landscapeRed Hat Developer and InfoQ China, May 2019
Help! Something is wrong with my Jaeger installation!Jaeger Tracing blog, January 2019
Running Jaeger Agent on bare metalJaeger Tracing blog and DZone, December 2018
Distributed tracing in a microservices worldopensource.com, September 2018
Jaeger Operator for KubernetesJaeger Tracing blog, September 2018
Automatic tracing of Java EE applications with WildFly 14 and JaegerJaeger Tracing blog and DZone, September 2018
Protecting Jaeger UI with an OAuth sidecar Proxy (revised)Jaeger Tracing blog, April 2018
Getting Jaeger's Java Client internal metrics into PrometheusJaeger Tracing blog and DZone, March 2018
Protecting the collection of spansJaeger Tracing blog and DZone, December 2017
Deployment strategies for the Jaeger AgentJaeger Tracing blog, October 2017
OpenTracing EJB instrumentationHawkular blog and DZone, July 2017
Protecting Jaeger UI With a Sidecar Security ProxyHawkular blog and DZone, July 2017
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 tracing in a multitenant environmentProcess 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 applicationsProcess 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) supportProcess 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 ManagementProcess to allow existing enterprise applications to use current technologies to achieve multi tenancy
Secret store for oauth offline tokensProcess to use an API key/secret store backed by OAuth Offline Tokens