Elastic logo


In office:

  • 🇺🇸 United States

Observability - APM - Principal Developer - Go/Python

The Observability team is in charge of developing solutions that focus on application developers and engineers that run infrastructure and services supporting these applications. Elasticsearch is an efficient datastore for logs, metrics, and application traces, supporting the three pillars of observability. The Observability team builds and maintains solutions that make getting insights from this data turnkey and efficient, such as our APM, Infrastructure Monitoring, Logs, and Uptime solutions. When developing these solutions, we think about the problem end-to-end: how do we automatically collect data from common data sources, how do we store it efficiently in Elasticsearch, how do we present this information to the user, what actions do we take on the insights from the data? All of these aspects are important in bringing a turnkey solution to the market. 

As an APM Agent Engineer you will be part of a team developing a high quality, open source APM product aimed to help developers instrument, debug, and monitor applications. You’ll be deeply involved with the Python agent codebase and evolve it to build new features and better support our users and customers. The APM agents team owns the APM data model, implemented in Go, and you will be the primary person maintaining it as it evolves to better support our product and integrate with Open Telemetry. In order to inform decisions and adjustments to the APM data model, you will engage with the Open Telemetry community. You’ll act as a liaison and bring discussion points back to the team as well as contribute code to OTel components.

You will also collaborate closely with the APM Server team and with the UI team to ensure that we deliver the best possible experience for our users.

The team is diverse and distributed across the world, and collaborates on a daily basis over Github, Zoom, and Slack. 

What you will be working on
  • Join the APM agents team

  • Own the APM data model (Go) and adapt it as necessary

    • Introduce changes as we evolve the storage and intake models

  • Maintain the Python agent for Elastic APM

    • The agent is open-source, so the job includes handling community pull requests, issues and discussion forums requests

    • Respond to support cases and work with our support team and customers to resolve issues with the Python agent

    • Build new integrations with Python frameworks and libraries

    • Ensure high quality and good agent performance

  • Contribute to and participate in Open Telemetry (OTel) projects

    • Work on and help drive Elastic APM's integration with OTel

    • Join relevant Special Interest Group meetings (SIGs)

    • Contribute new features, instrumentations, specification implementations, etc. to OTel components (collector, agents, etc)

    • Bring discussion points from the OTel groups back to the Elastic APM team

  • Work with the broader APM Agents team on new cross-agent features, specs and alignment

What you will bring along
  • Professional experience in Go and Python, with at least 3+ years in one of them

  • Knowledge of Python web frameworks and ecosystem

  • Experience with developing libraries (packages) for Python and Go

  • Experience working on an open source project with a large community

  • Experience or knowledge in OpenTelemetry

  • Ability to write specifications and lead discussions around them

  • Ability to work independently in a globally distributed team

Bonus Skills
  • Previous experience developing APM products