Outreachy! Building diversity in open source

Kara de la Marck
JaegerTracing
Published in
3 min readDec 19, 2017

What is Outreachy?

Outreachy organises three-month paid internships with free and open source software projects for people who are underrepresented in open source and in tech generally.¹ The goal of Outreachy is to “create a positive feedback loop” that supports more women participating in free and open source software.²

Organisations that participate in Outreachy include GNOME, the Linux Kernel, Wikimedia, Debian, Git, OpenTracing, and CNCF. These organisations have specific projects for the interns to work on and provide remote mentors.³

The programme runs twice a year, with summer and winter cohorts.

I recently joined the December 2017 cohort of Outreachy, and now have the opportunity to be mentored by collaborators on the Jaeger tracer while contributing to the Jaeger Node.js client!

Jaeger mascot

What is Jaeger?

Jaeger is a distributed tracing system, developed by Uber Engineering, and released as open source in early 2017. A few months later, Jaeger became the 12th project to become hosted by the Cloud Native Computing Foundation.

Note: Jaeger (ˈyā-gər) is German for hunter or hunting attendant

What is a distributed tracing system?

A distributed tracing system is used to monitor, profile, and troubleshoot complex, microservice-based architectures. Modern microservice architectures have numerous advantages; however, there can be a loss of visibility into a microservices based system, specifically the interactions that occur between services. Traditional monitoring tools such as metrics and logging are still valuable, but they fail to provide visibility across services. This is where distributed tracing thrives.⁴

Distributed tracing provides observability of what is happening inside the flow of an application. Distributed tracing systems use traces to tell the story of a transaction or workflow as it propagates through a potentially distributed system. Jaeger, as a distributed tracing system, provides a concrete set of tracers and a trace storage backend, for usage on applications and microservices instrumented with OpenTracing.

What is OpenTracing?

Many contemporary distributed tracing systems have application-level instrumentations that are incompatible, meaning that vendor lock-in can occur as systems become tightly coupled to a particular distributed tracing implementation. OpenTracing, as an API standard, provides a series of vendor-neutral and language agnostic APIs for distributed tracing systems. OpenTracing thus makes it easy for developers to switch tracing implementations.

Jaeger has OpenTracing compatible client libraries in Go, Java, Node, Python, and C++. I am contributing to the Jaeger Node client and, as a first step, am rewriting the OpenTracing tutorial for Node.js. That should be my next blog post! :)

How does the first photo fit in?

In early December, I spoke about Outreachy and how to apply at codebar’s annual 24 Pull Requests event. codebar runs regular programming workshops for underrepresented people with the goal of making technology and coding more accessible. At 24 Pull Requests, mentors help students who are new to programming learn how to contribute to open source and make their first PRs. The photo is of all the mentors at the event who are alumni of Founders and Coders, the full-stack JavaScript bootcamp I attended.

Supporting diversity in tech and in open source is important to me. If you have any questions about Outreachy, or would like advice on applying to the programme, I would love to chat with you! :) DM me on Twitter @KaraMarck.

--

--