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
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.
Software engineer working in the Cloud Middleware division as part of the OpenTelemetry Squad, focused on the OpenTelemetry Collector.
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.
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.
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.
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 ConferenceWhere: Virtual and Valencia, Spain
When: 2022-05-16
Kubernetes Community Days Brasil 2022 - Tudo o que você PRECISA saber sobre OpenTelemetry
Speaker at this ConferenceWhere: Virtual from Brazil
When: 2022-01-18
DevOops 2021 - OpenTelemetry Collector deep dive
Speaker at this ConferenceWhere: 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 ConferenceWhere: 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 ConferenceWhere: Virtual
When: 2021-05-04
Cloud Native + Open Source Virtual Summit APAC 2020
Member of the Program Committee for the Observability track at this ConferenceWhere: Virtual
When: 2020-07-30
FOSDEM 2020 - Distributed Tracing for beginners
Speaker at this ConferenceWhere: Brussels (Belgium)
When: 2020-02-01
Where: Antwerp (Belgium)
When: 2019-11-06
KubeCon + CloudNativeCon Europe 2019 - Intro + Deep Dive: Jaeger
Speaker at this ConferenceWhere: Barcelona (Spain)
When: 2019-05-23
Red Hat Summit 2019 - What are my microservices doing?
Speaker at this ConferenceWhere: Boston, MA (USA)
When: 2019-05-09
Great Indian Developer Summit 2019 - Advanced Distributed Tracing
Speaker at this ConferenceWhere: Bangalore (India)
When: 2019-04-25
Open Source Summit EU 2018 - What are My Microservices Doing?
Speaker at this ConferenceWhere: Edinburgh (Scotland)
When: 2018-10-24
JavaLand - Finding Performance Bottlenecks with Distributed Tracing
Speaker at this ConferenceWhere: Cologne (Germany)
When: 2018-03-14
Open Source Summit NA - OpenTracing: One Instrumentation for Metrics, Logs and Distributed Tracing
Co-speaker at this ConferenceWhere: Los Angeles, CA (USA)
When: 2017-09-11
Other projects
Articles & Blog posts
Deploying the OpenTelemetry Collector on Kubernetes
OpenTelemetry blog, January 2021Securing your OpenTelemetry Collector
OpenTelemetry blog, November 2020Extending the OpenTelemetry Collector with your own components
OpenTelemetry blog, October 2020Building your own OpenTelemetry Collector distribution
OpenTelemetry blog, September 2020Build a monitoring infrastructure for your Jaeger installation
Red Hat Developer and InfoQ China, August 2019A guide to the open source distributed tracing landscape
Red Hat Developer and InfoQ China, May 2019Help! Something is wrong with my Jaeger installation!
Jaeger Tracing blog, January 2019Running Jaeger Agent on bare metal
Jaeger Tracing blog and DZone, December 2018Distributed tracing in a microservices world
opensource.com, September 2018Jaeger Operator for Kubernetes
Jaeger Tracing blog, September 2018Automatic tracing of Java EE applications with WildFly 14 and Jaeger
Jaeger Tracing blog and DZone, September 2018Protecting Jaeger UI with an OAuth sidecar Proxy (revised)
Jaeger Tracing blog, April 2018Getting Jaeger's Java Client internal metrics into Prometheus
Jaeger Tracing blog and DZone, March 2018Protecting the collection of spans
Jaeger Tracing blog and DZone, December 2017Deployment strategies for the Jaeger Agent
Jaeger Tracing blog, October 2017OpenTracing EJB instrumentation
Hawkular blog and DZone, July 2017Protecting Jaeger UI With a Sidecar Security Proxy
Hawkular blog and DZone, July 2017Patents
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 anomaliesProxy 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 upstreamMulti-Tenant Enterprise Application Management
Process to allow existing enterprise applications to use current technologies to achieve multi tenancySecret store for oauth offline tokens
Process to use an API key/secret store backed by OAuth Offline Tokens